arcore dev preview release.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d58f38e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+# Unity generated
+Builds/
+Temp/
+Library/
+obj/
+# Visual Studio / MonoDevelop generated
+*.csproj
+*.unityproj
+*.sln
+*.suo
+*.userprefs
+# OS generated
+.DS_Store
\ No newline at end of file
diff --git a/Assets/GoogleARCore.meta b/Assets/GoogleARCore.meta
new file mode 100644
index 0000000..0057848
--- /dev/null
+++ b/Assets/GoogleARCore.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: afb3e05691ff94d2cbad20643e5c5879
+folderAsset: yes
+timeCreated: 1501181552
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/Configurations.meta b/Assets/GoogleARCore/Configurations.meta
new file mode 100644
index 0000000..7417fbe
--- /dev/null
+++ b/Assets/GoogleARCore/Configurations.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6b1cded3497844b35a3bfac966b428f2
+folderAsset: yes
+timeCreated: 1496364746
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/Configurations/DefaultSessionConfig.asset b/Assets/GoogleARCore/Configurations/DefaultSessionConfig.asset
new file mode 100644
index 0000000..6db5547
--- /dev/null
+++ b/Assets/GoogleARCore/Configurations/DefaultSessionConfig.asset
@@ -0,0 +1,15 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2c267d21797034e5a82bfd30dcc038ba, type: 3}
+  m_Name: DefaultSessionConfig
+  m_EditorClassIdentifier: 
+  m_enableARBackground: 1
+  m_synchronizeApplicationFramerateWithColorCamera: 0
diff --git a/Assets/GoogleARCore/Configurations/DefaultSessionConfig.asset.meta b/Assets/GoogleARCore/Configurations/DefaultSessionConfig.asset.meta
new file mode 100644
index 0000000..a882a37
--- /dev/null
+++ b/Assets/GoogleARCore/Configurations/DefaultSessionConfig.asset.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: ba33c039dd5b24adeb15a423efaf4497
+timeCreated: 1502156887
+licenseType: Free
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample.meta b/Assets/GoogleARCore/HelloARExample.meta
new file mode 100644
index 0000000..c04aa50
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 5a715eb97b6a74baea78bb30cdc20f98
+folderAsset: yes
+timeCreated: 1489966992
+licenseType: Pro
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials.meta b/Assets/GoogleARCore/HelloARExample/Materials.meta
new file mode 100644
index 0000000..2fdf1d9
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 1549424938f6d45d885684b5ac3ee149
+folderAsset: yes
+timeCreated: 1501723767
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy.meta
new file mode 100644
index 0000000..878a65d
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 7266ad2fd2b5a426ba59071ef61fb4c3
+folderAsset: yes
+timeCreated: 1502332259
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy.obj b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy.obj
new file mode 100644
index 0000000..9097dea
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy.obj
@@ -0,0 +1,5003 @@
+# This file uses centimeters as units for non-parametric coordinates.
+
+g default
+v 0.036531 0.203676 -0.001768
+v 0.035000 0.204560 -0.002500
+v 0.033469 0.205443 -0.001768
+v 0.032835 0.205810 -0.000000
+v 0.033469 0.205443 0.001768
+v 0.035000 0.204560 0.002500
+v 0.036531 0.203676 0.001768
+v 0.037165 0.203310 -0.000000
+v 0.036951 0.204877 -0.001531
+v 0.035625 0.205642 -0.002165
+v 0.034299 0.206408 -0.001531
+v 0.033750 0.206725 -0.000000
+v 0.034299 0.206408 0.001531
+v 0.035625 0.205642 0.002165
+v 0.036951 0.204877 0.001531
+v 0.037500 0.204560 -0.000000
+v 0.036848 0.205993 -0.000884
+v 0.036083 0.206435 -0.001250
+v 0.035317 0.206877 -0.000884
+v 0.035000 0.207060 -0.000000
+v 0.035317 0.206877 0.000884
+v 0.036083 0.206435 0.001250
+v 0.036848 0.205993 0.000884
+v 0.037165 0.205810 -0.000000
+v 0.036250 0.206725 -0.000000
+v 0.027420 0.185957 0.006258
+v 0.020986 0.188283 0.004790
+v 0.020986 0.188283 -0.004790
+v 0.027420 0.185957 -0.006258
+v 0.028125 0.185957 0.000000
+v 0.021526 0.188283 0.000000
+v 0.024935 0.187127 0.002956
+v 0.026910 0.186366 0.002090
+v 0.022982 0.187924 0.002090
+v 0.024935 0.187127 -0.002956
+v 0.022982 0.187924 -0.002090
+v 0.026910 0.186366 -0.002090
+v 0.027766 0.186119 0.000000
+v 0.022169 0.188170 0.000000
+v -0.027420 0.185957 0.006258
+v -0.020986 0.188283 0.004790
+v -0.020986 0.188283 -0.004790
+v -0.027420 0.185957 -0.006258
+v -0.028125 0.185957 0.000000
+v -0.021526 0.188283 0.000000
+v -0.024935 0.187127 0.002956
+v -0.026910 0.186366 0.002090
+v -0.022982 0.187924 0.002090
+v -0.024935 0.187127 -0.002956
+v -0.022982 0.187924 -0.002090
+v -0.026910 0.186366 -0.002090
+v -0.027766 0.186119 0.000000
+v -0.022169 0.188170 0.000000
+v 0.000000 0.050001 -0.056250
+v -0.012517 0.050001 -0.054840
+v -0.024406 0.050001 -0.050679
+v -0.035071 0.050001 -0.043978
+v -0.043978 0.050001 -0.035071
+v -0.050679 0.050001 -0.024406
+v -0.054840 0.050001 -0.012517
+v -0.056250 0.050001 0.000000
+v -0.054840 0.050001 0.012517
+v -0.050679 0.050001 0.024406
+v -0.043978 0.050001 0.035071
+v -0.035071 0.050001 0.043978
+v -0.024406 0.050001 0.050679
+v -0.012517 0.050001 0.054840
+v 0.000000 0.050001 0.056250
+v 0.000000 0.040000 -0.046217
+v -0.010284 0.040000 -0.045058
+v -0.020053 0.040000 -0.041640
+v -0.028816 0.040000 -0.036134
+v -0.036134 0.040000 -0.028816
+v -0.041640 0.040000 -0.020053
+v -0.045058 0.040000 -0.010284
+v -0.046217 0.040000 0.000000
+v -0.045058 0.040000 0.010284
+v -0.041640 0.040000 0.020053
+v -0.036134 0.040000 0.028816
+v -0.028816 0.040000 0.036134
+v -0.020053 0.040000 0.041640
+v -0.010284 0.040000 0.045058
+v 0.000000 0.040000 0.046217
+v -0.034725 0.046910 0.043544
+v -0.024165 0.046910 0.050180
+v -0.012393 0.046910 0.054299
+v 0.000000 0.046910 0.055695
+v 0.000000 0.046910 -0.055695
+v -0.012393 0.046910 -0.054299
+v -0.024165 0.046910 -0.050180
+v -0.034725 0.046910 -0.043544
+v -0.043544 0.046910 -0.034725
+v -0.050180 0.046910 -0.024165
+v -0.054299 0.046910 -0.012393
+v -0.055695 0.046910 0.000000
+v -0.054299 0.046910 0.012393
+v -0.050180 0.046910 0.024165
+v -0.043544 0.046910 0.034725
+v -0.040731 0.041910 0.032482
+v -0.032482 0.041910 0.040731
+v -0.022604 0.041910 0.046938
+v -0.011593 0.041910 0.050791
+v 0.000000 0.041910 0.052098
+v 0.000000 0.041910 -0.052098
+v -0.011593 0.041910 -0.050791
+v -0.022604 0.041910 -0.046938
+v -0.032482 0.041910 -0.040731
+v -0.040731 0.041910 -0.032482
+v -0.046938 0.041910 -0.022604
+v -0.050791 0.041910 -0.011593
+v -0.052098 0.041910 0.000000
+v -0.050791 0.041910 0.011593
+v -0.046938 0.041910 0.022604
+v 0.012517 0.050001 -0.054840
+v 0.024406 0.050001 -0.050679
+v 0.035071 0.050001 -0.043978
+v 0.043978 0.050001 -0.035071
+v 0.050679 0.050001 -0.024406
+v 0.054840 0.050001 -0.012517
+v 0.056250 0.050001 0.000000
+v 0.054840 0.050001 0.012517
+v 0.050679 0.050001 0.024406
+v 0.043978 0.050001 0.035071
+v 0.035071 0.050001 0.043978
+v 0.024406 0.050001 0.050679
+v 0.012517 0.050001 0.054840
+v 0.010284 0.040000 -0.045058
+v 0.020053 0.040000 -0.041640
+v 0.028816 0.040000 -0.036134
+v 0.036134 0.040000 -0.028816
+v 0.041640 0.040000 -0.020053
+v 0.045058 0.040000 -0.010284
+v 0.046217 0.040000 0.000000
+v 0.045058 0.040000 0.010284
+v 0.041640 0.040000 0.020053
+v 0.036134 0.040000 0.028816
+v 0.028816 0.040000 0.036134
+v 0.020053 0.040000 0.041640
+v 0.010284 0.040000 0.045058
+v 0.034725 0.046910 0.043544
+v 0.024165 0.046910 0.050180
+v 0.012393 0.046910 0.054299
+v 0.012393 0.046910 -0.054299
+v 0.024165 0.046910 -0.050180
+v 0.034725 0.046910 -0.043544
+v 0.043544 0.046910 -0.034725
+v 0.050180 0.046910 -0.024165
+v 0.054299 0.046910 -0.012393
+v 0.055695 0.046910 0.000000
+v 0.054299 0.046910 0.012393
+v 0.050180 0.046910 0.024165
+v 0.043544 0.046910 0.034725
+v 0.040731 0.041910 0.032482
+v 0.032482 0.041910 0.040731
+v 0.022604 0.041910 0.046938
+v 0.011593 0.041910 0.050791
+v 0.011593 0.041910 -0.050791
+v 0.022604 0.041910 -0.046938
+v 0.032482 0.041910 -0.040731
+v 0.040731 0.041910 -0.032482
+v 0.046938 0.041910 -0.022604
+v 0.050791 0.041910 -0.011593
+v 0.052098 0.041910 0.000000
+v 0.050791 0.041910 0.011593
+v 0.046938 0.041910 0.022604
+v 0.000000 0.137500 0.000000
+v 0.000000 0.137500 0.054803
+v 0.000000 0.136062 0.056250
+v -0.012517 0.136062 0.054840
+v -0.012195 0.137500 0.053429
+v -0.024406 0.136062 0.050679
+v -0.023778 0.137500 0.049376
+v -0.035071 0.136062 0.043978
+v -0.034169 0.137500 0.042847
+v -0.043978 0.136062 0.035071
+v -0.042847 0.137500 0.034169
+v -0.050679 0.136062 0.024406
+v -0.049376 0.137500 0.023778
+v -0.054840 0.136062 0.012517
+v -0.053429 0.137500 0.012195
+v -0.056250 0.136062 0.000000
+v -0.054803 0.137500 0.000000
+v -0.054840 0.136062 -0.012517
+v -0.053429 0.137500 -0.012195
+v -0.050679 0.136062 -0.024406
+v -0.049376 0.137500 -0.023778
+v -0.043978 0.136062 -0.035071
+v -0.042847 0.137500 -0.034169
+v -0.035071 0.136062 -0.043978
+v -0.034169 0.137500 -0.042847
+v -0.024406 0.136062 -0.050679
+v -0.023778 0.137500 -0.049376
+v -0.012517 0.136062 -0.054840
+v -0.012195 0.137500 -0.053429
+v 0.000000 0.136062 -0.056250
+v 0.000000 0.137500 -0.054803
+v 0.012517 0.136062 0.054840
+v 0.012195 0.137500 0.053429
+v 0.024406 0.136062 0.050679
+v 0.023778 0.137500 0.049376
+v 0.035071 0.136062 0.043978
+v 0.034169 0.137500 0.042847
+v 0.043978 0.136062 0.035071
+v 0.042847 0.137500 0.034169
+v 0.050679 0.136062 0.024406
+v 0.049376 0.137500 0.023778
+v 0.054840 0.136062 0.012517
+v 0.053429 0.137500 0.012195
+v 0.056250 0.136062 0.000000
+v 0.054803 0.137500 0.000000
+v 0.054840 0.136062 -0.012517
+v 0.053429 0.137500 -0.012195
+v 0.050679 0.136062 -0.024406
+v 0.049376 0.137500 -0.023778
+v 0.043978 0.136062 -0.035071
+v 0.042847 0.137500 -0.034169
+v 0.035071 0.136062 -0.043978
+v 0.034169 0.137500 -0.042847
+v 0.024406 0.136062 -0.050679
+v 0.023778 0.137500 -0.049376
+v 0.012517 0.136062 -0.054840
+v 0.012195 0.137500 -0.053429
+v 0.000000 0.153477 -0.055769
+v -0.012410 0.153477 -0.054370
+v -0.024197 0.153477 -0.050246
+v -0.034771 0.153477 -0.043602
+v -0.043602 0.153477 -0.034771
+v -0.050246 0.153477 -0.024197
+v -0.054370 0.153477 -0.012410
+v -0.055769 0.153477 0.000000
+v -0.054370 0.153477 0.012410
+v -0.050246 0.153477 0.024197
+v -0.043602 0.153477 0.034771
+v -0.034771 0.153477 0.043602
+v -0.024197 0.153477 0.050246
+v -0.012410 0.153477 0.054370
+v 0.000000 0.153477 0.055769
+v 0.000000 0.159345 -0.054333
+v -0.012090 0.159345 -0.052971
+v -0.023574 0.159345 -0.048953
+v -0.033876 0.159345 -0.042479
+v -0.042480 0.159345 -0.033876
+v -0.048953 0.159345 -0.023574
+v -0.052971 0.159345 -0.012090
+v -0.054333 0.159345 0.000000
+v -0.052971 0.159345 0.012090
+v -0.048953 0.159345 0.023574
+v -0.042480 0.159345 0.033876
+v -0.033876 0.159345 0.042480
+v -0.023574 0.159345 0.048953
+v -0.012090 0.159345 0.052971
+v 0.000000 0.159345 0.054333
+v 0.000000 0.164974 -0.051968
+v -0.011564 0.164974 -0.050665
+v -0.022548 0.164974 -0.046822
+v -0.032402 0.164974 -0.040630
+v -0.040630 0.164974 -0.032402
+v -0.046822 0.164974 -0.022548
+v -0.050665 0.164974 -0.011564
+v -0.051968 0.164974 0.000000
+v -0.050665 0.164974 0.011564
+v -0.046822 0.164974 0.022548
+v -0.040630 0.164974 0.032402
+v -0.032402 0.164974 0.040630
+v -0.022548 0.164974 0.046822
+v -0.011564 0.164974 0.050665
+v 0.000000 0.164974 0.051968
+v 0.000000 0.170245 -0.048714
+v -0.010840 0.170245 -0.047493
+v -0.021136 0.170245 -0.043890
+v -0.030373 0.170245 -0.038086
+v -0.038086 0.170245 -0.030373
+v -0.043890 0.170245 -0.021136
+v -0.047493 0.170245 -0.010840
+v -0.048714 0.170245 0.000000
+v -0.047493 0.170245 0.010840
+v -0.043890 0.170245 0.021136
+v -0.038086 0.170245 0.030373
+v -0.030373 0.170245 0.038086
+v -0.021136 0.170245 0.043890
+v -0.010840 0.170245 0.047493
+v 0.000000 0.170245 0.048714
+v 0.000000 0.175052 -0.044626
+v -0.009930 0.175052 -0.043507
+v -0.019363 0.175052 -0.040207
+v -0.027824 0.175052 -0.034890
+v -0.034890 0.175052 -0.027824
+v -0.040207 0.175052 -0.019363
+v -0.043507 0.175052 -0.009930
+v -0.044626 0.175052 0.000000
+v -0.043507 0.175052 0.009930
+v -0.040207 0.175052 0.019363
+v -0.034890 0.175052 0.027824
+v -0.027824 0.175052 0.034890
+v -0.019363 0.175052 0.040207
+v -0.009930 0.175052 0.043507
+v 0.000000 0.175052 0.044626
+v 0.000000 0.179312 -0.039775
+v -0.008851 0.179312 -0.038777
+v -0.017258 0.179312 -0.035836
+v -0.024799 0.179312 -0.031097
+v -0.031097 0.179312 -0.024799
+v -0.035836 0.179312 -0.017258
+v -0.038777 0.179312 -0.008851
+v -0.039775 0.179312 0.000000
+v -0.038777 0.179312 0.008851
+v -0.035836 0.179312 0.017258
+v -0.031097 0.179312 0.024799
+v -0.024799 0.179312 0.031097
+v -0.017258 0.179312 0.035836
+v -0.008851 0.179312 0.038778
+v 0.000000 0.179312 0.039775
+v 0.000000 0.182961 -0.034243
+v -0.007620 0.182961 -0.033384
+v -0.014857 0.182961 -0.030852
+v -0.021350 0.182961 -0.026772
+v -0.026772 0.182961 -0.021350
+v -0.030852 0.182961 -0.014857
+v -0.033384 0.182961 -0.007620
+v -0.034243 0.182961 0.000000
+v -0.033384 0.182961 0.007620
+v -0.030852 0.182961 0.014857
+v -0.026772 0.182961 0.021350
+v -0.021350 0.182961 0.026772
+v -0.014857 0.182961 0.030852
+v -0.007620 0.182961 0.033384
+v 0.000000 0.182961 0.034243
+v 0.000000 0.185957 -0.028125
+v -0.006258 0.185957 -0.027420
+v -0.012203 0.185957 -0.025340
+v -0.017536 0.185957 -0.021989
+v -0.021989 0.185957 -0.017536
+v -0.025340 0.185957 -0.012203
+v -0.025340 0.185957 0.012203
+v -0.021989 0.185957 0.017536
+v -0.017536 0.185957 0.021989
+v -0.012203 0.185957 0.025340
+v -0.006258 0.185957 0.027420
+v 0.000000 0.185957 0.028125
+v 0.000000 0.188283 -0.021526
+v -0.004790 0.188283 -0.020986
+v -0.009340 0.188283 -0.019394
+v -0.013421 0.188283 -0.016830
+v -0.016830 0.188283 -0.013421
+v -0.019394 0.188283 -0.009340
+v -0.019394 0.188283 0.009340
+v -0.016830 0.188283 0.013421
+v -0.013421 0.188283 0.016830
+v -0.009340 0.188283 0.019394
+v -0.004790 0.188283 0.020986
+v 0.000000 0.188283 0.021526
+v 0.000000 0.189936 -0.014559
+v -0.003240 0.189936 -0.014194
+v -0.006317 0.189936 -0.013117
+v -0.009077 0.189936 -0.011382
+v -0.011382 0.189936 -0.009077
+v -0.013117 0.189936 -0.006317
+v -0.014194 0.189936 -0.003240
+v -0.014559 0.189936 0.000000
+v -0.014194 0.189936 0.003240
+v -0.013117 0.189936 0.006317
+v -0.011382 0.189936 0.009077
+v -0.009077 0.189936 0.011382
+v -0.006317 0.189936 0.013117
+v -0.003240 0.189936 0.014194
+v 0.000000 0.189936 0.014559
+v 0.000000 0.190922 -0.007342
+v -0.001634 0.190922 -0.007158
+v -0.003186 0.190922 -0.006615
+v -0.004578 0.190922 -0.005740
+v -0.005740 0.190922 -0.004578
+v -0.006615 0.190922 -0.003186
+v -0.007158 0.190922 -0.001634
+v -0.007342 0.190922 0.000000
+v -0.007158 0.190922 0.001634
+v -0.006615 0.190922 0.003186
+v -0.005740 0.190922 0.004578
+v -0.004578 0.190922 0.005740
+v -0.003186 0.190922 0.006615
+v -0.001634 0.190922 0.007158
+v 0.000000 0.190922 0.007342
+v 0.000000 0.191250 0.000000
+v 0.012410 0.153477 -0.054370
+v 0.024197 0.153477 -0.050246
+v 0.034771 0.153477 -0.043602
+v 0.043602 0.153477 -0.034771
+v 0.050246 0.153477 -0.024197
+v 0.054370 0.153477 -0.012410
+v 0.055769 0.153477 0.000000
+v 0.054370 0.153477 0.012410
+v 0.050246 0.153477 0.024197
+v 0.043602 0.153477 0.034771
+v 0.034771 0.153477 0.043602
+v 0.024197 0.153477 0.050246
+v 0.012410 0.153477 0.054370
+v 0.012090 0.159345 -0.052971
+v 0.023574 0.159345 -0.048953
+v 0.033876 0.159345 -0.042479
+v 0.042479 0.159345 -0.033876
+v 0.048953 0.159345 -0.023574
+v 0.052971 0.159345 -0.012090
+v 0.054333 0.159345 0.000000
+v 0.052971 0.159345 0.012090
+v 0.048953 0.159345 0.023574
+v 0.042480 0.159345 0.033876
+v 0.033876 0.159345 0.042480
+v 0.023574 0.159345 0.048953
+v 0.012090 0.159345 0.052971
+v 0.011564 0.164974 -0.050665
+v 0.022548 0.164974 -0.046822
+v 0.032402 0.164974 -0.040630
+v 0.040630 0.164974 -0.032402
+v 0.046822 0.164974 -0.022548
+v 0.050665 0.164974 -0.011564
+v 0.051968 0.164974 0.000000
+v 0.050665 0.164974 0.011564
+v 0.046822 0.164974 0.022548
+v 0.040630 0.164974 0.032402
+v 0.032402 0.164974 0.040630
+v 0.022548 0.164974 0.046822
+v 0.011564 0.164974 0.050665
+v 0.010840 0.170245 -0.047493
+v 0.021136 0.170245 -0.043890
+v 0.030373 0.170245 -0.038086
+v 0.038086 0.170245 -0.030373
+v 0.043890 0.170245 -0.021136
+v 0.047493 0.170245 -0.010840
+v 0.048714 0.170245 0.000000
+v 0.047493 0.170245 0.010840
+v 0.043890 0.170245 0.021136
+v 0.038086 0.170245 0.030373
+v 0.030373 0.170245 0.038086
+v 0.021136 0.170245 0.043890
+v 0.010840 0.170245 0.047493
+v 0.009930 0.175052 -0.043507
+v 0.019363 0.175052 -0.040207
+v 0.027824 0.175052 -0.034890
+v 0.034890 0.175052 -0.027824
+v 0.040207 0.175052 -0.019363
+v 0.043507 0.175052 -0.009930
+v 0.044626 0.175052 0.000000
+v 0.043507 0.175052 0.009930
+v 0.040207 0.175052 0.019363
+v 0.034890 0.175052 0.027824
+v 0.027824 0.175052 0.034890
+v 0.019363 0.175052 0.040207
+v 0.009930 0.175052 0.043507
+v 0.008851 0.179312 -0.038777
+v 0.017258 0.179312 -0.035836
+v 0.024799 0.179312 -0.031097
+v 0.031097 0.179312 -0.024799
+v 0.035836 0.179312 -0.017258
+v 0.038777 0.179312 -0.008851
+v 0.039775 0.179312 0.000000
+v 0.038777 0.179312 0.008851
+v 0.035836 0.179312 0.017258
+v 0.031097 0.179312 0.024799
+v 0.024799 0.179312 0.031097
+v 0.017258 0.179312 0.035836
+v 0.008851 0.179312 0.038777
+v 0.007620 0.182961 -0.033384
+v 0.014857 0.182961 -0.030852
+v 0.021350 0.182961 -0.026772
+v 0.026772 0.182961 -0.021350
+v 0.030852 0.182961 -0.014857
+v 0.033384 0.182961 -0.007620
+v 0.034243 0.182961 0.000000
+v 0.033384 0.182961 0.007620
+v 0.030852 0.182961 0.014857
+v 0.026772 0.182961 0.021350
+v 0.021350 0.182961 0.026772
+v 0.014857 0.182961 0.030852
+v 0.007620 0.182961 0.033384
+v 0.006258 0.185957 -0.027420
+v 0.012203 0.185957 -0.025340
+v 0.017536 0.185957 -0.021989
+v 0.021989 0.185957 -0.017536
+v 0.025340 0.185957 -0.012203
+v 0.025340 0.185957 0.012203
+v 0.021989 0.185957 0.017536
+v 0.017536 0.185957 0.021989
+v 0.012203 0.185957 0.025340
+v 0.006258 0.185957 0.027420
+v 0.004790 0.188283 -0.020986
+v 0.009340 0.188283 -0.019394
+v 0.013421 0.188283 -0.016830
+v 0.016830 0.188283 -0.013421
+v 0.019394 0.188283 -0.009340
+v 0.019394 0.188283 0.009340
+v 0.016830 0.188283 0.013421
+v 0.013421 0.188283 0.016830
+v 0.009340 0.188283 0.019394
+v 0.004790 0.188283 0.020986
+v 0.003240 0.189936 -0.014194
+v 0.006317 0.189936 -0.013117
+v 0.009077 0.189936 -0.011382
+v 0.011382 0.189936 -0.009077
+v 0.013117 0.189936 -0.006317
+v 0.014194 0.189936 -0.003240
+v 0.014559 0.189936 0.000000
+v 0.014194 0.189936 0.003240
+v 0.013117 0.189936 0.006317
+v 0.011382 0.189936 0.009077
+v 0.009077 0.189936 0.011382
+v 0.006317 0.189936 0.013117
+v 0.003240 0.189936 0.014194
+v 0.001634 0.190922 -0.007158
+v 0.003186 0.190922 -0.006615
+v 0.004578 0.190922 -0.005740
+v 0.005740 0.190922 -0.004578
+v 0.006615 0.190922 -0.003186
+v 0.007158 0.190922 -0.001634
+v 0.007342 0.190922 0.000000
+v 0.007158 0.190922 0.001634
+v 0.006615 0.190922 0.003186
+v 0.005740 0.190922 0.004578
+v 0.004578 0.190922 0.005740
+v 0.003186 0.190922 0.006615
+v 0.001634 0.190922 0.007158
+v 0.000000 0.147500 -0.054742
+v 0.000000 0.148994 -0.056130
+v -0.012490 0.148994 -0.054723
+v -0.012181 0.147500 -0.053369
+v -0.024354 0.148994 -0.050571
+v -0.023751 0.147500 -0.049320
+v -0.034996 0.148994 -0.043884
+v -0.034131 0.147500 -0.042799
+v -0.043884 0.148994 -0.034996
+v -0.042799 0.147500 -0.034131
+v -0.050571 0.148994 -0.024354
+v -0.049320 0.147500 -0.023751
+v -0.054723 0.148994 -0.012490
+v -0.053369 0.147500 -0.012181
+v -0.056130 0.148994 0.000000
+v -0.054742 0.147500 0.000000
+v -0.054723 0.148994 0.012490
+v -0.053369 0.147500 0.012181
+v -0.050571 0.148994 0.024354
+v -0.049320 0.147500 0.023751
+v -0.043884 0.148994 0.034996
+v -0.042799 0.147500 0.034131
+v -0.034996 0.148994 0.043884
+v -0.034131 0.147500 0.042799
+v -0.024354 0.148994 0.050571
+v -0.023751 0.147500 0.049320
+v -0.012490 0.148994 0.054723
+v -0.012181 0.147500 0.053369
+v 0.000000 0.148994 0.056130
+v 0.000000 0.147500 0.054742
+v 0.012490 0.148994 -0.054723
+v 0.012181 0.147500 -0.053369
+v 0.024354 0.148994 -0.050571
+v 0.023751 0.147500 -0.049320
+v 0.034996 0.148994 -0.043884
+v 0.034131 0.147500 -0.042799
+v 0.043884 0.148994 -0.034996
+v 0.042799 0.147500 -0.034131
+v 0.050571 0.148994 -0.024354
+v 0.049320 0.147500 -0.023751
+v 0.054723 0.148994 -0.012490
+v 0.053369 0.147500 -0.012181
+v 0.056130 0.148994 0.000000
+v 0.054742 0.147500 0.000000
+v 0.054723 0.148994 0.012490
+v 0.053369 0.147500 0.012181
+v 0.050571 0.148994 0.024354
+v 0.049320 0.147500 0.023751
+v 0.043884 0.148994 0.034996
+v 0.042799 0.147500 0.034131
+v 0.034996 0.148994 0.043884
+v 0.034131 0.147500 0.042799
+v 0.024354 0.148994 0.050571
+v 0.023751 0.147500 0.049320
+v 0.012490 0.148994 0.054723
+v 0.012181 0.147500 0.053369
+v 0.000000 0.147500 0.000000
+v -0.054402 0.044123 0.000000
+v -0.053038 0.044123 0.012106
+v -0.049014 0.044123 0.023604
+v -0.042533 0.044123 0.033919
+v -0.033919 0.044123 0.042533
+v -0.023604 0.044123 0.049014
+v -0.012106 0.044123 0.053038
+v 0.000000 0.044123 0.054402
+v 0.012106 0.044123 0.053038
+v 0.023604 0.044123 0.049014
+v 0.033919 0.044123 0.042533
+v 0.042533 0.044123 0.033919
+v 0.049014 0.044123 0.023604
+v 0.053038 0.044123 0.012106
+v 0.054402 0.044123 0.000000
+v 0.053038 0.044123 -0.012106
+v 0.049014 0.044123 -0.023604
+v 0.042533 0.044123 -0.033919
+v 0.033919 0.044123 -0.042533
+v 0.023604 0.044123 -0.049014
+v 0.012105 0.044123 -0.053038
+v 0.000000 0.044123 -0.054402
+v -0.012105 0.044123 -0.053038
+v -0.023604 0.044123 -0.049014
+v -0.033919 0.044123 -0.042533
+v -0.042533 0.044123 -0.033919
+v -0.049014 0.044123 -0.023604
+v -0.053038 0.044123 -0.012106
+v -0.049345 0.040490 0.000000
+v -0.048108 0.040490 0.010980
+v -0.044458 0.040490 0.021410
+v -0.038579 0.040490 0.030766
+v -0.030766 0.040490 0.038579
+v -0.021410 0.040490 0.044458
+v -0.010980 0.040490 0.048108
+v 0.000000 0.040490 0.049345
+v 0.010980 0.040490 0.048108
+v 0.021410 0.040490 0.044458
+v 0.030766 0.040490 0.038579
+v 0.038579 0.040490 0.030766
+v 0.044458 0.040490 0.021410
+v 0.048108 0.040490 0.010980
+v 0.049345 0.040490 0.000000
+v 0.048108 0.040490 -0.010980
+v 0.044458 0.040490 -0.021410
+v 0.038579 0.040490 -0.030766
+v 0.030766 0.040490 -0.038579
+v 0.021410 0.040490 -0.044458
+v 0.010980 0.040490 -0.048108
+v 0.000000 0.040490 -0.049345
+v -0.010980 0.040490 -0.048108
+v -0.021410 0.040490 -0.044458
+v -0.030766 0.040490 -0.038579
+v -0.038579 0.040490 -0.030766
+v -0.044458 0.040490 -0.021410
+v -0.048108 0.040490 -0.010980
+v -0.032286 0.040000 -0.000000
+v -0.030472 0.040000 0.006768
+v -0.025518 0.040000 0.011722
+v -0.018750 0.040000 0.013536
+v -0.011982 0.040000 0.011722
+v -0.007028 0.040000 0.006768
+v -0.005214 0.040000 -0.000000
+v -0.007028 0.040000 -0.006768
+v -0.011982 0.040000 -0.011723
+v -0.018750 0.040000 -0.013536
+v -0.025518 0.040000 -0.011723
+v -0.030472 0.040000 -0.006768
+v 0.000000 0.040000 0.000000
+v 0.032286 0.040000 -0.000000
+v 0.030472 0.040000 0.006768
+v 0.025518 0.040000 0.011722
+v 0.018750 0.040000 0.013536
+v 0.011982 0.040000 0.011722
+v 0.007028 0.040000 0.006768
+v 0.005214 0.040000 -0.000000
+v 0.007028 0.040000 -0.006768
+v 0.011982 0.040000 -0.011723
+v 0.018750 0.040000 -0.013536
+v 0.025518 0.040000 -0.011723
+v 0.030472 0.040000 -0.006768
+v 0.031250 0.012500 -0.000000
+v 0.029575 0.012500 0.006250
+v 0.025000 0.012500 0.010825
+v 0.018750 0.012500 0.012500
+v 0.012500 0.012500 0.010825
+v 0.007925 0.012500 0.006250
+v 0.006250 0.012500 -0.000000
+v 0.007925 0.012500 -0.006250
+v 0.012500 0.012500 -0.010826
+v 0.018750 0.012500 -0.012500
+v 0.025000 0.012500 -0.010826
+v 0.029575 0.012500 -0.006250
+v 0.062925 0.125000 -0.006250
+v 0.067500 0.125000 -0.010825
+v 0.073750 0.125000 -0.012500
+v 0.080000 0.125000 -0.010825
+v 0.084575 0.125000 -0.006250
+v 0.086250 0.125000 -0.000000
+v 0.084575 0.125000 0.006250
+v 0.080000 0.125000 0.010825
+v 0.073750 0.125000 0.012500
+v 0.067500 0.125000 0.010825
+v 0.062925 0.125000 0.006250
+v 0.061250 0.125000 -0.000000
+v 0.062925 0.075000 -0.006250
+v 0.067500 0.075000 -0.010825
+v 0.073750 0.075000 -0.012500
+v 0.080000 0.075000 -0.010825
+v 0.084575 0.075000 -0.006250
+v 0.086250 0.075000 0.000000
+v 0.084575 0.075000 0.006250
+v 0.080000 0.075000 0.010825
+v 0.073750 0.075000 0.012500
+v 0.067500 0.075000 0.010825
+v 0.062925 0.075000 0.006250
+v 0.061250 0.075000 0.000000
+v 0.025097 0.187407 0.002500
+v 0.023447 0.188085 0.001768
+v 0.022760 0.188360 0.000000
+v 0.023447 0.188085 -0.001768
+v 0.025097 0.187407 -0.002500
+v 0.026765 0.186760 -0.001768
+v 0.027488 0.186548 0.000000
+v 0.026765 0.186760 0.001768
+v 0.025000 0.039141 0.010825
+v 0.018750 0.039141 0.012500
+v 0.012500 0.039141 0.010825
+v 0.007925 0.039141 0.006250
+v 0.006250 0.039141 -0.000000
+v 0.007925 0.039141 -0.006250
+v 0.012500 0.039141 -0.010826
+v 0.018750 0.039141 -0.012500
+v 0.025000 0.039141 -0.010826
+v 0.029575 0.039141 -0.006250
+v 0.031250 0.039141 -0.000000
+v 0.029575 0.039141 0.006250
+v -0.033469 0.205443 -0.001768
+v -0.035000 0.204560 -0.002500
+v -0.036531 0.203676 -0.001768
+v -0.037165 0.203310 -0.000000
+v -0.036531 0.203676 0.001768
+v -0.035000 0.204560 0.002500
+v -0.033469 0.205443 0.001768
+v -0.032835 0.205810 -0.000000
+v -0.031250 0.012500 -0.000000
+v -0.029575 0.012500 0.006250
+v -0.025000 0.012500 0.010825
+v -0.018750 0.012500 0.012500
+v -0.012500 0.012500 0.010825
+v -0.007925 0.012500 0.006250
+v -0.006250 0.012500 -0.000000
+v -0.007925 0.012500 -0.006250
+v -0.012500 0.012500 -0.010826
+v -0.018750 0.012500 -0.012500
+v -0.025000 0.012500 -0.010826
+v -0.029575 0.012500 -0.006250
+v -0.025097 0.187407 0.002500
+v -0.023447 0.188085 0.001768
+v -0.022760 0.188360 0.000000
+v -0.023447 0.188085 -0.001768
+v -0.025097 0.187407 -0.002500
+v -0.026765 0.186760 -0.001768
+v -0.027488 0.186548 0.000000
+v -0.026765 0.186760 0.001768
+v -0.025000 0.039141 0.010825
+v -0.018750 0.039141 0.012500
+v -0.012500 0.039141 0.010825
+v -0.007925 0.039141 0.006250
+v -0.006250 0.039141 -0.000000
+v -0.007925 0.039141 -0.006250
+v -0.012500 0.039141 -0.010826
+v -0.018750 0.039141 -0.012500
+v -0.025000 0.039141 -0.010826
+v -0.029575 0.039141 -0.006250
+v -0.031250 0.039141 -0.000000
+v -0.029575 0.039141 0.006250
+v -0.036951 0.204877 -0.001531
+v -0.035625 0.205642 -0.002165
+v -0.034299 0.206408 -0.001531
+v -0.033750 0.206725 -0.000000
+v -0.034299 0.206408 0.001531
+v -0.035625 0.205642 0.002165
+v -0.036951 0.204877 0.001531
+v -0.037500 0.204560 -0.000000
+v -0.036848 0.205993 -0.000884
+v -0.036083 0.206435 -0.001250
+v -0.035317 0.206877 -0.000884
+v -0.035000 0.207060 -0.000000
+v -0.035317 0.206877 0.000884
+v -0.036083 0.206435 0.001250
+v -0.036848 0.205993 0.000884
+v -0.037165 0.205810 -0.000000
+v -0.036250 0.206725 -0.000000
+v -0.062925 0.125000 -0.006250
+v -0.067500 0.125000 -0.010825
+v -0.073750 0.125000 -0.012500
+v -0.080000 0.125000 -0.010825
+v -0.084575 0.125000 -0.006250
+v -0.086250 0.125000 -0.000000
+v -0.084575 0.125000 0.006250
+v -0.080000 0.125000 0.010825
+v -0.073750 0.125000 0.012500
+v -0.067500 0.125000 0.010825
+v -0.062925 0.125000 0.006250
+v -0.061250 0.125000 -0.000000
+v -0.062925 0.075000 -0.006250
+v -0.067500 0.075000 -0.010825
+v -0.073750 0.075000 -0.012500
+v -0.080000 0.075000 -0.010825
+v -0.084575 0.075000 -0.006250
+v -0.086250 0.075000 0.000000
+v -0.084575 0.075000 0.006250
+v -0.080000 0.075000 0.010825
+v -0.073750 0.075000 0.012500
+v -0.067500 0.075000 0.010825
+v -0.062925 0.075000 0.006250
+v -0.061250 0.075000 0.000000
+v -0.021552 0.000426 -0.001618
+v -0.020368 0.000426 -0.002802
+v -0.018750 0.000426 -0.003235
+v -0.017132 0.000426 -0.002802
+v -0.015948 0.000426 -0.001618
+v -0.015515 0.000426 -0.000000
+v -0.015948 0.000426 0.001617
+v -0.017132 0.000426 0.002802
+v -0.018750 0.000426 0.003235
+v -0.020368 0.000426 0.002802
+v -0.021552 0.000426 0.001617
+v -0.021985 0.000426 -0.000000
+v -0.024163 0.001675 -0.003125
+v -0.021875 0.001675 -0.005413
+v -0.018750 0.001675 -0.006250
+v -0.015625 0.001675 -0.005413
+v -0.013337 0.001675 -0.003125
+v -0.012500 0.001675 -0.000000
+v -0.013337 0.001675 0.003125
+v -0.015625 0.001675 0.005412
+v -0.018750 0.001675 0.006250
+v -0.021875 0.001675 0.005412
+v -0.024163 0.001675 0.003125
+v -0.025000 0.001675 -0.000000
+v -0.026405 0.003661 -0.004420
+v -0.023169 0.003661 -0.007655
+v -0.018750 0.003661 -0.008839
+v -0.014331 0.003661 -0.007655
+v -0.011095 0.003661 -0.004420
+v -0.009911 0.003661 -0.000000
+v -0.011095 0.003661 0.004419
+v -0.014331 0.003661 0.007654
+v -0.018750 0.003661 0.008839
+v -0.023169 0.003661 0.007654
+v -0.026405 0.003661 0.004419
+v -0.027589 0.003661 -0.000000
+v -0.028125 0.006250 -0.005413
+v -0.024163 0.006250 -0.009375
+v -0.018750 0.006250 -0.010825
+v -0.013337 0.006250 -0.009375
+v -0.009375 0.006250 -0.005413
+v -0.007925 0.006250 -0.000000
+v -0.009375 0.006250 0.005412
+v -0.013337 0.006250 0.009375
+v -0.018750 0.006250 0.010825
+v -0.024163 0.006250 0.009375
+v -0.028125 0.006250 0.005412
+v -0.029575 0.006250 -0.000000
+v -0.029207 0.009265 -0.006037
+v -0.024787 0.009265 -0.010457
+v -0.018750 0.009265 -0.012074
+v -0.012713 0.009265 -0.010457
+v -0.008294 0.009265 -0.006037
+v -0.006676 0.009265 -0.000000
+v -0.008294 0.009265 0.006037
+v -0.012713 0.009265 0.010456
+v -0.018750 0.009265 0.012074
+v -0.024787 0.009265 0.010456
+v -0.029207 0.009265 0.006037
+v -0.030824 0.009265 -0.000000
+v -0.018750 0.000000 -0.000000
+v -0.076552 0.062926 -0.001618
+v -0.075368 0.062926 -0.002802
+v -0.073750 0.062926 -0.003235
+v -0.072132 0.062926 -0.002802
+v -0.070948 0.062926 -0.001618
+v -0.070515 0.062926 0.000000
+v -0.070948 0.062926 0.001618
+v -0.072132 0.062926 0.002802
+v -0.073750 0.062926 0.003235
+v -0.075368 0.062926 0.002802
+v -0.076552 0.062926 0.001618
+v -0.076985 0.062926 0.000000
+v -0.079163 0.064174 -0.003125
+v -0.076875 0.064174 -0.005413
+v -0.073750 0.064174 -0.006250
+v -0.070625 0.064174 -0.005413
+v -0.068337 0.064174 -0.003125
+v -0.067500 0.064174 0.000000
+v -0.068337 0.064174 0.003125
+v -0.070625 0.064174 0.005413
+v -0.073750 0.064174 0.006250
+v -0.076875 0.064174 0.005413
+v -0.079163 0.064174 0.003125
+v -0.080000 0.064174 0.000000
+v -0.081405 0.066161 -0.004419
+v -0.078170 0.066161 -0.007655
+v -0.073750 0.066161 -0.008839
+v -0.069331 0.066161 -0.007655
+v -0.066095 0.066161 -0.004419
+v -0.064911 0.066161 0.000000
+v -0.066095 0.066161 0.004419
+v -0.069331 0.066161 0.007655
+v -0.073750 0.066161 0.008839
+v -0.078170 0.066161 0.007655
+v -0.081405 0.066161 0.004419
+v -0.082589 0.066161 0.000000
+v -0.083125 0.068750 -0.005413
+v -0.079163 0.068750 -0.009375
+v -0.073750 0.068750 -0.010825
+v -0.068337 0.068750 -0.009375
+v -0.064375 0.068750 -0.005413
+v -0.062925 0.068750 0.000000
+v -0.064375 0.068750 0.005413
+v -0.068337 0.068750 0.009375
+v -0.073750 0.068750 0.010825
+v -0.079163 0.068750 0.009375
+v -0.083125 0.068750 0.005413
+v -0.084575 0.068750 0.000000
+v -0.084207 0.071765 -0.006037
+v -0.079787 0.071765 -0.010456
+v -0.073750 0.071765 -0.012074
+v -0.067713 0.071765 -0.010456
+v -0.063294 0.071765 -0.006037
+v -0.061676 0.071765 0.000000
+v -0.063294 0.071765 0.006037
+v -0.067713 0.071765 0.010456
+v -0.073750 0.071765 0.012074
+v -0.079787 0.071765 0.010456
+v -0.084207 0.071765 0.006037
+v -0.085824 0.071765 0.000000
+v -0.073750 0.062500 0.000000
+v -0.076552 0.137074 -0.001618
+v -0.075368 0.137074 -0.002802
+v -0.073750 0.137074 -0.003235
+v -0.072132 0.137074 -0.002802
+v -0.070948 0.137074 -0.001618
+v -0.070515 0.137074 -0.000000
+v -0.070948 0.137074 0.001618
+v -0.072132 0.137074 0.002802
+v -0.073750 0.137074 0.003235
+v -0.075368 0.137074 0.002802
+v -0.076552 0.137074 0.001618
+v -0.076985 0.137074 -0.000000
+v -0.079163 0.135825 -0.003125
+v -0.076875 0.135825 -0.005413
+v -0.073750 0.135825 -0.006250
+v -0.070625 0.135825 -0.005413
+v -0.068337 0.135825 -0.003125
+v -0.067500 0.135825 -0.000000
+v -0.068337 0.135825 0.003125
+v -0.070625 0.135825 0.005413
+v -0.073750 0.135825 0.006250
+v -0.076875 0.135825 0.005413
+v -0.079163 0.135825 0.003125
+v -0.080000 0.135825 -0.000000
+v -0.081405 0.133839 -0.004419
+v -0.078170 0.133839 -0.007655
+v -0.073750 0.133839 -0.008839
+v -0.069331 0.133839 -0.007655
+v -0.066095 0.133839 -0.004419
+v -0.064911 0.133839 -0.000000
+v -0.066095 0.133839 0.004419
+v -0.069331 0.133839 0.007655
+v -0.073750 0.133839 0.008839
+v -0.078170 0.133839 0.007655
+v -0.081405 0.133839 0.004419
+v -0.082589 0.133839 -0.000000
+v -0.083125 0.131250 -0.005413
+v -0.079163 0.131250 -0.009375
+v -0.073750 0.131250 -0.010825
+v -0.068337 0.131250 -0.009375
+v -0.064375 0.131250 -0.005413
+v -0.062925 0.131250 -0.000000
+v -0.064375 0.131250 0.005413
+v -0.068337 0.131250 0.009375
+v -0.073750 0.131250 0.010825
+v -0.079163 0.131250 0.009375
+v -0.083125 0.131250 0.005413
+v -0.084575 0.131250 -0.000000
+v -0.084207 0.128235 -0.006037
+v -0.079787 0.128235 -0.010456
+v -0.073750 0.128235 -0.012074
+v -0.067713 0.128235 -0.010456
+v -0.063294 0.128235 -0.006037
+v -0.061676 0.128235 -0.000000
+v -0.063294 0.128235 0.006037
+v -0.067713 0.128235 0.010456
+v -0.073750 0.128235 0.012074
+v -0.079787 0.128235 0.010456
+v -0.084207 0.128235 0.006037
+v -0.085824 0.128235 -0.000000
+v -0.073750 0.137500 -0.000000
+v 0.021552 0.000426 -0.001618
+v 0.020368 0.000426 -0.002802
+v 0.018750 0.000426 -0.003235
+v 0.017132 0.000426 -0.002802
+v 0.015948 0.000426 -0.001618
+v 0.015515 0.000426 -0.000000
+v 0.015948 0.000426 0.001617
+v 0.017132 0.000426 0.002802
+v 0.018750 0.000426 0.003235
+v 0.020368 0.000426 0.002802
+v 0.021552 0.000426 0.001617
+v 0.021985 0.000426 -0.000000
+v 0.024163 0.001675 -0.003125
+v 0.021875 0.001675 -0.005413
+v 0.018750 0.001675 -0.006250
+v 0.015625 0.001675 -0.005413
+v 0.013337 0.001675 -0.003125
+v 0.012500 0.001675 -0.000000
+v 0.013337 0.001675 0.003125
+v 0.015625 0.001675 0.005412
+v 0.018750 0.001675 0.006250
+v 0.021875 0.001675 0.005412
+v 0.024163 0.001675 0.003125
+v 0.025000 0.001675 -0.000000
+v 0.026405 0.003661 -0.004420
+v 0.023169 0.003661 -0.007655
+v 0.018750 0.003661 -0.008839
+v 0.014331 0.003661 -0.007655
+v 0.011095 0.003661 -0.004420
+v 0.009911 0.003661 -0.000000
+v 0.011095 0.003661 0.004419
+v 0.014331 0.003661 0.007654
+v 0.018750 0.003661 0.008839
+v 0.023169 0.003661 0.007654
+v 0.026405 0.003661 0.004419
+v 0.027589 0.003661 -0.000000
+v 0.028125 0.006250 -0.005413
+v 0.024163 0.006250 -0.009375
+v 0.018750 0.006250 -0.010825
+v 0.013337 0.006250 -0.009375
+v 0.009375 0.006250 -0.005413
+v 0.007925 0.006250 -0.000000
+v 0.009375 0.006250 0.005412
+v 0.013337 0.006250 0.009375
+v 0.018750 0.006250 0.010825
+v 0.024163 0.006250 0.009375
+v 0.028125 0.006250 0.005412
+v 0.029575 0.006250 -0.000000
+v 0.029207 0.009265 -0.006037
+v 0.024787 0.009265 -0.010457
+v 0.018750 0.009265 -0.012074
+v 0.012713 0.009265 -0.010457
+v 0.008294 0.009265 -0.006037
+v 0.006676 0.009265 -0.000000
+v 0.008294 0.009265 0.006037
+v 0.012713 0.009265 0.010456
+v 0.018750 0.009265 0.012074
+v 0.024787 0.009265 0.010456
+v 0.029207 0.009265 0.006037
+v 0.030824 0.009265 -0.000000
+v 0.018750 0.000000 -0.000000
+v 0.076552 0.062926 -0.001618
+v 0.075368 0.062926 -0.002802
+v 0.073750 0.062926 -0.003235
+v 0.072132 0.062926 -0.002802
+v 0.070948 0.062926 -0.001618
+v 0.070515 0.062926 0.000000
+v 0.070948 0.062926 0.001618
+v 0.072132 0.062926 0.002802
+v 0.073750 0.062926 0.003235
+v 0.075368 0.062926 0.002802
+v 0.076552 0.062926 0.001618
+v 0.076985 0.062926 0.000000
+v 0.079163 0.064174 -0.003125
+v 0.076875 0.064174 -0.005413
+v 0.073750 0.064174 -0.006250
+v 0.070625 0.064174 -0.005413
+v 0.068337 0.064174 -0.003125
+v 0.067500 0.064174 0.000000
+v 0.068337 0.064174 0.003125
+v 0.070625 0.064174 0.005413
+v 0.073750 0.064174 0.006250
+v 0.076875 0.064174 0.005413
+v 0.079163 0.064174 0.003125
+v 0.080000 0.064174 0.000000
+v 0.081405 0.066161 -0.004419
+v 0.078170 0.066161 -0.007655
+v 0.073750 0.066161 -0.008839
+v 0.069331 0.066161 -0.007655
+v 0.066095 0.066161 -0.004419
+v 0.064911 0.066161 0.000000
+v 0.066095 0.066161 0.004419
+v 0.069331 0.066161 0.007655
+v 0.073750 0.066161 0.008839
+v 0.078170 0.066161 0.007655
+v 0.081405 0.066161 0.004419
+v 0.082589 0.066161 0.000000
+v 0.083125 0.068750 -0.005413
+v 0.079163 0.068750 -0.009375
+v 0.073750 0.068750 -0.010825
+v 0.068337 0.068750 -0.009375
+v 0.064375 0.068750 -0.005413
+v 0.062925 0.068750 0.000000
+v 0.064375 0.068750 0.005413
+v 0.068337 0.068750 0.009375
+v 0.073750 0.068750 0.010825
+v 0.079163 0.068750 0.009375
+v 0.083125 0.068750 0.005413
+v 0.084575 0.068750 0.000000
+v 0.084207 0.071765 -0.006037
+v 0.079787 0.071765 -0.010456
+v 0.073750 0.071765 -0.012074
+v 0.067713 0.071765 -0.010456
+v 0.063294 0.071765 -0.006037
+v 0.061676 0.071765 0.000000
+v 0.063294 0.071765 0.006037
+v 0.067713 0.071765 0.010456
+v 0.073750 0.071765 0.012074
+v 0.079787 0.071765 0.010456
+v 0.084207 0.071765 0.006037
+v 0.085824 0.071765 0.000000
+v 0.073750 0.062500 0.000000
+v 0.076552 0.137074 -0.001618
+v 0.075368 0.137074 -0.002802
+v 0.073750 0.137074 -0.003235
+v 0.072132 0.137074 -0.002802
+v 0.070948 0.137074 -0.001618
+v 0.070515 0.137074 -0.000000
+v 0.070948 0.137074 0.001618
+v 0.072132 0.137074 0.002802
+v 0.073750 0.137074 0.003235
+v 0.075368 0.137074 0.002802
+v 0.076552 0.137074 0.001618
+v 0.076985 0.137074 -0.000000
+v 0.079163 0.135825 -0.003125
+v 0.076875 0.135825 -0.005413
+v 0.073750 0.135825 -0.006250
+v 0.070625 0.135825 -0.005413
+v 0.068337 0.135825 -0.003125
+v 0.067500 0.135825 -0.000000
+v 0.068337 0.135825 0.003125
+v 0.070625 0.135825 0.005413
+v 0.073750 0.135825 0.006250
+v 0.076875 0.135825 0.005413
+v 0.079163 0.135825 0.003125
+v 0.080000 0.135825 -0.000000
+v 0.081405 0.133839 -0.004419
+v 0.078170 0.133839 -0.007655
+v 0.073750 0.133839 -0.008839
+v 0.069331 0.133839 -0.007655
+v 0.066095 0.133839 -0.004419
+v 0.064911 0.133839 -0.000000
+v 0.066095 0.133839 0.004419
+v 0.069331 0.133839 0.007655
+v 0.073750 0.133839 0.008839
+v 0.078170 0.133839 0.007655
+v 0.081405 0.133839 0.004419
+v 0.082589 0.133839 -0.000000
+v 0.083125 0.131250 -0.005413
+v 0.079163 0.131250 -0.009375
+v 0.073750 0.131250 -0.010825
+v 0.068337 0.131250 -0.009375
+v 0.064375 0.131250 -0.005413
+v 0.062925 0.131250 -0.000000
+v 0.064375 0.131250 0.005413
+v 0.068337 0.131250 0.009375
+v 0.073750 0.131250 0.010825
+v 0.079163 0.131250 0.009375
+v 0.083125 0.131250 0.005413
+v 0.084575 0.131250 -0.000000
+v 0.084207 0.128235 -0.006037
+v 0.079787 0.128235 -0.010456
+v 0.073750 0.128235 -0.012074
+v 0.067713 0.128235 -0.010456
+v 0.063294 0.128235 -0.006037
+v 0.061676 0.128235 -0.000000
+v 0.063294 0.128235 0.006037
+v 0.067713 0.128235 0.010456
+v 0.073750 0.128235 0.012074
+v 0.079787 0.128235 0.010456
+v 0.084207 0.128235 0.006037
+v 0.085824 0.128235 -0.000000
+v 0.073750 0.137500 -0.000000
+vt 0.055846 0.659882
+vt 0.055846 0.669764
+vt 0.055848 0.679645
+vt 0.055848 0.689527
+vt 0.055847 0.620355
+vt 0.055846 0.630237
+vt 0.055846 0.640118
+vt 0.055846 0.650000
+vt 0.042671 0.659882
+vt 0.042671 0.669764
+vt 0.042671 0.679646
+vt 0.042671 0.610473
+vt 0.042671 0.620355
+vt 0.042671 0.630237
+vt 0.042671 0.640119
+vt 0.042671 0.650000
+vt 0.029495 0.659882
+vt 0.029495 0.669764
+vt 0.029496 0.679646
+vt 0.029495 0.610473
+vt 0.029495 0.620355
+vt 0.029495 0.630237
+vt 0.029495 0.640118
+vt 0.029495 0.650000
+vt 0.016319 0.664823
+vt 0.016319 0.674705
+vt 0.016320 0.684587
+vt 0.016320 0.615414
+vt 0.016319 0.625296
+vt 0.016319 0.635178
+vt 0.016320 0.645059
+vt 0.016319 0.654941
+vt 0.851173 0.793896
+vt 0.856730 0.787051
+vt 0.855527 0.795680
+vt 0.846863 0.795712
+vt 0.842730 0.790247
+vt 0.851181 0.806034
+vt 0.856732 0.812949
+vt 0.842730 0.809753
+vt 0.846869 0.804239
+vt 0.855530 0.804296
+vt 0.857385 0.800000
+vt 0.858189 0.800000
+vt 0.845151 0.800000
+vt 0.843829 0.800000
+vt 0.748827 0.793896
+vt 0.744473 0.795680
+vt 0.743270 0.787051
+vt 0.753137 0.795712
+vt 0.757270 0.790247
+vt 0.748819 0.806034
+vt 0.753131 0.804239
+vt 0.757270 0.809753
+vt 0.743270 0.812949
+vt 0.744470 0.804296
+vt 0.742615 0.800000
+vt 0.741810 0.800000
+vt 0.754849 0.800000
+vt 0.756171 0.800000
+vt 0.418946 0.313941
+vt 0.450000 0.310442
+vt 0.450000 0.318024
+vt 0.420633 0.321332
+vt 0.389448 0.324263
+vt 0.392738 0.331094
+vt 0.362987 0.340889
+vt 0.367715 0.346817
+vt 0.340889 0.362987
+vt 0.346817 0.367715
+vt 0.324263 0.389448
+vt 0.331093 0.392737
+vt 0.313941 0.418945
+vt 0.321333 0.420632
+vt 0.310442 0.450000
+vt 0.318024 0.450000
+vt 0.313941 0.481055
+vt 0.321333 0.479367
+vt 0.324263 0.510552
+vt 0.331094 0.507263
+vt 0.340889 0.537013
+vt 0.346817 0.532286
+vt 0.362987 0.559111
+vt 0.367715 0.553183
+vt 0.389448 0.575737
+vt 0.392737 0.568906
+vt 0.418946 0.586059
+vt 0.420633 0.578667
+vt 0.450000 0.589558
+vt 0.450000 0.581976
+vt 0.372173 0.547592
+vt 0.395841 0.562464
+vt 0.422223 0.571696
+vt 0.450000 0.574825
+vt 0.450000 0.325175
+vt 0.422223 0.328306
+vt 0.395841 0.337537
+vt 0.372173 0.352408
+vt 0.352408 0.372172
+vt 0.337536 0.395841
+vt 0.328304 0.422223
+vt 0.325175 0.450000
+vt 0.328304 0.477775
+vt 0.337536 0.504159
+vt 0.352408 0.527827
+vt 0.376703 0.541912
+vt 0.358088 0.523298
+vt 0.363535 0.518954
+vt 0.381045 0.536466
+vt 0.398992 0.555918
+vt 0.402015 0.549642
+vt 0.423841 0.564613
+vt 0.425390 0.557822
+vt 0.450000 0.567560
+vt 0.450000 0.560594
+vt 0.423840 0.335387
+vt 0.450000 0.332441
+vt 0.450000 0.339404
+vt 0.425391 0.342179
+vt 0.398993 0.344083
+vt 0.402015 0.350358
+vt 0.376703 0.358087
+vt 0.381046 0.363535
+vt 0.358088 0.376703
+vt 0.363533 0.381045
+vt 0.344082 0.398992
+vt 0.350358 0.402015
+vt 0.335387 0.423841
+vt 0.342178 0.425390
+vt 0.332440 0.450000
+vt 0.339406 0.450000
+vt 0.335387 0.476159
+vt 0.342178 0.474609
+vt 0.344082 0.501008
+vt 0.350358 0.497985
+vt 0.481055 0.313941
+vt 0.479367 0.321332
+vt 0.510552 0.324263
+vt 0.507262 0.331094
+vt 0.537013 0.340889
+vt 0.532286 0.346817
+vt 0.559111 0.362987
+vt 0.553183 0.367714
+vt 0.575738 0.389448
+vt 0.568907 0.392737
+vt 0.586059 0.418945
+vt 0.578667 0.420632
+vt 0.589558 0.450000
+vt 0.581977 0.450000
+vt 0.586059 0.481055
+vt 0.578667 0.479367
+vt 0.575738 0.510552
+vt 0.568907 0.507263
+vt 0.559111 0.537013
+vt 0.553183 0.532286
+vt 0.537013 0.559111
+vt 0.532286 0.553183
+vt 0.510552 0.575737
+vt 0.507262 0.568906
+vt 0.481055 0.586059
+vt 0.479368 0.578667
+vt 0.504159 0.562464
+vt 0.527827 0.547592
+vt 0.477777 0.571696
+vt 0.477777 0.328306
+vt 0.504159 0.337537
+vt 0.527827 0.352408
+vt 0.547592 0.372172
+vt 0.562464 0.395841
+vt 0.571696 0.422223
+vt 0.574824 0.450000
+vt 0.571696 0.477775
+vt 0.562464 0.504159
+vt 0.547592 0.527827
+vt 0.518954 0.536466
+vt 0.536467 0.518954
+vt 0.541912 0.523298
+vt 0.523298 0.541912
+vt 0.497985 0.549642
+vt 0.501007 0.555918
+vt 0.474609 0.557822
+vt 0.476160 0.564613
+vt 0.474609 0.342179
+vt 0.476160 0.335387
+vt 0.497986 0.350358
+vt 0.501007 0.344083
+vt 0.518954 0.363535
+vt 0.523298 0.358087
+vt 0.536467 0.381045
+vt 0.541912 0.376703
+vt 0.549641 0.402015
+vt 0.555919 0.398992
+vt 0.557823 0.425390
+vt 0.564612 0.423841
+vt 0.560594 0.450000
+vt 0.567561 0.450000
+vt 0.557823 0.474609
+vt 0.564612 0.476159
+vt 0.549641 0.497985
+vt 0.555918 0.501008
+vt 0.150000 0.450000
+vt 0.150000 0.584317
+vt 0.120111 0.580950
+vt 0.091721 0.571016
+vt 0.066254 0.555014
+vt 0.044987 0.533746
+vt 0.028984 0.508278
+vt 0.019050 0.479889
+vt 0.015683 0.450000
+vt 0.019050 0.420111
+vt 0.028984 0.391721
+vt 0.044987 0.366255
+vt 0.066254 0.344987
+vt 0.091721 0.328984
+vt 0.120111 0.319050
+vt 0.150000 0.315683
+vt 0.118950 0.313961
+vt 0.150000 0.310462
+vt 0.038795 0.032928
+vt 0.071738 0.032928
+vt 0.071738 0.267072
+vt 0.038795 0.267072
+vt 0.104681 0.032928
+vt 0.104681 0.267072
+vt 0.137625 0.032928
+vt 0.137625 0.267072
+vt 0.170567 0.032928
+vt 0.170567 0.267072
+vt 0.203511 0.032928
+vt 0.203511 0.267072
+vt 0.236454 0.032928
+vt 0.236454 0.267072
+vt 0.269397 0.032928
+vt 0.269397 0.267072
+vt 0.302340 0.032928
+vt 0.302340 0.267072
+vt 0.335284 0.032928
+vt 0.335284 0.267072
+vt 0.368226 0.032928
+vt 0.368226 0.267072
+vt 0.401170 0.032928
+vt 0.401170 0.267072
+vt 0.434114 0.032928
+vt 0.434114 0.267072
+vt 0.467056 0.032928
+vt 0.467056 0.267072
+vt 0.500000 0.032928
+vt 0.500000 0.267072
+vt 0.961205 0.032928
+vt 0.961205 0.267072
+vt 0.928263 0.267072
+vt 0.928263 0.032928
+vt 0.895319 0.267072
+vt 0.895319 0.032928
+vt 0.862375 0.267072
+vt 0.862375 0.032928
+vt 0.829432 0.267072
+vt 0.829432 0.032928
+vt 0.796489 0.267072
+vt 0.796489 0.032928
+vt 0.763546 0.267072
+vt 0.763546 0.032928
+vt 0.730603 0.267072
+vt 0.730603 0.032928
+vt 0.697661 0.267072
+vt 0.697661 0.032928
+vt 0.664716 0.267072
+vt 0.664716 0.032928
+vt 0.631774 0.267072
+vt 0.631774 0.032928
+vt 0.598830 0.267072
+vt 0.598830 0.032928
+vt 0.565886 0.267072
+vt 0.565886 0.032928
+vt 0.532944 0.267072
+vt 0.532944 0.032928
+vt 0.179889 0.319050
+vt 0.208279 0.328984
+vt 0.233746 0.344987
+vt 0.255013 0.366255
+vt 0.271016 0.391721
+vt 0.280950 0.420111
+vt 0.284317 0.450000
+vt 0.280950 0.479889
+vt 0.271016 0.508278
+vt 0.255013 0.533746
+vt 0.233746 0.555014
+vt 0.208279 0.571016
+vt 0.179889 0.580950
+vt 0.089456 0.324280
+vt 0.062999 0.340905
+vt 0.040905 0.363000
+vt 0.024280 0.389456
+vt 0.013961 0.418950
+vt 0.010462 0.450000
+vt 0.013961 0.481050
+vt 0.024280 0.510543
+vt 0.040905 0.537001
+vt 0.062999 0.559096
+vt 0.089456 0.575720
+vt 0.118950 0.586039
+vt 0.150000 0.589538
+vt 0.181050 0.586039
+vt 0.181050 0.313961
+vt 0.210544 0.324280
+vt 0.237000 0.340905
+vt 0.259095 0.363000
+vt 0.275720 0.389456
+vt 0.286039 0.418950
+vt 0.289538 0.450000
+vt 0.286039 0.481050
+vt 0.275720 0.510543
+vt 0.259095 0.537001
+vt 0.237000 0.559096
+vt 0.210544 0.575720
+vt 0.800000 0.963545
+vt 0.763608 0.959445
+vt 0.767378 0.942927
+vt 0.800000 0.946603
+vt 0.729040 0.947350
+vt 0.736391 0.932084
+vt 0.698031 0.927865
+vt 0.708595 0.914618
+vt 0.672135 0.901969
+vt 0.685382 0.891405
+vt 0.652651 0.870960
+vt 0.667916 0.863609
+vt 0.640555 0.836393
+vt 0.657073 0.832622
+vt 0.636455 0.800000
+vt 0.653397 0.800000
+vt 0.640555 0.763607
+vt 0.657073 0.767378
+vt 0.652651 0.729040
+vt 0.667916 0.736391
+vt 0.672135 0.698032
+vt 0.685382 0.708595
+vt 0.698031 0.672135
+vt 0.708595 0.685382
+vt 0.729040 0.652650
+vt 0.736391 0.667916
+vt 0.763607 0.640555
+vt 0.767378 0.657073
+vt 0.800000 0.636455
+vt 0.800000 0.653397
+vt 0.770911 0.927450
+vt 0.800000 0.930727
+vt 0.743280 0.917782
+vt 0.718493 0.902207
+vt 0.697793 0.881507
+vt 0.682218 0.856721
+vt 0.672550 0.829089
+vt 0.669273 0.800000
+vt 0.672550 0.770911
+vt 0.682218 0.743280
+vt 0.697793 0.718493
+vt 0.718493 0.697793
+vt 0.743280 0.682218
+vt 0.770911 0.672550
+vt 0.800000 0.669273
+vt 0.774274 0.912713
+vt 0.800000 0.915612
+vt 0.749837 0.904163
+vt 0.727917 0.890389
+vt 0.709611 0.872084
+vt 0.695837 0.850163
+vt 0.687287 0.825726
+vt 0.684388 0.800000
+vt 0.687287 0.774274
+vt 0.695837 0.749838
+vt 0.709611 0.727918
+vt 0.727917 0.709611
+vt 0.749837 0.695837
+vt 0.774274 0.687287
+vt 0.800000 0.684388
+vt 0.777526 0.898465
+vt 0.800000 0.900997
+vt 0.756179 0.890995
+vt 0.737029 0.878962
+vt 0.721038 0.862971
+vt 0.709005 0.843822
+vt 0.701536 0.822474
+vt 0.699003 0.800000
+vt 0.701536 0.777526
+vt 0.709005 0.756179
+vt 0.721038 0.737029
+vt 0.737029 0.721038
+vt 0.756179 0.709005
+vt 0.777526 0.701536
+vt 0.800000 0.699003
+vt 0.780715 0.884493
+vt 0.800000 0.886665
+vt 0.762397 0.878083
+vt 0.745964 0.867758
+vt 0.732242 0.854036
+vt 0.721917 0.837603
+vt 0.715507 0.819285
+vt 0.713335 0.800000
+vt 0.715507 0.780715
+vt 0.721917 0.762398
+vt 0.732242 0.745964
+vt 0.745964 0.732242
+vt 0.762397 0.721917
+vt 0.780715 0.715507
+vt 0.800000 0.713335
+vt 0.783880 0.870625
+vt 0.800000 0.872441
+vt 0.768569 0.865268
+vt 0.754834 0.856637
+vt 0.743363 0.845167
+vt 0.734732 0.831431
+vt 0.729375 0.816120
+vt 0.727560 0.800000
+vt 0.729375 0.783880
+vt 0.734732 0.768569
+vt 0.743363 0.754835
+vt 0.754834 0.743363
+vt 0.768569 0.734732
+vt 0.783880 0.729375
+vt 0.800000 0.727558
+vt 0.787051 0.856731
+vt 0.800000 0.858189
+vt 0.774753 0.852427
+vt 0.763719 0.845495
+vt 0.754505 0.836281
+vt 0.747573 0.825248
+vt 0.747573 0.774753
+vt 0.754505 0.763719
+vt 0.763719 0.754505
+vt 0.774753 0.747573
+vt 0.787051 0.743268
+vt 0.800000 0.741810
+vt 0.790247 0.842730
+vt 0.800000 0.843829
+vt 0.780983 0.839489
+vt 0.772673 0.834267
+vt 0.765733 0.827327
+vt 0.760511 0.819017
+vt 0.760511 0.780983
+vt 0.765733 0.772673
+vt 0.772673 0.765733
+vt 0.780983 0.760511
+vt 0.790247 0.757270
+vt 0.800000 0.756171
+vt 0.793474 0.828592
+vt 0.800000 0.829327
+vt 0.787275 0.826423
+vt 0.781715 0.822929
+vt 0.777071 0.818285
+vt 0.773577 0.812725
+vt 0.771408 0.806526
+vt 0.770673 0.800000
+vt 0.771408 0.793474
+vt 0.773577 0.787275
+vt 0.777071 0.781715
+vt 0.781715 0.777071
+vt 0.787275 0.773577
+vt 0.793474 0.771408
+vt 0.800000 0.770673
+vt 0.796729 0.814331
+vt 0.800000 0.814700
+vt 0.793621 0.813245
+vt 0.790834 0.811493
+vt 0.788507 0.809166
+vt 0.786755 0.806379
+vt 0.785669 0.803271
+vt 0.785300 0.800000
+vt 0.785668 0.796729
+vt 0.786755 0.793622
+vt 0.788507 0.790835
+vt 0.790834 0.788508
+vt 0.793621 0.786755
+vt 0.796729 0.785669
+vt 0.800000 0.785300
+vt 0.800000 0.800000
+vt 0.832622 0.942927
+vt 0.836392 0.959445
+vt 0.863609 0.932084
+vt 0.870960 0.947350
+vt 0.891405 0.914618
+vt 0.901968 0.927865
+vt 0.914618 0.891405
+vt 0.927865 0.901969
+vt 0.932084 0.863608
+vt 0.947350 0.870960
+vt 0.942927 0.832622
+vt 0.959445 0.836393
+vt 0.946603 0.800000
+vt 0.963545 0.800000
+vt 0.942927 0.767378
+vt 0.959445 0.763608
+vt 0.932084 0.736391
+vt 0.947350 0.729040
+vt 0.914618 0.708595
+vt 0.927865 0.698032
+vt 0.891405 0.685382
+vt 0.901968 0.672135
+vt 0.863609 0.667916
+vt 0.870960 0.652650
+vt 0.832622 0.657073
+vt 0.836392 0.640555
+vt 0.829089 0.927450
+vt 0.856721 0.917782
+vt 0.881507 0.902207
+vt 0.902206 0.881507
+vt 0.917782 0.856721
+vt 0.927450 0.829090
+vt 0.930727 0.800000
+vt 0.927450 0.770910
+vt 0.917782 0.743280
+vt 0.902206 0.718493
+vt 0.881507 0.697793
+vt 0.856721 0.682218
+vt 0.829089 0.672550
+vt 0.825726 0.912713
+vt 0.850162 0.904163
+vt 0.872083 0.890389
+vt 0.890389 0.872083
+vt 0.904163 0.850163
+vt 0.912713 0.825726
+vt 0.915612 0.800000
+vt 0.912713 0.774274
+vt 0.904163 0.749838
+vt 0.890389 0.727918
+vt 0.872083 0.709611
+vt 0.850162 0.695837
+vt 0.825726 0.687286
+vt 0.822474 0.898465
+vt 0.843821 0.890995
+vt 0.862971 0.878962
+vt 0.878962 0.862971
+vt 0.890995 0.843822
+vt 0.898464 0.822474
+vt 0.900997 0.800000
+vt 0.898464 0.777526
+vt 0.890995 0.756179
+vt 0.878962 0.737029
+vt 0.862971 0.721038
+vt 0.843821 0.709005
+vt 0.822474 0.701536
+vt 0.819285 0.884493
+vt 0.837603 0.878083
+vt 0.854036 0.867758
+vt 0.867758 0.854036
+vt 0.878083 0.837603
+vt 0.884493 0.819285
+vt 0.886665 0.800000
+vt 0.884493 0.780715
+vt 0.878083 0.762398
+vt 0.867758 0.745964
+vt 0.854036 0.732242
+vt 0.837603 0.721917
+vt 0.819285 0.715507
+vt 0.816120 0.870625
+vt 0.831431 0.865268
+vt 0.845166 0.856637
+vt 0.856637 0.845166
+vt 0.865268 0.831431
+vt 0.870625 0.816120
+vt 0.872442 0.800000
+vt 0.870625 0.783880
+vt 0.865268 0.768569
+vt 0.856637 0.754835
+vt 0.845167 0.743363
+vt 0.831431 0.734732
+vt 0.816120 0.729375
+vt 0.812949 0.856731
+vt 0.825247 0.852427
+vt 0.836281 0.845495
+vt 0.845495 0.836281
+vt 0.852427 0.825247
+vt 0.852427 0.774753
+vt 0.845495 0.763719
+vt 0.836281 0.754505
+vt 0.825248 0.747573
+vt 0.812949 0.743270
+vt 0.809753 0.842730
+vt 0.819017 0.839488
+vt 0.827327 0.834267
+vt 0.834267 0.827327
+vt 0.839489 0.819017
+vt 0.839489 0.780983
+vt 0.834267 0.772673
+vt 0.827327 0.765733
+vt 0.819017 0.760511
+vt 0.809753 0.757270
+vt 0.806526 0.828592
+vt 0.812725 0.826423
+vt 0.818285 0.822929
+vt 0.822929 0.818285
+vt 0.826423 0.812725
+vt 0.828592 0.806526
+vt 0.829327 0.800000
+vt 0.828592 0.793474
+vt 0.826423 0.787275
+vt 0.822929 0.781715
+vt 0.818285 0.777071
+vt 0.812725 0.773577
+vt 0.806526 0.771408
+vt 0.803271 0.814331
+vt 0.806379 0.813245
+vt 0.809166 0.811493
+vt 0.811493 0.809166
+vt 0.813245 0.806379
+vt 0.814332 0.803271
+vt 0.814700 0.800000
+vt 0.814331 0.796729
+vt 0.813245 0.793622
+vt 0.811493 0.790835
+vt 0.809166 0.788508
+vt 0.806377 0.786755
+vt 0.803271 0.785668
+vt 0.760574 0.972734
+vt 0.800000 0.977177
+vt 0.800000 0.983714
+vt 0.759120 0.979109
+vt 0.723126 0.959631
+vt 0.689532 0.938522
+vt 0.661478 0.910468
+vt 0.640369 0.876875
+vt 0.627266 0.839426
+vt 0.622823 0.800000
+vt 0.627266 0.760574
+vt 0.640369 0.723127
+vt 0.661478 0.689532
+vt 0.689532 0.661478
+vt 0.723125 0.640370
+vt 0.760574 0.627266
+vt 0.800000 0.622823
+vt 0.719984 0.318489
+vt 0.750000 0.315109
+vt 0.750000 0.450000
+vt 0.691473 0.328466
+vt 0.665897 0.344538
+vt 0.644538 0.365896
+vt 0.628466 0.391473
+vt 0.618491 0.419984
+vt 0.615109 0.450000
+vt 0.618491 0.480016
+vt 0.628466 0.508527
+vt 0.644538 0.534103
+vt 0.665897 0.555462
+vt 0.691473 0.571534
+vt 0.719984 0.581509
+vt 0.750000 0.584891
+vt 0.839426 0.972735
+vt 0.876875 0.959631
+vt 0.910468 0.938522
+vt 0.938522 0.910468
+vt 0.959631 0.876875
+vt 0.972734 0.839426
+vt 0.977178 0.800000
+vt 0.972736 0.760574
+vt 0.959631 0.723127
+vt 0.938522 0.689532
+vt 0.910468 0.661478
+vt 0.876875 0.640370
+vt 0.839426 0.627265
+vt 0.720289 0.965521
+vt 0.685457 0.943634
+vt 0.656366 0.914545
+vt 0.634480 0.879710
+vt 0.620892 0.840881
+vt 0.616286 0.800000
+vt 0.620892 0.759120
+vt 0.634480 0.720289
+vt 0.656366 0.685456
+vt 0.685457 0.656366
+vt 0.720289 0.634479
+vt 0.759120 0.620892
+vt 0.800000 0.616286
+vt 0.840880 0.620892
+vt 0.840880 0.979108
+vt 0.879711 0.965521
+vt 0.914544 0.943634
+vt 0.943634 0.914545
+vt 0.965520 0.879710
+vt 0.979108 0.840881
+vt 0.983714 0.800000
+vt 0.979108 0.759120
+vt 0.965522 0.720289
+vt 0.943634 0.685456
+vt 0.914544 0.656366
+vt 0.879711 0.634479
+vt 0.780016 0.318491
+vt 0.808527 0.328466
+vt 0.834103 0.344538
+vt 0.855462 0.365896
+vt 0.871533 0.391473
+vt 0.881509 0.419984
+vt 0.884891 0.450000
+vt 0.881509 0.480016
+vt 0.871533 0.508527
+vt 0.855462 0.534103
+vt 0.834103 0.555462
+vt 0.808527 0.571534
+vt 0.780016 0.581509
+vt 0.346499 0.450000
+vt 0.349094 0.473031
+vt 0.356748 0.494908
+vt 0.369079 0.514533
+vt 0.385469 0.530921
+vt 0.405092 0.543252
+vt 0.426970 0.550906
+vt 0.450000 0.553501
+vt 0.473031 0.550906
+vt 0.494908 0.543252
+vt 0.514531 0.530921
+vt 0.530921 0.514533
+vt 0.543252 0.494908
+vt 0.550907 0.473031
+vt 0.553501 0.450000
+vt 0.550907 0.426969
+vt 0.543252 0.405092
+vt 0.530920 0.385468
+vt 0.514533 0.369079
+vt 0.494908 0.356749
+vt 0.473031 0.349092
+vt 0.450000 0.346500
+vt 0.426969 0.349092
+vt 0.405092 0.356749
+vt 0.385467 0.369079
+vt 0.369080 0.385468
+vt 0.356748 0.405092
+vt 0.349094 0.426969
+vt 0.377697 0.450000
+vt 0.381758 0.465156
+vt 0.392853 0.476252
+vt 0.408010 0.480313
+vt 0.423166 0.476252
+vt 0.434261 0.465156
+vt 0.438322 0.450000
+vt 0.450000 0.450000
+vt 0.434261 0.434844
+vt 0.423166 0.423748
+vt 0.408010 0.419687
+vt 0.392853 0.423747
+vt 0.381758 0.434844
+vt 0.522303 0.450000
+vt 0.518242 0.465156
+vt 0.507147 0.476252
+vt 0.491990 0.480313
+vt 0.476834 0.476252
+vt 0.465739 0.465156
+vt 0.461678 0.450000
+vt 0.465739 0.434844
+vt 0.476834 0.423748
+vt 0.491990 0.419687
+vt 0.507147 0.423747
+vt 0.518242 0.434844
+vt 0.176121 0.669763
+vt 0.176121 0.679645
+vt 0.176121 0.659881
+vt 0.176120 0.650000
+vt 0.176120 0.640118
+vt 0.176120 0.630236
+vt 0.176120 0.620354
+vt 0.055847 0.610473
+vt 0.176120 0.610473
+vt 0.176121 0.689527
+vt 0.473387 0.972703
+vt 0.473387 0.962787
+vt 0.486693 0.962787
+vt 0.486693 0.972703
+vt 0.460080 0.972703
+vt 0.460080 0.962787
+vt 0.446774 0.972702
+vt 0.446774 0.962787
+vt 0.433468 0.972703
+vt 0.433468 0.962787
+vt 0.420161 0.972702
+vt 0.420161 0.962787
+vt 0.500000 0.962787
+vt 0.500000 0.972703
+vt 0.566532 0.972703
+vt 0.566532 0.962787
+vt 0.579839 0.962787
+vt 0.579839 0.972703
+vt 0.553226 0.972703
+vt 0.553226 0.962787
+vt 0.539919 0.972703
+vt 0.539919 0.962787
+vt 0.526613 0.972703
+vt 0.526613 0.962787
+vt 0.513306 0.972703
+vt 0.513306 0.962787
+vt 0.153226 0.898485
+vt 0.153226 0.801515
+vt 0.166532 0.801515
+vt 0.166533 0.898485
+vt 0.139920 0.898485
+vt 0.139919 0.801515
+vt 0.126613 0.898485
+vt 0.126613 0.801515
+vt 0.113307 0.898485
+vt 0.113306 0.801515
+vt 0.100000 0.898485
+vt 0.100000 0.801515
+vt 0.086694 0.898485
+vt 0.086693 0.801515
+vt 0.073387 0.898485
+vt 0.073387 0.801515
+vt 0.060081 0.898485
+vt 0.060080 0.801515
+vt 0.046775 0.898485
+vt 0.046774 0.801516
+vt 0.033468 0.898485
+vt 0.033468 0.801516
+vt 0.020162 0.898485
+vt 0.020161 0.801516
+vt 0.179838 0.801515
+vt 0.179839 0.898485
+vt 0.183680 0.620354
+vt 0.183681 0.630236
+vt 0.183680 0.610473
+vt 0.183681 0.679645
+vt 0.183681 0.689527
+vt 0.183681 0.669763
+vt 0.183681 0.659881
+vt 0.183681 0.650000
+vt 0.183681 0.640118
+vt 0.460081 0.907136
+vt 0.473387 0.907136
+vt 0.446774 0.907136
+vt 0.433468 0.907136
+vt 0.420161 0.907136
+vt 0.566532 0.907136
+vt 0.579839 0.907136
+vt 0.553226 0.907136
+vt 0.539919 0.907136
+vt 0.526613 0.907136
+vt 0.513306 0.907136
+vt 0.500000 0.907136
+vt 0.486694 0.907136
+vt 0.344153 0.669764
+vt 0.344154 0.679646
+vt 0.223879 0.679645
+vt 0.223879 0.669763
+vt 0.344153 0.659882
+vt 0.223879 0.659881
+vt 0.344153 0.650000
+vt 0.223879 0.650000
+vt 0.344153 0.640119
+vt 0.223879 0.640118
+vt 0.223879 0.630236
+vt 0.344153 0.630237
+vt 0.344153 0.620355
+vt 0.223879 0.620354
+vt 0.344152 0.610473
+vt 0.223879 0.610473
+vt 0.344154 0.689528
+vt 0.223879 0.689527
+vt 0.526613 0.772703
+vt 0.513306 0.772703
+vt 0.513306 0.762787
+vt 0.526613 0.762787
+vt 0.539919 0.772702
+vt 0.539919 0.762787
+vt 0.553226 0.772703
+vt 0.553226 0.762787
+vt 0.566532 0.772702
+vt 0.566532 0.762787
+vt 0.579839 0.772702
+vt 0.579839 0.762787
+vt 0.500000 0.772703
+vt 0.500000 0.762787
+vt 0.433468 0.772703
+vt 0.420161 0.772703
+vt 0.420161 0.762787
+vt 0.433468 0.762787
+vt 0.446774 0.772703
+vt 0.446774 0.762787
+vt 0.460081 0.772703
+vt 0.460081 0.762787
+vt 0.473387 0.772703
+vt 0.473387 0.762787
+vt 0.486694 0.772703
+vt 0.486694 0.762787
+vt 0.216319 0.630236
+vt 0.216319 0.620354
+vt 0.216319 0.610472
+vt 0.216319 0.689527
+vt 0.216319 0.679645
+vt 0.216319 0.669763
+vt 0.216319 0.659881
+vt 0.216319 0.650000
+vt 0.216319 0.640118
+vt 0.539919 0.707136
+vt 0.526613 0.707136
+vt 0.553226 0.707136
+vt 0.566532 0.707136
+vt 0.579839 0.707136
+vt 0.433468 0.707136
+vt 0.420161 0.707136
+vt 0.446774 0.707136
+vt 0.460081 0.707136
+vt 0.473387 0.707136
+vt 0.486694 0.707136
+vt 0.500000 0.707136
+vt 0.513306 0.707136
+vt 0.357329 0.669764
+vt 0.357329 0.659882
+vt 0.357329 0.679646
+vt 0.357330 0.689528
+vt 0.357329 0.620355
+vt 0.357329 0.630237
+vt 0.357329 0.640119
+vt 0.357329 0.650000
+vt 0.370505 0.669763
+vt 0.370504 0.659882
+vt 0.370505 0.679645
+vt 0.370505 0.689527
+vt 0.370504 0.620355
+vt 0.370504 0.630237
+vt 0.370504 0.640119
+vt 0.370504 0.650000
+vt 0.383681 0.664822
+vt 0.383681 0.674704
+vt 0.383681 0.684586
+vt 0.383680 0.615414
+vt 0.383680 0.625296
+vt 0.383680 0.635178
+vt 0.383680 0.645059
+vt 0.383680 0.654941
+vt 0.357329 0.610473
+vt 0.370504 0.610473
+vt 0.042671 0.689527
+vt 0.029496 0.689527
+vt 0.246774 0.898485
+vt 0.233467 0.898485
+vt 0.233468 0.801515
+vt 0.246774 0.801515
+vt 0.260080 0.898485
+vt 0.260081 0.801515
+vt 0.273387 0.898485
+vt 0.273387 0.801515
+vt 0.286693 0.898485
+vt 0.286694 0.801515
+vt 0.300000 0.898485
+vt 0.300000 0.801515
+vt 0.313306 0.898485
+vt 0.313306 0.801515
+vt 0.326612 0.898485
+vt 0.326613 0.801515
+vt 0.339919 0.898485
+vt 0.339919 0.801516
+vt 0.353225 0.898485
+vt 0.353226 0.801516
+vt 0.366532 0.898485
+vt 0.366532 0.801516
+vt 0.379838 0.898485
+vt 0.379839 0.801516
+vt 0.220161 0.898485
+vt 0.220161 0.801515
+vt 0.486693 0.640604
+vt 0.486694 0.653910
+vt 0.473387 0.653910
+vt 0.473387 0.640604
+vt 0.460081 0.653910
+vt 0.460081 0.640604
+vt 0.446774 0.653910
+vt 0.446774 0.640604
+vt 0.433468 0.653910
+vt 0.433468 0.640604
+vt 0.420161 0.653910
+vt 0.420161 0.640604
+vt 0.579839 0.640604
+vt 0.579839 0.653910
+vt 0.566532 0.653910
+vt 0.566532 0.640604
+vt 0.553226 0.653910
+vt 0.553226 0.640604
+vt 0.539919 0.653910
+vt 0.539919 0.640604
+vt 0.526613 0.653910
+vt 0.526613 0.640604
+vt 0.513306 0.653910
+vt 0.513306 0.640604
+vt 0.500000 0.653910
+vt 0.500000 0.640604
+vt 0.486694 0.667217
+vt 0.473387 0.667217
+vt 0.460081 0.667217
+vt 0.446774 0.667217
+vt 0.433468 0.667217
+vt 0.420161 0.667217
+vt 0.579839 0.667217
+vt 0.566532 0.667217
+vt 0.553226 0.667217
+vt 0.539919 0.667217
+vt 0.526613 0.667217
+vt 0.513306 0.667217
+vt 0.500000 0.667217
+vt 0.486694 0.680523
+vt 0.473387 0.680523
+vt 0.460081 0.680523
+vt 0.446774 0.680523
+vt 0.433468 0.680523
+vt 0.420161 0.680523
+vt 0.579839 0.680523
+vt 0.566532 0.680523
+vt 0.553226 0.680523
+vt 0.539919 0.680523
+vt 0.526613 0.680523
+vt 0.513306 0.680523
+vt 0.500000 0.680523
+vt 0.486694 0.693830
+vt 0.473387 0.693830
+vt 0.460081 0.693830
+vt 0.446774 0.693830
+vt 0.433468 0.693830
+vt 0.420161 0.693830
+vt 0.579839 0.693830
+vt 0.566532 0.693830
+vt 0.553226 0.693830
+vt 0.539919 0.693830
+vt 0.526613 0.693830
+vt 0.513306 0.693830
+vt 0.500000 0.693830
+vt 0.480040 0.627297
+vt 0.466734 0.627297
+vt 0.453427 0.627298
+vt 0.440121 0.627297
+vt 0.426814 0.627298
+vt 0.573185 0.627297
+vt 0.559879 0.627297
+vt 0.546573 0.627297
+vt 0.533266 0.627297
+vt 0.519960 0.627297
+vt 0.506653 0.627297
+vt 0.493347 0.627297
+vt 0.286694 0.734983
+vt 0.286694 0.748289
+vt 0.273387 0.748289
+vt 0.273387 0.734983
+vt 0.260081 0.748289
+vt 0.260081 0.734983
+vt 0.246775 0.748289
+vt 0.246775 0.734983
+vt 0.233468 0.748289
+vt 0.233468 0.734983
+vt 0.220162 0.748289
+vt 0.220162 0.734983
+vt 0.379839 0.734984
+vt 0.379839 0.748290
+vt 0.366533 0.748290
+vt 0.366533 0.734984
+vt 0.353226 0.748290
+vt 0.353226 0.734983
+vt 0.339920 0.748290
+vt 0.339920 0.734983
+vt 0.326613 0.748290
+vt 0.326614 0.734983
+vt 0.313307 0.748289
+vt 0.313307 0.734983
+vt 0.300000 0.748289
+vt 0.300001 0.734983
+vt 0.286694 0.761596
+vt 0.273387 0.761596
+vt 0.260081 0.761596
+vt 0.246774 0.761596
+vt 0.233468 0.761596
+vt 0.220162 0.761595
+vt 0.379839 0.761597
+vt 0.366533 0.761596
+vt 0.353226 0.761596
+vt 0.339920 0.761596
+vt 0.326613 0.761596
+vt 0.313307 0.761596
+vt 0.300000 0.761596
+vt 0.286694 0.774902
+vt 0.273387 0.774902
+vt 0.260081 0.774902
+vt 0.246775 0.774902
+vt 0.233468 0.774902
+vt 0.220162 0.774902
+vt 0.379839 0.774903
+vt 0.366533 0.774903
+vt 0.353226 0.774903
+vt 0.339920 0.774903
+vt 0.326613 0.774903
+vt 0.313307 0.774902
+vt 0.300000 0.774902
+vt 0.286694 0.788209
+vt 0.273387 0.788209
+vt 0.260081 0.788209
+vt 0.246774 0.788208
+vt 0.233468 0.788208
+vt 0.220162 0.788208
+vt 0.379839 0.788209
+vt 0.366533 0.788209
+vt 0.353226 0.788209
+vt 0.339920 0.788209
+vt 0.326613 0.788209
+vt 0.313307 0.788209
+vt 0.300000 0.788209
+vt 0.280041 0.721676
+vt 0.266734 0.721676
+vt 0.253428 0.721676
+vt 0.240121 0.721676
+vt 0.226815 0.721676
+vt 0.373186 0.721677
+vt 0.359880 0.721677
+vt 0.346573 0.721677
+vt 0.333267 0.721677
+vt 0.319960 0.721677
+vt 0.306654 0.721677
+vt 0.293347 0.721676
+vt 0.286693 0.965017
+vt 0.273386 0.965017
+vt 0.273386 0.951711
+vt 0.286693 0.951711
+vt 0.260080 0.965017
+vt 0.260080 0.951711
+vt 0.246773 0.965017
+vt 0.246774 0.951711
+vt 0.233467 0.965017
+vt 0.233467 0.951711
+vt 0.220161 0.965017
+vt 0.220161 0.951711
+vt 0.379838 0.965017
+vt 0.366532 0.965017
+vt 0.366532 0.951711
+vt 0.379838 0.951711
+vt 0.353225 0.965017
+vt 0.353225 0.951711
+vt 0.339919 0.965017
+vt 0.339919 0.951711
+vt 0.326613 0.965017
+vt 0.326613 0.951711
+vt 0.313306 0.965017
+vt 0.313306 0.951711
+vt 0.300000 0.965017
+vt 0.300000 0.951711
+vt 0.273387 0.938405
+vt 0.286693 0.938405
+vt 0.260080 0.938404
+vt 0.246774 0.938404
+vt 0.233467 0.938404
+vt 0.220161 0.938404
+vt 0.366532 0.938405
+vt 0.379838 0.938405
+vt 0.353225 0.938405
+vt 0.339919 0.938405
+vt 0.326612 0.938405
+vt 0.313306 0.938405
+vt 0.300000 0.938405
+vt 0.273387 0.925098
+vt 0.286693 0.925098
+vt 0.260080 0.925098
+vt 0.246774 0.925098
+vt 0.233467 0.925098
+vt 0.220161 0.925098
+vt 0.366532 0.925098
+vt 0.379838 0.925098
+vt 0.353225 0.925098
+vt 0.339919 0.925098
+vt 0.326613 0.925098
+vt 0.313306 0.925098
+vt 0.300000 0.925098
+vt 0.273387 0.911792
+vt 0.286693 0.911792
+vt 0.260080 0.911792
+vt 0.246774 0.911791
+vt 0.233467 0.911791
+vt 0.220161 0.911791
+vt 0.366532 0.911792
+vt 0.379838 0.911792
+vt 0.353225 0.911792
+vt 0.339919 0.911792
+vt 0.326612 0.911792
+vt 0.313306 0.911792
+vt 0.300000 0.911792
+vt 0.280039 0.978324
+vt 0.266733 0.978324
+vt 0.253427 0.978324
+vt 0.240120 0.978324
+vt 0.226814 0.978324
+vt 0.373185 0.978324
+vt 0.359879 0.978324
+vt 0.346572 0.978324
+vt 0.333266 0.978324
+vt 0.319959 0.978324
+vt 0.306653 0.978324
+vt 0.293346 0.978324
+vt 0.513307 0.840604
+vt 0.526613 0.840604
+vt 0.526613 0.853910
+vt 0.513307 0.853910
+vt 0.539920 0.840604
+vt 0.539919 0.853910
+vt 0.553226 0.840604
+vt 0.553226 0.853910
+vt 0.566533 0.840604
+vt 0.566532 0.853911
+vt 0.579839 0.840604
+vt 0.579839 0.853911
+vt 0.420161 0.840604
+vt 0.433468 0.840604
+vt 0.433468 0.853910
+vt 0.420161 0.853910
+vt 0.446774 0.840604
+vt 0.446774 0.853910
+vt 0.460081 0.840604
+vt 0.460081 0.853910
+vt 0.473387 0.840604
+vt 0.473387 0.853910
+vt 0.486694 0.840604
+vt 0.486694 0.853910
+vt 0.500000 0.840604
+vt 0.500000 0.853910
+vt 0.526613 0.867217
+vt 0.513307 0.867217
+vt 0.539919 0.867217
+vt 0.553226 0.867217
+vt 0.566532 0.867217
+vt 0.579839 0.867217
+vt 0.433468 0.867217
+vt 0.420161 0.867217
+vt 0.446774 0.867217
+vt 0.460081 0.867217
+vt 0.473387 0.867217
+vt 0.486694 0.867217
+vt 0.500000 0.867217
+vt 0.526613 0.880523
+vt 0.513307 0.880523
+vt 0.539919 0.880523
+vt 0.553226 0.880523
+vt 0.566532 0.880523
+vt 0.579839 0.880523
+vt 0.433468 0.880523
+vt 0.420161 0.880523
+vt 0.446774 0.880523
+vt 0.460081 0.880523
+vt 0.473387 0.880523
+vt 0.486694 0.880523
+vt 0.500000 0.880523
+vt 0.526613 0.893830
+vt 0.513307 0.893830
+vt 0.539919 0.893830
+vt 0.553226 0.893830
+vt 0.566532 0.893830
+vt 0.579839 0.893830
+vt 0.433468 0.893830
+vt 0.420161 0.893830
+vt 0.446774 0.893830
+vt 0.460081 0.893830
+vt 0.473387 0.893830
+vt 0.486694 0.893830
+vt 0.500000 0.893830
+vt 0.519960 0.827297
+vt 0.533266 0.827297
+vt 0.546573 0.827297
+vt 0.559879 0.827298
+vt 0.573186 0.827298
+vt 0.426814 0.827297
+vt 0.440121 0.827297
+vt 0.453427 0.827297
+vt 0.466734 0.827297
+vt 0.480040 0.827297
+vt 0.493347 0.827297
+vt 0.506653 0.827297
+vt 0.113306 0.734983
+vt 0.126613 0.734983
+vt 0.126613 0.748289
+vt 0.113306 0.748289
+vt 0.139919 0.734983
+vt 0.139919 0.748289
+vt 0.153225 0.734983
+vt 0.153225 0.748289
+vt 0.166532 0.734983
+vt 0.166532 0.748289
+vt 0.179838 0.734983
+vt 0.179838 0.748289
+vt 0.020161 0.734983
+vt 0.033467 0.734983
+vt 0.033467 0.748290
+vt 0.020161 0.748290
+vt 0.046774 0.734983
+vt 0.046774 0.748290
+vt 0.060080 0.734983
+vt 0.060080 0.748290
+vt 0.073387 0.734983
+vt 0.073387 0.748289
+vt 0.086693 0.734983
+vt 0.086693 0.748289
+vt 0.100000 0.734983
+vt 0.100000 0.748289
+vt 0.126613 0.761596
+vt 0.113306 0.761596
+vt 0.139919 0.761596
+vt 0.153225 0.761596
+vt 0.166532 0.761596
+vt 0.179838 0.761596
+vt 0.033467 0.761596
+vt 0.020161 0.761596
+vt 0.046774 0.761596
+vt 0.060080 0.761596
+vt 0.073387 0.761596
+vt 0.086693 0.761596
+vt 0.100000 0.761596
+vt 0.126613 0.774902
+vt 0.113306 0.774902
+vt 0.139919 0.774902
+vt 0.153226 0.774902
+vt 0.166532 0.774902
+vt 0.179838 0.774902
+vt 0.033467 0.774903
+vt 0.020161 0.774903
+vt 0.046774 0.774903
+vt 0.060080 0.774903
+vt 0.073387 0.774902
+vt 0.086693 0.774902
+vt 0.100000 0.774902
+vt 0.126613 0.788209
+vt 0.113306 0.788209
+vt 0.139919 0.788209
+vt 0.153225 0.788209
+vt 0.166532 0.788209
+vt 0.179838 0.788209
+vt 0.033467 0.788209
+vt 0.020161 0.788209
+vt 0.046774 0.788209
+vt 0.060080 0.788209
+vt 0.073387 0.788209
+vt 0.086693 0.788209
+vt 0.100000 0.788209
+vt 0.119959 0.721676
+vt 0.133266 0.721676
+vt 0.146572 0.721676
+vt 0.159879 0.721676
+vt 0.173185 0.721676
+vt 0.026814 0.721677
+vt 0.040120 0.721677
+vt 0.053427 0.721677
+vt 0.066733 0.721677
+vt 0.080040 0.721677
+vt 0.093346 0.721676
+vt 0.106653 0.721676
+vt 0.113307 0.965017
+vt 0.113307 0.951711
+vt 0.126613 0.951711
+vt 0.126614 0.965017
+vt 0.139920 0.951711
+vt 0.139920 0.965017
+vt 0.153226 0.951711
+vt 0.153226 0.965017
+vt 0.166533 0.951711
+vt 0.166533 0.965017
+vt 0.179839 0.951711
+vt 0.179839 0.965017
+vt 0.020162 0.965017
+vt 0.020162 0.951711
+vt 0.033468 0.951711
+vt 0.033468 0.965017
+vt 0.046774 0.951711
+vt 0.046775 0.965017
+vt 0.060081 0.951711
+vt 0.060081 0.965017
+vt 0.073387 0.951711
+vt 0.073387 0.965017
+vt 0.086694 0.951711
+vt 0.086694 0.965017
+vt 0.100000 0.951711
+vt 0.100000 0.965017
+vt 0.113307 0.938404
+vt 0.126613 0.938404
+vt 0.139920 0.938404
+vt 0.153226 0.938404
+vt 0.166533 0.938404
+vt 0.179839 0.938404
+vt 0.020162 0.938404
+vt 0.033468 0.938404
+vt 0.046774 0.938404
+vt 0.060081 0.938404
+vt 0.073387 0.938404
+vt 0.086694 0.938404
+vt 0.100000 0.938404
+vt 0.113307 0.925098
+vt 0.126613 0.925098
+vt 0.139920 0.925098
+vt 0.153226 0.925098
+vt 0.166533 0.925098
+vt 0.179839 0.925098
+vt 0.020162 0.925098
+vt 0.033468 0.925098
+vt 0.046775 0.925098
+vt 0.060081 0.925098
+vt 0.073387 0.925098
+vt 0.086694 0.925098
+vt 0.100000 0.925098
+vt 0.113307 0.911791
+vt 0.126613 0.911792
+vt 0.139920 0.911791
+vt 0.153226 0.911791
+vt 0.166533 0.911791
+vt 0.179839 0.911791
+vt 0.020162 0.911792
+vt 0.033468 0.911791
+vt 0.046775 0.911792
+vt 0.060081 0.911791
+vt 0.073387 0.911792
+vt 0.086694 0.911791
+vt 0.100000 0.911791
+vt 0.119960 0.978324
+vt 0.133267 0.978324
+vt 0.146573 0.978324
+vt 0.159880 0.978324
+vt 0.173186 0.978324
+vt 0.026815 0.978324
+vt 0.040121 0.978324
+vt 0.053428 0.978324
+vt 0.066734 0.978324
+vt 0.080041 0.978324
+vt 0.093347 0.978324
+vt 0.106654 0.978324
+vn 0.618018 -0.340438 -0.708629
+vn 0.004816 0.013405 -0.999899
+vn 0.217515 0.376643 -0.900459
+vn 0.768904 0.058373 -0.636693
+vn -0.606408 0.366126 -0.705848
+vn -0.333953 0.694994 -0.636757
+vn -0.859035 0.511917 -0.000001
+vn -0.562362 0.826891 0.000000
+vn -0.606408 0.366126 0.705848
+vn -0.333953 0.694991 0.636759
+vn 0.004812 0.013407 0.999899
+vn 0.217514 0.376640 0.900461
+vn 0.618018 -0.340438 0.708629
+vn 0.768903 0.058373 0.636695
+vn 0.873073 -0.487589 0.000000
+vn 0.997294 -0.073511 0.000000
+vn 0.386277 0.669203 -0.634790
+vn 0.775055 0.444810 -0.448815
+vn -0.002361 0.893545 -0.448966
+vn -0.163222 0.986589 -0.000002
+vn -0.002361 0.893546 0.448965
+vn 0.386277 0.669201 0.634791
+vn 0.775054 0.444809 0.448817
+vn 0.936026 0.351932 0.000001
+vn 0.500086 0.865976 -0.000003
+vn 0.330416 0.939272 0.092697
+vn 0.396301 0.912607 0.100466
+vn 0.383211 0.922561 0.045064
+vn 0.287051 0.954669 0.078798
+vn 0.269162 0.959884 0.078574
+vn 0.330417 0.939272 -0.092697
+vn 0.396301 0.912607 -0.100466
+vn 0.269162 0.959884 -0.078575
+vn 0.287051 0.954669 -0.078798
+vn 0.383211 0.922561 -0.045061
+vn 0.388183 0.921582 0.000002
+vn 0.436573 0.899669 0.000001
+vn 0.202745 0.979232 0.000000
+vn 0.226299 0.974058 -0.000001
+vn -0.330416 0.939272 0.092697
+vn -0.383210 0.922561 0.045064
+vn -0.396301 0.912607 0.100466
+vn -0.287051 0.954669 0.078798
+vn -0.269162 0.959884 0.078574
+vn -0.330416 0.939272 -0.092702
+vn -0.287051 0.954669 -0.078800
+vn -0.269162 0.959884 -0.078576
+vn -0.396301 0.912607 -0.100467
+vn -0.383212 0.922561 -0.045065
+vn -0.388183 0.921582 0.000000
+vn -0.436572 0.899669 0.000001
+vn -0.202745 0.979232 0.000004
+vn -0.226299 0.974058 0.000001
+vn -0.222517 -0.006117 -0.974910
+vn 0.000000 -0.006117 -0.999981
+vn 0.000000 -0.296295 -0.955097
+vn -0.212529 -0.296295 -0.931150
+vn -0.433876 -0.006117 -0.900952
+vn -0.414401 -0.296294 -0.860513
+vn -0.623478 -0.006117 -0.781817
+vn -0.595493 -0.296294 -0.746725
+vn -0.781817 -0.006117 -0.623478
+vn -0.746725 -0.296294 -0.595493
+vn -0.900952 -0.006117 -0.433876
+vn -0.860512 -0.296295 -0.414401
+vn -0.974910 -0.006117 -0.222517
+vn -0.931150 -0.296294 -0.212530
+vn -0.999981 -0.006117 0.000000
+vn -0.955097 -0.296294 0.000000
+vn -0.974910 -0.006117 0.222517
+vn -0.931150 -0.296295 0.212529
+vn -0.900952 -0.006117 0.433876
+vn -0.860513 -0.296294 0.414401
+vn -0.781817 -0.006117 0.623478
+vn -0.746725 -0.296294 0.595493
+vn -0.623478 -0.006117 0.781817
+vn -0.595493 -0.296294 0.746725
+vn -0.433875 -0.006117 0.900952
+vn -0.414401 -0.296294 0.860513
+vn -0.222517 -0.006117 0.974910
+vn -0.212529 -0.296294 0.931150
+vn 0.000000 -0.006117 0.999981
+vn 0.000000 -0.296294 0.955097
+vn -0.510013 -0.575221 0.639536
+vn -0.354916 -0.575221 0.736991
+vn -0.182022 -0.575221 0.797489
+vn 0.000000 -0.575221 0.817998
+vn 0.000000 -0.575221 -0.817998
+vn -0.182022 -0.575221 -0.797489
+vn -0.354916 -0.575221 -0.736991
+vn -0.510013 -0.575221 -0.639537
+vn -0.639537 -0.575221 -0.510013
+vn -0.736991 -0.575221 -0.354916
+vn -0.797490 -0.575220 -0.182022
+vn -0.817999 -0.575220 0.000000
+vn -0.797489 -0.575221 0.182022
+vn -0.736991 -0.575221 0.354916
+vn -0.639537 -0.575221 0.510013
+vn -0.369762 -0.805164 0.463668
+vn -0.463668 -0.805164 0.369762
+vn -0.253177 -0.946117 0.201902
+vn -0.201902 -0.946117 0.253177
+vn -0.257316 -0.805164 0.534322
+vn -0.140502 -0.946117 0.291757
+vn -0.131967 -0.805164 0.578184
+vn -0.072058 -0.946117 0.315706
+vn 0.000000 -0.805163 0.593053
+vn 0.000000 -0.946117 0.323825
+vn -0.131967 -0.805163 -0.578184
+vn 0.000000 -0.805163 -0.593053
+vn 0.000000 -0.946117 -0.323826
+vn -0.072058 -0.946117 -0.315707
+vn -0.257316 -0.805164 -0.534322
+vn -0.140503 -0.946117 -0.291757
+vn -0.369763 -0.805164 -0.463667
+vn -0.201902 -0.946117 -0.253178
+vn -0.463667 -0.805164 -0.369762
+vn -0.253177 -0.946117 -0.201902
+vn -0.534322 -0.805164 -0.257316
+vn -0.291757 -0.946117 -0.140503
+vn -0.578184 -0.805163 -0.131967
+vn -0.315706 -0.946117 -0.072058
+vn -0.593054 -0.805163 0.000000
+vn -0.323827 -0.946116 0.000000
+vn -0.578184 -0.805163 0.131967
+vn -0.315710 -0.946116 0.072059
+vn -0.534323 -0.805163 0.257316
+vn -0.291758 -0.946116 0.140504
+vn 0.222517 -0.006117 -0.974910
+vn 0.212529 -0.296295 -0.931150
+vn 0.433876 -0.006117 -0.900952
+vn 0.414401 -0.296294 -0.860513
+vn 0.623478 -0.006117 -0.781817
+vn 0.595493 -0.296294 -0.746725
+vn 0.781817 -0.006117 -0.623478
+vn 0.746725 -0.296294 -0.595493
+vn 0.900952 -0.006117 -0.433876
+vn 0.860512 -0.296294 -0.414401
+vn 0.974910 -0.006117 -0.222517
+vn 0.931150 -0.296294 -0.212530
+vn 0.999981 -0.006117 0.000000
+vn 0.955097 -0.296294 0.000000
+vn 0.974910 -0.006117 0.222517
+vn 0.931150 -0.296294 0.212529
+vn 0.900952 -0.006117 0.433876
+vn 0.860513 -0.296294 0.414400
+vn 0.781817 -0.006117 0.623478
+vn 0.746725 -0.296294 0.595493
+vn 0.623478 -0.006117 0.781817
+vn 0.595493 -0.296294 0.746725
+vn 0.433875 -0.006117 0.900952
+vn 0.414401 -0.296294 0.860513
+vn 0.222517 -0.006117 0.974910
+vn 0.212529 -0.296294 0.931150
+vn 0.354916 -0.575221 0.736991
+vn 0.510014 -0.575221 0.639537
+vn 0.182022 -0.575221 0.797489
+vn 0.182022 -0.575221 -0.797489
+vn 0.354916 -0.575221 -0.736991
+vn 0.510013 -0.575221 -0.639537
+vn 0.639537 -0.575221 -0.510013
+vn 0.736991 -0.575221 -0.354916
+vn 0.797490 -0.575220 -0.182022
+vn 0.817999 -0.575220 0.000000
+vn 0.797489 -0.575221 0.182022
+vn 0.736991 -0.575221 0.354916
+vn 0.639537 -0.575221 0.510013
+vn 0.201902 -0.946117 0.253177
+vn 0.253177 -0.946117 0.201902
+vn 0.463668 -0.805163 0.369762
+vn 0.369763 -0.805163 0.463668
+vn 0.140502 -0.946117 0.291757
+vn 0.257316 -0.805164 0.534322
+vn 0.072058 -0.946117 0.315707
+vn 0.131967 -0.805163 0.578184
+vn 0.072058 -0.946117 -0.315707
+vn 0.131967 -0.805164 -0.578184
+vn 0.140503 -0.946117 -0.291757
+vn 0.257316 -0.805164 -0.534322
+vn 0.201902 -0.946117 -0.253178
+vn 0.369762 -0.805164 -0.463667
+vn 0.253177 -0.946117 -0.201902
+vn 0.463667 -0.805164 -0.369762
+vn 0.291757 -0.946117 -0.140503
+vn 0.534322 -0.805164 -0.257316
+vn 0.315706 -0.946117 -0.072058
+vn 0.578184 -0.805163 -0.131967
+vn 0.323827 -0.946116 0.000000
+vn 0.593054 -0.805163 0.000000
+vn 0.315710 -0.946116 0.072059
+vn 0.578184 -0.805163 0.131967
+vn 0.291758 -0.946116 0.140504
+vn 0.534323 -0.805163 0.257316
+vn 0.000000 1.000000 0.000000
+vn 0.000000 0.998395 -0.056639
+vn -0.012603 0.998395 -0.055220
+vn -0.024575 0.998395 -0.051030
+vn -0.035314 0.998395 -0.044283
+vn -0.044282 0.998395 -0.035314
+vn -0.051030 0.998395 -0.024576
+vn -0.055219 0.998395 -0.012605
+vn -0.056639 0.998395 0.000000
+vn -0.055219 0.998395 0.012604
+vn -0.051030 0.998395 0.024576
+vn -0.044282 0.998395 0.035314
+vn -0.035314 0.998395 0.044281
+vn -0.024575 0.998395 0.051030
+vn -0.012603 0.998395 0.055219
+vn 0.000000 0.998395 0.056639
+vn -0.222494 0.015512 0.974811
+vn 0.000000 0.015512 0.999880
+vn -0.222494 0.015512 -0.974811
+vn 0.000000 0.015512 -0.999880
+vn -0.433832 0.015512 -0.900860
+vn -0.623415 0.015512 -0.781738
+vn -0.781737 0.015512 -0.623415
+vn -0.900860 0.015512 -0.433832
+vn -0.974811 0.015512 -0.222494
+vn -0.999880 0.015512 0.000000
+vn -0.974811 0.015512 0.222494
+vn -0.900861 0.015512 0.433831
+vn -0.781738 0.015512 0.623414
+vn -0.623415 0.015512 0.781737
+vn -0.433831 0.015512 0.900861
+vn 0.222494 0.015512 -0.974811
+vn 0.433832 0.015512 -0.900860
+vn 0.623415 0.015512 -0.781738
+vn 0.781737 0.015512 -0.623415
+vn 0.900860 0.015512 -0.433832
+vn 0.974811 0.015512 -0.222494
+vn 0.999880 0.015512 0.000000
+vn 0.974811 0.015512 0.222494
+vn 0.900861 0.015512 0.433831
+vn 0.781738 0.015512 0.623415
+vn 0.623415 0.015512 0.781737
+vn 0.433831 0.015512 0.900861
+vn 0.222494 0.015512 0.974811
+vn 0.012603 0.998395 0.055219
+vn 0.024575 0.998395 0.051030
+vn 0.035314 0.998395 0.044282
+vn 0.044282 0.998395 0.035314
+vn 0.051030 0.998395 0.024575
+vn 0.055219 0.998395 0.012604
+vn 0.056639 0.998395 0.000000
+vn 0.055219 0.998395 -0.012605
+vn 0.051030 0.998395 -0.024576
+vn 0.044282 0.998395 -0.035314
+vn 0.035314 0.998395 -0.044282
+vn 0.024575 0.998395 -0.051030
+vn 0.012603 0.998395 -0.055219
+vn 0.000000 0.169480 -0.985534
+vn -0.219302 0.169481 -0.960824
+vn -0.211496 0.310860 -0.926626
+vn -0.000001 0.310860 -0.950456
+vn -0.427607 0.169481 -0.887935
+vn -0.412387 0.310860 -0.856331
+vn -0.614470 0.169480 -0.770521
+vn -0.592599 0.310860 -0.743096
+vn -0.770521 0.169480 -0.614471
+vn -0.743096 0.310860 -0.592600
+vn -0.887935 0.169480 -0.427607
+vn -0.856331 0.310860 -0.412387
+vn -0.960824 0.169480 -0.219302
+vn -0.926626 0.310859 -0.211496
+vn -0.985533 0.169481 0.000000
+vn -0.950456 0.310859 0.000000
+vn -0.960824 0.169481 0.219302
+vn -0.926626 0.310860 0.211497
+vn -0.887935 0.169481 0.427607
+vn -0.856331 0.310860 0.412387
+vn -0.770521 0.169480 0.614470
+vn -0.743096 0.310860 0.592599
+vn -0.614471 0.169480 0.770521
+vn -0.592599 0.310860 0.743096
+vn -0.427607 0.169480 0.887935
+vn -0.412387 0.310860 0.856331
+vn -0.219302 0.169480 0.960824
+vn -0.211496 0.310860 0.926626
+vn 0.000000 0.169480 0.985534
+vn 0.000000 0.310860 0.950456
+vn -0.198254 0.454112 -0.868607
+vn 0.000000 0.454112 -0.890945
+vn -0.386567 0.454112 -0.802713
+vn -0.555495 0.454112 -0.696568
+vn -0.696569 0.454112 -0.555495
+vn -0.802713 0.454112 -0.386567
+vn -0.868607 0.454112 -0.198254
+vn -0.890945 0.454112 0.000000
+vn -0.868607 0.454112 0.198254
+vn -0.802713 0.454112 0.386567
+vn -0.696569 0.454112 0.555495
+vn -0.555495 0.454112 0.696569
+vn -0.386566 0.454112 0.802713
+vn -0.198254 0.454112 0.868607
+vn 0.000000 0.454112 0.890945
+vn -0.180644 0.583925 -0.791454
+vn 0.000000 0.583925 -0.811808
+vn -0.352230 0.583925 -0.731413
+vn -0.506154 0.583925 -0.634697
+vn -0.634697 0.583925 -0.506154
+vn -0.731414 0.583925 -0.352230
+vn -0.791454 0.583925 -0.180644
+vn -0.811808 0.583925 0.000000
+vn -0.791454 0.583925 0.180644
+vn -0.731413 0.583925 0.352231
+vn -0.634697 0.583925 0.506153
+vn -0.506154 0.583925 0.634696
+vn -0.352230 0.583925 0.731414
+vn -0.180644 0.583925 0.791454
+vn 0.000000 0.583925 0.811808
+vn -0.159601 0.696823 -0.699260
+vn 0.000000 0.696823 -0.717243
+vn -0.311200 0.696823 -0.646213
+vn -0.447193 0.696823 -0.560763
+vn -0.560762 0.696824 -0.447194
+vn -0.646213 0.696824 -0.311200
+vn -0.699260 0.696824 -0.159601
+vn -0.717243 0.696823 -0.000001
+vn -0.699260 0.696823 0.159601
+vn -0.646213 0.696823 0.311201
+vn -0.560763 0.696824 0.447193
+vn -0.447194 0.696824 0.560762
+vn -0.311200 0.696824 0.646213
+vn -0.159601 0.696823 0.699260
+vn 0.000000 0.696824 0.717243
+vn -0.136308 0.790421 -0.597205
+vn 0.000000 0.790421 -0.612564
+vn -0.265781 0.790422 -0.551901
+vn -0.381927 0.790422 -0.478921
+vn -0.478921 0.790422 -0.381927
+vn -0.551900 0.790422 -0.265781
+vn -0.597205 0.790422 -0.136308
+vn -0.612563 0.790422 0.000000
+vn -0.597205 0.790422 0.136308
+vn -0.551900 0.790421 0.265782
+vn -0.478921 0.790421 0.381927
+vn -0.381927 0.790422 0.478921
+vn -0.265781 0.790422 0.551900
+vn -0.136308 0.790421 0.597206
+vn 0.000000 0.790422 0.612563
+vn -0.112059 0.863943 -0.490964
+vn 0.000000 0.863942 -0.503591
+vn -0.218499 0.863943 -0.453718
+vn -0.313983 0.863943 -0.393722
+vn -0.393723 0.863943 -0.313983
+vn -0.453719 0.863943 -0.218500
+vn -0.490964 0.863943 -0.112059
+vn -0.503590 0.863943 0.000001
+vn -0.490964 0.863943 0.112060
+vn -0.453719 0.863943 0.218500
+vn -0.393722 0.863943 0.313983
+vn -0.313983 0.863943 0.393723
+vn -0.218500 0.863943 0.453719
+vn -0.112059 0.863943 0.490964
+vn 0.000000 0.863943 0.503590
+vn -0.088047 0.918388 -0.385761
+vn 0.000000 0.918388 -0.395681
+vn -0.171679 0.918388 -0.356496
+vn -0.246703 0.918388 -0.309356
+vn -0.309356 0.918388 -0.246703
+vn -0.356496 0.918388 -0.171680
+vn -0.356496 0.918388 0.171679
+vn -0.309355 0.918388 0.246704
+vn -0.246703 0.918388 0.309356
+vn -0.171679 0.918388 0.356496
+vn -0.088047 0.918388 0.385760
+vn 0.000000 0.918388 0.395680
+vn -0.065167 0.956156 -0.285516
+vn 0.000000 0.956156 -0.292859
+vn -0.127067 0.956156 -0.263856
+vn -0.182594 0.956156 -0.228967
+vn -0.228966 0.956155 -0.182596
+vn -0.263857 0.956156 -0.127067
+vn -0.263857 0.956156 0.127065
+vn -0.228966 0.956156 0.182595
+vn -0.182594 0.956156 0.228967
+vn -0.127067 0.956156 0.263857
+vn -0.065167 0.956156 0.285516
+vn 0.000000 0.956156 0.292859
+vn -0.043999 0.980256 -0.192773
+vn 0.000000 0.980256 -0.197731
+vn -0.085793 0.980256 -0.178150
+vn -0.123284 0.980256 -0.154593
+vn -0.154593 0.980256 -0.123284
+vn -0.178150 0.980256 -0.085792
+vn -0.192774 0.980256 -0.044000
+vn -0.197732 0.980256 0.000000
+vn -0.192774 0.980256 0.044000
+vn -0.178150 0.980256 0.085793
+vn -0.154593 0.980256 0.123284
+vn -0.123284 0.980256 0.154595
+vn -0.085792 0.980256 0.178152
+vn -0.043999 0.980256 0.192775
+vn 0.000000 0.980256 0.197732
+vn -0.025567 0.993377 -0.112018
+vn 0.000000 0.993377 -0.114899
+vn -0.049853 0.993377 -0.103521
+vn -0.071638 0.993377 -0.089830
+vn -0.089831 0.993378 -0.071635
+vn -0.103520 0.993377 -0.049855
+vn -0.112018 0.993377 -0.025569
+vn -0.114899 0.993377 0.000000
+vn -0.112018 0.993377 0.025570
+vn -0.103520 0.993377 0.049855
+vn -0.089831 0.993377 0.071638
+vn -0.071638 0.993377 0.089834
+vn -0.049853 0.993377 0.103522
+vn -0.025567 0.993377 0.112019
+vn 0.000000 0.993377 0.114900
+vn 0.000000 1.000000 -0.000001
+vn 0.211496 0.310861 -0.926626
+vn 0.219302 0.169480 -0.960824
+vn 0.412388 0.310861 -0.856331
+vn 0.427607 0.169480 -0.887935
+vn 0.592599 0.310860 -0.743096
+vn 0.614470 0.169480 -0.770521
+vn 0.743096 0.310860 -0.592600
+vn 0.770521 0.169480 -0.614471
+vn 0.856331 0.310860 -0.412387
+vn 0.887935 0.169481 -0.427607
+vn 0.926626 0.310860 -0.211497
+vn 0.960824 0.169480 -0.219302
+vn 0.950456 0.310860 -0.000001
+vn 0.985534 0.169480 0.000000
+vn 0.926625 0.310861 0.211497
+vn 0.960824 0.169481 0.219302
+vn 0.856331 0.310860 0.412388
+vn 0.887935 0.169481 0.427607
+vn 0.743096 0.310860 0.592599
+vn 0.770521 0.169480 0.614470
+vn 0.592600 0.310860 0.743096
+vn 0.614471 0.169480 0.770521
+vn 0.412388 0.310860 0.856331
+vn 0.427607 0.169481 0.887935
+vn 0.211497 0.310860 0.926626
+vn 0.219302 0.169480 0.960824
+vn 0.198254 0.454112 -0.868607
+vn 0.386567 0.454112 -0.802713
+vn 0.555495 0.454112 -0.696569
+vn 0.696568 0.454111 -0.555496
+vn 0.802713 0.454112 -0.386567
+vn 0.868607 0.454112 -0.198254
+vn 0.890945 0.454112 0.000000
+vn 0.868607 0.454112 0.198255
+vn 0.802713 0.454112 0.386567
+vn 0.696569 0.454112 0.555495
+vn 0.555495 0.454112 0.696569
+vn 0.386566 0.454112 0.802714
+vn 0.198254 0.454112 0.868607
+vn 0.180644 0.583925 -0.791454
+vn 0.352230 0.583925 -0.731414
+vn 0.506154 0.583925 -0.634697
+vn 0.634697 0.583924 -0.506154
+vn 0.731413 0.583925 -0.352231
+vn 0.791454 0.583925 -0.180644
+vn 0.811808 0.583925 0.000000
+vn 0.791454 0.583925 0.180645
+vn 0.731414 0.583925 0.352230
+vn 0.634697 0.583925 0.506154
+vn 0.506154 0.583925 0.634697
+vn 0.352230 0.583925 0.731414
+vn 0.180644 0.583925 0.791454
+vn 0.159601 0.696824 -0.699260
+vn 0.311200 0.696824 -0.646213
+vn 0.447194 0.696824 -0.560762
+vn 0.560763 0.696824 -0.447193
+vn 0.646213 0.696824 -0.311200
+vn 0.699260 0.696824 -0.159601
+vn 0.717242 0.696824 0.000000
+vn 0.699260 0.696824 0.159602
+vn 0.646213 0.696824 0.311199
+vn 0.560763 0.696824 0.447193
+vn 0.447193 0.696824 0.560762
+vn 0.311200 0.696824 0.646213
+vn 0.159601 0.696823 0.699260
+vn 0.136308 0.790421 -0.597206
+vn 0.265781 0.790422 -0.551900
+vn 0.381927 0.790422 -0.478921
+vn 0.478921 0.790422 -0.381927
+vn 0.551900 0.790422 -0.265781
+vn 0.597205 0.790422 -0.136308
+vn 0.612563 0.790422 0.000000
+vn 0.597205 0.790422 0.136308
+vn 0.551900 0.790422 0.265781
+vn 0.478921 0.790422 0.381926
+vn 0.381927 0.790422 0.478921
+vn 0.265781 0.790421 0.551901
+vn 0.136308 0.790422 0.597205
+vn 0.112059 0.863942 -0.490965
+vn 0.218500 0.863943 -0.453719
+vn 0.313983 0.863943 -0.393722
+vn 0.393723 0.863943 -0.313983
+vn 0.453719 0.863943 -0.218500
+vn 0.490964 0.863943 -0.112060
+vn 0.503590 0.863943 0.000000
+vn 0.490964 0.863943 0.112060
+vn 0.453719 0.863943 0.218500
+vn 0.393723 0.863943 0.313984
+vn 0.313983 0.863943 0.393723
+vn 0.218499 0.863943 0.453719
+vn 0.112059 0.863943 0.490964
+vn 0.088047 0.918388 -0.385761
+vn 0.171679 0.918388 -0.356497
+vn 0.246703 0.918388 -0.309355
+vn 0.309355 0.918388 -0.246703
+vn 0.356496 0.918388 -0.171680
+vn 0.356496 0.918388 0.171679
+vn 0.309356 0.918388 0.246703
+vn 0.246703 0.918388 0.309356
+vn 0.171679 0.918388 0.356496
+vn 0.088047 0.918388 0.385760
+vn 0.065167 0.956156 -0.285517
+vn 0.127067 0.956156 -0.263857
+vn 0.182594 0.956156 -0.228966
+vn 0.228966 0.956156 -0.182595
+vn 0.263857 0.956156 -0.127067
+vn 0.263857 0.956156 0.127066
+vn 0.228966 0.956156 0.182594
+vn 0.182595 0.956156 0.228965
+vn 0.127067 0.956156 0.263854
+vn 0.065167 0.956156 0.285515
+vn 0.043999 0.980256 -0.192774
+vn 0.085793 0.980256 -0.178151
+vn 0.123284 0.980256 -0.154592
+vn 0.154593 0.980256 -0.123283
+vn 0.178150 0.980256 -0.085793
+vn 0.192774 0.980256 -0.043999
+vn 0.197732 0.980256 -0.000001
+vn 0.192774 0.980256 0.043999
+vn 0.178150 0.980256 0.085793
+vn 0.154593 0.980256 0.123284
+vn 0.123284 0.980256 0.154593
+vn 0.085793 0.980256 0.178149
+vn 0.043999 0.980256 0.192773
+vn 0.025567 0.993377 -0.112018
+vn 0.049853 0.993377 -0.103521
+vn 0.071638 0.993377 -0.089830
+vn 0.089831 0.993377 -0.071637
+vn 0.103520 0.993377 -0.049855
+vn 0.112018 0.993377 -0.025566
+vn 0.114899 0.993377 0.000000
+vn 0.112018 0.993377 0.025569
+vn 0.103520 0.993377 0.049857
+vn 0.089831 0.993377 0.071640
+vn 0.071638 0.993377 0.089833
+vn 0.049853 0.993377 0.103520
+vn 0.025567 0.993377 0.112017
+vn -0.219660 -0.159819 -0.962397
+vn -0.000001 -0.159820 -0.987146
+vn 0.000000 -0.998264 -0.058901
+vn -0.013107 -0.998264 -0.057424
+vn -0.428306 -0.159820 -0.889388
+vn -0.615476 -0.159821 -0.771782
+vn -0.771782 -0.159821 -0.615476
+vn -0.889388 -0.159820 -0.428307
+vn -0.962396 -0.159820 -0.219661
+vn -0.987146 -0.159819 0.000000
+vn -0.962397 -0.159819 0.219660
+vn -0.889388 -0.159820 0.428306
+vn -0.771782 -0.159820 0.615475
+vn -0.615476 -0.159820 0.771781
+vn -0.428307 -0.159820 0.889388
+vn -0.219661 -0.159821 0.962396
+vn 0.000001 -0.159820 0.987146
+vn 0.000000 -1.000000 0.000000
+vn -0.025556 -0.998264 -0.053067
+vn -0.036724 -0.998264 -0.046051
+vn -0.046050 -0.998264 -0.036724
+vn -0.053067 -0.998264 -0.025555
+vn -0.057424 -0.998264 -0.013107
+vn -0.058900 -0.998264 0.000000
+vn -0.057424 -0.998264 0.013107
+vn -0.053067 -0.998264 0.025556
+vn -0.046050 -0.998264 0.036725
+vn -0.036724 -0.998264 0.046051
+vn -0.025556 -0.998264 0.053067
+vn -0.013107 -0.998264 0.057424
+vn 0.000000 -0.998264 0.058900
+vn 0.219661 -0.159822 -0.962396
+vn 0.428307 -0.159821 -0.889388
+vn 0.615476 -0.159821 -0.771782
+vn 0.771782 -0.159821 -0.615475
+vn 0.889388 -0.159821 -0.428306
+vn 0.962396 -0.159820 -0.219661
+vn 0.987146 -0.159820 0.000000
+vn 0.962396 -0.159820 0.219661
+vn 0.889387 -0.159821 0.428308
+vn 0.771782 -0.159821 0.615475
+vn 0.615476 -0.159820 0.771781
+vn 0.428306 -0.159820 0.889388
+vn 0.219660 -0.159820 0.962397
+vn 0.013107 -0.998264 0.057424
+vn 0.013107 -0.998264 -0.057424
+vn 0.025556 -0.998264 -0.053067
+vn 0.036724 -0.998264 -0.046050
+vn 0.046050 -0.998264 -0.036724
+vn 0.053067 -0.998264 -0.025556
+vn 0.057424 -0.998264 -0.013107
+vn 0.058900 -0.998264 0.000000
+vn 0.057424 -0.998264 0.013106
+vn 0.053067 -0.998264 0.025556
+vn 0.046050 -0.998264 0.036724
+vn 0.036724 -0.998264 0.046050
+vn 0.025556 -0.998264 0.053067
+vn -0.036912 -0.999319 -0.000002
+vn -0.034527 -0.999373 0.007881
+vn -0.035182 -0.999237 0.016944
+vn -0.024746 -0.999499 0.019734
+vn -0.019694 -0.999501 0.024697
+vn -0.010578 -0.999703 0.021965
+vn -0.004293 -0.999814 0.018813
+vn 0.000000 -0.999814 0.019289
+vn 0.004293 -0.999814 0.018813
+vn 0.010578 -0.999703 0.021965
+vn 0.019694 -0.999501 0.024697
+vn 0.024746 -0.999499 0.019734
+vn 0.035182 -0.999237 0.016944
+vn 0.034527 -0.999373 0.007881
+vn 0.036912 -0.999319 -0.000001
+vn 0.034527 -0.999373 -0.007881
+vn 0.035182 -0.999237 -0.016943
+vn 0.024746 -0.999499 -0.019735
+vn 0.019695 -0.999501 -0.024697
+vn 0.010578 -0.999703 -0.021965
+vn 0.004294 -0.999814 -0.018813
+vn 0.000000 -0.999814 -0.019289
+vn -0.004294 -0.999814 -0.018813
+vn -0.010578 -0.999703 -0.021965
+vn -0.019695 -0.999501 -0.024697
+vn -0.024746 -0.999499 -0.019735
+vn -0.035182 -0.999237 -0.016943
+vn -0.034527 -0.999373 -0.007881
+vn -0.000001 -1.000000 -0.000002
+vn 0.000001 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+vn 0.000002 -1.000000 0.000000
+vn 0.000003 -1.000000 0.000000
+vn 0.000000 -1.000000 0.000000
+vn 0.000002 -1.000000 0.000000
+vn 0.000000 -1.000000 -0.000001
+vn 0.000000 -1.000000 -0.000001
+vn -0.000001 -1.000000 -0.000001
+vn -0.000001 -1.000000 -0.000001
+vn 0.000001 -1.000000 -0.000002
+vn -0.000001 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+vn 0.000000 -1.000000 0.000001
+vn -0.000002 -1.000000 0.000000
+vn -0.000003 -1.000000 0.000000
+vn -0.000002 -1.000000 0.000000
+vn 0.000000 -1.000000 -0.000001
+vn 0.000000 -1.000000 -0.000001
+vn 0.000001 -1.000000 -0.000001
+vn 0.000001 -1.000000 0.000000
+vn -0.020734 0.046316 -0.998712
+vn -0.614803 0.388649 -0.686272
+vn 0.604569 -0.314879 -0.731674
+vn 0.879862 -0.475229 0.000000
+vn 0.604569 -0.314878 0.731675
+vn -0.020736 0.046317 0.998712
+vn -0.614803 0.388649 0.686272
+vn -0.851492 0.524367 0.000000
+vn 0.499517 -0.043951 0.865189
+vn 0.865193 -0.043951 0.499509
+vn 0.000000 -0.043951 0.999034
+vn -0.499517 -0.043951 0.865189
+vn -0.865193 -0.043950 0.499509
+vn -0.999034 -0.043950 0.000000
+vn 0.999034 -0.043950 0.000000
+vn -0.865189 -0.043950 -0.499517
+vn -0.499517 -0.043951 -0.865189
+vn 0.000000 -0.043951 -0.999034
+vn 0.499517 -0.043951 -0.865189
+vn 0.865189 -0.043950 -0.499517
+vn -0.499985 0.007713 -0.866000
+vn -0.499985 -0.007713 -0.866000
+vn -0.866000 -0.007713 -0.499985
+vn -0.866000 0.007713 -0.499985
+vn 0.000000 0.007713 -0.999970
+vn 0.000000 -0.007713 -0.999970
+vn 0.499985 0.007713 -0.866000
+vn 0.499985 -0.007713 -0.866000
+vn 0.866000 0.007713 -0.499985
+vn 0.866000 -0.007713 -0.499985
+vn 0.999970 0.007713 0.000000
+vn 0.999970 -0.007713 0.000000
+vn 0.866000 0.007713 0.499985
+vn 0.866000 -0.007713 0.499985
+vn 0.499985 0.007713 0.866000
+vn 0.499985 -0.007713 0.866000
+vn 0.000000 0.007713 0.999970
+vn 0.000000 -0.007713 0.999970
+vn -0.499985 0.007713 0.866000
+vn -0.499985 -0.007713 0.866000
+vn -0.866000 0.007713 0.499985
+vn -0.866000 -0.007713 0.499985
+vn -0.999970 0.007713 0.000000
+vn -0.999970 -0.007713 0.000000
+vn 0.000000 -0.013768 0.999905
+vn 0.499953 -0.013768 0.865943
+vn -0.499953 -0.013768 0.865943
+vn -0.865948 -0.013768 0.499945
+vn -0.999905 -0.013768 0.000000
+vn -0.865943 -0.013768 -0.499953
+vn -0.499953 -0.013768 -0.865943
+vn 0.000000 -0.013768 -0.999905
+vn 0.499953 -0.013768 -0.865943
+vn 0.865943 -0.013768 -0.499953
+vn 0.999905 -0.013768 0.000000
+vn 0.865948 -0.013768 0.499945
+vn -0.001996 0.008585 -0.999961
+vn 0.609220 0.361371 -0.705876
+vn 0.614802 0.388648 -0.686273
+vn 0.020735 0.046316 -0.998712
+vn -0.615214 -0.345341 -0.708697
+vn -0.604568 -0.314878 -0.731675
+vn -0.870284 -0.492551 0.000000
+vn -0.879863 -0.475228 0.000000
+vn -0.615213 -0.345341 0.708697
+vn -0.604568 -0.314878 0.731676
+vn 0.020736 0.046317 0.998712
+vn -0.001995 0.008586 0.999961
+vn 0.609221 0.361371 0.705876
+vn 0.614803 0.388649 0.686272
+vn 0.861840 0.507181 0.000000
+vn 0.851492 0.524367 0.000000
+vn -0.865193 -0.043950 0.499509
+vn -0.499517 -0.043951 0.865189
+vn 0.000000 -0.043951 0.999034
+vn 0.499517 -0.043951 0.865189
+vn 0.865193 -0.043950 0.499509
+vn 0.999034 -0.043950 0.000000
+vn -0.999034 -0.043950 0.000000
+vn 0.865189 -0.043950 -0.499517
+vn 0.499517 -0.043951 -0.865189
+vn 0.000000 -0.043951 -0.999034
+vn -0.499517 -0.043951 -0.865189
+vn -0.865189 -0.043950 -0.499517
+vn 0.000000 -0.013768 0.999905
+vn -0.499953 -0.013768 0.865943
+vn 0.499953 -0.013768 0.865943
+vn 0.865948 -0.013768 0.499945
+vn 0.999905 -0.013768 0.000000
+vn 0.865943 -0.013768 -0.499953
+vn 0.499953 -0.013768 -0.865943
+vn 0.000000 -0.013768 -0.999905
+vn -0.499953 -0.013768 -0.865943
+vn -0.865943 -0.013768 -0.499953
+vn -0.999905 -0.013768 0.000000
+vn -0.865948 -0.013768 0.499945
+vn -0.768903 0.058373 -0.636696
+vn -0.217514 0.376642 -0.900460
+vn 0.333953 0.694994 -0.636757
+vn 0.562362 0.826891 0.000002
+vn 0.333954 0.694992 0.636759
+vn -0.217515 0.376641 0.900460
+vn -0.768903 0.058373 0.636695
+vn -0.997294 -0.073511 -0.000000
+vn -0.775054 0.444809 -0.448817
+vn -0.386276 0.669201 -0.634792
+vn 0.002361 0.893545 -0.448967
+vn 0.163221 0.986590 -0.000000
+vn 0.002361 0.893546 0.448966
+vn -0.386276 0.669201 0.634792
+vn -0.775053 0.444810 0.448817
+vn -0.936026 0.351932 -0.000000
+vn -0.500086 0.865976 0.000000
+vn 0.499985 0.007713 -0.866000
+vn 0.866000 0.007713 -0.499985
+vn 0.866000 -0.007713 -0.499985
+vn 0.499985 -0.007713 -0.866000
+vn 0.000000 0.007713 -0.999970
+vn 0.000000 -0.007713 -0.999970
+vn -0.499985 0.007713 -0.866000
+vn -0.499985 -0.007713 -0.866000
+vn -0.866000 0.007713 -0.499985
+vn -0.866000 -0.007713 -0.499985
+vn -0.999970 0.007713 0.000000
+vn -0.999970 -0.007713 0.000000
+vn -0.866000 0.007713 0.499985
+vn -0.866000 -0.007713 0.499985
+vn -0.499985 0.007713 0.866000
+vn -0.499985 -0.007713 0.866000
+vn 0.000000 0.007713 0.999970
+vn 0.000000 -0.007713 0.999970
+vn 0.499985 0.007713 0.866000
+vn 0.499985 -0.007713 0.866000
+vn 0.866000 0.007713 0.499985
+vn 0.866000 -0.007713 0.499985
+vn 0.999970 0.007713 0.000000
+vn 0.999970 -0.007713 0.000000
+vn -0.289759 -0.942366 -0.167292
+vn -0.468078 -0.841351 -0.270244
+vn -0.270243 -0.841351 -0.468077
+vn -0.167291 -0.942366 -0.289760
+vn 0.000000 -0.841351 -0.540489
+vn 0.000000 -0.942365 -0.334586
+vn 0.270246 -0.841352 -0.468075
+vn 0.167296 -0.942365 -0.289759
+vn 0.468075 -0.841353 -0.270244
+vn 0.289761 -0.942365 -0.167293
+vn 0.540486 -0.841353 0.000000
+vn 0.334585 -0.942366 0.000000
+vn 0.468075 -0.841353 0.270244
+vn 0.289760 -0.942365 0.167294
+vn 0.270246 -0.841352 0.468075
+vn 0.167296 -0.942365 0.289759
+vn 0.000000 -0.841351 0.540489
+vn 0.000000 -0.942365 0.334587
+vn -0.270243 -0.841351 0.468078
+vn -0.167291 -0.942365 0.289760
+vn -0.468077 -0.841351 0.270245
+vn -0.289759 -0.942366 0.167293
+vn -0.540491 -0.841350 -0.000000
+vn -0.334583 -0.942366 0.000000
+vn -0.631864 -0.683860 -0.364805
+vn -0.364803 -0.683861 -0.631865
+vn 0.000000 -0.683861 -0.729612
+vn 0.364808 -0.683861 -0.631862
+vn 0.631860 -0.683863 -0.364806
+vn 0.729609 -0.683865 0.000000
+vn 0.631860 -0.683864 0.364806
+vn 0.364807 -0.683863 0.631860
+vn 0.000000 -0.683864 0.729610
+vn -0.364802 -0.683863 0.631863
+vn -0.631864 -0.683861 0.364804
+vn -0.729613 -0.683860 -0.000000
+vn -0.758869 -0.481825 -0.438135
+vn -0.438134 -0.481821 -0.758872
+vn -0.000000 -0.481821 -0.876270
+vn 0.438134 -0.481822 -0.758872
+vn 0.758870 -0.481823 -0.438136
+vn 0.876268 -0.481824 0.000000
+vn 0.758870 -0.481823 0.438136
+vn 0.438134 -0.481822 0.758872
+vn -0.000000 -0.481822 0.876269
+vn -0.438134 -0.481821 0.758872
+vn -0.758870 -0.481825 0.438135
+vn -0.876266 -0.481828 -0.000000
+vn -0.838785 -0.248836 -0.484273
+vn -0.484270 -0.248841 -0.838785
+vn 0.000002 -0.248841 -0.968544
+vn 0.484273 -0.248839 -0.838784
+vn 0.838784 -0.248838 -0.484274
+vn 0.968546 -0.248836 0.000000
+vn 0.838785 -0.248844 0.484270
+vn 0.484275 -0.248853 0.838779
+vn 0.000002 -0.248857 0.968540
+vn -0.484271 -0.248855 0.838781
+vn -0.838786 -0.248843 0.484269
+vn -0.968547 -0.248833 0.000000
+vn 0.000001 -1.000000 0.000000
+vn -0.289764 -0.942364 -0.167296
+vn -0.468092 -0.841342 -0.270247
+vn -0.270246 -0.841346 -0.468085
+vn -0.167290 -0.942363 -0.289770
+vn 0.000000 -0.841347 -0.540496
+vn -0.000000 -0.942361 -0.334597
+vn 0.270251 -0.841346 -0.468082
+vn 0.167306 -0.942360 -0.289769
+vn 0.468085 -0.841348 -0.270242
+vn 0.289775 -0.942361 -0.167291
+vn 0.540496 -0.841347 -0.000000
+vn 0.334596 -0.942362 -0.000000
+vn 0.468085 -0.841348 0.270243
+vn 0.289774 -0.942361 0.167291
+vn 0.270251 -0.841346 0.468083
+vn 0.167306 -0.942360 0.289769
+vn 0.000000 -0.841347 0.540496
+vn -0.000000 -0.942361 0.334597
+vn -0.270246 -0.841346 0.468085
+vn -0.167291 -0.942363 0.289770
+vn -0.468092 -0.841342 0.270247
+vn -0.289764 -0.942364 0.167296
+vn -0.540505 -0.841341 -0.000000
+vn -0.334592 -0.942363 -0.000000
+vn -0.631879 -0.683841 -0.364817
+vn -0.364817 -0.683841 -0.631878
+vn 0.000000 -0.683847 -0.729626
+vn 0.364815 -0.683845 -0.631875
+vn 0.631876 -0.683847 -0.364810
+vn 0.729620 -0.683852 0.000000
+vn 0.631876 -0.683847 0.364810
+vn 0.364815 -0.683845 0.631875
+vn 0.000000 -0.683847 0.729626
+vn -0.364817 -0.683841 0.631878
+vn -0.631879 -0.683841 0.364816
+vn -0.729628 -0.683844 -0.000000
+vn -0.758871 -0.481814 -0.438144
+vn -0.438132 -0.481807 -0.758883
+vn 0.000000 -0.481808 -0.876277
+vn 0.438141 -0.481808 -0.758876
+vn 0.758876 -0.481807 -0.438144
+vn 0.876278 -0.481806 -0.000000
+vn 0.758876 -0.481807 0.438144
+vn 0.438141 -0.481808 0.758876
+vn 0.000000 -0.481808 0.876277
+vn -0.438132 -0.481807 0.758883
+vn -0.758871 -0.481814 0.438144
+vn -0.876269 -0.481823 0.000000
+vn -0.838782 -0.248835 -0.484278
+vn -0.484267 -0.248839 -0.838788
+vn 0.000000 -0.248833 -0.968546
+vn 0.484281 -0.248830 -0.838782
+vn 0.838790 -0.248820 -0.484273
+vn 0.968552 -0.248812 -0.000000
+vn 0.838790 -0.248820 0.484273
+vn 0.484281 -0.248830 0.838782
+vn -0.000000 -0.248833 0.968547
+vn -0.484267 -0.248839 0.838788
+vn -0.838782 -0.248835 0.484279
+vn -0.968548 -0.248826 0.000000
+vn 0.000000 -1.000000 0.000000
+vn -0.289764 0.942364 -0.167296
+vn -0.167290 0.942363 -0.289769
+vn -0.270246 0.841346 -0.468086
+vn -0.468092 0.841342 -0.270247
+vn -0.000000 0.942361 -0.334598
+vn 0.000000 0.841346 -0.540497
+vn 0.167306 0.942361 -0.289767
+vn 0.270251 0.841346 -0.468082
+vn 0.289775 0.942361 -0.167291
+vn 0.468085 0.841347 -0.270243
+vn 0.334596 0.942362 -0.000000
+vn 0.540495 0.841347 -0.000000
+vn 0.289774 0.942361 0.167290
+vn 0.468085 0.841347 0.270243
+vn 0.167306 0.942361 0.289767
+vn 0.270251 0.841346 0.468082
+vn 0.000000 0.942361 0.334598
+vn 0.000000 0.841346 0.540496
+vn -0.167291 0.942363 0.289768
+vn -0.270246 0.841346 0.468085
+vn -0.289763 0.942364 0.167296
+vn -0.468091 0.841342 0.270247
+vn -0.334592 0.942363 -0.000000
+vn -0.540505 0.841341 -0.000000
+vn -0.364806 0.683864 -0.631860
+vn -0.631860 0.683864 -0.364805
+vn 0.000000 0.683869 -0.729605
+vn 0.364804 0.683868 -0.631857
+vn 0.631858 0.683869 -0.364800
+vn 0.729600 0.683875 -0.000000
+vn 0.631858 0.683869 0.364800
+vn 0.364804 0.683868 0.631857
+vn 0.000000 0.683869 0.729604
+vn -0.364806 0.683864 0.631859
+vn -0.631860 0.683864 0.364805
+vn -0.729607 0.683867 0.000000
+vn -0.438124 0.481837 -0.758868
+vn -0.758856 0.481845 -0.438135
+vn 0.000000 0.481839 -0.876260
+vn 0.438133 0.481839 -0.758861
+vn 0.758861 0.481837 -0.438136
+vn 0.876261 0.481836 -0.000000
+vn 0.758861 0.481837 0.438135
+vn 0.438133 0.481839 0.758862
+vn -0.000000 0.481839 0.876260
+vn -0.438124 0.481838 0.758868
+vn -0.758856 0.481845 0.438135
+vn -0.876252 0.481854 0.000000
+vn -0.484268 0.248828 -0.838790
+vn -0.838785 0.248824 -0.484280
+vn -0.000000 0.248822 -0.968549
+vn 0.484282 0.248819 -0.838785
+vn 0.838792 0.248809 -0.484275
+vn 0.968554 0.248801 -0.000000
+vn 0.838792 0.248809 0.484275
+vn 0.484282 0.248819 0.838785
+vn -0.000000 0.248821 0.968549
+vn -0.484268 0.248828 0.838790
+vn -0.838784 0.248824 0.484280
+vn -0.968551 0.248815 0.000000
+vn 0.000000 1.000000 0.000001
+vn 0.289759 -0.942366 -0.167292
+vn 0.167291 -0.942365 -0.289760
+vn 0.270243 -0.841351 -0.468078
+vn 0.468078 -0.841351 -0.270244
+vn -0.000000 -0.942365 -0.334586
+vn -0.000000 -0.841351 -0.540489
+vn -0.167296 -0.942365 -0.289759
+vn -0.270246 -0.841352 -0.468075
+vn -0.289761 -0.942365 -0.167293
+vn -0.468075 -0.841353 -0.270244
+vn -0.334585 -0.942366 0.000000
+vn -0.540486 -0.841353 0.000000
+vn -0.289760 -0.942365 0.167294
+vn -0.468075 -0.841353 0.270244
+vn -0.167296 -0.942365 0.289759
+vn -0.270246 -0.841352 0.468075
+vn -0.000000 -0.942365 0.334587
+vn -0.000000 -0.841351 0.540489
+vn 0.167291 -0.942366 0.289760
+vn 0.270243 -0.841351 0.468078
+vn 0.289759 -0.942366 0.167293
+vn 0.468077 -0.841351 0.270245
+vn 0.334583 -0.942366 -0.000000
+vn 0.540491 -0.841350 -0.000000
+vn 0.364803 -0.683861 -0.631865
+vn 0.631864 -0.683861 -0.364805
+vn -0.000000 -0.683861 -0.729612
+vn -0.364808 -0.683861 -0.631862
+vn -0.631860 -0.683863 -0.364806
+vn -0.729609 -0.683865 -0.000000
+vn -0.631860 -0.683864 0.364806
+vn -0.364807 -0.683863 0.631860
+vn -0.000000 -0.683864 0.729609
+vn 0.364802 -0.683863 0.631863
+vn 0.631864 -0.683861 0.364804
+vn 0.729613 -0.683861 -0.000000
+vn 0.438134 -0.481821 -0.758872
+vn 0.758869 -0.481825 -0.438135
+vn 0.000000 -0.481821 -0.876270
+vn -0.438134 -0.481822 -0.758872
+vn -0.758870 -0.481823 -0.438136
+vn -0.876268 -0.481824 0.000000
+vn -0.758870 -0.481823 0.438136
+vn -0.438134 -0.481822 0.758872
+vn 0.000000 -0.481822 0.876269
+vn 0.438134 -0.481821 0.758872
+vn 0.758870 -0.481825 0.438135
+vn 0.876266 -0.481828 -0.000000
+vn 0.484270 -0.248841 -0.838785
+vn 0.838785 -0.248836 -0.484273
+vn -0.000002 -0.248841 -0.968545
+vn -0.484274 -0.248839 -0.838784
+vn -0.838784 -0.248838 -0.484274
+vn -0.968546 -0.248836 0.000000
+vn -0.838785 -0.248844 0.484270
+vn -0.484275 -0.248853 0.838779
+vn -0.000002 -0.248857 0.968540
+vn 0.484271 -0.248855 0.838781
+vn 0.838786 -0.248843 0.484269
+vn 0.968547 -0.248832 0.000000
+vn -0.000001 -1.000000 0.000000
+vn 0.289764 -0.942364 -0.167297
+vn 0.167290 -0.942363 -0.289770
+vn 0.270246 -0.841346 -0.468085
+vn 0.468091 -0.841342 -0.270247
+vn 0.000000 -0.942361 -0.334597
+vn -0.000000 -0.841347 -0.540496
+vn -0.167306 -0.942360 -0.289769
+vn -0.270251 -0.841346 -0.468082
+vn -0.289775 -0.942361 -0.167291
+vn -0.468085 -0.841347 -0.270243
+vn -0.334596 -0.942362 -0.000000
+vn -0.540496 -0.841347 -0.000000
+vn -0.289774 -0.942361 0.167291
+vn -0.468085 -0.841348 0.270243
+vn -0.167306 -0.942360 0.289769
+vn -0.270251 -0.841346 0.468083
+vn -0.000000 -0.942361 0.334598
+vn -0.000000 -0.841347 0.540496
+vn 0.167291 -0.942363 0.289770
+vn 0.270246 -0.841346 0.468085
+vn 0.289763 -0.942364 0.167296
+vn 0.468091 -0.841342 0.270247
+vn 0.334592 -0.942363 -0.000000
+vn 0.540505 -0.841341 -0.000000
+vn 0.364817 -0.683841 -0.631879
+vn 0.631879 -0.683841 -0.364817
+vn -0.000000 -0.683847 -0.729626
+vn -0.364815 -0.683845 -0.631875
+vn -0.631876 -0.683846 -0.364810
+vn -0.729621 -0.683852 0.000000
+vn -0.631876 -0.683846 0.364810
+vn -0.364815 -0.683845 0.631875
+vn -0.000000 -0.683847 0.729626
+vn 0.364817 -0.683841 0.631878
+vn 0.631879 -0.683841 0.364816
+vn 0.729628 -0.683844 -0.000000
+vn 0.438132 -0.481806 -0.758883
+vn 0.758871 -0.481815 -0.438144
+vn 0.000000 -0.481808 -0.876277
+vn -0.438141 -0.481808 -0.758876
+vn -0.758876 -0.481807 -0.438144
+vn -0.876278 -0.481805 0.000000
+vn -0.758876 -0.481807 0.438144
+vn -0.438142 -0.481808 0.758876
+vn 0.000000 -0.481808 0.876277
+vn 0.438132 -0.481807 0.758883
+vn 0.758871 -0.481814 0.438144
+vn 0.876269 -0.481823 -0.000000
+vn 0.484267 -0.248839 -0.838788
+vn 0.838782 -0.248835 -0.484279
+vn -0.000000 -0.248833 -0.968547
+vn -0.484281 -0.248830 -0.838782
+vn -0.838790 -0.248820 -0.484273
+vn -0.968552 -0.248813 0.000000
+vn -0.838790 -0.248820 0.484274
+vn -0.484281 -0.248830 0.838782
+vn 0.000000 -0.248833 0.968547
+vn 0.484267 -0.248839 0.838788
+vn 0.838782 -0.248835 0.484278
+vn 0.968548 -0.248826 -0.000000
+vn -0.000000 -1.000000 -0.000000
+vn 0.289764 0.942364 -0.167296
+vn 0.468092 0.841342 -0.270247
+vn 0.270246 0.841346 -0.468086
+vn 0.167290 0.942363 -0.289769
+vn -0.000000 0.841346 -0.540497
+vn 0.000000 0.942361 -0.334598
+vn -0.270250 0.841346 -0.468083
+vn -0.167306 0.942361 -0.289767
+vn -0.468085 0.841348 -0.270243
+vn -0.289775 0.942361 -0.167290
+vn -0.540496 0.841347 0.000000
+vn -0.334596 0.942362 -0.000000
+vn -0.468085 0.841347 0.270243
+vn -0.289775 0.942361 0.167291
+vn -0.270251 0.841346 0.468083
+vn -0.167306 0.942361 0.289768
+vn -0.000000 0.841346 0.540497
+vn 0.000000 0.942361 0.334598
+vn 0.270246 0.841346 0.468086
+vn 0.167291 0.942363 0.289768
+vn 0.468092 0.841342 0.270247
+vn 0.289764 0.942364 0.167295
+vn 0.540505 0.841341 -0.000000
+vn 0.334592 0.942363 -0.000000
+vn 0.631860 0.683864 -0.364805
+vn 0.364806 0.683864 -0.631860
+vn -0.000000 0.683869 -0.729605
+vn -0.364804 0.683868 -0.631857
+vn -0.631858 0.683869 -0.364800
+vn -0.729599 0.683875 -0.000000
+vn -0.631858 0.683869 0.364799
+vn -0.364804 0.683868 0.631857
+vn -0.000000 0.683869 0.729605
+vn 0.364806 0.683864 0.631860
+vn 0.631860 0.683864 0.364805
+vn 0.729607 0.683867 -0.000000
+vn 0.758856 0.481845 -0.438135
+vn 0.438124 0.481837 -0.758868
+vn -0.000000 0.481839 -0.876260
+vn -0.438133 0.481839 -0.758861
+vn -0.758861 0.481837 -0.438135
+vn -0.876261 0.481836 0.000000
+vn -0.758861 0.481838 0.438135
+vn -0.438133 0.481839 0.758861
+vn 0.000000 0.481839 0.876260
+vn 0.438124 0.481838 0.758868
+vn 0.758857 0.481845 0.438135
+vn 0.876252 0.481853 -0.000000
+vn 0.838785 0.248824 -0.484280
+vn 0.484268 0.248828 -0.838790
+vn -0.000000 0.248822 -0.968549
+vn -0.484282 0.248819 -0.838785
+vn -0.838792 0.248809 -0.484275
+vn -0.968555 0.248801 0.000000
+vn -0.838792 0.248809 0.484275
+vn -0.484282 0.248819 0.838785
+vn -0.000000 0.248822 0.968549
+vn 0.484268 0.248828 0.838790
+vn 0.838785 0.248824 0.484280
+vn 0.968551 0.248815 0.000000
+vn -0.000000 1.000000 0.000000
+s 1
+g Andy_GEO
+f 1/1/1 2/2/2 10/10/3 9/9/4
+f 2/2/2 3/3/5 11/11/6 10/10/3
+f 3/3/5 4/4/7 12/927/8 11/11/6
+f 4/758/7 5/5/9 13/13/10 12/12/8
+f 5/5/9 6/6/11 14/14/12 13/13/10
+f 6/6/11 7/7/13 15/15/14 14/14/12
+f 7/7/13 8/8/15 16/16/16 15/15/14
+f 8/8/15 1/1/1 9/9/4 16/16/16
+f 9/9/4 10/10/3 18/18/17 17/17/18
+f 10/10/3 11/11/6 19/19/19 18/18/17
+f 11/11/6 12/927/8 20/928/20 19/19/19
+f 12/12/8 13/13/10 21/21/21 20/20/20
+f 13/13/10 14/14/12 22/22/22 21/21/21
+f 14/14/12 15/15/14 23/23/23 22/22/22
+f 15/15/14 16/16/16 24/24/24 23/23/23
+f 16/16/16 9/9/4 17/17/18 24/24/24
+f 17/17/18 18/18/17 25/25/25
+f 18/18/17 19/19/19 25/26/25
+f 19/19/19 20/928/20 25/27/25
+f 20/20/20 21/21/21 25/28/25
+f 21/21/21 22/22/22 25/29/25
+f 22/22/22 23/23/23 25/30/25
+f 23/23/23 24/24/24 25/31/25
+f 24/24/24 17/17/18 25/32/25
+f 32/33/26 26/34/27 33/35/28
+f 34/36/29 27/37/30 26/34/27 32/33/26
+f 35/38/31 29/39/32 28/40/33 36/41/34
+f 37/42/35 29/39/32 35/38/31
+f 38/43/36 30/44/37 29/39/32 37/42/35
+f 33/35/28 26/34/27 30/44/37 38/43/36
+f 39/45/38 31/46/39 27/37/30 34/36/29
+f 36/41/34 28/40/33 31/46/39 39/45/38
+f 46/47/40 47/48/41 40/49/42
+f 48/50/43 46/47/40 40/49/42 41/51/44
+f 49/52/45 50/53/46 42/54/47 43/55/48
+f 51/56/49 49/52/45 43/55/48
+f 52/57/50 51/56/49 43/55/48 44/58/51
+f 47/48/41 52/57/50 44/58/51 40/49/42
+f 53/59/52 48/50/43 41/51/44 45/60/53
+f 50/53/46 53/59/52 45/60/53 42/54/47
+s 6
+f 55/61/54 54/62/55 88/63/56 89/64/57
+f 56/65/58 55/61/54 89/64/57 90/66/59
+f 57/67/60 56/65/58 90/66/59 91/68/61
+f 58/69/62 57/67/60 91/68/61 92/70/63
+f 59/71/64 58/69/62 92/70/63 93/72/65
+f 60/73/66 59/71/64 93/72/65 94/74/67
+f 61/75/68 60/73/66 94/74/67 95/76/69
+f 62/77/70 61/75/68 95/76/69 96/78/71
+f 63/79/72 62/77/70 96/78/71 97/80/73
+f 64/81/74 63/79/72 97/80/73 98/82/75
+f 65/83/76 64/81/74 98/82/75 84/84/77
+f 66/85/78 65/83/76 84/84/77 85/86/79
+f 67/87/80 66/85/78 85/86/79 86/88/81
+f 68/89/82 67/87/80 86/88/81 87/90/83
+f 85/86/79 84/84/77 581/91/84 582/92/85
+f 86/88/81 85/86/79 582/92/85 583/93/86
+f 87/90/83 86/88/81 583/93/86 584/94/87
+f 89/64/57 88/63/56 598/95/88 599/96/89
+f 90/66/59 89/64/57 599/96/89 600/97/90
+f 91/68/61 90/66/59 600/97/90 601/98/91
+f 92/70/63 91/68/61 601/98/91 602/99/92
+f 93/72/65 92/70/63 602/99/92 603/100/93
+f 94/74/67 93/72/65 603/100/93 604/101/94
+f 95/76/69 94/74/67 604/101/94 577/102/95
+f 96/78/71 95/76/69 577/102/95 578/103/96
+f 97/80/73 96/78/71 578/103/96 579/104/97
+f 98/82/75 97/80/73 579/104/97 580/105/98
+f 84/84/77 98/82/75 580/105/98 581/91/84
+f 100/106/99 99/107/100 608/108/101 609/109/102
+f 101/110/103 100/106/99 609/109/102 610/111/104
+f 102/112/105 101/110/103 610/111/104 611/113/106
+f 103/114/107 102/112/105 611/113/106 612/115/108
+f 105/116/109 104/117/110 626/118/111 627/119/112
+f 106/120/113 105/116/109 627/119/112 628/121/114
+f 107/122/115 106/120/113 628/121/114 629/123/116
+f 108/124/117 107/122/115 629/123/116 630/125/118
+f 109/126/119 108/124/117 630/125/118 631/127/120
+f 110/128/121 109/126/119 631/127/120 632/129/122
+f 111/130/123 110/128/121 632/129/122 605/131/124
+f 112/132/125 111/130/123 605/131/124 606/133/126
+f 113/134/127 112/132/125 606/133/126 607/135/128
+f 608/108/101 99/107/100 113/134/127 607/135/128
+f 114/136/129 143/137/130 88/63/56 54/62/55
+f 115/138/131 144/139/132 143/137/130 114/136/129
+f 116/140/133 145/141/134 144/139/132 115/138/131
+f 117/142/135 146/143/136 145/141/134 116/140/133
+f 118/144/137 147/145/138 146/143/136 117/142/135
+f 119/146/139 148/147/140 147/145/138 118/144/137
+f 120/148/141 149/149/142 148/147/140 119/146/139
+f 121/150/143 150/151/144 149/149/142 120/148/141
+f 122/152/145 151/153/146 150/151/144 121/150/143
+f 123/154/147 152/155/148 151/153/146 122/152/145
+f 124/156/149 140/157/150 152/155/148 123/154/147
+f 125/158/151 141/159/152 140/157/150 124/156/149
+f 126/160/153 142/161/154 141/159/152 125/158/151
+f 68/89/82 87/90/83 142/161/154 126/160/153
+f 141/159/152 586/162/155 587/163/156 140/157/150
+f 142/161/154 585/164/157 586/162/155 141/159/152
+f 87/90/83 584/94/87 585/164/157 142/161/154
+f 143/137/130 597/165/158 598/95/88 88/63/56
+f 144/139/132 596/166/159 597/165/158 143/137/130
+f 145/141/134 595/167/160 596/166/159 144/139/132
+f 146/143/136 594/168/161 595/167/160 145/141/134
+f 147/145/138 593/169/162 594/168/161 146/143/136
+f 148/147/140 592/170/163 593/169/162 147/145/138
+f 149/149/142 591/171/164 592/170/163 148/147/140
+f 150/151/144 590/172/165 591/171/164 149/149/142
+f 151/153/146 589/173/166 590/172/165 150/151/144
+f 152/155/148 588/174/167 589/173/166 151/153/146
+f 140/157/150 587/163/156 588/174/167 152/155/148
+f 615/175/168 616/176/169 153/177/170 154/178/171
+f 614/179/172 615/175/168 154/178/171 155/180/173
+f 613/181/174 614/179/172 155/180/173 156/182/175
+f 103/114/107 612/115/108 613/181/174 156/182/175
+f 625/183/176 626/118/111 104/117/110 157/184/177
+f 624/185/178 625/183/176 157/184/177 158/186/179
+f 623/187/180 624/185/178 158/186/179 159/188/181
+f 622/189/182 623/187/180 159/188/181 160/190/183
+f 621/191/184 622/189/182 160/190/183 161/192/185
+f 620/193/186 621/191/184 161/192/185 162/194/187
+f 619/195/188 620/193/186 162/194/187 163/196/189
+f 618/197/190 619/195/188 163/196/189 164/198/191
+f 617/199/192 618/197/190 164/198/191 165/200/193
+f 153/177/170 616/176/169 617/199/192 165/200/193
+f 166/201/194 196/202/195 194/203/196
+f 166/201/194 194/203/196 192/204/197
+f 166/201/194 192/204/197 190/205/198
+f 166/201/194 190/205/198 188/206/199
+f 166/201/194 188/206/199 186/207/200
+f 166/201/194 186/207/200 184/208/201
+f 166/201/194 184/208/201 182/209/202
+f 166/201/194 182/209/202 180/210/203
+f 166/201/194 180/210/203 178/211/204
+f 166/201/194 178/211/204 176/212/205
+f 166/201/194 176/212/205 174/213/206
+f 166/201/194 174/213/206 172/214/207
+f 166/201/194 172/214/207 170/215/208
+f 166/201/194 170/215/208 167/216/209
+f 167/216/209 170/215/208 169/217/210 168/218/211
+f 54/219/55 55/220/54 193/221/212 195/222/213
+f 193/221/212 55/220/54 56/223/58 191/224/214
+f 56/223/58 57/225/60 189/226/215 191/224/214
+f 57/225/60 58/227/62 187/228/216 189/226/215
+f 58/227/62 59/229/64 185/230/217 187/228/216
+f 59/229/64 60/231/66 183/232/218 185/230/217
+f 60/231/66 61/233/68 181/234/219 183/232/218
+f 61/233/68 62/235/70 179/236/220 181/234/219
+f 62/235/70 63/237/72 177/238/221 179/236/220
+f 63/237/72 64/239/74 175/240/222 177/238/221
+f 64/239/74 65/241/76 173/242/223 175/240/222
+f 65/241/76 66/243/78 171/244/224 173/242/223
+f 66/243/78 67/245/80 169/246/210 171/244/224
+f 67/245/80 68/247/82 168/248/211 169/246/210
+f 114/252/129 54/249/55 195/250/213 221/251/225
+f 115/254/131 114/252/129 221/251/225 219/253/226
+f 116/256/133 115/254/131 219/253/226 217/255/227
+f 117/258/135 116/256/133 217/255/227 215/257/228
+f 118/260/137 117/258/135 215/257/228 213/259/229
+f 119/262/139 118/260/137 213/259/229 211/261/230
+f 120/264/141 119/262/139 211/261/230 209/263/231
+f 121/266/143 120/264/141 209/263/231 207/265/232
+f 122/268/145 121/266/143 207/265/232 205/267/233
+f 123/270/147 122/268/145 205/267/233 203/269/234
+f 124/272/149 123/270/147 203/269/234 201/271/235
+f 125/274/151 124/272/149 201/271/235 199/273/236
+f 126/276/153 125/274/151 199/273/236 197/275/237
+f 68/247/82 126/276/153 197/275/237 168/248/211
+f 166/201/194 167/216/209 198/277/238
+f 166/201/194 198/277/238 200/278/239
+f 166/201/194 200/278/239 202/279/240
+f 166/201/194 202/279/240 204/280/241
+f 166/201/194 204/280/241 206/281/242
+f 166/201/194 206/281/242 208/282/243
+f 166/201/194 208/282/243 210/283/244
+f 166/201/194 210/283/244 212/284/245
+f 166/201/194 212/284/245 214/285/246
+f 166/201/194 214/285/246 216/286/247
+f 166/201/194 216/286/247 218/287/248
+f 166/201/194 218/287/248 220/288/249
+f 166/201/194 220/288/249 222/289/250
+f 166/201/194 222/289/250 196/202/195
+f 170/215/208 172/214/207 171/290/224 169/217/210
+f 172/214/207 174/213/206 173/291/223 171/290/224
+f 174/213/206 176/212/205 175/292/222 173/291/223
+f 176/212/205 178/211/204 177/293/221 175/292/222
+f 178/211/204 180/210/203 179/294/220 177/293/221
+f 180/210/203 182/209/202 181/295/219 179/294/220
+f 182/209/202 184/208/201 183/296/218 181/295/219
+f 184/208/201 186/207/200 185/297/217 183/296/218
+f 186/207/200 188/206/199 187/298/216 185/297/217
+f 188/206/199 190/205/198 189/299/215 187/298/216
+f 190/205/198 192/204/197 191/300/214 189/299/215
+f 192/204/197 194/203/196 193/301/212 191/300/214
+f 194/203/196 196/202/195 195/302/213 193/301/212
+f 195/302/213 196/202/195 222/289/250 221/303/225
+f 198/277/238 167/216/209 168/218/211 197/304/237
+f 200/278/239 198/277/238 197/304/237 199/305/236
+f 202/279/240 200/278/239 199/305/236 201/306/235
+f 204/280/241 202/279/240 201/306/235 203/307/234
+f 206/281/242 204/280/241 203/307/234 205/308/233
+f 208/282/243 206/281/242 205/308/233 207/309/232
+f 210/283/244 208/282/243 207/309/232 209/310/231
+f 212/284/245 210/283/244 209/310/231 211/311/230
+f 214/285/246 212/284/245 211/311/230 213/312/229
+f 216/286/247 214/285/246 213/312/229 215/313/228
+f 218/287/248 216/286/247 215/313/228 217/314/227
+f 220/288/249 218/287/248 217/314/227 219/315/226
+f 222/289/250 220/288/249 219/315/226 221/303/225
+s 1
+f 223/316/251 224/317/252 239/318/253 238/319/254
+f 224/317/252 225/320/255 240/321/256 239/318/253
+f 225/320/255 226/322/257 241/323/258 240/321/256
+f 226/322/257 227/324/259 242/325/260 241/323/258
+f 227/324/259 228/326/261 243/327/262 242/325/260
+f 228/326/261 229/328/263 244/329/264 243/327/262
+f 229/328/263 230/330/265 245/331/266 244/329/264
+f 230/330/265 231/332/267 246/333/268 245/331/266
+f 231/332/267 232/334/269 247/335/270 246/333/268
+f 232/334/269 233/336/271 248/337/272 247/335/270
+f 233/336/271 234/338/273 249/339/274 248/337/272
+f 234/338/273 235/340/275 250/341/276 249/339/274
+f 235/340/275 236/342/277 251/343/278 250/341/276
+f 236/342/277 237/344/279 252/345/280 251/343/278
+f 238/319/254 239/318/253 254/346/281 253/347/282
+f 239/318/253 240/321/256 255/348/283 254/346/281
+f 240/321/256 241/323/258 256/349/284 255/348/283
+f 241/323/258 242/325/260 257/350/285 256/349/284
+f 242/325/260 243/327/262 258/351/286 257/350/285
+f 243/327/262 244/329/264 259/352/287 258/351/286
+f 244/329/264 245/331/266 260/353/288 259/352/287
+f 245/331/266 246/333/268 261/354/289 260/353/288
+f 246/333/268 247/335/270 262/355/290 261/354/289
+f 247/335/270 248/337/272 263/356/291 262/355/290
+f 248/337/272 249/339/274 264/357/292 263/356/291
+f 249/339/274 250/341/276 265/358/293 264/357/292
+f 250/341/276 251/343/278 266/359/294 265/358/293
+f 251/343/278 252/345/280 267/360/295 266/359/294
+f 253/347/282 254/346/281 269/361/296 268/362/297
+f 254/346/281 255/348/283 270/363/298 269/361/296
+f 255/348/283 256/349/284 271/364/299 270/363/298
+f 256/349/284 257/350/285 272/365/300 271/364/299
+f 257/350/285 258/351/286 273/366/301 272/365/300
+f 258/351/286 259/352/287 274/367/302 273/366/301
+f 259/352/287 260/353/288 275/368/303 274/367/302
+f 260/353/288 261/354/289 276/369/304 275/368/303
+f 261/354/289 262/355/290 277/370/305 276/369/304
+f 262/355/290 263/356/291 278/371/306 277/370/305
+f 263/356/291 264/357/292 279/372/307 278/371/306
+f 264/357/292 265/358/293 280/373/308 279/372/307
+f 265/358/293 266/359/294 281/374/309 280/373/308
+f 266/359/294 267/360/295 282/375/310 281/374/309
+f 268/362/297 269/361/296 284/376/311 283/377/312
+f 269/361/296 270/363/298 285/378/313 284/376/311
+f 270/363/298 271/364/299 286/379/314 285/378/313
+f 271/364/299 272/365/300 287/380/315 286/379/314
+f 272/365/300 273/366/301 288/381/316 287/380/315
+f 273/366/301 274/367/302 289/382/317 288/381/316
+f 274/367/302 275/368/303 290/383/318 289/382/317
+f 275/368/303 276/369/304 291/384/319 290/383/318
+f 276/369/304 277/370/305 292/385/320 291/384/319
+f 277/370/305 278/371/306 293/386/321 292/385/320
+f 278/371/306 279/372/307 294/387/322 293/386/321
+f 279/372/307 280/373/308 295/388/323 294/387/322
+f 280/373/308 281/374/309 296/389/324 295/388/323
+f 281/374/309 282/375/310 297/390/325 296/389/324
+f 283/377/312 284/376/311 299/391/326 298/392/327
+f 284/376/311 285/378/313 300/393/328 299/391/326
+f 285/378/313 286/379/314 301/394/329 300/393/328
+f 286/379/314 287/380/315 302/395/330 301/394/329
+f 287/380/315 288/381/316 303/396/331 302/395/330
+f 288/381/316 289/382/317 304/397/332 303/396/331
+f 289/382/317 290/383/318 305/398/333 304/397/332
+f 290/383/318 291/384/319 306/399/334 305/398/333
+f 291/384/319 292/385/320 307/400/335 306/399/334
+f 292/385/320 293/386/321 308/401/336 307/400/335
+f 293/386/321 294/387/322 309/402/337 308/401/336
+f 294/387/322 295/388/323 310/403/338 309/402/337
+f 295/388/323 296/389/324 311/404/339 310/403/338
+f 296/389/324 297/390/325 312/405/340 311/404/339
+f 298/392/327 299/391/326 314/406/341 313/407/342
+f 299/391/326 300/393/328 315/408/343 314/406/341
+f 300/393/328 301/394/329 316/409/344 315/408/343
+f 301/394/329 302/395/330 317/410/345 316/409/344
+f 302/395/330 303/396/331 318/411/346 317/410/345
+f 303/396/331 304/397/332 319/412/347 318/411/346
+f 304/397/332 305/398/333 320/413/348 319/412/347
+f 305/398/333 306/399/334 321/414/349 320/413/348
+f 306/399/334 307/400/335 322/415/350 321/414/349
+f 307/400/335 308/401/336 323/416/351 322/415/350
+f 308/401/336 309/402/337 324/417/352 323/416/351
+f 309/402/337 310/403/338 325/418/353 324/417/352
+f 310/403/338 311/404/339 326/419/354 325/418/353
+f 311/404/339 312/405/340 327/420/355 326/419/354
+f 313/407/342 314/406/341 329/421/356 328/422/357
+f 314/406/341 315/408/343 330/423/358 329/421/356
+f 315/408/343 316/409/344 331/424/359 330/423/358
+f 316/409/344 317/410/345 332/425/360 331/424/359
+f 317/410/345 318/411/346 333/426/361 332/425/360
+f 318/411/346 319/412/347 43/55/48 333/426/361
+f 319/412/347 320/413/348 44/58/51 43/55/48
+f 320/413/348 321/414/349 40/49/42 44/58/51
+f 321/414/349 322/415/350 334/427/362 40/49/42
+f 322/415/350 323/416/351 335/428/363 334/427/362
+f 323/416/351 324/417/352 336/429/364 335/428/363
+f 324/417/352 325/418/353 337/430/365 336/429/364
+f 325/418/353 326/419/354 338/431/366 337/430/365
+f 326/419/354 327/420/355 339/432/367 338/431/366
+f 328/422/357 329/421/356 341/433/368 340/434/369
+f 329/421/356 330/423/358 342/435/370 341/433/368
+f 330/423/358 331/424/359 343/436/371 342/435/370
+f 331/424/359 332/425/360 344/437/372 343/436/371
+f 332/425/360 333/426/361 345/438/373 344/437/372
+f 333/426/361 43/55/48 42/54/47 345/438/373
+f 40/49/42 334/427/362 346/439/374 41/51/44
+f 334/427/362 335/428/363 347/440/375 346/439/374
+f 335/428/363 336/429/364 348/441/376 347/440/375
+f 336/429/364 337/430/365 349/442/377 348/441/376
+f 337/430/365 338/431/366 350/443/378 349/442/377
+f 338/431/366 339/432/367 351/444/379 350/443/378
+f 340/434/369 341/433/368 353/445/380 352/446/381
+f 341/433/368 342/435/370 354/447/382 353/445/380
+f 342/435/370 343/436/371 355/448/383 354/447/382
+f 343/436/371 344/437/372 356/449/384 355/448/383
+f 344/437/372 345/438/373 357/450/385 356/449/384
+f 345/438/373 42/54/47 358/451/386 357/450/385
+f 42/54/47 45/60/53 359/452/387 358/451/386
+f 45/60/53 41/51/44 360/453/388 359/452/387
+f 41/51/44 346/439/374 361/454/389 360/453/388
+f 346/439/374 347/440/375 362/455/390 361/454/389
+f 347/440/375 348/441/376 363/456/391 362/455/390
+f 348/441/376 349/442/377 364/457/392 363/456/391
+f 349/442/377 350/443/378 365/458/393 364/457/392
+f 350/443/378 351/444/379 366/459/394 365/458/393
+f 352/446/381 353/445/380 368/460/395 367/461/396
+f 353/445/380 354/447/382 369/462/397 368/460/395
+f 354/447/382 355/448/383 370/463/398 369/462/397
+f 355/448/383 356/449/384 371/464/399 370/463/398
+f 356/449/384 357/450/385 372/465/400 371/464/399
+f 357/450/385 358/451/386 373/466/401 372/465/400
+f 358/451/386 359/452/387 374/467/402 373/466/401
+f 359/452/387 360/453/388 375/468/403 374/467/402
+f 360/453/388 361/454/389 376/469/404 375/468/403
+f 361/454/389 362/455/390 377/470/405 376/469/404
+f 362/455/390 363/456/391 378/471/406 377/470/405
+f 363/456/391 364/457/392 379/472/407 378/471/406
+f 364/457/392 365/458/393 380/473/408 379/472/407
+f 365/458/393 366/459/394 381/474/409 380/473/408
+f 367/461/396 368/460/395 382/475/410
+f 368/460/395 369/462/397 382/475/410
+f 369/462/397 370/463/398 382/475/410
+f 370/463/398 371/464/399 382/475/410
+f 371/464/399 372/465/400 382/475/410
+f 372/465/400 373/466/401 382/475/410
+f 373/466/401 374/467/402 382/475/410
+f 374/467/402 375/468/403 382/475/410
+f 375/468/403 376/469/404 382/475/410
+f 376/469/404 377/470/405 382/475/410
+f 377/470/405 378/471/406 382/475/410
+f 378/471/406 379/472/407 382/475/410
+f 379/472/407 380/473/408 382/475/410
+f 380/473/408 381/474/409 382/475/410
+f 223/316/251 238/319/254 396/476/411 383/477/412
+f 383/477/412 396/476/411 397/478/413 384/479/414
+f 384/479/414 397/478/413 398/480/415 385/481/416
+f 385/481/416 398/480/415 399/482/417 386/483/418
+f 386/483/418 399/482/417 400/484/419 387/485/420
+f 387/485/420 400/484/419 401/486/421 388/487/422
+f 388/487/422 401/486/421 402/488/423 389/489/424
+f 389/489/424 402/488/423 403/490/425 390/491/426
+f 390/491/426 403/490/425 404/492/427 391/493/428
+f 391/493/428 404/492/427 405/494/429 392/495/430
+f 392/495/430 405/494/429 406/496/431 393/497/432
+f 393/497/432 406/496/431 407/498/433 394/499/434
+f 394/499/434 407/498/433 408/500/435 395/501/436
+f 395/501/436 408/500/435 252/345/280 237/344/279
+f 238/319/254 253/347/282 409/502/437 396/476/411
+f 396/476/411 409/502/437 410/503/438 397/478/413
+f 397/478/413 410/503/438 411/504/439 398/480/415
+f 398/480/415 411/504/439 412/505/440 399/482/417
+f 399/482/417 412/505/440 413/506/441 400/484/419
+f 400/484/419 413/506/441 414/507/442 401/486/421
+f 401/486/421 414/507/442 415/508/443 402/488/423
+f 402/488/423 415/508/443 416/509/444 403/490/425
+f 403/490/425 416/509/444 417/510/445 404/492/427
+f 404/492/427 417/510/445 418/511/446 405/494/429
+f 405/494/429 418/511/446 419/512/447 406/496/431
+f 406/496/431 419/512/447 420/513/448 407/498/433
+f 407/498/433 420/513/448 421/514/449 408/500/435
+f 408/500/435 421/514/449 267/360/295 252/345/280
+f 253/347/282 268/362/297 422/515/450 409/502/437
+f 409/502/437 422/515/450 423/516/451 410/503/438
+f 410/503/438 423/516/451 424/517/452 411/504/439
+f 411/504/439 424/517/452 425/518/453 412/505/440
+f 412/505/440 425/518/453 426/519/454 413/506/441
+f 413/506/441 426/519/454 427/520/455 414/507/442
+f 414/507/442 427/520/455 428/521/456 415/508/443
+f 415/508/443 428/521/456 429/522/457 416/509/444
+f 416/509/444 429/522/457 430/523/458 417/510/445
+f 417/510/445 430/523/458 431/524/459 418/511/446
+f 418/511/446 431/524/459 432/525/460 419/512/447
+f 419/512/447 432/525/460 433/526/461 420/513/448
+f 420/513/448 433/526/461 434/527/462 421/514/449
+f 421/514/449 434/527/462 282/375/310 267/360/295
+f 268/362/297 283/377/312 435/528/463 422/515/450
+f 422/515/450 435/528/463 436/529/464 423/516/451
+f 423/516/451 436/529/464 437/530/465 424/517/452
+f 424/517/452 437/530/465 438/531/466 425/518/453
+f 425/518/453 438/531/466 439/532/467 426/519/454
+f 426/519/454 439/532/467 440/533/468 427/520/455
+f 427/520/455 440/533/468 441/534/469 428/521/456
+f 428/521/456 441/534/469 442/535/470 429/522/457
+f 429/522/457 442/535/470 443/536/471 430/523/458
+f 430/523/458 443/536/471 444/537/472 431/524/459
+f 431/524/459 444/537/472 445/538/473 432/525/460
+f 432/525/460 445/538/473 446/539/474 433/526/461
+f 433/526/461 446/539/474 447/540/475 434/527/462
+f 434/527/462 447/540/475 297/390/325 282/375/310
+f 283/377/312 298/392/327 448/541/476 435/528/463
+f 435/528/463 448/541/476 449/542/477 436/529/464
+f 436/529/464 449/542/477 450/543/478 437/530/465
+f 437/530/465 450/543/478 451/544/479 438/531/466
+f 438/531/466 451/544/479 452/545/480 439/532/467
+f 439/532/467 452/545/480 453/546/481 440/533/468
+f 440/533/468 453/546/481 454/547/482 441/534/469
+f 441/534/469 454/547/482 455/548/483 442/535/470
+f 442/535/470 455/548/483 456/549/484 443/536/471
+f 443/536/471 456/549/484 457/550/485 444/537/472
+f 444/537/472 457/550/485 458/551/486 445/538/473
+f 445/538/473 458/551/486 459/552/487 446/539/474
+f 446/539/474 459/552/487 460/553/488 447/540/475
+f 447/540/475 460/553/488 312/405/340 297/390/325
+f 298/392/327 313/407/342 461/554/489 448/541/476
+f 448/541/476 461/554/489 462/555/490 449/542/477
+f 449/542/477 462/555/490 463/556/491 450/543/478
+f 450/543/478 463/556/491 464/557/492 451/544/479
+f 451/544/479 464/557/492 465/558/493 452/545/480
+f 452/545/480 465/558/493 466/559/494 453/546/481
+f 453/546/481 466/559/494 467/560/495 454/547/482
+f 454/547/482 467/560/495 468/561/496 455/548/483
+f 455/548/483 468/561/496 469/562/497 456/549/484
+f 456/549/484 469/562/497 470/563/498 457/550/485
+f 457/550/485 470/563/498 471/564/499 458/551/486
+f 458/551/486 471/564/499 472/565/500 459/552/487
+f 459/552/487 472/565/500 473/566/501 460/553/488
+f 460/553/488 473/566/501 327/420/355 312/405/340
+f 313/407/342 328/422/357 474/567/502 461/554/489
+f 461/554/489 474/567/502 475/568/503 462/555/490
+f 462/555/490 475/568/503 476/569/504 463/556/491
+f 463/556/491 476/569/504 477/570/505 464/557/492
+f 464/557/492 477/570/505 478/571/506 465/558/493
+f 465/558/493 478/571/506 29/39/32 466/559/494
+f 466/559/494 29/39/32 30/44/37 467/560/495
+f 467/560/495 30/44/37 26/34/27 468/561/496
+f 468/561/496 26/34/27 479/572/507 469/562/497
+f 469/562/497 479/572/507 480/573/508 470/563/498
+f 470/563/498 480/573/508 481/574/509 471/564/499
+f 471/564/499 481/574/509 482/575/510 472/565/500
+f 472/565/500 482/575/510 483/576/511 473/566/501
+f 473/566/501 483/576/511 339/432/367 327/420/355
+f 328/422/357 340/434/369 484/577/512 474/567/502
+f 474/567/502 484/577/512 485/578/513 475/568/503
+f 475/568/503 485/578/513 486/579/514 476/569/504
+f 476/569/504 486/579/514 487/580/515 477/570/505
+f 477/570/505 487/580/515 488/581/516 478/571/506
+f 478/571/506 488/581/516 28/40/33 29/39/32
+f 26/34/27 27/37/30 489/582/517 479/572/507
+f 479/572/507 489/582/517 490/583/518 480/573/508
+f 480/573/508 490/583/518 491/584/519 481/574/509
+f 481/574/509 491/584/519 492/585/520 482/575/510
+f 482/575/510 492/585/520 493/586/521 483/576/511
+f 483/576/511 493/586/521 351/444/379 339/432/367
+f 340/434/369 352/446/381 494/587/522 484/577/512
+f 484/577/512 494/587/522 495/588/523 485/578/513
+f 485/578/513 495/588/523 496/589/524 486/579/514
+f 486/579/514 496/589/524 497/590/525 487/580/515
+f 487/580/515 497/590/525 498/591/526 488/581/516
+f 488/581/516 498/591/526 499/592/527 28/40/33
+f 28/40/33 499/592/527 500/593/528 31/46/39
+f 31/46/39 500/593/528 501/594/529 27/37/30
+f 27/37/30 501/594/529 502/595/530 489/582/517
+f 489/582/517 502/595/530 503/596/531 490/583/518
+f 490/583/518 503/596/531 504/597/532 491/584/519
+f 491/584/519 504/597/532 505/598/533 492/585/520
+f 492/585/520 505/598/533 506/599/534 493/586/521
+f 493/586/521 506/599/534 366/459/394 351/444/379
+f 352/446/381 367/461/396 507/600/535 494/587/522
+f 494/587/522 507/600/535 508/601/536 495/588/523
+f 495/588/523 508/601/536 509/602/537 496/589/524
+f 496/589/524 509/602/537 510/603/538 497/590/525
+f 497/590/525 510/603/538 511/604/539 498/591/526
+f 498/591/526 511/604/539 512/605/540 499/592/527
+f 499/592/527 512/605/540 513/606/541 500/593/528
+f 500/593/528 513/606/541 514/607/542 501/594/529
+f 501/594/529 514/607/542 515/608/543 502/595/530
+f 502/595/530 515/608/543 516/609/544 503/596/531
+f 503/596/531 516/609/544 517/610/545 504/597/532
+f 504/597/532 517/610/545 518/611/546 505/598/533
+f 505/598/533 518/611/546 519/612/547 506/599/534
+f 506/599/534 519/612/547 381/474/409 366/459/394
+f 367/461/396 382/475/410 507/600/535
+f 507/600/535 382/475/410 508/601/536
+f 508/601/536 382/475/410 509/602/537
+f 509/602/537 382/475/410 510/603/538
+f 510/603/538 382/475/410 511/604/539
+f 511/604/539 382/475/410 512/605/540
+f 512/605/540 382/475/410 513/606/541
+f 513/606/541 382/475/410 514/607/542
+f 514/607/542 382/475/410 515/608/543
+f 515/608/543 382/475/410 516/609/544
+f 516/609/544 382/475/410 517/610/545
+f 517/610/545 382/475/410 518/611/546
+f 518/611/546 382/475/410 519/612/547
+f 519/612/547 382/475/410 381/474/409
+f 522/613/548 521/614/549 520/615/550 523/616/551
+f 521/614/549 522/613/548 224/317/252 223/316/251
+f 522/613/548 524/617/552 225/320/255 224/317/252
+f 524/617/552 526/618/553 226/322/257 225/320/255
+f 526/618/553 528/619/554 227/324/259 226/322/257
+f 528/619/554 530/620/555 228/326/261 227/324/259
+f 530/620/555 532/621/556 229/328/263 228/326/261
+f 532/621/556 534/622/557 230/330/265 229/328/263
+f 534/622/557 536/623/558 231/332/267 230/330/265
+f 536/623/558 538/624/559 232/334/269 231/332/267
+f 538/624/559 540/625/560 233/336/271 232/334/269
+f 540/625/560 542/626/561 234/338/273 233/336/271
+f 542/626/561 544/627/562 235/340/275 234/338/273
+f 544/627/562 546/628/563 236/342/277 235/340/275
+f 546/628/563 548/629/564 237/344/279 236/342/277
+f 523/630/551 520/631/550 576/632/565
+f 525/633/566 523/630/551 576/632/565
+f 527/634/567 525/633/566 576/632/565
+f 529/635/568 527/634/567 576/632/565
+f 531/636/569 529/635/568 576/632/565
+f 533/637/570 531/636/569 576/632/565
+f 535/638/571 533/637/570 576/632/565
+f 537/639/572 535/638/571 576/632/565
+f 539/640/573 537/639/572 576/632/565
+f 541/641/574 539/640/573 576/632/565
+f 543/642/575 541/641/574 576/632/565
+f 545/643/576 543/642/575 576/632/565
+f 547/644/577 545/643/576 576/632/565
+f 549/645/578 547/644/577 576/632/565
+f 521/614/549 223/316/251 383/477/412 550/646/579
+f 550/646/579 383/477/412 384/479/414 552/647/580
+f 552/647/580 384/479/414 385/481/416 554/648/581
+f 554/648/581 385/481/416 386/483/418 556/649/582
+f 556/649/582 386/483/418 387/485/420 558/650/583
+f 558/650/583 387/485/420 388/487/422 560/651/584
+f 560/651/584 388/487/422 389/489/424 562/652/585
+f 562/652/585 389/489/424 390/491/426 564/653/586
+f 564/653/586 390/491/426 391/493/428 566/654/587
+f 566/654/587 391/493/428 392/495/430 568/655/588
+f 568/655/588 392/495/430 393/497/432 570/656/589
+f 570/656/589 393/497/432 394/499/434 572/657/590
+f 572/657/590 394/499/434 395/501/436 574/658/591
+f 574/658/591 395/501/436 237/344/279 548/629/564
+f 524/617/552 522/613/548 523/616/551 525/659/566
+f 526/618/553 524/617/552 525/659/566 527/660/567
+f 528/619/554 526/618/553 527/660/567 529/661/568
+f 530/620/555 528/619/554 529/661/568 531/662/569
+f 532/621/556 530/620/555 531/662/569 533/663/570
+f 534/622/557 532/621/556 533/663/570 535/664/571
+f 536/623/558 534/622/557 535/664/571 537/665/572
+f 538/624/559 536/623/558 537/665/572 539/666/573
+f 540/625/560 538/624/559 539/666/573 541/667/574
+f 542/626/561 540/625/560 541/667/574 543/668/575
+f 544/627/562 542/626/561 543/668/575 545/669/576
+f 546/628/563 544/627/562 545/669/576 547/670/577
+f 548/629/564 546/628/563 547/670/577 549/671/578
+f 574/658/591 548/629/564 549/671/578 575/672/592
+f 520/615/550 521/614/549 550/646/579 551/673/593
+f 550/646/579 552/647/580 553/674/594 551/673/593
+f 552/647/580 554/648/581 555/675/595 553/674/594
+f 554/648/581 556/649/582 557/676/596 555/675/595
+f 556/649/582 558/650/583 559/677/597 557/676/596
+f 558/650/583 560/651/584 561/678/598 559/677/597
+f 560/651/584 562/652/585 563/679/599 561/678/598
+f 562/652/585 564/653/586 565/680/600 563/679/599
+f 564/653/586 566/654/587 567/681/601 565/680/600
+f 566/654/587 568/655/588 569/682/602 567/681/601
+f 568/655/588 570/656/589 571/683/603 569/682/602
+f 570/656/589 572/657/590 573/684/604 571/683/603
+f 572/657/590 574/658/591 575/672/592 573/684/604
+f 551/685/593 576/632/565 520/631/550
+f 553/686/594 576/632/565 551/685/593
+f 555/687/595 576/632/565 553/686/594
+f 557/688/596 576/632/565 555/687/595
+f 559/689/597 576/632/565 557/688/596
+f 561/690/598 576/632/565 559/689/597
+f 563/691/599 576/632/565 561/690/598
+f 565/692/600 576/632/565 563/691/599
+f 567/693/601 576/632/565 565/692/600
+f 569/694/602 576/632/565 567/693/601
+f 571/695/603 576/632/565 569/694/602
+f 573/696/604 576/632/565 571/695/603
+f 575/697/592 576/632/565 573/696/604
+f 549/645/578 576/632/565 575/697/592
+s 6
+f 578/103/96 577/102/95 111/130/123 112/132/125
+f 579/104/97 578/103/96 112/132/125 113/134/127
+f 580/105/98 579/104/97 113/134/127 99/107/100
+f 581/91/84 580/105/98 99/107/100 100/106/99
+f 582/92/85 581/91/84 100/106/99 101/110/103
+f 583/93/86 582/92/85 101/110/103 102/112/105
+f 584/94/87 583/93/86 102/112/105 103/114/107
+f 585/164/157 584/94/87 103/114/107 156/182/175
+f 586/162/155 585/164/157 156/182/175 155/180/173
+f 587/163/156 586/162/155 155/180/173 154/178/171
+f 588/174/167 587/163/156 154/178/171 153/177/170
+f 589/173/166 588/174/167 153/177/170 165/200/193
+f 590/172/165 589/173/166 165/200/193 164/198/191
+f 591/171/164 590/172/165 164/198/191 163/196/189
+f 592/170/163 591/171/164 163/196/189 162/194/187
+f 593/169/162 592/170/163 162/194/187 161/192/185
+f 594/168/161 593/169/162 161/192/185 160/190/183
+f 595/167/160 594/168/161 160/190/183 159/188/181
+f 596/166/159 595/167/160 159/188/181 158/186/179
+f 597/165/158 596/166/159 158/186/179 157/184/177
+f 598/95/88 597/165/158 157/184/177 104/117/110
+f 599/96/89 598/95/88 104/117/110 105/116/109
+f 600/97/90 599/96/89 105/116/109 106/120/113
+f 601/98/91 600/97/90 106/120/113 107/122/115
+f 602/99/92 601/98/91 107/122/115 108/124/117
+f 603/100/93 602/99/92 108/124/117 109/126/119
+f 604/101/94 603/100/93 109/126/119 110/128/121
+f 577/102/95 604/101/94 110/128/121 111/130/123
+f 606/133/126 605/131/124 76/698/605 77/699/606
+f 607/135/128 606/133/126 77/699/606 78/700/607
+f 79/701/608 608/108/101 607/135/128 78/700/607
+f 609/109/102 608/108/101 79/701/608 80/702/609
+f 610/111/104 609/109/102 80/702/609 81/703/610
+f 611/113/106 610/111/104 81/703/610 82/704/611
+f 612/115/108 611/113/106 82/704/611 83/705/612
+f 613/181/174 612/115/108 83/705/612 139/706/613
+f 139/706/613 138/707/614 614/179/172 613/181/174
+f 138/707/614 137/708/615 615/175/168 614/179/172
+f 137/708/615 136/709/616 616/176/169 615/175/168
+f 617/199/192 616/176/169 136/709/616 135/710/617
+f 135/710/617 134/711/618 618/197/190 617/199/192
+f 134/711/618 133/712/619 619/195/188 618/197/190
+f 133/712/619 132/713/620 620/193/186 619/195/188
+f 132/713/620 131/714/621 621/191/184 620/193/186
+f 131/714/621 130/715/622 622/189/182 621/191/184
+f 130/715/622 129/716/623 623/187/180 622/189/182
+f 129/716/623 128/717/624 624/185/178 623/187/180
+f 128/717/624 127/718/625 625/183/176 624/185/178
+f 127/718/625 69/719/626 626/118/111 625/183/176
+f 627/119/112 626/118/111 69/719/626 70/720/627
+f 628/121/114 627/119/112 70/720/627 71/721/628
+f 629/123/116 628/121/114 71/721/628 72/722/629
+f 630/125/118 629/123/116 72/722/629 73/723/630
+f 631/127/120 630/125/118 73/723/630 74/724/631
+f 632/129/122 631/127/120 74/724/631 75/725/632
+f 605/131/124 632/129/122 75/725/632 76/698/605
+f 633/726/633 634/727/634 77/699/606 76/698/605
+f 634/727/634 635/728/635 78/700/607 77/699/606
+f 80/702/609 636/729/636 81/703/610
+f 636/729/636 637/730/637 82/704/611 81/703/610
+f 637/730/637 638/731/638 83/705/612 82/704/611
+f 638/731/638 639/732/639 645/733/640 83/705/612
+f 640/734/641 641/735/642 70/720/627 69/719/626
+f 641/735/642 642/736/643 71/721/628 70/720/627
+f 73/723/630 643/737/644 74/724/631
+f 643/737/644 644/738/645 75/725/632 74/724/631
+f 644/738/645 633/726/633 76/698/605 75/725/632
+f 639/732/639 640/734/641 69/719/626 645/733/640
+f 635/728/635 79/701/608 78/700/607
+f 635/728/635 636/729/636 80/702/609 79/701/608
+f 642/736/643 72/722/629 71/721/628
+f 642/736/643 643/737/644 73/723/630 72/722/629
+f 646/739/646 133/712/619 134/711/618 647/740/647
+f 647/740/647 134/711/618 135/710/617 648/741/648
+f 137/708/615 138/707/614 649/742/649
+f 649/742/649 138/707/614 139/706/613 650/743/650
+f 650/743/650 139/706/613 83/705/612 651/744/651
+f 651/744/651 83/705/612 645/733/640 652/745/652
+f 653/746/653 69/719/626 127/718/625 654/747/654
+f 654/747/654 127/718/625 128/717/624 655/748/655
+f 130/715/622 131/714/621 656/749/656
+f 656/749/656 131/714/621 132/713/620 657/750/657
+f 657/750/657 132/713/620 133/712/619 646/739/646
+f 652/745/652 645/733/640 69/719/626 653/746/653
+f 648/741/648 135/710/617 136/709/616
+f 648/741/648 136/709/616 137/708/615 649/742/649
+f 655/748/655 128/717/624 129/716/623
+f 655/748/655 129/716/623 130/715/622 656/749/656
+s 1
+f 2/2/2 698/751/658 697/752/659 3/3/5
+f 1/1/1 699/753/660 698/751/658 2/2/2
+f 8/8/15 700/754/661 699/753/660 1/1/1
+f 7/7/13 701/755/662 700/754/661 8/8/15
+f 694/756/663 701/755/662 7/7/13 6/6/11
+f 5/5/9 695/757/664 694/756/663 6/6/11
+f 4/758/7 696/759/665 695/757/664 5/5/9
+f 3/3/5 697/752/659 696/760/665 4/4/7
+s 6
+f 648/761/648 702/762/666 713/763/667 647/764/647
+f 649/765/649 703/766/668 702/762/666 648/761/648
+f 650/767/650 704/768/669 703/766/668 649/765/649
+f 651/769/651 705/770/670 704/768/669 650/767/650
+f 652/771/652 706/772/671 705/770/670 651/769/651
+f 713/763/667 712/773/672 646/774/646 647/764/647
+f 653/775/653 707/776/673 706/777/671 652/778/652
+f 654/779/654 708/780/674 707/776/673 653/775/653
+f 655/781/655 709/782/675 708/780/674 654/779/654
+f 656/783/656 710/784/676 709/782/675 655/781/655
+f 657/785/657 711/786/677 710/784/676 656/783/656
+f 646/774/646 712/773/672 711/786/677 657/785/657
+s 10
+f 671/787/678 683/788/679 682/789/680 670/790/681
+f 672/791/682 684/792/683 683/788/679 671/787/678
+f 673/793/684 685/794/685 684/792/683 672/791/682
+f 674/795/686 686/796/687 685/794/685 673/793/684
+f 675/797/688 687/798/689 686/796/687 674/795/686
+f 676/799/690 688/800/691 687/798/689 675/797/688
+f 677/801/692 689/802/693 688/800/691 676/799/690
+f 678/803/694 690/804/695 689/802/693 677/801/692
+f 679/805/696 691/806/697 690/804/695 678/803/694
+f 680/807/698 692/808/699 691/806/697 679/805/696
+f 681/809/700 693/810/701 692/808/699 680/807/698
+f 670/790/681 682/789/680 693/811/701 681/812/700
+s 1
+f 695/757/664 34/813/29 32/814/26 694/756/663
+f 696/759/665 39/815/38 34/813/29 695/757/664
+f 697/752/659 36/816/34 39/817/38 696/760/665
+f 698/751/658 35/818/31 36/816/34 697/752/659
+f 699/753/660 37/819/35 35/818/31 698/751/658
+f 700/754/661 38/820/36 37/819/35 699/753/660
+f 701/755/662 33/821/28 38/820/36 700/754/661
+f 32/814/26 33/821/28 701/755/662 694/756/663
+s 6
+f 661/822/702 660/823/703 702/762/666 703/766/668
+f 662/824/704 661/822/702 703/766/668 704/768/669
+f 663/825/705 662/824/704 704/768/669 705/770/670
+f 664/826/706 663/825/705 705/770/670 706/772/671
+f 665/827/707 664/828/706 706/777/671 707/776/673
+f 666/829/708 665/827/707 707/776/673 708/780/674
+f 667/830/709 666/829/708 708/780/674 709/782/675
+f 668/831/710 667/830/709 709/782/675 710/784/676
+f 669/832/711 668/831/710 710/784/676 711/786/677
+f 658/833/712 669/832/711 711/786/677 712/773/672
+f 659/834/713 658/833/712 712/773/672 713/763/667
+f 660/823/703 659/834/713 713/763/667 702/762/666
+s 1
+f 715/835/714 714/836/715 737/837/716 738/838/717
+f 716/839/718 715/835/714 738/838/717 739/840/719
+f 717/841/720 716/839/718 739/840/719 740/842/721
+f 718/843/722 717/841/720 740/842/721 741/844/723
+f 734/845/724 719/846/725 718/843/722 741/844/723
+f 720/847/726 719/846/725 734/845/724 735/848/727
+f 721/849/728 720/847/726 735/848/727 736/850/729
+f 714/836/715 721/851/728 736/852/729 737/837/716
+s 6
+f 635/853/635 634/854/634 753/855/730 742/856/731
+f 636/857/636 635/853/635 742/856/731 743/858/732
+f 637/859/637 636/857/636 743/858/732 744/860/733
+f 638/861/638 637/859/637 744/860/733 745/862/734
+f 639/863/639 638/861/638 745/862/734 746/864/735
+f 753/855/730 634/854/634 633/865/633 752/866/736
+f 640/867/641 639/868/639 746/869/735 747/870/737
+f 641/871/642 640/867/641 747/870/737 748/872/738
+f 642/873/643 641/871/642 748/872/738 749/874/739
+f 643/875/644 642/873/643 749/874/739 750/876/740
+f 644/877/645 643/875/644 750/876/740 751/878/741
+f 633/865/633 644/877/645 751/878/741 752/866/736
+s 1
+f 735/848/727 734/845/724 46/879/40 48/880/43
+f 736/850/729 735/848/727 48/880/43 53/881/52
+f 737/837/716 736/852/729 53/882/52 50/883/46
+f 738/838/717 737/837/716 50/883/46 49/884/45
+f 739/840/719 738/838/717 49/884/45 51/885/49
+f 740/842/721 739/840/719 51/885/49 52/886/50
+f 741/844/723 740/842/721 52/886/50 47/887/41
+f 46/879/40 734/845/724 741/844/723 47/887/41
+s 6
+f 725/888/742 743/858/732 742/856/731 724/889/743
+f 726/890/744 744/860/733 743/858/732 725/888/742
+f 727/891/745 745/862/734 744/860/733 726/890/744
+f 728/892/746 746/864/735 745/862/734 727/891/745
+f 729/893/747 747/870/737 746/869/735 728/894/746
+f 730/895/748 748/872/738 747/870/737 729/893/747
+f 731/896/749 749/874/739 748/872/738 730/895/748
+f 732/897/750 750/876/740 749/874/739 731/896/749
+f 733/898/751 751/878/741 750/876/740 732/897/750
+f 722/899/752 752/866/736 751/878/741 733/898/751
+f 723/900/753 753/855/730 752/866/736 722/899/752
+f 724/889/743 742/856/731 753/855/730 723/900/753
+s 1
+f 716/839/718 754/902/754 755/901/755 715/835/714
+f 715/835/714 755/901/755 756/903/756 714/836/715
+f 714/836/715 756/903/756 757/904/757 721/851/728
+f 721/849/728 757/925/757 758/905/758 720/847/726
+f 720/847/726 758/905/758 759/906/759 719/846/725
+f 719/846/725 759/906/759 760/907/760 718/843/722
+f 718/843/722 760/907/760 761/908/761 717/841/720
+f 717/841/720 761/908/761 754/902/754 716/839/718
+f 754/902/754 762/910/762 763/909/763 755/901/755
+f 755/901/755 763/909/763 764/911/764 756/903/756
+f 756/903/756 764/911/764 765/912/765 757/904/757
+f 757/925/757 765/926/765 766/913/766 758/905/758
+f 758/905/758 766/913/766 767/914/767 759/906/759
+f 759/906/759 767/914/767 768/915/768 760/907/760
+f 760/907/760 768/915/768 769/916/769 761/908/761
+f 761/908/761 769/916/769 762/910/762 754/902/754
+f 762/910/762 770/917/770 763/909/763
+f 763/909/763 770/918/770 764/911/764
+f 764/911/764 770/919/770 765/912/765
+f 765/926/765 770/920/770 766/913/766
+f 766/913/766 770/921/770 767/914/767
+f 767/914/767 770/922/770 768/915/768
+f 768/915/768 770/923/770 769/916/769
+f 769/916/769 770/924/770 762/910/762
+s 12
+f 772/929/771 771/930/772 783/931/773 784/932/774
+f 773/933/775 772/929/771 784/932/774 785/934/776
+f 774/935/777 773/933/775 785/934/776 786/936/778
+f 775/937/779 774/935/777 786/936/778 787/938/780
+f 776/939/781 775/937/779 787/938/780 788/940/782
+f 777/941/783 776/939/781 788/940/782 789/942/784
+f 778/943/785 777/941/783 789/942/784 790/944/786
+f 779/945/787 778/943/785 790/944/786 791/946/788
+f 780/947/789 779/945/787 791/946/788 792/948/790
+f 781/949/791 780/947/789 792/948/790 793/950/792
+f 782/951/793 781/949/791 793/950/792 794/952/794
+f 771/930/772 782/953/793 794/954/794 783/931/773
+s 6
+f 795/955/795 807/956/796 808/957/797 796/958/798
+f 796/958/798 808/957/797 809/959/799 797/960/800
+f 797/960/800 809/959/799 810/961/801 798/962/802
+f 798/962/802 810/961/801 811/963/803 799/964/804
+f 799/964/804 811/963/803 812/965/805 800/966/806
+f 800/967/806 812/968/805 813/969/807 801/970/808
+f 801/970/808 813/969/807 814/971/809 802/972/810
+f 802/972/810 814/971/809 815/973/811 803/974/812
+f 803/974/812 815/973/811 816/975/813 804/976/814
+f 804/976/814 816/975/813 817/977/815 805/978/816
+f 805/978/816 817/977/815 818/979/817 806/980/818
+f 806/980/818 818/979/817 807/956/796 795/955/795
+f 807/956/796 819/981/819 820/982/820 808/957/797
+f 808/957/797 820/982/820 821/983/821 809/959/799
+f 809/959/799 821/983/821 822/984/822 810/961/801
+f 810/961/801 822/984/822 823/985/823 811/963/803
+f 811/963/803 823/985/823 824/986/824 812/965/805
+f 812/968/805 824/987/824 825/988/825 813/969/807
+f 813/969/807 825/988/825 826/989/826 814/971/809
+f 814/971/809 826/989/826 827/990/827 815/973/811
+f 815/973/811 827/990/827 828/991/828 816/975/813
+f 816/975/813 828/991/828 829/992/829 817/977/815
+f 817/977/815 829/992/829 830/993/830 818/979/817
+f 818/979/817 830/993/830 819/981/819 807/956/796
+f 819/981/819 831/994/831 832/995/832 820/982/820
+f 820/982/820 832/995/832 833/996/833 821/983/821
+f 821/983/821 833/996/833 834/997/834 822/984/822
+f 822/984/822 834/997/834 835/998/835 823/985/823
+f 823/985/823 835/998/835 836/999/836 824/986/824
+f 824/987/824 836/1000/836 837/1001/837 825/988/825
+f 825/988/825 837/1001/837 838/1002/838 826/989/826
+f 826/989/826 838/1002/838 839/1003/839 827/990/827
+f 827/990/827 839/1003/839 840/1004/840 828/991/828
+f 828/991/828 840/1004/840 841/1005/841 829/992/829
+f 829/992/829 841/1005/841 842/1006/842 830/993/830
+f 830/993/830 842/1006/842 831/994/831 819/981/819
+f 831/994/831 843/1007/843 844/1008/844 832/995/832
+f 832/995/832 844/1008/844 845/1009/845 833/996/833
+f 833/996/833 845/1009/845 846/1010/846 834/997/834
+f 834/997/834 846/1010/846 847/1011/847 835/998/835
+f 835/998/835 847/1011/847 848/1012/848 836/999/836
+f 836/1000/836 848/1013/848 849/1014/849 837/1001/837
+f 837/1001/837 849/1014/849 850/1015/850 838/1002/838
+f 838/1002/838 850/1015/850 851/1016/851 839/1003/839
+f 839/1003/839 851/1016/851 852/1017/852 840/1004/840
+f 840/1004/840 852/1017/852 853/1018/853 841/1005/841
+f 841/1005/841 853/1018/853 854/1019/854 842/1006/842
+f 842/1006/842 854/1019/854 843/1007/843 831/994/831
+f 843/1007/843 733/898/751 732/897/750 844/1008/844
+f 844/1008/844 732/897/750 731/896/749 845/1009/845
+f 845/1009/845 731/896/749 730/895/748 846/1010/846
+f 846/1010/846 730/895/748 729/893/747 847/1011/847
+f 847/1011/847 729/893/747 728/894/746 848/1012/848
+f 848/1013/848 728/892/746 727/891/745 849/1014/849
+f 849/1014/849 727/891/745 726/890/744 850/1015/850
+f 850/1015/850 726/890/744 725/888/742 851/1016/851
+f 851/1016/851 725/888/742 724/889/743 852/1017/852
+f 852/1017/852 724/889/743 723/900/753 853/1018/853
+f 853/1018/853 723/900/753 722/899/752 854/1019/854
+f 854/1019/854 722/899/752 733/898/751 843/1007/843
+f 796/958/798 855/1020/855 795/955/795
+f 797/960/800 855/1021/855 796/958/798
+f 798/962/802 855/1022/855 797/960/800
+f 799/964/804 855/1023/855 798/962/802
+f 800/966/806 855/1024/855 799/964/804
+f 801/970/808 855/1025/855 800/967/806
+f 802/972/810 855/1026/855 801/970/808
+f 803/974/812 855/1027/855 802/972/810
+f 804/976/814 855/1028/855 803/974/812
+f 805/978/816 855/1029/855 804/976/814
+f 806/980/818 855/1030/855 805/978/816
+f 795/955/795 855/1031/855 806/980/818
+s 12
+f 856/1032/856 868/1033/857 869/1034/858 857/1035/859
+f 857/1035/859 869/1034/858 870/1036/860 858/1037/861
+f 858/1037/861 870/1036/860 871/1038/862 859/1039/863
+f 859/1039/863 871/1038/862 872/1040/864 860/1041/865
+f 860/1041/865 872/1040/864 873/1042/866 861/1043/867
+f 861/1044/867 873/1045/866 874/1046/868 862/1047/869
+f 862/1047/869 874/1046/868 875/1048/870 863/1049/871
+f 863/1049/871 875/1048/870 876/1050/872 864/1051/873
+f 864/1051/873 876/1050/872 877/1052/874 865/1053/875
+f 865/1053/875 877/1052/874 878/1054/876 866/1055/877
+f 866/1055/877 878/1054/876 879/1056/878 867/1057/879
+f 867/1057/879 879/1056/878 868/1033/857 856/1032/856
+f 868/1033/857 880/1058/880 881/1059/881 869/1034/858
+f 869/1034/858 881/1059/881 882/1060/882 870/1036/860
+f 870/1036/860 882/1060/882 883/1061/883 871/1038/862
+f 871/1038/862 883/1061/883 884/1062/884 872/1040/864
+f 872/1040/864 884/1062/884 885/1063/885 873/1042/866
+f 873/1045/866 885/1064/885 886/1065/886 874/1046/868
+f 874/1046/868 886/1065/886 887/1066/887 875/1048/870
+f 875/1048/870 887/1066/887 888/1067/888 876/1050/872
+f 876/1050/872 888/1067/888 889/1068/889 877/1052/874
+f 877/1052/874 889/1068/889 890/1069/890 878/1054/876
+f 878/1054/876 890/1069/890 891/1070/891 879/1056/878
+f 879/1056/878 891/1070/891 880/1058/880 868/1033/857
+f 880/1058/880 892/1071/892 893/1072/893 881/1059/881
+f 881/1059/881 893/1072/893 894/1073/894 882/1060/882
+f 882/1060/882 894/1073/894 895/1074/895 883/1061/883
+f 883/1061/883 895/1074/895 896/1075/896 884/1062/884
+f 884/1062/884 896/1075/896 897/1076/897 885/1063/885
+f 885/1064/885 897/1077/897 898/1078/898 886/1065/886
+f 886/1065/886 898/1078/898 899/1079/899 887/1066/887
+f 887/1066/887 899/1079/899 900/1080/900 888/1067/888
+f 888/1067/888 900/1080/900 901/1081/901 889/1068/889
+f 889/1068/889 901/1081/901 902/1082/902 890/1069/890
+f 890/1069/890 902/1082/902 903/1083/903 891/1070/891
+f 891/1070/891 903/1083/903 892/1071/892 880/1058/880
+f 892/1071/892 904/1084/904 905/1085/905 893/1072/893
+f 893/1072/893 905/1085/905 906/1086/906 894/1073/894
+f 894/1073/894 906/1086/906 907/1087/907 895/1074/895
+f 895/1074/895 907/1087/907 908/1088/908 896/1075/896
+f 896/1075/896 908/1088/908 909/1089/909 897/1076/897
+f 897/1077/897 909/1090/909 910/1091/910 898/1078/898
+f 898/1078/898 910/1091/910 911/1092/911 899/1079/899
+f 899/1079/899 911/1092/911 912/1093/912 900/1080/900
+f 900/1080/900 912/1093/912 913/1094/913 901/1081/901
+f 901/1081/901 913/1094/913 914/1095/914 902/1082/902
+f 902/1082/902 914/1095/914 915/1096/915 903/1083/903
+f 903/1083/903 915/1096/915 904/1084/904 892/1071/892
+f 904/1084/904 787/938/780 786/936/778 905/1085/905
+f 905/1085/905 786/936/778 785/934/776 906/1086/906
+f 906/1086/906 785/934/776 784/932/774 907/1087/907
+f 907/1087/907 784/932/774 783/931/773 908/1088/908
+f 908/1088/908 783/931/773 794/954/794 909/1089/909
+f 909/1090/909 794/952/794 793/950/792 910/1091/910
+f 910/1091/910 793/950/792 792/948/790 911/1092/911
+f 911/1092/911 792/948/790 791/946/788 912/1093/912
+f 912/1093/912 791/946/788 790/944/786 913/1094/913
+f 913/1094/913 790/944/786 789/942/784 914/1095/914
+f 914/1095/914 789/942/784 788/940/782 915/1096/915
+f 915/1096/915 788/940/782 787/938/780 904/1084/904
+f 857/1035/859 916/1097/916 856/1032/856
+f 858/1037/861 916/1098/916 857/1035/859
+f 859/1039/863 916/1099/916 858/1037/861
+f 860/1041/865 916/1100/916 859/1039/863
+f 861/1043/867 916/1101/916 860/1041/865
+f 862/1047/869 916/1102/916 861/1044/867
+f 863/1049/871 916/1103/916 862/1047/869
+f 864/1051/873 916/1104/916 863/1049/871
+f 865/1053/875 916/1105/916 864/1051/873
+f 866/1055/877 916/1106/916 865/1053/875
+f 867/1057/879 916/1107/916 866/1055/877
+f 856/1032/856 916/1108/916 867/1057/879
+f 917/1109/917 918/1110/918 930/1111/919 929/1112/920
+f 918/1110/918 919/1113/921 931/1114/922 930/1111/919
+f 919/1113/921 920/1115/923 932/1116/924 931/1114/922
+f 920/1115/923 921/1117/925 933/1118/926 932/1116/924
+f 921/1117/925 922/1119/927 934/1120/928 933/1118/926
+f 922/1121/927 923/1122/929 935/1123/930 934/1124/928
+f 923/1122/929 924/1125/931 936/1126/932 935/1123/930
+f 924/1125/931 925/1127/933 937/1128/934 936/1126/932
+f 925/1127/933 926/1129/935 938/1130/936 937/1128/934
+f 926/1129/935 927/1131/937 939/1132/938 938/1130/936
+f 927/1131/937 928/1133/939 940/1134/940 939/1132/938
+f 928/1133/939 917/1109/917 929/1112/920 940/1134/940
+f 929/1112/920 930/1111/919 942/1135/941 941/1136/942
+f 930/1111/919 931/1114/922 943/1137/943 942/1135/941
+f 931/1114/922 932/1116/924 944/1138/944 943/1137/943
+f 932/1116/924 933/1118/926 945/1139/945 944/1138/944
+f 933/1118/926 934/1120/928 946/1140/946 945/1139/945
+f 934/1124/928 935/1123/930 947/1141/947 946/1142/946
+f 935/1123/930 936/1126/932 948/1143/948 947/1141/947
+f 936/1126/932 937/1128/934 949/1144/949 948/1143/948
+f 937/1128/934 938/1130/936 950/1145/950 949/1144/949
+f 938/1130/936 939/1132/938 951/1146/951 950/1145/950
+f 939/1132/938 940/1134/940 952/1147/952 951/1146/951
+f 940/1134/940 929/1112/920 941/1136/942 952/1147/952
+f 941/1136/942 942/1135/941 954/1148/953 953/1149/954
+f 942/1135/941 943/1137/943 955/1150/955 954/1148/953
+f 943/1137/943 944/1138/944 956/1151/956 955/1150/955
+f 944/1138/944 945/1139/945 957/1152/957 956/1151/956
+f 945/1139/945 946/1140/946 958/1153/958 957/1152/957
+f 946/1142/946 947/1141/947 959/1154/959 958/1155/958
+f 947/1141/947 948/1143/948 960/1156/960 959/1154/959
+f 948/1143/948 949/1144/949 961/1157/961 960/1156/960
+f 949/1144/949 950/1145/950 962/1158/962 961/1157/961
+f 950/1145/950 951/1146/951 963/1159/963 962/1158/962
+f 951/1146/951 952/1147/952 964/1160/964 963/1159/963
+f 952/1147/952 941/1136/942 953/1149/954 964/1160/964
+f 953/1149/954 954/1148/953 966/1161/965 965/1162/966
+f 954/1148/953 955/1150/955 967/1163/967 966/1161/965
+f 955/1150/955 956/1151/956 968/1164/968 967/1163/967
+f 956/1151/956 957/1152/957 969/1165/969 968/1164/968
+f 957/1152/957 958/1153/958 970/1166/970 969/1165/969
+f 958/1155/958 959/1154/959 971/1167/971 970/1168/970
+f 959/1154/959 960/1156/960 972/1169/972 971/1167/971
+f 960/1156/960 961/1157/961 973/1170/973 972/1169/972
+f 961/1157/961 962/1158/962 974/1171/974 973/1170/973
+f 962/1158/962 963/1159/963 975/1172/975 974/1171/974
+f 963/1159/963 964/1160/964 976/1173/976 975/1172/975
+f 964/1160/964 953/1149/954 965/1162/966 976/1173/976
+f 965/1162/966 966/1161/965 774/935/777 775/937/779
+f 966/1161/965 967/1163/967 773/933/775 774/935/777
+f 967/1163/967 968/1164/968 772/929/771 773/933/775
+f 968/1164/968 969/1165/969 771/930/772 772/929/771
+f 969/1165/969 970/1166/970 782/953/793 771/930/772
+f 970/1168/970 971/1167/971 781/949/791 782/951/793
+f 971/1167/971 972/1169/972 780/947/789 781/949/791
+f 972/1169/972 973/1170/973 779/945/787 780/947/789
+f 973/1170/973 974/1171/974 778/943/785 779/945/787
+f 974/1171/974 975/1172/975 777/941/783 778/943/785
+f 975/1172/975 976/1173/976 776/939/781 777/941/783
+f 976/1173/976 965/1162/966 775/937/779 776/939/781
+f 918/1110/918 917/1109/917 977/1174/977
+f 919/1113/921 918/1110/918 977/1175/977
+f 920/1115/923 919/1113/921 977/1176/977
+f 921/1117/925 920/1115/923 977/1177/977
+f 922/1119/927 921/1117/925 977/1178/977
+f 923/1122/929 922/1121/927 977/1179/977
+f 924/1125/931 923/1122/929 977/1180/977
+f 925/1127/933 924/1125/931 977/1181/977
+f 926/1129/935 925/1127/933 977/1182/977
+f 927/1131/937 926/1129/935 977/1183/977
+f 928/1133/939 927/1131/937 977/1184/977
+f 917/1109/917 928/1133/939 977/1185/977
+s 6
+f 978/1186/978 979/1187/979 991/1188/980 990/1189/981
+f 979/1187/979 980/1190/982 992/1191/983 991/1188/980
+f 980/1190/982 981/1192/984 993/1193/985 992/1191/983
+f 981/1192/984 982/1194/986 994/1195/987 993/1193/985
+f 982/1194/986 983/1196/988 995/1197/989 994/1195/987
+f 983/1198/988 984/1199/990 996/1200/991 995/1201/989
+f 984/1199/990 985/1202/992 997/1203/993 996/1200/991
+f 985/1202/992 986/1204/994 998/1205/995 997/1203/993
+f 986/1204/994 987/1206/996 999/1207/997 998/1205/995
+f 987/1206/996 988/1208/998 1000/1209/999 999/1207/997
+f 988/1208/998 989/1210/1000 1001/1211/1001 1000/1209/999
+f 989/1210/1000 978/1186/978 990/1189/981 1001/1211/1001
+f 990/1189/981 991/1188/980 1003/1212/1002 1002/1213/1003
+f 991/1188/980 992/1191/983 1004/1214/1004 1003/1212/1002
+f 992/1191/983 993/1193/985 1005/1215/1005 1004/1214/1004
+f 993/1193/985 994/1195/987 1006/1216/1006 1005/1215/1005
+f 994/1195/987 995/1197/989 1007/1217/1007 1006/1216/1006
+f 995/1201/989 996/1200/991 1008/1218/1008 1007/1219/1007
+f 996/1200/991 997/1203/993 1009/1220/1009 1008/1218/1008
+f 997/1203/993 998/1205/995 1010/1221/1010 1009/1220/1009
+f 998/1205/995 999/1207/997 1011/1222/1011 1010/1221/1010
+f 999/1207/997 1000/1209/999 1012/1223/1012 1011/1222/1011
+f 1000/1209/999 1001/1211/1001 1013/1224/1013 1012/1223/1012
+f 1001/1211/1001 990/1189/981 1002/1213/1003 1013/1224/1013
+f 1002/1213/1003 1003/1212/1002 1015/1225/1014 1014/1226/1015
+f 1003/1212/1002 1004/1214/1004 1016/1227/1016 1015/1225/1014
+f 1004/1214/1004 1005/1215/1005 1017/1228/1017 1016/1227/1016
+f 1005/1215/1005 1006/1216/1006 1018/1229/1018 1017/1228/1017
+f 1006/1216/1006 1007/1217/1007 1019/1230/1019 1018/1229/1018
+f 1007/1219/1007 1008/1218/1008 1020/1231/1020 1019/1232/1019
+f 1008/1218/1008 1009/1220/1009 1021/1233/1021 1020/1231/1020
+f 1009/1220/1009 1010/1221/1010 1022/1234/1022 1021/1233/1021
+f 1010/1221/1010 1011/1222/1011 1023/1235/1023 1022/1234/1022
+f 1011/1222/1011 1012/1223/1012 1024/1236/1024 1023/1235/1023
+f 1012/1223/1012 1013/1224/1013 1025/1237/1025 1024/1236/1024
+f 1013/1224/1013 1002/1213/1003 1014/1226/1015 1025/1237/1025
+f 1014/1226/1015 1015/1225/1014 1027/1238/1026 1026/1239/1027
+f 1015/1225/1014 1016/1227/1016 1028/1240/1028 1027/1238/1026
+f 1016/1227/1016 1017/1228/1017 1029/1241/1029 1028/1240/1028
+f 1017/1228/1017 1018/1229/1018 1030/1242/1030 1029/1241/1029
+f 1018/1229/1018 1019/1230/1019 1031/1243/1031 1030/1242/1030
+f 1019/1232/1019 1020/1231/1020 1032/1244/1032 1031/1245/1031
+f 1020/1231/1020 1021/1233/1021 1033/1246/1033 1032/1244/1032
+f 1021/1233/1021 1022/1234/1022 1034/1247/1034 1033/1246/1033
+f 1022/1234/1022 1023/1235/1023 1035/1248/1035 1034/1247/1034
+f 1023/1235/1023 1024/1236/1024 1036/1249/1036 1035/1248/1035
+f 1024/1236/1024 1025/1237/1025 1037/1250/1037 1036/1249/1036
+f 1025/1237/1025 1014/1226/1015 1026/1239/1027 1037/1250/1037
+f 1026/1239/1027 1027/1238/1026 668/831/710 669/832/711
+f 1027/1238/1026 1028/1240/1028 667/830/709 668/831/710
+f 1028/1240/1028 1029/1241/1029 666/829/708 667/830/709
+f 1029/1241/1029 1030/1242/1030 665/827/707 666/829/708
+f 1030/1242/1030 1031/1243/1031 664/828/706 665/827/707
+f 1031/1245/1031 1032/1244/1032 663/825/705 664/826/706
+f 1032/1244/1032 1033/1246/1033 662/824/704 663/825/705
+f 1033/1246/1033 1034/1247/1034 661/822/702 662/824/704
+f 1034/1247/1034 1035/1248/1035 660/823/703 661/822/702
+f 1035/1248/1035 1036/1249/1036 659/834/713 660/823/703
+f 1036/1249/1036 1037/1250/1037 658/833/712 659/834/713
+f 1037/1250/1037 1026/1239/1027 669/832/711 658/833/712
+f 979/1187/979 978/1186/978 1038/1251/1038
+f 980/1190/982 979/1187/979 1038/1252/1038
+f 981/1192/984 980/1190/982 1038/1253/1038
+f 982/1194/986 981/1192/984 1038/1254/1038
+f 983/1196/988 982/1194/986 1038/1255/1038
+f 984/1199/990 983/1198/988 1038/1256/1038
+f 985/1202/992 984/1199/990 1038/1257/1038
+f 986/1204/994 985/1202/992 1038/1258/1038
+f 987/1206/996 986/1204/994 1038/1259/1038
+f 988/1208/998 987/1206/996 1038/1260/1038
+f 989/1210/1000 988/1208/998 1038/1261/1038
+f 978/1186/978 989/1210/1000 1038/1262/1038
+s 10
+f 1039/1263/1039 1040/1264/1040 1052/1265/1041 1051/1266/1042
+f 1040/1264/1040 1041/1267/1043 1053/1268/1044 1052/1265/1041
+f 1041/1267/1043 1042/1269/1045 1054/1270/1046 1053/1268/1044
+f 1042/1269/1045 1043/1271/1047 1055/1272/1048 1054/1270/1046
+f 1043/1271/1047 1044/1273/1049 1056/1274/1050 1055/1272/1048
+f 1044/1275/1049 1045/1276/1051 1057/1277/1052 1056/1278/1050
+f 1045/1276/1051 1046/1279/1053 1058/1280/1054 1057/1277/1052
+f 1046/1279/1053 1047/1281/1055 1059/1282/1056 1058/1280/1054
+f 1047/1281/1055 1048/1283/1057 1060/1284/1058 1059/1282/1056
+f 1048/1283/1057 1049/1285/1059 1061/1286/1060 1060/1284/1058
+f 1049/1285/1059 1050/1287/1061 1062/1288/1062 1061/1286/1060
+f 1050/1287/1061 1039/1263/1039 1051/1266/1042 1062/1288/1062
+f 1051/1266/1042 1052/1265/1041 1064/1289/1063 1063/1290/1064
+f 1052/1265/1041 1053/1268/1044 1065/1291/1065 1064/1289/1063
+f 1053/1268/1044 1054/1270/1046 1066/1292/1066 1065/1291/1065
+f 1054/1270/1046 1055/1272/1048 1067/1293/1067 1066/1292/1066
+f 1055/1272/1048 1056/1274/1050 1068/1294/1068 1067/1293/1067
+f 1056/1278/1050 1057/1277/1052 1069/1295/1069 1068/1296/1068
+f 1057/1277/1052 1058/1280/1054 1070/1297/1070 1069/1295/1069
+f 1058/1280/1054 1059/1282/1056 1071/1298/1071 1070/1297/1070
+f 1059/1282/1056 1060/1284/1058 1072/1299/1072 1071/1298/1071
+f 1060/1284/1058 1061/1286/1060 1073/1300/1073 1072/1299/1072
+f 1061/1286/1060 1062/1288/1062 1074/1301/1074 1073/1300/1073
+f 1062/1288/1062 1051/1266/1042 1063/1290/1064 1074/1301/1074
+f 1063/1290/1064 1064/1289/1063 1076/1302/1075 1075/1303/1076
+f 1064/1289/1063 1065/1291/1065 1077/1304/1077 1076/1302/1075
+f 1065/1291/1065 1066/1292/1066 1078/1305/1078 1077/1304/1077
+f 1066/1292/1066 1067/1293/1067 1079/1306/1079 1078/1305/1078
+f 1067/1293/1067 1068/1294/1068 1080/1307/1080 1079/1306/1079
+f 1068/1296/1068 1069/1295/1069 1081/1308/1081 1080/1309/1080
+f 1069/1295/1069 1070/1297/1070 1082/1310/1082 1081/1308/1081
+f 1070/1297/1070 1071/1298/1071 1083/1311/1083 1082/1310/1082
+f 1071/1298/1071 1072/1299/1072 1084/1312/1084 1083/1311/1083
+f 1072/1299/1072 1073/1300/1073 1085/1313/1085 1084/1312/1084
+f 1073/1300/1073 1074/1301/1074 1086/1314/1086 1085/1313/1085
+f 1074/1301/1074 1063/1290/1064 1075/1303/1076 1086/1314/1086
+f 1075/1303/1076 1076/1302/1075 1088/1315/1087 1087/1316/1088
+f 1076/1302/1075 1077/1304/1077 1089/1317/1089 1088/1315/1087
+f 1077/1304/1077 1078/1305/1078 1090/1318/1090 1089/1317/1089
+f 1078/1305/1078 1079/1306/1079 1091/1319/1091 1090/1318/1090
+f 1079/1306/1079 1080/1307/1080 1092/1320/1092 1091/1319/1091
+f 1080/1309/1080 1081/1308/1081 1093/1321/1093 1092/1322/1092
+f 1081/1308/1081 1082/1310/1082 1094/1323/1094 1093/1321/1093
+f 1082/1310/1082 1083/1311/1083 1095/1324/1095 1094/1323/1094
+f 1083/1311/1083 1084/1312/1084 1096/1325/1096 1095/1324/1095
+f 1084/1312/1084 1085/1313/1085 1097/1326/1097 1096/1325/1096
+f 1085/1313/1085 1086/1314/1086 1098/1327/1098 1097/1326/1097
+f 1086/1314/1086 1075/1303/1076 1087/1316/1088 1098/1327/1098
+f 1087/1316/1088 1088/1315/1087 685/794/685 686/796/687
+f 1088/1315/1087 1089/1317/1089 684/792/683 685/794/685
+f 1089/1317/1089 1090/1318/1090 683/788/679 684/792/683
+f 1090/1318/1090 1091/1319/1091 682/789/680 683/788/679
+f 1091/1319/1091 1092/1320/1092 693/811/701 682/789/680
+f 1092/1322/1092 1093/1321/1093 692/808/699 693/810/701
+f 1093/1321/1093 1094/1323/1094 691/806/697 692/808/699
+f 1094/1323/1094 1095/1324/1095 690/804/695 691/806/697
+f 1095/1324/1095 1096/1325/1096 689/802/693 690/804/695
+f 1096/1325/1096 1097/1326/1097 688/800/691 689/802/693
+f 1097/1326/1097 1098/1327/1098 687/798/689 688/800/691
+f 1098/1327/1098 1087/1316/1088 686/796/687 687/798/689
+f 1040/1264/1040 1039/1263/1039 1099/1328/1099
+f 1041/1267/1043 1040/1264/1040 1099/1329/1099
+f 1042/1269/1045 1041/1267/1043 1099/1330/1099
+f 1043/1271/1047 1042/1269/1045 1099/1331/1099
+f 1044/1273/1049 1043/1271/1047 1099/1332/1099
+f 1045/1276/1051 1044/1275/1049 1099/1333/1099
+f 1046/1279/1053 1045/1276/1051 1099/1334/1099
+f 1047/1281/1055 1046/1279/1053 1099/1335/1099
+f 1048/1283/1057 1047/1281/1055 1099/1336/1099
+f 1049/1285/1059 1048/1283/1057 1099/1337/1099
+f 1050/1287/1061 1049/1285/1059 1099/1338/1099
+f 1039/1263/1039 1050/1287/1061 1099/1339/1099
+f 1100/1340/1100 1112/1341/1101 1113/1342/1102 1101/1343/1103
+f 1101/1343/1103 1113/1342/1102 1114/1344/1104 1102/1345/1105
+f 1102/1345/1105 1114/1344/1104 1115/1346/1106 1103/1347/1107
+f 1103/1347/1107 1115/1346/1106 1116/1348/1108 1104/1349/1109
+f 1104/1349/1109 1116/1348/1108 1117/1350/1110 1105/1351/1111
+f 1105/1352/1111 1117/1353/1110 1118/1354/1112 1106/1355/1113
+f 1106/1355/1113 1118/1354/1112 1119/1356/1114 1107/1357/1115
+f 1107/1357/1115 1119/1356/1114 1120/1358/1116 1108/1359/1117
+f 1108/1359/1117 1120/1358/1116 1121/1360/1118 1109/1361/1119
+f 1109/1361/1119 1121/1360/1118 1122/1362/1120 1110/1363/1121
+f 1110/1363/1121 1122/1362/1120 1123/1364/1122 1111/1365/1123
+f 1111/1365/1123 1123/1364/1122 1112/1341/1101 1100/1340/1100
+f 1112/1341/1101 1124/1366/1124 1125/1367/1125 1113/1342/1102
+f 1113/1342/1102 1125/1367/1125 1126/1368/1126 1114/1344/1104
+f 1114/1344/1104 1126/1368/1126 1127/1369/1127 1115/1346/1106
+f 1115/1346/1106 1127/1369/1127 1128/1370/1128 1116/1348/1108
+f 1116/1348/1108 1128/1370/1128 1129/1371/1129 1117/1350/1110
+f 1117/1353/1110 1129/1372/1129 1130/1373/1130 1118/1354/1112
+f 1118/1354/1112 1130/1373/1130 1131/1374/1131 1119/1356/1114
+f 1119/1356/1114 1131/1374/1131 1132/1375/1132 1120/1358/1116
+f 1120/1358/1116 1132/1375/1132 1133/1376/1133 1121/1360/1118
+f 1121/1360/1118 1133/1376/1133 1134/1377/1134 1122/1362/1120
+f 1122/1362/1120 1134/1377/1134 1135/1378/1135 1123/1364/1122
+f 1123/1364/1122 1135/1378/1135 1124/1366/1124 1112/1341/1101
+f 1124/1366/1124 1136/1379/1136 1137/1380/1137 1125/1367/1125
+f 1125/1367/1125 1137/1380/1137 1138/1381/1138 1126/1368/1126
+f 1126/1368/1126 1138/1381/1138 1139/1382/1139 1127/1369/1127
+f 1127/1369/1127 1139/1382/1139 1140/1383/1140 1128/1370/1128
+f 1128/1370/1128 1140/1383/1140 1141/1384/1141 1129/1371/1129
+f 1129/1372/1129 1141/1385/1141 1142/1386/1142 1130/1373/1130
+f 1130/1373/1130 1142/1386/1142 1143/1387/1143 1131/1374/1131
+f 1131/1374/1131 1143/1387/1143 1144/1388/1144 1132/1375/1132
+f 1132/1375/1132 1144/1388/1144 1145/1389/1145 1133/1376/1133
+f 1133/1376/1133 1145/1389/1145 1146/1390/1146 1134/1377/1134
+f 1134/1377/1134 1146/1390/1146 1147/1391/1147 1135/1378/1135
+f 1135/1378/1135 1147/1391/1147 1136/1379/1136 1124/1366/1124
+f 1136/1379/1136 1148/1392/1148 1149/1393/1149 1137/1380/1137
+f 1137/1380/1137 1149/1393/1149 1150/1394/1150 1138/1381/1138
+f 1138/1381/1138 1150/1394/1150 1151/1395/1151 1139/1382/1139
+f 1139/1382/1139 1151/1395/1151 1152/1396/1152 1140/1383/1140
+f 1140/1383/1140 1152/1396/1152 1153/1397/1153 1141/1384/1141
+f 1141/1385/1141 1153/1398/1153 1154/1399/1154 1142/1386/1142
+f 1142/1386/1142 1154/1399/1154 1155/1400/1155 1143/1387/1143
+f 1143/1387/1143 1155/1400/1155 1156/1401/1156 1144/1388/1144
+f 1144/1388/1144 1156/1401/1156 1157/1402/1157 1145/1389/1145
+f 1145/1389/1145 1157/1402/1157 1158/1403/1158 1146/1390/1146
+f 1146/1390/1146 1158/1403/1158 1159/1404/1159 1147/1391/1147
+f 1147/1391/1147 1159/1404/1159 1148/1392/1148 1136/1379/1136
+f 1148/1392/1148 674/795/686 673/793/684 1149/1393/1149
+f 1149/1393/1149 673/793/684 672/791/682 1150/1394/1150
+f 1150/1394/1150 672/791/682 671/787/678 1151/1395/1151
+f 1151/1395/1151 671/787/678 670/790/681 1152/1396/1152
+f 1152/1396/1152 670/790/681 681/812/700 1153/1397/1153
+f 1153/1398/1153 681/809/700 680/807/698 1154/1399/1154
+f 1154/1399/1154 680/807/698 679/805/696 1155/1400/1155
+f 1155/1400/1155 679/805/696 678/803/694 1156/1401/1156
+f 1156/1401/1156 678/803/694 677/801/692 1157/1402/1157
+f 1157/1402/1157 677/801/692 676/799/690 1158/1403/1158
+f 1158/1403/1158 676/799/690 675/797/688 1159/1404/1159
+f 1159/1404/1159 675/797/688 674/795/686 1148/1392/1148
+f 1101/1343/1103 1160/1405/1160 1100/1340/1100
+f 1102/1345/1105 1160/1406/1160 1101/1343/1103
+f 1103/1347/1107 1160/1407/1160 1102/1345/1105
+f 1104/1349/1109 1160/1408/1160 1103/1347/1107
+f 1105/1351/1111 1160/1409/1160 1104/1349/1109
+f 1106/1355/1113 1160/1410/1160 1105/1352/1111
+f 1107/1357/1115 1160/1411/1160 1106/1355/1113
+f 1108/1359/1117 1160/1412/1160 1107/1357/1115
+f 1109/1361/1119 1160/1413/1160 1108/1359/1117
+f 1110/1363/1121 1160/1414/1160 1109/1361/1119
+f 1111/1365/1123 1160/1415/1160 1110/1363/1121
+f 1100/1340/1100 1160/1416/1160 1111/1365/1123
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy.obj.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy.obj.meta
new file mode 100644
index 0000000..3c9bf25
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy.obj.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: 0e8c4400e5a274e79b60fa5a300aab17
+timeCreated: 1503349535
+licenseType: Pro
+ModelImporter:
+  serializedVersion: 22
+  fileIDToRecycleName:
+    100000: //RootNode
+    100002: Andy_GEO
+    400000: //RootNode
+    400002: Andy_GEO
+    2100000: Andy_GEOMat
+    2300000: Andy_GEO
+    3300000: Andy_GEO
+    4300000: Andy_GEO
+  externalObjects: {}
+  materials:
+    importMaterials: 1
+    materialName: 0
+    materialSearch: 1
+    materialLocation: 1
+  animations:
+    legacyGenerateAnimations: 4
+    bakeSimulation: 0
+    resampleCurves: 1
+    optimizeGameObjects: 0
+    motionNodeName: 
+    rigImportErrors: 
+    rigImportWarnings: 
+    animationImportErrors: 
+    animationImportWarnings: 
+    animationRetargetingWarnings: 
+    animationDoRetargetingWarnings: 0
+    importAnimatedCustomProperties: 0
+    animationCompression: 1
+    animationRotationError: 0.5
+    animationPositionError: 0.5
+    animationScaleError: 0.5
+    animationWrapMode: 0
+    extraExposedTransformPaths: []
+    extraUserProperties: []
+    clipAnimations: []
+    isReadable: 1
+  meshes:
+    lODScreenPercentages: []
+    globalScale: 1
+    meshCompression: 0
+    addColliders: 0
+    importVisibility: 1
+    importBlendShapes: 1
+    importCameras: 1
+    importLights: 1
+    swapUVChannels: 0
+    generateSecondaryUV: 0
+    useFileUnits: 1
+    optimizeMeshForGPU: 1
+    keepQuads: 0
+    weldVertices: 1
+    preserveHierarchy: 0
+    secondaryUVAngleDistortion: 8
+    secondaryUVAreaDistortion: 15.000001
+    secondaryUVHardAngle: 88
+    secondaryUVPackMargin: 4
+    useFileScale: 1
+  tangentSpace:
+    normalSmoothAngle: 60
+    normalImportMode: 0
+    tangentImportMode: 3
+    normalCalculationMode: 4
+  importAnimation: 1
+  copyAvatar: 0
+  humanDescription:
+    serializedVersion: 2
+    human: []
+    skeleton: []
+    armTwist: 0.5
+    foreArmTwist: 0.5
+    upperLegTwist: 0.5
+    legTwist: 0.5
+    armStretch: 0.05
+    legStretch: 0.05
+    feetSpacing: 0
+    rootMotionBoneName: 
+    rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+    hasTranslationDoF: 0
+    hasExtraRoot: 0
+    skeletonHasParents: 1
+  lastHumanDescriptionAvatarSource: {instanceID: 0}
+  animationType: 0
+  humanoidOversampling: 1
+  additionalBone: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.obj b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.obj
new file mode 100644
index 0000000..bbc1908
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.obj
@@ -0,0 +1,18 @@
+# This file uses centimeters as units for non-parametric coordinates.
+
+g default
+v -0.100000 -0.000000 0.100000
+v 0.100000 -0.000000 0.100000
+v -0.100000 0.000000 -0.100000
+v 0.100000 0.000000 -0.100000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+s off
+g AndyBlobShadow_GEO
+f 4/4/1 3/3/2 1/1/3 2/2/4
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.obj.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.obj.meta
new file mode 100644
index 0000000..d1832e6
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.obj.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: 1d7855df49bfa483e8f1d8478d4b233a
+timeCreated: 1503349555
+licenseType: Pro
+ModelImporter:
+  serializedVersion: 22
+  fileIDToRecycleName:
+    100000: //RootNode
+    100002: AndyBlobShadow_GEO
+    400000: //RootNode
+    400002: AndyBlobShadow_GEO
+    2100000: AndyBlobShadow_GEOMat
+    2300000: AndyBlobShadow_GEO
+    3300000: AndyBlobShadow_GEO
+    4300000: AndyBlobShadow_GEO
+  externalObjects: {}
+  materials:
+    importMaterials: 1
+    materialName: 0
+    materialSearch: 1
+    materialLocation: 1
+  animations:
+    legacyGenerateAnimations: 4
+    bakeSimulation: 0
+    resampleCurves: 1
+    optimizeGameObjects: 0
+    motionNodeName: 
+    rigImportErrors: 
+    rigImportWarnings: 
+    animationImportErrors: 
+    animationImportWarnings: 
+    animationRetargetingWarnings: 
+    animationDoRetargetingWarnings: 0
+    importAnimatedCustomProperties: 0
+    animationCompression: 1
+    animationRotationError: 0.5
+    animationPositionError: 0.5
+    animationScaleError: 0.5
+    animationWrapMode: 0
+    extraExposedTransformPaths: []
+    extraUserProperties: []
+    clipAnimations: []
+    isReadable: 1
+  meshes:
+    lODScreenPercentages: []
+    globalScale: 1
+    meshCompression: 0
+    addColliders: 0
+    importVisibility: 1
+    importBlendShapes: 1
+    importCameras: 1
+    importLights: 1
+    swapUVChannels: 0
+    generateSecondaryUV: 0
+    useFileUnits: 1
+    optimizeMeshForGPU: 1
+    keepQuads: 0
+    weldVertices: 1
+    preserveHierarchy: 0
+    secondaryUVAngleDistortion: 8
+    secondaryUVAreaDistortion: 15.000001
+    secondaryUVHardAngle: 88
+    secondaryUVPackMargin: 4
+    useFileScale: 1
+  tangentSpace:
+    normalSmoothAngle: 60
+    normalImportMode: 0
+    tangentImportMode: 3
+    normalCalculationMode: 4
+  importAnimation: 1
+  copyAvatar: 0
+  humanDescription:
+    serializedVersion: 2
+    human: []
+    skeleton: []
+    armTwist: 0.5
+    foreArmTwist: 0.5
+    upperLegTwist: 0.5
+    legTwist: 0.5
+    armStretch: 0.05
+    legStretch: 0.05
+    feetSpacing: 0
+    rootMotionBoneName: 
+    rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+    hasTranslationDoF: 0
+    hasExtraRoot: 0
+    skeletonHasParents: 1
+  lastHumanDescriptionAvatarSource: {instanceID: 0}
+  animationType: 0
+  humanoidOversampling: 1
+  additionalBone: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.png b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.png
new file mode 100644
index 0000000..45a09ce
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.png
Binary files differ
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.png.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.png.meta
new file mode 100644
index 0000000..d5099f6
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyBlobShadow.png.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: 19b4db079e5fe418bb3ace35ae195521
+timeCreated: 1503349563
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyMaterial.mat b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyMaterial.mat
new file mode 100644
index 0000000..9bc2fa1
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyMaterial.mat
@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: AndyMaterial
+  m_Shader: {fileID: 4800000, guid: c4790e12ed76c486d9fd9d9ccefecb25, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: cc3e4b93718924afa9aae49c0c7fb48f, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlobalLightEstimation: -1.56
+    - _GlossMapScale: 1
+    - _Glossiness: 1
+    - _GlossyReflections: 1
+    - _Metallic: 1
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyMaterial.mat.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyMaterial.mat.meta
new file mode 100644
index 0000000..4e8065c
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyMaterial.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 572e1e52514434db5a8ce3957db3b3fd
+timeCreated: 1503349636
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyShadowMaterial.mat b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyShadowMaterial.mat
new file mode 100644
index 0000000..d2c984f
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyShadowMaterial.mat
@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: AndyShadowMaterial
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: _ALPHABLEND_ON _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: 3000
+  stringTagMap:
+    RenderType: Transparent
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 19b4db079e5fe418bb3ace35ae195521, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 10
+    - _GlossMapScale: 0
+    - _Glossiness: 0
+    - _GlossyReflections: 0
+    - _Metallic: 0
+    - _Mode: 2
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 0
+    - _SrcBlend: 5
+    - _UVSec: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyShadowMaterial.mat.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyShadowMaterial.mat.meta
new file mode 100644
index 0000000..c36d88a
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/AndyShadowMaterial.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 0130982ecc98e47e4a78ec2f85196be5
+timeCreated: 1503351067
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy_DiffuseLit.png b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy_DiffuseLit.png
new file mode 100644
index 0000000..e0eca46
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy_DiffuseLit.png
Binary files differ
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy_DiffuseLit.png.meta b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy_DiffuseLit.png.meta
new file mode 100644
index 0000000..d2e8664
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Andy/Andy_DiffuseLit.png.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: cc3e4b93718924afa9aae49c0c7fb48f
+timeCreated: 1503349545
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/PlaneGrid.mat b/Assets/GoogleARCore/HelloARExample/Materials/PlaneGrid.mat
new file mode 100644
index 0000000..7765a7d
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/PlaneGrid.mat
@@ -0,0 +1,85 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: PlaneGrid
+  m_Shader: {fileID: 4800000, guid: f3570630f31ec4223a549b595d8cbb53, type: 3}
+  m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 10, y: 10}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 881f092f5ba194ed69b1de192fc521ce, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 10
+    - _GlossMapScale: 1
+    - _Glossiness: 0
+    - _GlossyReflections: 1
+    - _InvFade: 1
+    - _Metallic: 0.323
+    - _Mode: 3
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _UvRotation: 3.39
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 0, g: 0.3254902, b: 0.34509805, a: 0.716}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _GridColor: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 1}
+    - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+    - _TintColor: {r: 0.9264706, g: 0, b: 0, a: 0.5}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/PlaneGrid.mat.meta b/Assets/GoogleARCore/HelloARExample/Materials/PlaneGrid.mat.meta
new file mode 100644
index 0000000..b57bb23
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/PlaneGrid.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 92b1ca249edc047509db2c7bc05789ef
+timeCreated: 1501723608
+licenseType: Free
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/PointCloud.mat b/Assets/GoogleARCore/HelloARExample/Materials/PointCloud.mat
new file mode 100644
index 0000000..a1e7a03
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/PointCloud.mat
@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: PointCloud
+  m_Shader: {fileID: 4800000, guid: 9d889a88b50cc4d65b025d5068d78df6, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    - point_size: 5
+    m_Colors:
+    - _Color: {r: 0.12156863, g: 0.7372549, b: 0.8235294, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/PointCloud.mat.meta b/Assets/GoogleARCore/HelloARExample/Materials/PointCloud.mat.meta
new file mode 100644
index 0000000..6faa2a4
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/PointCloud.mat.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: fb4fbd1b92e244df2bc6f43deb7a57a2
+timeCreated: 1502314565
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders.meta b/Assets/GoogleARCore/HelloARExample/Materials/Shaders.meta
new file mode 100644
index 0000000..e1ea327
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 909e296923a6a4ac49053ce9b49a5522
+folderAsset: yes
+timeCreated: 1502418383
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileDiffuseWithLightEstimation.shader b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileDiffuseWithLightEstimation.shader
new file mode 100644
index 0000000..12c2c7e
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileDiffuseWithLightEstimation.shader
@@ -0,0 +1,39 @@
+Shader "ARCore/DiffuseWithLightEstimateion"
+{
+    Properties
+    {
+        _MainTex ("Base (RGB)", 2D) = "white" {}
+    }
+
+    SubShader 
+    {
+        Tags { "RenderType"="Opaque" }
+        LOD 150
+
+        CGPROGRAM
+        #pragma surface surf Lambert noforwardadd finalcolor:lightEstimation
+
+        sampler2D _MainTex;
+        fixed _GlobalLightEstimation;
+
+        struct Input
+        {
+            float2 uv_MainTex;
+        };
+
+        void lightEstimation(Input IN, SurfaceOutput o, inout fixed4 color)
+        {
+            color *= _GlobalLightEstimation;
+        }
+
+        void surf (Input IN, inout SurfaceOutput o)
+        {
+            fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
+            o.Albedo = c.rgb;
+            o.Alpha = c.a;
+        }
+        ENDCG
+    }
+
+    Fallback "Mobile/VertexLit"
+}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileDiffuseWithLightEstimation.shader.meta b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileDiffuseWithLightEstimation.shader.meta
new file mode 100644
index 0000000..c9ac2a7
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileDiffuseWithLightEstimation.shader.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c4790e12ed76c486d9fd9d9ccefecb25
+timeCreated: 1503343346
+licenseType: Pro
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileSpecularWithLightEstimation.shader b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileSpecularWithLightEstimation.shader
new file mode 100644
index 0000000..ecc235d
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileSpecularWithLightEstimation.shader
@@ -0,0 +1,57 @@
+Shader "ARCore/SpecularWithLightEstimation" 
+{
+    Properties 
+    {
+        _Shininess ("Shininess", Range (0.03, 1)) = 0.078125
+        _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
+        [NoScaleOffset] _BumpMap ("Normalmap", 2D) = "bump" {}
+    }
+    SubShader 
+    {
+        Tags { "RenderType"="Opaque" }
+        LOD 250
+
+        CGPROGRAM
+        #pragma surface surf MobileBlinnPhong exclude_path:prepass nolightmap noforwardadd halfasview interpolateview finalcolor:lightEstimation
+
+        inline fixed4 LightingMobileBlinnPhong (SurfaceOutput s, fixed3 lightDir, fixed3 halfDir, fixed atten)
+        {
+            fixed diff = max (0, dot (s.Normal, lightDir));
+            fixed nh = max (0, dot (s.Normal, halfDir));
+            fixed spec = pow (nh, s.Specular*128) * s.Gloss;
+
+            fixed4 c;
+            c.rgb = (s.Albedo * _LightColor0.rgb * diff + _LightColor0.rgb * spec) * atten;
+            UNITY_OPAQUE_ALPHA(c.a);
+            return c;
+        }
+
+        sampler2D _MainTex;
+        sampler2D _BumpMap;
+        half _Shininess;
+        fixed _GlobalLightEstimation;
+
+        struct Input
+        {
+            float2 uv_MainTex;
+        };
+
+        void lightEstimation(Input IN, SurfaceOutput o, inout fixed4 color)
+        {
+            color *= _GlobalLightEstimation;
+        }
+
+        void surf (Input IN, inout SurfaceOutput o)
+        {
+            fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
+            o.Albedo = tex.rgb;
+            o.Gloss = tex.a;
+            o.Alpha = tex.a;
+            o.Specular = _Shininess;
+            o.Normal = UnpackNormal (tex2D(_BumpMap, IN.uv_MainTex));
+        }
+        ENDCG
+    }
+
+    FallBack "Mobile/VertexLit"
+}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileSpecularWithLightEstimation.shader.meta b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileSpecularWithLightEstimation.shader.meta
new file mode 100644
index 0000000..ee313d4
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/MobileSpecularWithLightEstimation.shader.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 6a07f07d8405049668f17fe8c32b7dc0
+timeCreated: 1503358089
+licenseType: Pro
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PlaneGrid.shader b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PlaneGrid.shader
new file mode 100644
index 0000000..4163b4a
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PlaneGrid.shader
@@ -0,0 +1,67 @@
+Shader "ARCore/PlaneGrid"
+{
+    Properties
+    {
+        _MainTex ("Texture", 2D) = "white" {}
+        _GridColor ("Grid Color", Color) = (1.0, 1.0, 0.0, 1.0)
+        _UvRotation ("UV Rotation", float) = 30
+    }
+
+    SubShader
+    {
+        Tags { "Queue"="Transparent" "RenderType"="Transparent" }
+        Blend SrcAlpha OneMinusSrcAlpha
+        ZTest on
+        ZWrite off
+
+        Pass
+        {
+            CGPROGRAM
+            #pragma vertex vert
+            #pragma fragment frag
+            
+            #include "UnityCG.cginc"
+
+            struct appdata
+            {
+                float4 vertex : POSITION;
+                float2 uv : TEXCOORD0;
+                fixed4 color : COLOR;
+            };
+
+            struct v2f
+            {
+                float4 vertex : SV_POSITION;
+                float2 uv : TEXCOORD0;
+                fixed4 color : COLOR;
+            };
+
+            sampler2D _MainTex;
+            float4 _MainTex_ST;
+            float4 _GridColor;
+            fixed _UvRotation;
+
+            v2f vert (appdata v)
+            {
+                v2f o;
+                o.vertex = UnityObjectToClipPos(v.vertex);
+
+                fixed cosr = cos(_UvRotation);
+                fixed sinr = sin(_UvRotation);
+                fixed2x2 uvrotation = fixed2x2(cosr, -sinr, sinr, cosr);
+
+                float2 uv = mul(UNITY_MATRIX_M, v.vertex).xz * _MainTex_ST.xy;
+                o.uv = mul(uvrotation, uv);
+                o.color = v.color;
+                return o;
+            }
+            
+            fixed4 frag (v2f i) : SV_Target
+            {
+                fixed4 col = tex2D(_MainTex, i.uv);
+                return fixed4(_GridColor.rgb, col.r * i.color.a);
+            }
+            ENDCG
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PlaneGrid.shader.meta b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PlaneGrid.shader.meta
new file mode 100644
index 0000000..0d0e588
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PlaneGrid.shader.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f3570630f31ec4223a549b595d8cbb53
+timeCreated: 1502740659
+licenseType: Pro
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PointCloud.shader b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PointCloud.shader
new file mode 100644
index 0000000..ba01b92
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PointCloud.shader
@@ -0,0 +1,48 @@
+// Don't remove the following line. It is used to bypass Unity
+// upgrader change. This is necessary to make sure the shader
+// continues to compile on Unity 5.2
+// UNITY_SHADER_NO_UPGRADE
+Shader "ARCore/PointCloud" {
+Properties{
+        _PointSize("Point Size", Float) = 5.0
+        _Color ("PointCloud Color", Color) = (0.121, 0.737, 0.823, 1.0)
+}
+  SubShader {
+     Pass {
+        CGPROGRAM
+        #pragma vertex vert
+        #pragma fragment frag
+
+        #include "UnityCG.cginc"
+
+        struct appdata
+        {
+           float4 vertex : POSITION;
+        };
+
+        struct v2f
+        {
+           float4 vertex : SV_POSITION;
+           float size : PSIZE;
+        };
+
+        float _PointSize;
+        fixed4 _Color;
+
+        v2f vert (appdata v)
+        {
+           v2f o;
+           o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
+           o.size = _PointSize;
+
+           return o;
+        }
+
+        fixed4 frag (v2f i) : SV_Target
+        {
+           return _Color;
+        }
+        ENDCG
+     }
+  }
+}
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PointCloud.shader.meta b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PointCloud.shader.meta
new file mode 100644
index 0000000..9d7a21c
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Shaders/PointCloud.shader.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 9d889a88b50cc4d65b025d5068d78df6
+timeCreated: 1502314526
+licenseType: Pro
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Textures.meta b/Assets/GoogleARCore/HelloARExample/Materials/Textures.meta
new file mode 100644
index 0000000..d775761
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Textures.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 8e2c94779c57748c190f62c238d6d6cc
+folderAsset: yes
+timeCreated: 1502418352
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Textures/Icon.png b/Assets/GoogleARCore/HelloARExample/Materials/Textures/Icon.png
new file mode 100644
index 0000000..2160673
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Textures/Icon.png
Binary files differ
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Textures/Icon.png.meta b/Assets/GoogleARCore/HelloARExample/Materials/Textures/Icon.png.meta
new file mode 100644
index 0000000..aac0d95
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Textures/Icon.png.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: 067075c98c3db4c7d9ba9b50cba2f57e
+timeCreated: 1503539044
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Textures/TriGrid.png b/Assets/GoogleARCore/HelloARExample/Materials/Textures/TriGrid.png
new file mode 100644
index 0000000..d85eedf
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Textures/TriGrid.png
Binary files differ
diff --git a/Assets/GoogleARCore/HelloARExample/Materials/Textures/TriGrid.png.meta b/Assets/GoogleARCore/HelloARExample/Materials/Textures/TriGrid.png.meta
new file mode 100644
index 0000000..68b49da
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Materials/Textures/TriGrid.png.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: 881f092f5ba194ed69b1de192fc521ce
+timeCreated: 1503004084
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapU: -1
+    wrapV: -1
+    wrapW: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Prefabs.meta b/Assets/GoogleARCore/HelloARExample/Prefabs.meta
new file mode 100644
index 0000000..8dc439d
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Prefabs.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: a49f0770e9fb042259c00241828b5858
+folderAsset: yes
+timeCreated: 1501206109
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Prefabs/Andy.prefab b/Assets/GoogleARCore/HelloARExample/Prefabs/Andy.prefab
new file mode 100644
index 0000000..ed607d8
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Prefabs/Andy.prefab
@@ -0,0 +1,255 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1190091649889860}
+  m_IsPrefabParent: 1
+--- !u!1 &1190091649889860
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4280309514915974}
+  - component: {fileID: 114460997975901862}
+  m_Layer: 0
+  m_Name: Andy
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1224761706696916
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4553087980304550}
+  - component: {fileID: 33515778104872740}
+  - component: {fileID: 23357309348918826}
+  m_Layer: 0
+  m_Name: AndyBlobShadow_GEO
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1249353966497310
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4053639959727920}
+  m_Layer: 0
+  m_Name: Andy
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1313174400183544
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4579515492020152}
+  - component: {fileID: 33800310737437648}
+  - component: {fileID: 23808477452200100}
+  m_Layer: 0
+  m_Name: Andy_GEO
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1693177947256918
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4468902080585984}
+  m_Layer: 0
+  m_Name: AndyBlobShadow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4053639959727920
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1249353966497310}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4579515492020152}
+  m_Father: {fileID: 4280309514915974}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4280309514915974
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1190091649889860}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4468902080585984}
+  - {fileID: 4053639959727920}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4468902080585984
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1693177947256918}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4553087980304550}
+  m_Father: {fileID: 4280309514915974}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4553087980304550
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1224761706696916}
+  m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4468902080585984}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4579515492020152
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1313174400183544}
+  m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4053639959727920}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23357309348918826
+MeshRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1224761706696916}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_Materials:
+  - {fileID: 2100000, guid: 0130982ecc98e47e4a78ec2f85196be5, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!23 &23808477452200100
+MeshRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1313174400183544}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_Materials:
+  - {fileID: 2100000, guid: 572e1e52514434db5a8ce3957db3b3fd, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &33515778104872740
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1224761706696916}
+  m_Mesh: {fileID: 4300000, guid: 1d7855df49bfa483e8f1d8478d4b233a, type: 3}
+--- !u!33 &33800310737437648
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1313174400183544}
+  m_Mesh: {fileID: 4300000, guid: 0e8c4400e5a274e79b60fa5a300aab17, type: 3}
+--- !u!114 &114460997975901862
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1190091649889860}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4f72ee472a4654c10a96aeb3fcf25bcf, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/Assets/GoogleARCore/HelloARExample/Prefabs/Andy.prefab.meta b/Assets/GoogleARCore/HelloARExample/Prefabs/Andy.prefab.meta
new file mode 100644
index 0000000..ccc8a62
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Prefabs/Andy.prefab.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 242a320930b81430ba610f94f9b760c8
+timeCreated: 1503351405
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Prefabs/TrackedPlaneVisualizer.prefab b/Assets/GoogleARCore/HelloARExample/Prefabs/TrackedPlaneVisualizer.prefab
new file mode 100644
index 0000000..3bca1a2
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Prefabs/TrackedPlaneVisualizer.prefab
@@ -0,0 +1,96 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1654175882956584}
+  m_IsPrefabParent: 1
+--- !u!1 &1654175882956584
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4055847820020234}
+  - component: {fileID: 33340294062673050}
+  - component: {fileID: 23646549736039258}
+  - component: {fileID: 114776205485222536}
+  m_Layer: 0
+  m_Name: TrackedPlaneVisualizer
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4055847820020234
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1654175882956584}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &23646549736039258
+MeshRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1654175882956584}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_Materials:
+  - {fileID: 2100000, guid: 92b1ca249edc047509db2c7bc05789ef, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_PreserveUVs: 1
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &33340294062673050
+MeshFilter:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1654175882956584}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &114776205485222536
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1654175882956584}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 23e3f20de6c2e405a93736a38f74b0fb, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/Assets/GoogleARCore/HelloARExample/Prefabs/TrackedPlaneVisualizer.prefab.meta b/Assets/GoogleARCore/HelloARExample/Prefabs/TrackedPlaneVisualizer.prefab.meta
new file mode 100644
index 0000000..71e4cdd
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Prefabs/TrackedPlaneVisualizer.prefab.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 6a35c744e5010405c847fad90282d2be
+timeCreated: 1502832523
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Roboto-Regular.ttf b/Assets/GoogleARCore/HelloARExample/Roboto-Regular.ttf
new file mode 100755
index 0000000..2c97eea
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Roboto-Regular.ttf
Binary files differ
diff --git a/Assets/GoogleARCore/HelloARExample/Roboto-Regular.ttf.meta b/Assets/GoogleARCore/HelloARExample/Roboto-Regular.ttf.meta
new file mode 100644
index 0000000..4eb2714
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Roboto-Regular.ttf.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: f66655b38428d40769e9e41ee237cbdc
+timeCreated: 1503346684
+licenseType: Free
+TrueTypeFontImporter:
+  externalObjects: {}
+  serializedVersion: 4
+  fontSize: 16
+  forceTextureCase: -2
+  characterSpacing: 0
+  characterPadding: 1
+  includeFontData: 1
+  fontName: Roboto
+  fontNames:
+  - Roboto
+  fallbackFontReferences: []
+  customCharacters: 
+  fontRenderingMode: 0
+  ascentCalculationMode: 1
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scenes.meta b/Assets/GoogleARCore/HelloARExample/Scenes.meta
new file mode 100644
index 0000000..1cfed07
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scenes.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 70b98779a4ac04ee98945fbc05edc737
+folderAsset: yes
+timeCreated: 1501206008
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scenes/HelloAR.unity b/Assets/GoogleARCore/HelloARExample/Scenes/HelloAR.unity
new file mode 100644
index 0000000..483c4c0
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scenes/HelloAR.unity
@@ -0,0 +1,661 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_OcclusionBakeSettings:
+    smallestOccluder: 5
+    smallestHole: 0.25
+    backfaceThreshold: 100
+  m_SceneGUID: 00000000000000000000000000000000
+  m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 8
+  m_Fog: 0
+  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_FogMode: 3
+  m_FogDensity: 0.01
+  m_LinearFogStart: 0
+  m_LinearFogEnd: 300
+  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+  m_AmbientIntensity: 1
+  m_AmbientMode: 0
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+  m_HaloStrength: 0.5
+  m_FlareStrength: 1
+  m_FlareFadeSpeed: 3
+  m_HaloTexture: {fileID: 0}
+  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+  m_DefaultReflectionMode: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0.4366757, g: 0.48427194, b: 0.5645252, a: 1}
+--- !u!157 &3
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 11
+  m_GIWorkflowMode: 0
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_TemporalCoherenceThreshold: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 1
+    m_EnableRealtimeLightmaps: 1
+  m_LightmapEditorSettings:
+    serializedVersion: 9
+    m_Resolution: 2
+    m_BakeResolution: 40
+    m_TextureWidth: 1024
+    m_TextureHeight: 1024
+    m_AO: 0
+    m_AOMaxDistance: 1
+    m_CompAOExponent: 1
+    m_CompAOExponentDirect: 0
+    m_Padding: 2
+    m_LightmapParameters: {fileID: 0}
+    m_LightmapsBakeMode: 1
+    m_TextureCompression: 1
+    m_FinalGather: 0
+    m_FinalGatherFiltering: 1
+    m_FinalGatherRayCount: 256
+    m_ReflectionCompression: 2
+    m_MixedBakeMode: 2
+    m_BakeBackend: 0
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 500
+    m_PVRBounces: 2
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVRFilteringMode: 1
+    m_PVRCulling: 1
+    m_PVRFilteringGaussRadiusDirect: 1
+    m_PVRFilteringGaussRadiusIndirect: 5
+    m_PVRFilteringGaussRadiusAO: 2
+    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+    m_PVRFilteringAtrousPositionSigmaIndirect: 2
+    m_PVRFilteringAtrousPositionSigmaAO: 1
+  m_LightingDataAsset: {fileID: 0}
+  m_UseShadowmask: 1
+--- !u!196 &4
+NavMeshSettings:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_BuildSettings:
+    serializedVersion: 2
+    agentTypeID: 0
+    agentRadius: 0.5
+    agentHeight: 2
+    agentSlope: 45
+    agentClimb: 0.4
+    ledgeDropHeight: 0
+    maxJumpAcrossDistance: 0
+    minRegionArea: 2
+    manualCellSize: 0
+    cellSize: 0.16666667
+    manualTileSize: 0
+    tileSize: 256
+    accuratePlacement: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1001 &487034900
+Prefab:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 4461716624848968, guid: cf498fc35b538884db557f7a9a2c0ef9, type: 2}
+      propertyPath: m_RootOrder
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 1248447649449928, guid: cf498fc35b538884db557f7a9a2c0ef9, type: 2}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
+    m_RemovedComponents:
+    - {fileID: 114451930413443482, guid: cf498fc35b538884db557f7a9a2c0ef9, type: 2}
+  m_ParentPrefab: {fileID: 100100000, guid: cf498fc35b538884db557f7a9a2c0ef9, type: 2}
+  m_IsPrefabParent: 0
+--- !u!1 &487034901 stripped
+GameObject:
+  m_PrefabParentObject: {fileID: 1248447649449928, guid: cf498fc35b538884db557f7a9a2c0ef9,
+    type: 2}
+  m_PrefabInternal: {fileID: 487034900}
+--- !u!114 &487034902
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 487034901}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 92a4cf446a0c7334aaceb5457be27894, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!1 &557169198
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 557169200}
+  - component: {fileID: 557169199}
+  m_Layer: 0
+  m_Name: Directional light
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!108 &557169199
+Light:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 557169198}
+  m_Enabled: 1
+  serializedVersion: 8
+  m_Type: 1
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_Intensity: 0.7
+  m_Range: 10
+  m_SpotAngle: 30
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 0
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.2
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_Lightmapping: 4
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 1
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!4 &557169200
+Transform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 557169198}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+  m_LocalPosition: {x: 0, y: 10, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!1 &627916101
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 627916102}
+  - component: {fileID: 627916103}
+  m_Layer: 0
+  m_Name: ExampleController
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &627916102
+Transform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 627916101}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &627916103
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 627916101}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 26074b15f9c13404d858bfedb8b8c00c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_firstPersonCamera: {fileID: 989943870}
+  m_trackedPlanePrefab: {fileID: 1654175882956584, guid: 6a35c744e5010405c847fad90282d2be,
+    type: 2}
+  m_andyAndroidPrefab: {fileID: 1190091649889860, guid: 242a320930b81430ba610f94f9b760c8,
+    type: 2}
+  m_searchingForPlaneUI: {fileID: 1133631540}
+--- !u!20 &989943870 stripped
+Camera:
+  m_PrefabParentObject: {fileID: 20362215073346118, guid: c10877f7cd5764de18d46d7b777d1faa,
+    type: 2}
+  m_PrefabInternal: {fileID: 1663876203}
+--- !u!1 &1133631540
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 1133631541}
+  - component: {fileID: 1133631543}
+  - component: {fileID: 1133631542}
+  m_Layer: 5
+  m_Name: SnackBar
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1133631541
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1133631540}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: -223, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1764419356}
+  m_Father: {fileID: 1608144857}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: 0, y: 80}
+  m_SizeDelta: {x: 0, y: 160}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1133631542
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1133631540}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.74509805}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!222 &1133631543
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1133631540}
+--- !u!1 &1233457656
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 1233457659}
+  - component: {fileID: 1233457658}
+  - component: {fileID: 1233457657}
+  m_Layer: 0
+  m_Name: EventSystem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1233457657
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1233457656}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
+--- !u!114 &1233457658
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1233457656}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_FirstSelected: {fileID: 0}
+  m_sendNavigationEvents: 1
+  m_DragThreshold: 5
+--- !u!4 &1233457659
+Transform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1233457656}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1608144853
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 1608144857}
+  - component: {fileID: 1608144856}
+  - component: {fileID: 1608144855}
+  - component: {fileID: 1608144854}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1608144854
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1608144853}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &1608144855
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1608144853}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 0
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 1
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+--- !u!223 &1608144856
+Canvas:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1608144853}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!224 &1608144857
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1608144853}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 574, y: 303, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1133631541}
+  m_Father: {fileID: 0}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1001 &1663876203
+Prefab:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 4892153982037908, guid: c10877f7cd5764de18d46d7b777d1faa, type: 2}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 100100000, guid: c10877f7cd5764de18d46d7b777d1faa, type: 2}
+  m_IsPrefabParent: 0
+--- !u!1 &1759795985
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 1759795989}
+  - component: {fileID: 1759795988}
+  - component: {fileID: 1759795986}
+  - component: {fileID: 1759795987}
+  m_Layer: 0
+  m_Name: PointCloud
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!23 &1759795986
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1759795985}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_Materials:
+  - {fileID: 2100000, guid: fb4fbd1b92e244df2bc6f43deb7a57a2, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_PreserveUVs: 1
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!114 &1759795987
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1759795985}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4d5645b79cc5e4251827ffe171ed4658, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!33 &1759795988
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1759795985}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1759795989
+Transform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1759795985}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1764419355
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 1764419356}
+  - component: {fileID: 1764419358}
+  - component: {fileID: 1764419357}
+  m_Layer: 5
+  m_Name: SearchingText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1764419356
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1764419355}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -494, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1133631541}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 80, y: 0}
+  m_SizeDelta: {x: 600.4, y: 100}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &1764419357
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1764419355}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: f66655b38428d40769e9e41ee237cbdc, type: 3}
+    m_FontSize: 46
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 0
+    m_MaxSize: 72
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "Searching for surfaces\u2026"
+--- !u!222 &1764419358
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1764419355}
diff --git a/Assets/GoogleARCore/HelloARExample/Scenes/HelloAR.unity.meta b/Assets/GoogleARCore/HelloARExample/Scenes/HelloAR.unity.meta
new file mode 100644
index 0000000..7050de6
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scenes/HelloAR.unity.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e6a6fa04348cb45c9b0221eb19c946da
+timeCreated: 1501723683
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts.meta b/Assets/GoogleARCore/HelloARExample/Scripts.meta
new file mode 100644
index 0000000..465af43
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 9bdaf1631fbbf45988be2a4ea863865f
+folderAsset: yes
+timeCreated: 1501723747
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/HelloARController.cs b/Assets/GoogleARCore/HelloARExample/Scripts/HelloARController.cs
new file mode 100644
index 0000000..dacadd7
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/HelloARController.cs
@@ -0,0 +1,199 @@
+//-----------------------------------------------------------------------
+// <copyright file="HelloARController.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore.HelloAR
+{
+    using System.Collections.Generic;
+    using UnityEngine;
+    using UnityEngine.Rendering;
+    using GoogleARCore;
+
+    /// <summary>
+    /// Controlls the HelloAR example.
+    /// </summary>
+    public class HelloARController : MonoBehaviour
+    {
+        /// <summary>
+        /// The first-person camera being used to render the passthrough camera.
+        /// </summary>
+        public Camera m_firstPersonCamera;
+
+        /// <summary>
+        /// A prefab for tracking and visualizing detected planes.
+        /// </summary>
+        public GameObject m_trackedPlanePrefab;
+
+        /// <summary>
+        /// A model to place when a raycast from a user touch hits a plane.
+        /// </summary>
+        public GameObject m_andyAndroidPrefab;
+
+        /// <summary>
+        /// A gameobject parenting UI for displaying the "searching for planes" snackbar.
+        /// </summary>
+        public GameObject m_searchingForPlaneUI;
+
+        private List<TrackedPlane> m_newPlanes = new List<TrackedPlane>();
+
+        private List<TrackedPlane> m_allPlanes = new List<TrackedPlane>();
+
+        private Color[] m_planeColors = new Color[] {
+            new Color(1.0f, 1.0f, 1.0f),
+            new Color(0.956f, 0.262f, 0.211f),
+            new Color(0.913f, 0.117f, 0.388f),
+            new Color(0.611f, 0.152f, 0.654f),
+            new Color(0.403f, 0.227f, 0.717f),
+            new Color(0.247f, 0.317f, 0.709f),
+            new Color(0.129f, 0.588f, 0.952f),
+            new Color(0.011f, 0.662f, 0.956f),
+            new Color(0f, 0.737f, 0.831f),
+            new Color(0f, 0.588f, 0.533f),
+            new Color(0.298f, 0.686f, 0.313f),
+            new Color(0.545f, 0.764f, 0.290f),
+            new Color(0.803f, 0.862f, 0.223f),
+            new Color(1.0f, 0.921f, 0.231f),
+            new Color(1.0f, 0.756f, 0.027f)
+        };
+
+        /// <summary>
+        /// The Unity Update() method.
+        /// </summary>
+        public void Update ()
+        {
+            _QuitOnConnectionErrors();
+
+            // The tracking state must be FrameTrackingState.Tracking in order to access the Frame.
+            if (Frame.TrackingState != FrameTrackingState.Tracking)
+            {
+                const int LOST_TRACKING_SLEEP_TIMEOUT = 15;
+                Screen.sleepTimeout = LOST_TRACKING_SLEEP_TIMEOUT;
+                return;
+            }
+
+            Screen.sleepTimeout = SleepTimeout.NeverSleep;
+            Frame.GetNewPlanes(ref m_newPlanes);
+
+            // Iterate over planes found in this frame and instantiate corresponding GameObjects to visualize them.
+            for (int i = 0; i < m_newPlanes.Count; i++)
+            {
+                // Instantiate a plane visualization prefab and set it to track the new plane. The transform is set to
+                // the origin with an identity rotation since the mesh for our prefab is updated in Unity World
+                // coordinates.
+                GameObject planeObject = Instantiate(m_trackedPlanePrefab, Vector3.zero, Quaternion.identity,
+                    transform);
+                planeObject.GetComponent<TrackedPlaneVisualizer>().SetTrackedPlane(m_newPlanes[i]);
+
+                // Apply a random color and grid rotation.
+                planeObject.GetComponent<Renderer>().material.SetColor("_GridColor", m_planeColors[Random.Range(0,
+                    m_planeColors.Length - 1)]);
+                planeObject.GetComponent<Renderer>().material.SetFloat("_UvRotation", Random.Range(0.0f, 360.0f));
+            }
+
+            // Disable the snackbar UI when no planes are valid.
+            bool showSearchingUI = true;
+            Frame.GetAllPlanes(ref m_allPlanes);
+            for (int i = 0; i < m_allPlanes.Count; i++)
+            {
+                if (m_allPlanes[i].IsValid)
+                {
+                    showSearchingUI = false;
+                    break;
+                }
+            }
+
+            m_searchingForPlaneUI.SetActive(showSearchingUI);
+
+            Touch touch;
+            if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began)
+            {
+                return;
+            }
+
+            TrackableHit hit;
+            TrackableHitFlag raycastFilter = TrackableHitFlag.PlaneWithinBounds | TrackableHitFlag.PlaneWithinPolygon;
+
+            if (Session.Raycast(m_firstPersonCamera.ScreenPointToRay(touch.position), raycastFilter, out hit))
+            {
+                // Create an anchor to allow ARCore to track the hitpoint as understanding of the physical
+                // world evolves.
+                var anchor = Session.CreateAnchor(hit.Point, Quaternion.identity);
+
+                // Intanstiate an Andy Android object as a child of the anchor; it's transform will now benefit
+                // from the anchor's tracking.
+                var andyObject = Instantiate(m_andyAndroidPrefab, hit.Point, Quaternion.identity,
+                    anchor.transform);
+
+                // Andy should look at the camera but still be flush with the plane.
+                andyObject.transform.LookAt(m_firstPersonCamera.transform);
+                andyObject.transform.rotation = Quaternion.Euler(0.0f,
+                    andyObject.transform.rotation.eulerAngles.y, andyObject.transform.rotation.z);
+
+                // Use a plane attachment component to maintain Andy's y-offset from the plane
+                // (occurs after anchor updates).
+                andyObject.GetComponent<PlaneAttachment>().Attach(hit.Plane);
+            }
+        }
+
+        /// <summary>
+        /// Quit the application if there was a connection error for the ARCore session.
+        /// </summary>
+        private void _QuitOnConnectionErrors()
+        {
+            // Do not update if ARCore is not tracking.
+            if (Session.ConnectionState == SessionConnectionState.DeviceNotSupported)
+            {
+                _ShowAndroidToastMessage("This device does not support ARCore.");
+                Application.Quit();
+            }
+            else if (Session.ConnectionState == SessionConnectionState.UserRejectedNeededPermission)
+            {
+                _ShowAndroidToastMessage("Camera permission is needed to run this application.");
+                Application.Quit();
+            }
+            else if (Session.ConnectionState == SessionConnectionState.ConnectToServiceFailed)
+            {
+                _ShowAndroidToastMessage("ARCore encountered a problem connecting.  Please start the app again.");
+                Application.Quit();
+            }
+        }
+
+        /// <summary>
+        /// Show an Android toast message.
+        /// </summary>
+        /// <param name="message">Message string to show in the toast.</param>
+        /// <param name="length">Toast message time length.</param>
+        private static void _ShowAndroidToastMessage(string message)
+        {
+            AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+            AndroidJavaObject unityActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
+
+            if (unityActivity != null)
+            {
+                AndroidJavaClass toastClass = new AndroidJavaClass("android.widget.Toast");
+                unityActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
+                {
+                    AndroidJavaObject toastObject = toastClass.CallStatic<AndroidJavaObject>("makeText", unityActivity,
+                        message, 0);
+                    toastObject.Call("show");
+                }));
+            }
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/HelloARController.cs.meta b/Assets/GoogleARCore/HelloARExample/Scripts/HelloARController.cs.meta
new file mode 100644
index 0000000..f63b5da
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/HelloARController.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 26074b15f9c13404d858bfedb8b8c00c
+timeCreated: 1502419589
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/PlaneAttachment.cs b/Assets/GoogleARCore/HelloARExample/Scripts/PlaneAttachment.cs
new file mode 100644
index 0000000..f00d3be
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/PlaneAttachment.cs
@@ -0,0 +1,91 @@
+//-----------------------------------------------------------------------
+// <copyright file="PlaneAttachment.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore.HelloAR
+{
+    using System.Collections.Generic;
+    using UnityEngine;
+    using UnityEngine.Rendering;
+    using GoogleARCore;
+
+    public class PlaneAttachment : MonoBehaviour
+    {
+        private TrackedPlane m_AttachedPlane;
+
+        private float m_planeYOffset;
+
+        private MeshRenderer[] m_meshRenderers;
+
+        private bool m_isVisible = true;
+
+        /// <summary>
+        /// Unity start.
+        /// </summary>
+        public void Start()
+        {
+            m_meshRenderers = GetComponentsInChildren<MeshRenderer>();
+        }
+
+        /// <summary>
+        /// Unity update.
+        /// </summary>
+        public void Update()
+        {
+            // If the plane has been subsumed switch attachment to the subsuming plane.
+            while (m_AttachedPlane.SubsumedBy != null)
+            {
+                m_AttachedPlane = m_AttachedPlane.SubsumedBy;
+            }
+
+            // Update visibility of the GameObject based on plane validity.
+            if (!m_AttachedPlane.IsValid && m_isVisible)
+            {
+                for (int i = 0; i < m_meshRenderers.Length; i++)
+                {
+                    m_meshRenderers[i].enabled = false;
+                }
+
+                m_isVisible = false;
+            }
+            else if (m_AttachedPlane.IsValid && !m_isVisible)
+            {
+                for (int i = 0; i < m_meshRenderers.Length; i++)
+                {
+                    m_meshRenderers[i].enabled = true;
+                }
+
+                m_isVisible = true;
+            }
+
+            transform.position = new Vector3(transform.position.x, m_AttachedPlane.Position.y + m_planeYOffset,
+                transform.position.z);
+        }
+
+        /// <summary>
+        /// Have the GameObject maintain the y-offset to a plane.
+        /// </summary>
+        /// <param>The plane to attach to.</param>
+        public void Attach(TrackedPlane plane)
+        {
+            m_AttachedPlane = plane;
+            m_planeYOffset = transform.position.y - plane.Position.y;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/PlaneAttachment.cs.meta b/Assets/GoogleARCore/HelloARExample/Scripts/PlaneAttachment.cs.meta
new file mode 100644
index 0000000..16bef8e
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/PlaneAttachment.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 4f72ee472a4654c10a96aeb3fcf25bcf
+timeCreated: 1503519713
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/PointcloudVisualizer.cs b/Assets/GoogleARCore/HelloARExample/Scripts/PointcloudVisualizer.cs
new file mode 100644
index 0000000..d4103b2
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/PointcloudVisualizer.cs
@@ -0,0 +1,84 @@
+// <copyright file="PointcloudVisualizer.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore.HelloAR
+{
+    using System.Collections.Generic;
+    using UnityEngine;
+    using UnityEngine.Profiling;
+    using GoogleARCore;
+
+    /// <summary>
+    /// Visualize the point cloud.
+    /// </summary>
+    public class PointcloudVisualizer : MonoBehaviour
+    {
+        private const int MAX_POINT_COUNT = 61440;
+
+        private Mesh m_mesh;
+
+        private Vector3[] m_points = new Vector3[MAX_POINT_COUNT];
+
+        private double m_lastPointCloudTimestamp;
+
+        /// <summary>
+        /// Unity start.
+        /// </summary>
+        public void Start()
+        {
+            m_mesh = GetComponent<MeshFilter>().mesh;
+            m_mesh.Clear();
+        }
+
+        /// <summary>
+        /// Unity update.
+        /// </summary>
+        public void Update()
+        {
+            // Do not update if ARCore is not tracking.
+            if (Frame.TrackingState != FrameTrackingState.Tracking)
+            {
+                return;
+            }
+
+            // Fill in the data to draw the point cloud.
+            PointCloud pointcloud = Frame.PointCloud;
+            if (pointcloud.PointCount > 0 && pointcloud.Timestamp > m_lastPointCloudTimestamp)
+            {
+                // Copy the point cloud points for mesh verticies.
+                for (int i = 0; i < pointcloud.PointCount; i++)
+                {
+                    m_points[i] = pointcloud.GetPoint(i);
+                }
+
+                // Update the mesh indicies array.
+                int[] indices = new int[pointcloud.PointCount];
+                for (int i = 0; i < pointcloud.PointCount; i++)
+                {
+                    indices[i] = i;
+                }
+
+                m_mesh.Clear();
+                m_mesh.vertices = m_points;
+                m_mesh.SetIndices(indices, MeshTopology.Points, 0);
+                m_lastPointCloudTimestamp = pointcloud.Timestamp;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/PointcloudVisualizer.cs.meta b/Assets/GoogleARCore/HelloARExample/Scripts/PointcloudVisualizer.cs.meta
new file mode 100644
index 0000000..125f284
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/PointcloudVisualizer.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 4d5645b79cc5e4251827ffe171ed4658
+timeCreated: 1502314583
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/TrackedPlaneVisualizer.cs b/Assets/GoogleARCore/HelloARExample/Scripts/TrackedPlaneVisualizer.cs
new file mode 100644
index 0000000..b89ce47
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/TrackedPlaneVisualizer.cs
@@ -0,0 +1,169 @@
+//-----------------------------------------------------------------------
+// <copyright file="TrackedPlaneComponent.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore.HelloAR
+{
+    using System.Collections.Generic;
+    using UnityEngine;
+    using GoogleARCoreInternal;
+
+    /// <summary>
+    /// Visualizes a TrackedPlane in the Unity scene.
+    /// </summary>
+    public class TrackedPlaneVisualizer : MonoBehaviour
+    {
+        /// <summary>
+        /// The ARCore tracked plane to represent.
+        /// </summary>
+        private TrackedPlane m_trackedPlane;
+
+        private List<Vector3> m_meshVertices = new List<Vector3>();
+
+        private List<Color> m_meshColors = new List<Color>();
+
+        private List<int> m_meshIndices = new List<int>();
+
+        private Mesh m_mesh;
+
+        private MeshRenderer m_meshRenderer;
+
+        /// <summary>
+        /// The Unity Awake() method.
+        /// </summary>
+        private void Awake()
+        {
+            m_mesh = GetComponent<MeshFilter>().mesh;
+            m_meshRenderer = GetComponent<UnityEngine.MeshRenderer>();
+        }
+
+        /// <summary>
+        /// The Unity Update() method.
+        /// </summary>
+        private void Update()
+        {
+            if (m_trackedPlane == null)
+            {
+                return;
+            }
+            else if (m_trackedPlane.SubsumedBy != null)
+            {
+                Destroy(gameObject);
+                return;
+            }
+            else if (!m_trackedPlane.IsValid || Frame.TrackingState != FrameTrackingState.Tracking)
+            {
+                 m_meshRenderer.enabled = false;
+                 return;
+            }
+
+            m_meshRenderer.enabled = true;
+            if (m_trackedPlane.IsUpdated)
+            {
+                _UpdateMeshWithCurrentTrackedPlane();
+            }
+        }
+
+        /// <summary>
+        /// Update the TrackedPlane reference.
+        /// </summary>
+        /// <param name="plane">The TrackedPlane reference..</param>
+        public void SetTrackedPlane(TrackedPlane plane)
+        {
+            m_trackedPlane = plane;
+            _UpdateMeshWithCurrentTrackedPlane();
+        }
+
+        private void _UpdateMeshWithCurrentTrackedPlane()
+        {
+            // Note that GetBoundaryPolygon returns points in clockwise order.
+            m_trackedPlane.GetBoundaryPolygon(ref m_meshVertices);
+
+            Vector3 planeCenter = m_trackedPlane.Position;
+            int planePolygonCount = m_meshVertices.Count;
+
+            // The following code convert a polygon to a mesh with two polygons, inner
+            // polygon renders with 100% opacity and fade out to outter polygon with opacity 0%, as shown below.
+            // The indices shown in the diagram are used in comments below.
+            // _______________     0_______________1
+            // |             |      |4___________5|
+            // |             |      | |         | |
+            // |             | =>   | |         | |
+            // |             |      | |         | |
+            // |             |      |7-----------6|
+            // ---------------     3---------------2
+            m_meshColors.Clear();
+
+            // Fill transparent color to vertices 1 to 3.
+            for (int i = 0; i < planePolygonCount; ++i)
+            {
+                m_meshColors.Add(new Color(0.0f, 0.0f, 0.0f, 0.0f));
+            }
+
+            // Feather distance 0.2 meters.
+            const float FEATHER_LENGTH = 0.2f;
+
+            // Feather scale over the distance between plane center and vertices.
+            const float FEATHER_SCALE = 0.2f;
+
+            // Add vertex 4 to 5.
+            for (int i = 0; i < planePolygonCount; ++i)
+            {
+                Vector3 v = m_meshVertices[i];
+
+                // Vector from plane center to current point
+                Vector3 d = v - planeCenter;
+
+                float scale = 1.0f - Mathf.Min((FEATHER_LENGTH / d.magnitude), FEATHER_SCALE);
+                m_meshVertices.Add(scale * d + planeCenter);
+
+                m_meshColors.Add(new Color(0.0f, 0.0f, 0.0f, 1.0f));
+            }
+
+            m_meshIndices.Clear();
+            int verticeLength = m_meshVertices.Count;
+            int verticeLengthHalf = verticeLength / 2;
+            // Generate triangle (4, 5, 6) and (4, 6, 7).
+            for (int i = verticeLengthHalf + 1; i < verticeLength - 1; ++i)
+            {
+                m_meshIndices.Add(verticeLengthHalf);
+                m_meshIndices.Add(i);
+                m_meshIndices.Add(i + 1);
+            }
+
+            // Generate triangle (0, 1, 4), (4, 1, 5), (5, 1, 2), (5, 2, 6), (6, 2, 3), (6, 3, 7)
+            // (7, 3, 0), (7, 0, 4)
+            for (int i = 0; i < verticeLengthHalf; ++i)
+            {
+                m_meshIndices.Add(i);
+                m_meshIndices.Add((i + 1) % verticeLengthHalf);
+                m_meshIndices.Add(i + verticeLengthHalf);
+
+                m_meshIndices.Add(i + verticeLengthHalf);
+                m_meshIndices.Add((i + 1) % verticeLengthHalf);
+                m_meshIndices.Add((i + verticeLengthHalf + 1) % verticeLengthHalf + verticeLengthHalf);
+            }
+
+            m_mesh.Clear();
+            m_mesh.SetVertices(m_meshVertices);
+            m_mesh.SetIndices(m_meshIndices.ToArray(), MeshTopology.Triangles, 0);
+            m_mesh.SetColors(m_meshColors);
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/HelloARExample/Scripts/TrackedPlaneVisualizer.cs.meta b/Assets/GoogleARCore/HelloARExample/Scripts/TrackedPlaneVisualizer.cs.meta
new file mode 100644
index 0000000..a533eb8
--- /dev/null
+++ b/Assets/GoogleARCore/HelloARExample/Scripts/TrackedPlaneVisualizer.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 23e3f20de6c2e405a93736a38f74b0fb
+timeCreated: 1502338316
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/Prefabs.meta b/Assets/GoogleARCore/Prefabs.meta
new file mode 100644
index 0000000..8d31210
--- /dev/null
+++ b/Assets/GoogleARCore/Prefabs.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a00108229b1e04acd805e57abcdff773
+folderAsset: yes
+timeCreated: 1492558533
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/Prefabs/ARCore Device.prefab b/Assets/GoogleARCore/Prefabs/ARCore Device.prefab
new file mode 100644
index 0000000..730d844
--- /dev/null
+++ b/Assets/GoogleARCore/Prefabs/ARCore Device.prefab
@@ -0,0 +1,139 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1905656715913530}
+  m_IsPrefabParent: 1
+--- !u!1 &1905656715913530
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4892153982037908}
+  - component: {fileID: 114072643661330778}
+  - component: {fileID: 114254441574086558}
+  m_Layer: 0
+  m_Name: ARCore Device
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1960903772876386
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4923070639190690}
+  - component: {fileID: 20362215073346118}
+  m_Layer: 0
+  m_Name: First Person Camera
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4892153982037908
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1905656715913530}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4923070639190690}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4923070639190690
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1960903772876386}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4892153982037908}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &20362215073346118
+Camera:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1960903772876386}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 2
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.05
+  far clip plane: 200
+  field of view: 60
+  orthographic: 0
+  orthographic size: 5
+  m_Depth: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 1
+  m_AllowMSAA: 1
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+  m_StereoMirrorMode: 0
+--- !u!114 &114072643661330778
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1905656715913530}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1742909100, guid: 3a84de5cd0624681b6b6dcd8921d912a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Device: 0
+  m_PoseSource: 6
+  m_TrackingType: 0
+  m_UpdateType: 2
+  m_UseRelativeTransform: 1
+--- !u!114 &114254441574086558
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1905656715913530}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7bf3911478e8b449181ac73714fa7424, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_arSessionConfig: {fileID: 11400000, guid: ba33c039dd5b24adeb15a423efaf4497, type: 2}
+  m_firstPersonCamera: {fileID: 20362215073346118}
+  m_connectOnAwake: 1
diff --git a/Assets/GoogleARCore/Prefabs/ARCore Device.prefab.meta b/Assets/GoogleARCore/Prefabs/ARCore Device.prefab.meta
new file mode 100644
index 0000000..2b3afe2
--- /dev/null
+++ b/Assets/GoogleARCore/Prefabs/ARCore Device.prefab.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c10877f7cd5764de18d46d7b777d1faa
+timeCreated: 1501460862
+licenseType: Free
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/Prefabs/Evironmental Light.prefab b/Assets/GoogleARCore/Prefabs/Evironmental Light.prefab
new file mode 100644
index 0000000..853fa2f
--- /dev/null
+++ b/Assets/GoogleARCore/Prefabs/Evironmental Light.prefab
@@ -0,0 +1,53 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1248447649449928}
+  m_IsPrefabParent: 1
+--- !u!1 &1248447649449928
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4461716624848968}
+  - component: {fileID: 114451930413443482}
+  m_Layer: 0
+  m_Name: Evironmental Light
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4461716624848968
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1248447649449928}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &114451930413443482
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1248447649449928}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 92a4cf446a0c7334aaceb5457be27894, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/Assets/GoogleARCore/Prefabs/Evironmental Light.prefab.meta b/Assets/GoogleARCore/Prefabs/Evironmental Light.prefab.meta
new file mode 100644
index 0000000..c5feedc
--- /dev/null
+++ b/Assets/GoogleARCore/Prefabs/Evironmental Light.prefab.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: cf498fc35b538884db557f7a9a2c0ef9
+timeCreated: 1502756552
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK.meta b/Assets/GoogleARCore/SDK.meta
new file mode 100644
index 0000000..f9de22b
--- /dev/null
+++ b/Assets/GoogleARCore/SDK.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 84e45386d8da3497591c38deb2bccd02
+folderAsset: yes
+timeCreated: 1502400656
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Plugins.meta b/Assets/GoogleARCore/SDK/Plugins.meta
new file mode 100644
index 0000000..a9072c2
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 93be2b9777c348648a2d9151b7e233fc
+folderAsset: yes
+timeCreated: 1501825151
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Plugins/GoogleAR.UnityNative.dll b/Assets/GoogleARCore/SDK/Plugins/GoogleAR.UnityNative.dll
new file mode 100644
index 0000000..154e2f5
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/GoogleAR.UnityNative.dll
Binary files differ
diff --git a/Assets/GoogleARCore/SDK/Plugins/GoogleAR.UnityNative.dll.meta b/Assets/GoogleARCore/SDK/Plugins/GoogleAR.UnityNative.dll.meta
new file mode 100644
index 0000000..f027689
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/GoogleAR.UnityNative.dll.meta
@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: 2f97ef92557bac44d88692a517a99e81
+timeCreated: 1502817519
+licenseType: Pro
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Plugins/lighting_estimation.aar b/Assets/GoogleARCore/SDK/Plugins/lighting_estimation.aar
new file mode 100644
index 0000000..04b148a
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/lighting_estimation.aar
Binary files differ
diff --git a/Assets/GoogleARCore/SDK/Plugins/lighting_estimation.aar.meta b/Assets/GoogleARCore/SDK/Plugins/lighting_estimation.aar.meta
new file mode 100644
index 0000000..db9cb3d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/lighting_estimation.aar.meta
@@ -0,0 +1,31 @@
+fileFormatVersion: 2
+guid: 32843606a59405f48b5bed50394969cb
+timeCreated: 1502314984
+licenseType: Pro
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+  - first:
+      Android: Android
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Plugins/unityandroidpermissions.aar b/Assets/GoogleARCore/SDK/Plugins/unityandroidpermissions.aar
new file mode 100644
index 0000000..76e5475
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/unityandroidpermissions.aar
Binary files differ
diff --git a/Assets/GoogleARCore/SDK/Plugins/unityandroidpermissions.aar.meta b/Assets/GoogleARCore/SDK/Plugins/unityandroidpermissions.aar.meta
new file mode 100644
index 0000000..d8a07c7
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/unityandroidpermissions.aar.meta
@@ -0,0 +1,31 @@
+fileFormatVersion: 2
+guid: bd091fc8013c942f586c1672b8ee2b27
+timeCreated: 1500400815
+licenseType: Free
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+  - first:
+      Android: Android
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Plugins/unitygar.aar b/Assets/GoogleARCore/SDK/Plugins/unitygar.aar
new file mode 100644
index 0000000..b8799a4
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/unitygar.aar
Binary files differ
diff --git a/Assets/GoogleARCore/SDK/Plugins/unitygar.aar.meta b/Assets/GoogleARCore/SDK/Plugins/unitygar.aar.meta
new file mode 100644
index 0000000..46d9cc4
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Plugins/unitygar.aar.meta
@@ -0,0 +1,31 @@
+fileFormatVersion: 2
+guid: f62612db4b24deb43ada3a769754a2f7
+timeCreated: 1503698241
+licenseType: Free
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+  - first:
+      Android: Android
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Resources.meta b/Assets/GoogleARCore/SDK/Resources.meta
new file mode 100644
index 0000000..74bf903
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Resources.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cfeeefd43f2ef4198b382431f8331e05
+folderAsset: yes
+timeCreated: 1497981246
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Resources/Materials.meta b/Assets/GoogleARCore/SDK/Resources/Materials.meta
new file mode 100644
index 0000000..e6a762d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Resources/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b2c4e904b5e6b425f8ab111db67d7908
+folderAsset: yes
+timeCreated: 1497981256
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Resources/Materials/ARBackground.mat b/Assets/GoogleARCore/SDK/Resources/Materials/ARBackground.mat
new file mode 100644
index 0000000..667cbec
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Resources/Materials/ARBackground.mat
@@ -0,0 +1,76 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: ARBackground
+  m_Shader: {fileID: 15401, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/GoogleARCore/SDK/Resources/Materials/ARBackground.mat.meta b/Assets/GoogleARCore/SDK/Resources/Materials/ARBackground.mat.meta
new file mode 100644
index 0000000..3e2e2dc
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Resources/Materials/ARBackground.mat.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 03ad0130a037647aeb60218f61aca114
+timeCreated: 1498003566
+licenseType: Pro
+NativeFormatImporter:
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts.meta b/Assets/GoogleARCore/SDK/Scripts.meta
new file mode 100644
index 0000000..337aa52
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 8f3875959d8dd4bdeb9620e0eb96fb3b
+folderAsset: yes
+timeCreated: 1501446012
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Anchor.cs b/Assets/GoogleARCore/SDK/Scripts/Anchor.cs
new file mode 100644
index 0000000..aa967ca
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Anchor.cs
@@ -0,0 +1,113 @@
+//-----------------------------------------------------------------------
+// <copyright file="Anchor.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Collections.Generic;
+    using UnityEngine;
+    /// @cond EXCLUDE_FROM_DOXYGEN
+    using UnityTango = GoogleAR.UnityNative;
+    /// @endcond
+
+    /// <summary>
+    /// Anchors a gameobject to a position/rotation in the Unity world relative to ARCore's understanding of the
+    /// physical world; Created using <c>Session.CreateAnchor(Vector3, Quaternion)</c>.
+    /// ARCore may periodically perform operations that affect the mapping of Unity world coordinates to the
+    /// physical world; an example of such being drift correction. Anchors allow GameObjects to retain their
+    /// physical world location when these operations occur. If ARCore is unable to track an anchor for any reason,
+    /// the attached GameObject will be set inactive until tracking resumes.
+    /// </summary>
+    public class Anchor : MonoBehaviour
+    {
+        private Matrix4x4 m_poseTAnchor;
+
+        private double m_creationTimestamp;
+
+        private ScreenOrientation m_creationScreenOrientation;
+
+        /// <summary>
+        /// Gets a unique identifier for the anchor.
+        /// </summary>
+        public string Id { get; private set; }
+
+        /// <summary>
+        /// Gets the tracking state of the anchor.
+        /// </summary>
+        public AnchorTrackingState TrackingState { get; private set; }
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Instantiates a new GameObject with an Anchor component attached.
+        /// </summary>
+        /// <param name="position">The unity world position to instantiate the anchor GameObject.</param>
+        /// <param name="rotation">The unity world rotation to instantiate the anchor GameObject.</param>
+        /// <param name="updateTracking">A callback to update the anchor's position based on latest
+        /// estimation of the physical world pose from ARCore.</param>
+        /// <param name="updateTrackingState">A callback to update the private tracking state of the anchor.</param>
+        /// <returns>A GameObject with an Anchor component attached.</returns>
+        public static Anchor InstantiateAnchor(Vector3 position, Quaternion rotation,
+            out Action<double> updateTracking, out Action<AnchorTrackingState> updateTrackingState)
+        {
+            Anchor anchor = (new GameObject()).AddComponent<Anchor>();
+            anchor.gameObject.name = "Anchor";
+            anchor.Id = Guid.NewGuid().ToString();
+            anchor.TrackingState = AnchorTrackingState.Tracking;
+            anchor.transform.position = position;
+            anchor.transform.rotation = rotation;
+            var cameraPose = Frame.Pose;
+            anchor.m_poseTAnchor = Matrix4x4.TRS(cameraPose.position, cameraPose.rotation, Vector3.one).inverse *
+                Matrix4x4.TRS(position, rotation, Vector3.one);
+            anchor.m_creationTimestamp = Frame.Timestamp;
+            anchor.m_creationScreenOrientation = Screen.orientation;
+            updateTracking = anchor._UpdateTracking;
+            updateTrackingState = anchor._UpdateTrackingState;
+            return anchor;
+        }
+        /// @endcond
+
+        private void _UpdateTracking(double earliestTimestamp)
+        {
+            if (m_creationTimestamp < earliestTimestamp)
+            {
+                return;
+            }
+
+            UnityTango.PoseData poseData;
+            bool getPoseSuccess = UnityTango.InputTracking.TryGetPoseAtTime(
+                out poseData, UnityTango.CoordinateFrame.StartOfService, UnityTango.CoordinateFrame.CameraColor,
+                m_creationTimestamp, m_creationScreenOrientation);
+            if (!getPoseSuccess || poseData.statusCode != UnityTango.PoseStatus.Valid)
+            {
+                return;
+            }
+
+            var unityWorldAnchor = Matrix4x4.TRS(poseData.position, poseData.rotation, Vector3.one) * m_poseTAnchor;
+            transform.position = unityWorldAnchor.GetColumn(3);
+            transform.rotation = Quaternion.LookRotation(unityWorldAnchor.GetColumn(2), unityWorldAnchor.GetColumn(1));
+        }
+
+        private void _UpdateTrackingState(AnchorTrackingState trackingState)
+        {
+            TrackingState = trackingState;
+            gameObject.SetActive(TrackingState == AnchorTrackingState.Tracking);
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Anchor.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Anchor.cs.meta
new file mode 100644
index 0000000..06b6167
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Anchor.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: bd5c45a099b834b8d847a3ba64b2c8ec
+timeCreated: 1502157890
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: -16000
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/AnchorTrackingState.cs b/Assets/GoogleARCore/SDK/Scripts/AnchorTrackingState.cs
new file mode 100644
index 0000000..af99327
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AnchorTrackingState.cs
@@ -0,0 +1,47 @@
+//-----------------------------------------------------------------------
+// <copyright file="AnchorTrackingState.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    /// <summary>
+    /// The tracking state for an anchor.
+    /// </summary>
+    public enum AnchorTrackingState
+    {
+        /// <summary>
+        /// ARCore has stopped tracking this Anchor and will never resume tracking it. This typically happens
+        /// because the anchor was created when the device's tracking state was diminished and then became further
+        /// diminished or lost.
+        /// </summary>
+        StoppedTracking,
+
+        /// <summary>
+        /// The anchor is not currently being tracked but tracking may resume in the future. This can happen
+        /// if device tracking is lost or if the user enters a new space. When in this state the anchor GameObject
+        /// is disabled since the transform could be very inaccurate.
+        /// </summary>
+        LostTracking,
+
+        /// <summary>
+        /// The Anchor is being tracked and its transform is current.
+        /// </summary>
+        Tracking,
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/AnchorTrackingState.cs.meta b/Assets/GoogleARCore/SDK/Scripts/AnchorTrackingState.cs.meta
new file mode 100644
index 0000000..be42240
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AnchorTrackingState.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: f9941a7c5b07542c693e56335574fe10
+timeCreated: 1503161028
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsManager.cs b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsManager.cs
new file mode 100644
index 0000000..14ff1f2
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsManager.cs
@@ -0,0 +1,169 @@
+//-----------------------------------------------------------------------
+// <copyright file="AndroidPermissionsManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using GoogleARCoreInternal;
+    using UnityEngine;
+
+    /// <summary>
+    /// Manages Android permissions for the Unity application.
+    /// </summary>
+    public class AndroidPermissionsManager : AndroidJavaProxy
+    {
+        private static AndroidPermissionsManager m_instance;
+        private static AndroidJavaObject m_Activity;
+        private static AndroidJavaObject m_PermissionService;
+        private static AsyncTask<AndroidPermissionsRequestResult> m_currentRequest = null;
+        private static Action<AndroidPermissionsRequestResult> m_onPermissionsRequestFinished;
+
+        private static AndroidPermissionsManager Instance
+        {
+            get
+            {
+                if (m_instance == null)
+                {
+                    m_instance = new AndroidPermissionsManager();
+                }
+
+                return m_instance;
+            }
+        }
+
+        private static AndroidJavaObject UnityActivity
+        {
+            get
+            {
+                if (m_Activity == null)
+                {
+                    AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+                    m_Activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
+                }
+
+                return m_Activity;
+            }
+        }
+
+        private static AndroidJavaObject PermissionsService
+        {
+            get
+            {
+                if (m_PermissionService == null)
+                {
+                    m_PermissionService = new AndroidJavaObject("com.unity3d.player.UnityAndroidPermissions");
+                }
+
+                return m_PermissionService;
+            }
+        }
+
+        /// <summary>
+        /// Checks if an Android permission is granted to the application.
+        /// </summary>
+        /// <param name="permissionName">The full name of the Android permission to check (e.g.
+        /// android.permission.CAMERA).</param>
+        /// <returns><c>true</c> if <c>permissionName</c> is granted to the application, otherwise
+        /// <c>false</c>.</returns>
+        public static bool IsPermissionGranted(string permissionName)
+        {
+            return PermissionsService.Call<bool>("IsPermissionGranted", UnityActivity, permissionName);
+        }
+
+        /// <summary>
+        /// Requests a set of Android permissions from the user.
+        /// </summary>
+        /// <param name="permissionNames">A collection of permissions to be requested (e.g. android.permission.CAMERA).
+        /// <b>Currently only the first permission in the collection will be requested. The behavior of this parameter
+        /// will change in later versions.</b>
+        /// </param>
+        /// <returns>An asynchronous task the completes when the user has accepted/rejected all requested permissions
+        /// and yields a <c>AndroidPermissionsRequestResult</c> that summarizes the result.  If this method is called
+        /// when another permissions request is pending <c>null</c> will be returned instead.</returns>
+        public static AsyncTask<AndroidPermissionsRequestResult> RequestPermission(string[] permissionNames)
+        {
+            if (m_currentRequest != null)
+            {
+                ARDebug.LogError("Attempted to make simultaneous Android permissions requests.");
+                return null;
+            }
+
+            // TODO (mtsmall): We currently only allow one permission to be requested because of the callback structure.
+            PermissionsService.Call("RequestPermissionAsync", UnityActivity, new [] { permissionNames[0] }, Instance);
+            m_currentRequest = new AsyncTask<AndroidPermissionsRequestResult>(out m_onPermissionsRequestFinished);
+
+            return m_currentRequest;
+        }
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Constructs a new AndroidPermissionsManager.
+        /// </summary>
+        public AndroidPermissionsManager() : base("com.unity3d.player.UnityAndroidPermissions$IPermissionRequestResult") {}
+        /// @endcond
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Callback fired when a permission is granted.
+        /// </summary>
+        /// <param name="permissionName">The name of the permission that was granted.</param>
+        public virtual void OnPermissionGranted(string permissionName)
+        {
+            _OnPermissionResult(permissionName, true);
+        }
+        /// @endcond
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Callback fired when a permission is denied.
+        /// </summary>
+        /// <param name="permissionName">The name of the permission that was denied.</param>
+        public virtual void OnPermissionDenied(string permissionName)
+        {
+            _OnPermissionResult(permissionName, false);
+        }
+        /// @endcond
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Callback fired on an Android activity result (unused part of UnityAndroidPermissions interface).
+        /// </summary>
+        public virtual void OnActivityResult() {}
+        /// @endcond
+
+        private void _OnPermissionResult(string permissionName, bool granted)
+        {
+            if (m_onPermissionsRequestFinished == null)
+            {
+                Debug.LogErrorFormat("AndroidPermissionsManager received an unexpected permissions result {0}",
+                    permissionName);
+                return;
+            }
+
+            // Cache completion method and reset request state.
+            var onRequestFinished = m_onPermissionsRequestFinished;
+            m_currentRequest = null;
+            m_onPermissionsRequestFinished = null;
+
+            onRequestFinished(new AndroidPermissionsRequestResult(new string[] { permissionName },
+                new bool[] { granted }));
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsManager.cs.meta
new file mode 100644
index 0000000..6fb2f47
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: c0726c8b601b041069fad86754497703
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsRequestResult.cs b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsRequestResult.cs
new file mode 100644
index 0000000..a5eb9cc
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsRequestResult.cs
@@ -0,0 +1,77 @@
+//-----------------------------------------------------------------------
+// <copyright file="AndroidPermissionsRequestResult.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using GoogleARCoreInternal;
+    using UnityEngine;
+
+    /// <summary>
+    /// Structure holding data summarizing the result of an Android permissions request.
+    /// </summary>
+    public struct AndroidPermissionsRequestResult
+    {
+        /// <summary>
+        /// Gets a collection of permissions requested.
+        /// </summary>
+        public string[] PermissionNames { get; private set; }
+
+        /// <summary>
+        /// Gets a collection of results corresponding to <c>PermissionNames</c>.
+        /// </summary>
+        public bool[] GrantResults { get; private set; }
+
+        /// <summary>
+        /// A collection of results corresponding to <c>PermissionNames</c>.
+        /// </summary>
+        public bool IsAllGranted
+        {
+            get
+            {
+                if (PermissionNames == null || GrantResults == null)
+                {
+                    return false;
+                }
+
+                for(int i = 0; i < GrantResults.Length; i++)
+                {
+                    if (!GrantResults[i])
+                    {
+                        return false;
+                    }
+                }
+
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// Constructs a new AndroidPermissionsRequestResult.
+        /// </summary>
+        /// <param name="permissionNames">The value for <c>PermissionNames</c>.</param>
+        /// <param name="grantResults">The value for <c>GrantResults</c>.</param>
+        public AndroidPermissionsRequestResult(string[] permissionNames,  bool[] grantResults)
+        {
+            PermissionNames = permissionNames;
+            GrantResults = grantResults;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsRequestResult.cs.meta b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsRequestResult.cs.meta
new file mode 100644
index 0000000..6d1418b
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AndroidPermissionsRequestResult.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: d7676570d2869469a8e061cbd3d90c9f
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api.meta b/Assets/GoogleARCore/SDK/Scripts/Api.meta
new file mode 100644
index 0000000..9f54629
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 11813694e8abb437eb9ef46ed1cc67c5
+folderAsset: yes
+timeCreated: 1502400396
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFramePair.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFramePair.cs
new file mode 100644
index 0000000..1efab2d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFramePair.cs
@@ -0,0 +1,86 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiCoordinateFramePair.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Runtime.InteropServices;
+    using GoogleARCore;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// The TangoCoordinateFramePair struct contains a pair of coordinate frames of reference.
+    ///
+    /// Tango pose data is calculated as a transformation between two frames
+    /// of reference (so, for example, you can be asking for the pose of the
+    /// device within a learned area).
+    ///
+    /// This struct is used to specify the desired base and target frames of
+    /// reference when requesting pose data.  You can also use it when you have
+    /// a TangoPoseData structure returned from the API and want to examine which
+    /// frames of reference were used to get that pose.
+    ///
+    /// For more information, including which coordinate frame pairs are valid,
+    /// see our page on
+    /// <a href ="/project-tango/overview/frames-of-reference">frames of reference</a>.
+    /// </summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct ApiCoordinateFramePair
+    {
+        /// <summary>
+        /// Base frame of reference to compare against when requesting pose data.
+        /// For example, if you have loaded an area and want to find out where the
+        /// device is within it, you would use the
+        /// <code>TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION</code> frame of reference
+        /// as your base.
+        /// </summary>
+        [MarshalAs(UnmanagedType.I4)]
+        public ApiCoordinateFrameType baseFrame;
+
+        /// <summary>
+        /// Target frame of reference when requesting pose data, compared to the
+        /// base. For example, if you want the device's pose data, use
+        /// <code>TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE</code>.
+        /// </summary>
+        [MarshalAs(UnmanagedType.I4)]
+        public ApiCoordinateFrameType targetFrame;
+
+        /// <summary>
+        /// Constructs a new ApiCoordinateFramePair from a UnityTango.CoordinateFramePair.
+        /// </summary>
+        /// <param name="unityPair">The unity CoordinateFramePair to copy.</param>
+        public ApiCoordinateFramePair(UnityTango.CoordinateFramePair unityPair)
+        {
+            baseFrame = unityPair.baseFrame.ToApiType();
+            targetFrame = unityPair.targetFrame.ToApiType();
+        }
+
+        /// <summary>
+        /// Returns an equivalent unity CoordinateFramePair.
+        /// </summary>
+        /// <returns>An equivalent unity CoordinateFramePair.</returns>
+        public UnityTango.CoordinateFramePair ToUnityType()
+        {
+            UnityTango.CoordinateFramePair unityFramePair = new UnityTango.CoordinateFramePair();
+            unityFramePair.baseFrame = baseFrame.ToUnityType();
+            unityFramePair.targetFrame = targetFrame.ToUnityType();
+            return unityFramePair;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFramePair.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFramePair.cs.meta
new file mode 100644
index 0000000..4d20bb7
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFramePair.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: a788f2feeef8a4aa7b542f3cd3de85ec
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameType.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameType.cs
new file mode 100644
index 0000000..ead5c87
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameType.cs
@@ -0,0 +1,91 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiCoordinateFrameType.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    /// <summary>
+    /// Tango coordinate frame enumerations.
+    /// </summary>
+    public enum ApiCoordinateFrameType
+    {
+        /// <summary>
+        /// Coordinate system for the entire Earth.
+        /// See WGS84: [http://en.wikipedia.org/wiki/World_Geodetic_System].
+        /// </summary>
+        GlobalWGS84 = 0,
+
+        /// <summary>
+        /// Origin within a saved area description.
+        /// </summary>
+        AreaDescription = 1,
+
+        /// <summary>
+        /// Origin when the device started tracking.
+        /// </summary>
+        StartOfService = 2,
+
+        /// <summary>
+        /// Immediately previous device pose.
+        /// </summary>
+        PreviousDevicePose = 3,
+
+        /// <summary>
+        /// Device coordinate frame.
+        /// </summary>
+        Device = 4,
+
+        /// <summary>
+        /// Inertial Measurement Unit.
+        /// </summary>
+        IMU = 5,
+
+        /// <summary>
+        /// Display coordinate frame.
+        /// </summary>
+        Display = 6,
+
+        /// <summary>
+        /// Color camera.
+        /// </summary>
+        CameraColor = 7,
+
+        /// <summary>
+        /// Depth camera.
+        /// </summary>
+        CameraDepth = 8,
+
+        /// <summary>
+        /// Fisheye camera.
+        /// </summary>
+        CameraFisheye = 9,
+
+        // Should UUID Frame be here?
+
+        /// <summary>
+        /// An invalid frame.
+        /// </summary>
+        Invalid = 10,
+
+        /// <summary>
+        /// Maximum allowed.
+        /// </summary>
+        MaxCoordinateFrame = 11,
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameType.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameType.cs.meta
new file mode 100644
index 0000000..e038517
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameType.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 78a9daa4159b14f35848bc8a706411f5
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameTypeExtensions.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameTypeExtensions.cs
new file mode 100644
index 0000000..de04dc4
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameTypeExtensions.cs
@@ -0,0 +1,87 @@
+//-----------------------------------------------------------------------
+// <copyright file="CoordinateFrameTypeExtensions.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Collections.Generic;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// Extension methods for the tango coordinate frame enumerations.
+    /// </summary>
+    public static class CoordinateFrameTypeExtensions
+    {
+        /// <summary>
+        /// Conversion from unity CoordinateFrameType to api CoordinateFrameType.
+        /// </summary>
+        private static readonly Dictionary<UnityTango.CoordinateFrame, ApiCoordinateFrameType> UNITY_TO_API
+            = new Dictionary<UnityTango.CoordinateFrame, ApiCoordinateFrameType>()
+            {
+                { UnityTango.CoordinateFrame.GlobalWGS84, ApiCoordinateFrameType.GlobalWGS84 },
+                { UnityTango.CoordinateFrame.AreaDescription, ApiCoordinateFrameType.AreaDescription },
+                { UnityTango.CoordinateFrame.StartOfService, ApiCoordinateFrameType.StartOfService },
+                { UnityTango.CoordinateFrame.PreviousDevicePose, ApiCoordinateFrameType.PreviousDevicePose },
+                { UnityTango.CoordinateFrame.Device, ApiCoordinateFrameType.Device },
+                { UnityTango.CoordinateFrame.IMU, ApiCoordinateFrameType.IMU },
+                { UnityTango.CoordinateFrame.Display, ApiCoordinateFrameType.Display },
+                { UnityTango.CoordinateFrame.CameraColor, ApiCoordinateFrameType.CameraColor },
+                { UnityTango.CoordinateFrame.CameraDepth, ApiCoordinateFrameType.CameraDepth },
+                { UnityTango.CoordinateFrame.CameraFisheye, ApiCoordinateFrameType.CameraFisheye },
+                { UnityTango.CoordinateFrame.Invalid, ApiCoordinateFrameType.Invalid },
+                { UnityTango.CoordinateFrame.MaxCoordinateFrameType, ApiCoordinateFrameType.MaxCoordinateFrame },
+            };
+
+        /// <summary>
+        /// Conversion from api CoordinateFrameType to unity CoordinateFrameType.
+        /// </summary>
+        private static readonly Dictionary<ApiCoordinateFrameType, UnityTango.CoordinateFrame> API_TO_UNITY
+            = new Dictionary<ApiCoordinateFrameType, UnityTango.CoordinateFrame>()
+            {
+                { ApiCoordinateFrameType.GlobalWGS84, UnityTango.CoordinateFrame.GlobalWGS84 },
+                { ApiCoordinateFrameType.AreaDescription, UnityTango.CoordinateFrame.AreaDescription },
+                { ApiCoordinateFrameType.StartOfService, UnityTango.CoordinateFrame.StartOfService },
+                { ApiCoordinateFrameType.PreviousDevicePose, UnityTango.CoordinateFrame.PreviousDevicePose },
+                { ApiCoordinateFrameType.Device, UnityTango.CoordinateFrame.Device },
+                { ApiCoordinateFrameType.IMU, UnityTango.CoordinateFrame.IMU },
+                { ApiCoordinateFrameType.Display, UnityTango.CoordinateFrame.Display },
+                { ApiCoordinateFrameType.CameraColor, UnityTango.CoordinateFrame.CameraColor },
+                { ApiCoordinateFrameType.CameraDepth, UnityTango.CoordinateFrame.CameraDepth },
+                { ApiCoordinateFrameType.CameraFisheye, UnityTango.CoordinateFrame.CameraFisheye },
+                { ApiCoordinateFrameType.Invalid, UnityTango.CoordinateFrame.Invalid },
+                { ApiCoordinateFrameType.MaxCoordinateFrame, UnityTango.CoordinateFrame.MaxCoordinateFrameType },
+            };
+
+        /// <summary>
+        /// Converts an ApiCoordinateFrameType to it's Unity equivalent.
+        /// </summary>
+        public static UnityTango.CoordinateFrame ToUnityType(this ApiCoordinateFrameType apiFrame)
+        {
+            return API_TO_UNITY[apiFrame];
+        }
+
+        /// <summary>
+        /// Converts a unity CoordinateFrameType to it's ApiCoordinateFrameType equivalent.
+        /// </summary>
+        public static ApiCoordinateFrameType ToApiType(this UnityTango.CoordinateFrame unityFrame)
+        {
+            return UNITY_TO_API[unityFrame];
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameTypeExtensions.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameTypeExtensions.cs.meta
new file mode 100644
index 0000000..36293fc
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiCoordinateFrameTypeExtensions.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: de14f7d1b250a4e129010d36c1f2510b
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPlaneData.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPlaneData.cs
new file mode 100644
index 0000000..16af02b
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPlaneData.cs
@@ -0,0 +1,47 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiPlaneData.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System;
+    using System.Runtime.InteropServices;
+
+    /// The coordinate system of the plane frame is defined as:
+    /// The Z axis is vertical with the positive direction pointing up.
+    /// The X axis and Y axis are horizontal in the plane.
+    /// The positive direction of X axis points to the projection point of camera
+    /// on the XY plane.
+    [StructLayout(LayoutKind.Sequential)]
+    public struct ApiPlaneData
+    {
+        public int id;
+        public ApiPoseData pose;
+        public IntPtr boundaryPolygon;
+        public int boundaryPointNum;
+        public double centerX;
+        public double centerY;
+        public double width;
+        public double height;
+        public double yaw;
+        public double timestamp;
+        public int subsumedBy;
+        public bool isValid;
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPlaneData.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPlaneData.cs.meta
new file mode 100644
index 0000000..f413cf8
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPlaneData.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e3a33c7ebaf124a109cb6938b59619ee
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseData.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseData.cs
new file mode 100644
index 0000000..62e932f
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseData.cs
@@ -0,0 +1,164 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiPoseData.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Runtime.InteropServices;
+    using GoogleARCore;
+    using UnityEngine;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// The TangoPoseData struct contains 6DOF pose information.
+    ///
+    /// The device pose is given using Android conventions.  See the Android
+    /// <a href ="http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-coords">Sensor
+    /// Overview</a> page for more information.
+    /// </summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct ApiPoseData
+    {
+        /// <summary>
+        /// An integer denoting the version of the structure.
+        /// </summary>
+        [MarshalAs(UnmanagedType.I4)]
+        public int version;
+
+        /// <summary>
+        /// Timestamp of the time that this pose estimate corresponds to.
+        /// </summary>
+        [MarshalAs(UnmanagedType.R8)]
+        public double timestamp;
+
+        /// <summary>
+        /// Orientation, as a quaternion, of the pose of the target frame
+        /// with reference to the base frame.
+        /// Specified as (x,y,z,w) where RotationAngle is in radians:
+        /// <code>
+        ///   x = RotationAxis.x * sin(RotationAngle / 2)
+        ///   y = RotationAxis.y * sin(RotationAngle / 2)
+        ///   z = RotationAxis.z * sin(RotationAngle / 2)
+        ///   w = cos(RotationAngle / 2)
+        /// </code>
+        /// </summary>
+        public DVector4 orientation;
+
+        /// <summary>
+        /// Translation, ordered x, y, z, of the pose of the target frame
+        /// with reference to the base frame.
+        /// </summary>
+        public DVector3 translation;
+
+        /// <summary>
+        /// The status of the pose, according to the pose lifecycle.
+        /// </summary>
+        [MarshalAs(UnmanagedType.I4)]
+        public ApiPoseStatusType statusCode;
+
+        /// <summary>
+        /// The pair of coordinate frames for this pose.
+        ///
+        /// We retrieve a pose for a target coordinate frame (such as the Tango device) against a base
+        /// coordinate frame (such as a learned area).
+        /// </summary>
+        [MarshalAs(UnmanagedType.Struct)]
+        public ApiCoordinateFramePair framePair;
+
+        /// <summary>
+        /// Unused.  Integer levels are determined by service.
+        /// </summary>
+        [MarshalAs(UnmanagedType.I4)]
+        public int confidence;
+
+        /// <summary>
+        /// Unused.  Reserved for metric accuracy.
+        /// </summary>
+        [MarshalAs(UnmanagedType.R4)]
+        public float accuracy;
+
+        /// <summary>
+        /// Constructs an ApiPoseData equivalent to a unity PoseData.
+        /// </summary>
+        public ApiPoseData(UnityTango.PoseData unityPoseData)
+        {
+            // TODO (mtsmall): Tell unity version and accuracy should be uint.
+            version = (int)unityPoseData.version;
+            timestamp = unityPoseData.timestamp;
+            orientation = new DVector4(unityPoseData.orientation_x, unityPoseData.orientation_y,
+                unityPoseData.orientation_z, unityPoseData.orientation_w);
+            translation = new DVector3(unityPoseData.orientation_x, unityPoseData.orientation_y,
+                unityPoseData.orientation_z);
+            statusCode = unityPoseData.statusCode.ToApiType();
+            framePair = new ApiCoordinateFramePair(unityPoseData.frame);
+            confidence = (int)unityPoseData.confidence;
+            accuracy = unityPoseData.accuracy;
+        }
+
+        /// <summary>
+        /// Gets a unity PoseData equivalent to the ApiPoseData.
+        /// </summary>
+        /// <returns>A unity PoseData equivalent to the ApiPoseData.</returns>
+        public UnityTango.PoseData ToUnityType()
+        {
+            UnityTango.PoseData unityPose = new UnityTango.PoseData();
+
+            unityPose.version = (uint)version;
+            unityPose.timestamp = timestamp;
+            unityPose.statusCode = statusCode.ToUnityType();
+            unityPose.frame = framePair.ToUnityType();
+            unityPose.confidence = (uint)confidence;
+            unityPose.accuracy = accuracy;
+
+            if (framePair.baseFrame != ApiCoordinateFrameType.StartOfService) {
+                ARDebug.LogErrorFormat("apiPlaneData's base frame is not supported.");
+                unityPose.translation_x = translation.x;
+                unityPose.translation_y = translation.y;
+                unityPose.translation_z = translation.z;
+
+                unityPose.orientation_x = orientation.x;
+                unityPose.orientation_y = orientation.y;
+                unityPose.orientation_z = orientation.z;
+                unityPose.orientation_w = orientation.w;
+                return unityPose;
+            }
+
+
+            Matrix4x4 startService_T_plane = Matrix4x4.TRS(translation.ToVector3(),
+                orientation.ToQuaternion(), Vector3.one);
+
+            Matrix4x4 unityTransform = Constants.UNITY_WORLD_T_START_SERVICE *
+                startService_T_plane *
+                Constants.UNITY_WORLD_T_START_SERVICE.inverse;
+
+            Vector3 position = unityTransform.GetColumn(3);
+            unityPose.translation_x = position.x;
+            unityPose.translation_y = position.y;
+            unityPose.translation_z = position.z;
+
+            Quaternion rotation = Quaternion.LookRotation(unityTransform.GetColumn(2),
+                unityTransform.GetColumn(1));
+            unityPose.orientation_x = rotation.x;
+            unityPose.orientation_y = rotation.y;
+            unityPose.orientation_z = rotation.z;
+            unityPose.orientation_w = rotation.w;
+            return unityPose;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseData.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseData.cs.meta
new file mode 100644
index 0000000..ce0cdf8
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseData.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 2d4a3892884f34b018a13b62fd1615f1
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusType.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusType.cs
new file mode 100644
index 0000000..69136a0
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusType.cs
@@ -0,0 +1,59 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiPoseStatusType.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    /// <summary>
+    /// Tango pose status lifecycle enumerations.
+    ///
+    /// Every pose has a state denoted by this enum, which provides information about the internal status of the
+    /// position estimate. The application may use the status to decide what actions or rendering should be taken.
+    /// A change in the status between poses and subsequent timestamps can denote lifecycle state changes. The
+    /// status affects the rotation and position estimates. Other fields are considered valid (i.e. version or
+    /// timestamp).
+    /// </summary>
+    public enum ApiPoseStatusType
+    {
+        /// <summary>
+        /// Motion estimation is being initialized.
+        /// </summary>
+        Initializing,
+
+        /// <summary>
+        /// The pose of this estimate is valid.
+        /// </summary>
+        Valid,
+
+        /// <summary>
+        /// The pose of this estimate is not valid.
+        /// </summary>
+        Invalid,
+
+        /// <summary>
+        /// Could not estimate pose at this time.
+        /// </summary>
+        Unknown,
+
+        /// <summary>
+        /// Not Available, not a real <c>TangoPoseStatusType</c>.
+        /// </summary>
+        NA
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusType.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusType.cs.meta
new file mode 100644
index 0000000..7290fb1
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusType.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 0ecc3cfc7140844b080d13b395824f7e
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusTypeExtensions.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusTypeExtensions.cs
new file mode 100644
index 0000000..6a6f10d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusTypeExtensions.cs
@@ -0,0 +1,71 @@
+//-----------------------------------------------------------------------
+// <copyright file="CoordinateFrameTypeExtensions.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Collections.Generic;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// Extension methods for the tango PoseStatus enumerations.
+    /// </summary>
+    public static class ApiPoseStatusTypeExtensions
+    {
+        /// <summary>
+        /// Conversion from unity PoseStatus to ApiPoseStatusType.
+        /// </summary>
+        private static readonly Dictionary<UnityTango.PoseStatus, ApiPoseStatusType> UNITY_TO_API
+            = new Dictionary<UnityTango.PoseStatus, ApiPoseStatusType>()
+            {
+                { UnityTango.PoseStatus.Initializing, ApiPoseStatusType.Initializing },
+                { UnityTango.PoseStatus.Valid, ApiPoseStatusType.Valid },
+                { UnityTango.PoseStatus.Invalid, ApiPoseStatusType.Invalid },
+                { UnityTango.PoseStatus.Unknown, ApiPoseStatusType.Unknown },
+            };
+
+        /// <summary>
+        /// Conversion from ApiPoseStatusType to unity PoseStatus.
+        /// </summary>
+        private static readonly Dictionary<ApiPoseStatusType, UnityTango.PoseStatus> API_TO_UNITY
+            = new Dictionary<ApiPoseStatusType, UnityTango.PoseStatus>()
+            {
+                { ApiPoseStatusType.Initializing, UnityTango.PoseStatus.Initializing},
+                { ApiPoseStatusType.Valid, UnityTango.PoseStatus.Valid },
+                { ApiPoseStatusType.Invalid, UnityTango.PoseStatus.Invalid },
+                { ApiPoseStatusType.Unknown, UnityTango.PoseStatus.Unknown },
+            };
+
+        /// <summary>
+        /// Converts an ApiPoseStatusType to it's unity PoseStatus equivalent.
+        /// </summary>
+        public static UnityTango.PoseStatus ToUnityType(this ApiPoseStatusType apiFrame)
+        {
+            return API_TO_UNITY[apiFrame];
+        }
+
+        /// <summary>
+        /// Converts a unity PoseStatus to it's ApiPoseStatusType equivalent.
+        /// </summary>
+        public static ApiPoseStatusType ToApiType(this UnityTango.PoseStatus unityFrame)
+        {
+            return UNITY_TO_API[unityFrame];
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusTypeExtensions.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusTypeExtensions.cs.meta
new file mode 100644
index 0000000..2a79dbd
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiPoseStatusTypeExtensions.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 11e5f2ca787664315bfb00fe6d513b9b
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatus.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatus.cs
new file mode 100644
index 0000000..f9c82c4
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatus.cs
@@ -0,0 +1,61 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiServiceErrorStatus.cs" company="Google">
+//
+// Copyright 2016 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Collections;
+    using UnityEngine;
+
+    /// <summary>
+    /// Error status codes returned by Tango API functions.
+    /// </summary>
+    public enum ApiServiceErrorStatus
+    {
+        /// <summary>
+        /// No error, success.
+        /// </summary>
+        Success = 0,
+
+        /// <summary>
+        /// General error state.
+        /// </summary>
+        Error = -1,
+
+        /// <summary>
+        /// General invalid state.
+        /// </summary>
+        Invalid = -2,
+
+        /// <summary>
+        /// Motion tracking not allowed.
+        /// </summary>
+        NoMotionTrackingPermission = -3,
+
+        /// <summary>
+        /// ADF access not allowed.
+        /// </summary>
+        NoAdfPermission = -4,
+
+        /// <summary>
+        /// Camera access not allowed.
+        /// </summary>
+        NoCameraPermission = -5,
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatus.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatus.cs.meta
new file mode 100644
index 0000000..0fc3e84
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatus.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 346e5277913214a07a9b49e26e88e929
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatusExtensions.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatusExtensions.cs
new file mode 100644
index 0000000..c7e760a
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatusExtensions.cs
@@ -0,0 +1,50 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiServiceErrorStatusExtensions.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using GoogleARCore;
+
+    /// <summary>
+    /// A class containing utility extension methods.
+    /// </summary>
+    public static class ApiServiceErrorStatusExtensions
+    {
+        /// <summary>
+        /// Checks if an integer is equal to TANGO_SUCCESS.
+        /// </summary>
+        /// <param name="status">The status integer.</param>
+        /// <returns><c>true</c> if the calling integer is TANGO_SUCCESS, otherwise <c>false</c>.</returns>
+        public static bool IsTangoSuccess(this ApiServiceErrorStatus status)
+        {
+            return status == ApiServiceErrorStatus.Success;
+        }
+
+        /// <summary>
+        /// Checks if an integer is NOT equal to TANGO_SUCCESS.
+        /// </summary>
+        /// <param name="status">The status integer.</param>
+        /// <returns><c>true</c> if the calling integer is NOT TANGO_SUCCESS, otherwise <c>false</c>.</returns>
+        public static bool IsTangoFailure(this ApiServiceErrorStatus status)
+        {
+            return status != ApiServiceErrorStatus.Success;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatusExtensions.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatusExtensions.cs.meta
new file mode 100644
index 0000000..5426e7b
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiServiceErrorStatusExtensions.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 52118147dd6f84274984a53858fc8e85
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEvent.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEvent.cs
new file mode 100644
index 0000000..7d05df0
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEvent.cs
@@ -0,0 +1,52 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiTangoEvent.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Runtime.InteropServices;
+
+    [StructLayout(LayoutKind.Sequential)]
+    public struct ApiTangoEvent
+    {
+        /// <summary>
+        /// Timestamp, in seconds, of the event.
+        /// </summary>
+        [MarshalAs(UnmanagedType.R8)]
+        public double timestamp;
+
+        /// <summary>
+        /// Type of event.
+        /// </summary>
+        [MarshalAs(UnmanagedType.I4)]
+        public ApiTangoEventType type;
+
+        /// <summary>
+        /// Description of the event key.
+        /// </summary>
+        [MarshalAs(UnmanagedType.LPStr)]
+        public string key;
+
+        /// <summary>
+        /// Description of the event value.
+        /// </summary>
+        [MarshalAs(UnmanagedType.LPStr)]
+        public string value;
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEvent.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEvent.cs.meta
new file mode 100644
index 0000000..8765642
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEvent.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: b44e1f7bbf57d47beab095f819f5d104
+timeCreated: 1502985794
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEventType.cs b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEventType.cs
new file mode 100644
index 0000000..07dd3b6
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEventType.cs
@@ -0,0 +1,63 @@
+//-----------------------------------------------------------------------
+// <copyright file="ApiTangoEventType.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    /// <summary>
+    /// Tango Event types.
+    /// </summary>
+    public enum ApiTangoEventType
+    {
+        /// <summary>
+        /// Unclassified Event Type.
+        /// </summary>
+        Unknown = 0,
+
+        /// <summary>
+        /// General callbacks not otherwise categorized.
+        /// </summary>
+        General,
+
+        /// <summary>
+        /// Fisheye Camera Event.
+        /// </summary>
+        CameraFisheye,
+
+        /// <summary>
+        /// Color Camera Event.
+        /// </summary>
+        CameraColor,
+
+        /// <summary>
+        /// IMU Event.
+        /// </summary>
+        IMU,
+
+        /// <summary>
+        /// Feature Tracking Event.
+        /// </summary>
+        FeatureTracking,
+
+        /// <summary>
+        /// Area Learning Event.
+        /// </summary>
+        AreaLearning,
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEventType.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEventType.cs.meta
new file mode 100644
index 0000000..d47779a
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/ApiTangoEventType.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: c349842a9d0e54af581d69c927d85ad6
+timeCreated: 1502985794
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/TangoClientApi.cs b/Assets/GoogleARCore/SDK/Scripts/Api/TangoClientApi.cs
new file mode 100644
index 0000000..791923c
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/TangoClientApi.cs
@@ -0,0 +1,184 @@
+//-----------------------------------------------------------------------
+// <copyright file="TangoClientApi.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Diagnostics.CodeAnalysis;
+    using System.Runtime.InteropServices;
+    using GoogleARCore;
+
+    /// <summary>
+    /// Implementation of ITangoClientApi for Android.
+    /// </summary>
+    public class TangoClientApi
+    {
+        /// <summary>
+        /// Tango video overlay C callback function signature.
+        /// </summary>
+        /// <param name="callbackContext">The callback context.</param>
+        /// <param name="tangoEvent">Tango event.</param>
+        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+        private delegate void ApiOnEventAvailable(IntPtr callbackContext, ref ApiTangoEvent tangoEvent);
+
+        /// <summary>
+        /// Tango pose C callback function signature.
+        /// </summary>
+        /// <param name="callbackContext">Callback context.</param>
+        /// <param name="pose">Pose data.</param>
+        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+        private delegate void ApiOnPoseAvailable(IntPtr callbackContext, ref ApiPoseData pose);
+
+        private const string TANGO_CLIENT_API2_DLL = "tango_client_api2";
+
+        private static ApiOnEventAvailable m_onEventAvailable;
+
+        private static Queue<ApiTangoEvent> m_eventQueue;
+
+        private static object m_eventQueueLock;
+
+        private static ApiOnPoseAvailable m_onPoseAvailable;
+
+        private static Queue<ApiPoseData> m_poseQueue;
+
+        private static object m_poseQueueLock;
+
+        public static ApiServiceErrorStatus ConnectOnEventAvailable(Queue<ApiTangoEvent> eventQueue,
+            object eventQueueLock)
+        {
+            m_onEventAvailable = new ApiOnEventAvailable(_OnEventAvailableAsync);
+            m_eventQueue = eventQueue;
+            m_eventQueueLock = eventQueueLock;
+
+            return ExternApi.TangoService_connectOnTangoEvent(m_onEventAvailable);
+        }
+
+        public static ApiServiceErrorStatus ResetOnEventAvailable()
+        {
+            m_onEventAvailable = null;
+            return ExternApi.TangoService_connectOnTangoEvent(null);
+        }
+
+        public static ApiServiceErrorStatus ConnectOnPoseAvailable(ApiCoordinateFramePair[] framePairs,
+            Queue<ApiPoseData> poseQueue, object poseQueueLock)
+        {
+            m_onPoseAvailable = new ApiOnPoseAvailable(_OnPoseAvailableAsync);
+            m_poseQueue = poseQueue;
+            m_poseQueueLock = poseQueueLock;
+
+            return ExternApi.TangoService_connectOnPoseAvailable(framePairs.Length, framePairs, m_onPoseAvailable);
+        }
+
+        public static ApiServiceErrorStatus ResetOnPoseAvailable()
+        {
+            m_onPoseAvailable = null;
+            return ExternApi.TangoService_connectOnPoseAvailable(0, null, null);
+        }
+
+        public static ApiServiceErrorStatus TangoService_Experimental_getPlanes(ref IntPtr planes, ref int planeCount)
+        {
+            return ExternApi.TangoService_Experimental_getPlanes(ref planes, ref planeCount);
+        }
+
+        public static ApiServiceErrorStatus TangoPlaneData_free(IntPtr planes, int planeCount)
+        {
+            return ExternApi.TangoPlaneData_free(planes, planeCount);
+        }
+
+        public static ApiServiceErrorStatus TangoService_getPixelIntensity(
+            IntPtr yImage, int width, int height, int rowStride, out float value)
+        {
+            return ExternApi.TangoService_getPixelIntensity(yImage, width, height, rowStride,
+                out value);
+        }
+
+        public static ApiServiceErrorStatus TangoService_getLuminance(
+            long exposureDurationNs, int sensitivityIso, float lensAperature,
+            out float value)
+        {
+            return ExternApi.TangoService_getLuminance(exposureDurationNs, sensitivityIso,
+                lensAperature, out value);
+        }
+
+        public static ApiServiceErrorStatus TangoService_IsSupported(
+            out bool isSupported)
+        {
+            isSupported = false;
+            return ExternApi.TangoService_isSupported(ref isSupported);
+        }
+
+        public static bool CallsToConnectWithoutMatchingDisconnect()
+        {
+            return ExternApi.CallsToConnectWithoutMatchingDisconnect();
+        }
+
+        [AOT.MonoPInvokeCallback(typeof(ApiOnEventAvailable))]
+        private static void _OnEventAvailableAsync(IntPtr callbackContext, ref ApiTangoEvent tangoEvent)
+        {
+            lock (m_eventQueueLock)
+            {
+                m_eventQueue.Enqueue(tangoEvent);
+            }
+        }
+
+        [AOT.MonoPInvokeCallback(typeof(ApiOnPoseAvailable))]
+        private static void _OnPoseAvailableAsync(IntPtr callbackContext, ref ApiPoseData pose)
+        {
+            lock (m_poseQueueLock)
+            {
+                m_poseQueue.Enqueue(pose);
+            }
+        }
+
+        private struct ExternApi
+        {
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_connectOnTangoEvent(ApiOnEventAvailable callback);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_connectOnPoseAvailable(int count,
+                ApiCoordinateFramePair[] framePairs, ApiOnPoseAvailable callback);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_Experimental_getPlanes(ref IntPtr planes,
+                ref int planeCount);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoPlaneData_free(IntPtr planes, int planeCount);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_getPixelIntensity(
+                IntPtr yImage, int width, int height, int rowStride, out float value);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_getLuminance(
+                long exposureDurationNs, int sensitivityIso, float lensAperature,
+                out float value);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_isSupported(
+                ref bool isSupported);
+
+            [DllImport(TANGO_CLIENT_API2_DLL)]
+            public static extern bool CallsToConnectWithoutMatchingDisconnect();
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Api/TangoClientApi.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Api/TangoClientApi.cs.meta
new file mode 100644
index 0000000..b8068c5
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Api/TangoClientApi.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: c29cddd02045a4177bef0daf62a5acea
+timeCreated: 1502400396
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Async.meta b/Assets/GoogleARCore/SDK/Scripts/Async.meta
new file mode 100644
index 0000000..7f08641
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Async.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: b3aabcae5f79543dea8251d640bde6ad
+folderAsset: yes
+timeCreated: 1502330118
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Async/WaitForTaskCompletionYieldInstruction.cs b/Assets/GoogleARCore/SDK/Scripts/Async/WaitForTaskCompletionYieldInstruction.cs
new file mode 100644
index 0000000..eb33f16
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Async/WaitForTaskCompletionYieldInstruction.cs
@@ -0,0 +1,61 @@
+//-----------------------------------------------------------------------
+// <copyright file="WaitForTaskCompletionYieldInstruction.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Diagnostics.CodeAnalysis;
+    using UnityEngine;
+    using GoogleARCore;
+
+    /// <summary>
+    /// A yield instruction that blocks a coroutine until an AsyncTask has completed.
+    /// </summary>
+    /// <typeparam name="T">The type of the AsyncTask result.</typeparam>
+    public class WaitForTaskCompletionYieldInstruction<T> : CustomYieldInstruction
+    {
+        /// <summary>
+        /// The AsyncTask the yield instruction waits on.
+        /// </summary>
+        private AsyncTask<T> m_task;
+
+        /// <summary>
+        /// Constructor for WaitForTaskCompletionYieldInstruction.
+        /// </summary>
+        /// <param name="task">The task to wait for completion.</param>
+        public WaitForTaskCompletionYieldInstruction(AsyncTask<T> task)
+        {
+            m_task = task;
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether the coroutine instruction should keep waiting.
+        /// </summary>
+        /// <value><c>true</c> if the task is incomplete, otherwise <c>false</c>.</value>
+        [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter",
+         Justification = "Overridden method.")]
+        public override bool keepWaiting
+        {
+            get
+            {
+                return !m_task.IsComplete;
+            }
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Async/WaitForTaskCompletionYieldInstruction.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Async/WaitForTaskCompletionYieldInstruction.cs.meta
new file mode 100644
index 0000000..4d911ed
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Async/WaitForTaskCompletionYieldInstruction.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 2ba38d18d01304b4ab5105846c55aff1
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/AsyncTask.cs b/Assets/GoogleARCore/SDK/Scripts/AsyncTask.cs
new file mode 100644
index 0000000..c92dcc8
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AsyncTask.cs
@@ -0,0 +1,191 @@
+//-----------------------------------------------------------------------
+// <copyright file="AsyncTask.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Threading;
+    using UnityEngine;
+    using GoogleARCoreInternal;
+
+    /// <summary>
+    /// A class used for monitoring the status of an asynchronous task.
+    /// </summary>
+    /// <typeparam name="T">The resultant type of the task.</typeparam>
+    public class AsyncTask<T>
+    {
+        /// <summary>
+        /// A collection of actons to perform on the main Unity thread after the task is complete.
+        /// </summary>
+        private List<Action<T>> actionsUponTaskCompletion;
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Constructor for AsyncTask.
+        /// </summary>
+        /// <param name="asyncOperationComplete">A callback that, when invoked, changes the status of the task to
+        /// complete and sets the result based on the argument supplied.</param>
+        public AsyncTask(out Action<T> asyncOperationComplete)
+        {
+            IsComplete = false;
+            asyncOperationComplete = delegate(T result)
+            {
+                Result = result;
+                IsComplete = true;
+                if (actionsUponTaskCompletion != null)
+                {
+                    AsyncTask.PerformActionInUpdate(() =>
+                    {
+                        for (int i = 0; i < actionsUponTaskCompletion.Count; i++)
+                        {
+                            actionsUponTaskCompletion[i](result);
+                        }
+                    });
+                }
+            };
+        }
+        /// @endcond
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Constructor for AsyncTask that creates a completed task.
+        /// </summary>
+        /// <param name="result">The result of the completed task.</param>
+        public AsyncTask(T result)
+        {
+            Result = result;
+            IsComplete = true;
+        }
+        /// @endcond
+
+        /// <summary>
+        /// Gets a value indicating whether the task is complete.
+        /// </summary>
+        /// <value><c>true</c> if the task is complete, otherwise <c>false</c>.</value>
+        public bool IsComplete { get; private set; }
+
+        /// <summary>
+        /// Gets the result of a completed task.
+        /// </summary>
+        /// <value>The result of the completed task.</value>
+        public T Result { get; private set; }
+
+        /// <summary>
+        /// Returns a yield instruction that monitors this task for completion within a coroutine.
+        /// </summary>
+        /// <returns>A yield instruction that monitors this task for completion.</returns>
+        public CustomYieldInstruction WaitForCompletion()
+        {
+            return new WaitForTaskCompletionYieldInstruction<T>(this);
+        }
+
+        /// <summary>
+        /// Performs an action (callback) in the first Unity Update() call after task completion.
+        /// </summary>
+        /// <param name="doAfterTaskComplete">The action to invoke when task is complete.  The result of the task will
+        /// be passed as an argument to the action.</param>
+        /// <returns>The invoking asynchronous task.</returns>
+        public AsyncTask<T> ThenAction(Action<T> doAfterTaskComplete)
+        {
+            // Perform action now if task is already complete.
+            if (IsComplete)
+            {
+                doAfterTaskComplete(Result);
+                return this;
+            }
+
+            // Allocate list if needed (avoids allocation if then is not used).
+            if (actionsUponTaskCompletion == null)
+            {
+                actionsUponTaskCompletion = new List<Action<T>>();
+            }
+
+            actionsUponTaskCompletion.Add(doAfterTaskComplete);
+            return this;
+        }
+    }
+
+    /// @cond EXCLUDE_FROM_DOXYGEN
+    /// <summary>
+    /// Helper methods for dealing with asynchronous tasks.
+    /// </summary>
+    public class AsyncTask
+    {
+        private static Queue<Action> actionQueue = new Queue<Action>();
+
+        private static object lock_object = new object();
+
+        /// <summary>
+        /// Encapsulates a delegate method in a thread and returns a task that monitors completion.
+        /// </summary>
+        /// <param name="taskMethod">The method to perform in a thread.</param>
+        /// <typeparam name="T">The resultant type of the task.</typeparam>
+        /// <returns>A task that will complete when the supplied method has completed.</returns>
+        public static AsyncTask<T> DoTaskInThread<T>(Func<T> taskMethod)
+        {
+            Action<T> asyncTaskComplete;
+            var task = new AsyncTask<T>(out asyncTaskComplete);
+
+            // Spawn thread to perform the task.
+            new Thread(() =>
+            {
+                try
+                {
+                    T result = taskMethod();
+                    asyncTaskComplete(result);
+                }
+                catch (Exception e)
+                {
+                    ARDebug.LogErrorFormat("An AsyncTask task produced an uncaught exception::{0}", e.ToString());
+                    asyncTaskComplete(default(T));
+                }
+            }).Start();
+
+            return task;
+        }
+
+        /// <summary>
+        /// Queues an action to be performed on Unity thread in Update().  This method can be called by any thread.
+        /// </summary>
+        /// <param name="action">The action to perform.</param>
+        public static void PerformActionInUpdate(Action action)
+        {
+            lock(lock_object)
+            {
+                actionQueue.Enqueue(action);
+            }
+        }
+
+        /// <summary>
+        /// An Update handler called from the ARCore SessionComponent in the scene.
+        /// </summary>
+        public static void EarlyUpdate()
+        {
+            int count = actionQueue.Count;
+            for (int i = 0; i < count; i++)
+            {
+                Action action = actionQueue.Dequeue();
+                action();
+            }
+        }
+    }
+    /// @endcond
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/AsyncTask.cs.meta b/Assets/GoogleARCore/SDK/Scripts/AsyncTask.cs.meta
new file mode 100644
index 0000000..62982e1
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/AsyncTask.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: d48675563f8a14e85bb73c0a6d45d9f0
+timeCreated: 1503943281
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/EnvironmentalLight.cs b/Assets/GoogleARCore/SDK/Scripts/EnvironmentalLight.cs
new file mode 100644
index 0000000..a85184c
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/EnvironmentalLight.cs
@@ -0,0 +1,75 @@
+//-----------------------------------------------------------------------
+// <copyright file="EnvironmentalLight.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using UnityEngine;
+    using UnityEngine.Rendering;
+
+    /// <summary>
+    /// A component that automatically adjust lighting settings for the scene
+    /// to be inline with those estimated by ARCore.
+    /// </summary>
+    [ExecuteInEditMode]
+    public class EnvironmentalLight : MonoBehaviour
+    {
+        /// <summary>
+        /// Unity update method that sets global light estimation shader constant to match
+        /// ARCore's calculated values.
+        /// </summary>
+        public void Update()
+        {
+#if UNITY_EDITOR
+            // Set _GlobalLightEstimation to 1 in editor, if the value is not set, all materials
+            // using light estimation shaders will be black.
+            Shader.SetGlobalFloat("_GlobalLightEstimation", 1.0f);
+#else
+            if (Frame.TrackingState != FrameTrackingState.Tracking)
+            {
+                return;
+            }
+
+            // Use the following function to compute color scale:
+            // * linear growth from (0.0, 0.0) to (1.0, LinearRampThreshold)
+            // * slow growth from (1.0, LinearRampThreshold)
+            const float LinearRampThreshold = 0.8f;
+            const float MiddleGray = 0.18f;
+            const float Inclination = 0.4f;
+
+            float normalizedIntensity = Frame.LightEstimate.PixelIntensity / MiddleGray;
+            float colorScale = 1.0f;
+
+            if (normalizedIntensity < 1.0f)
+            {
+                colorScale = normalizedIntensity * LinearRampThreshold;
+            }
+            else
+            {
+                float b = LinearRampThreshold / Inclination - 1.0f;
+                float a = (b + 1.0f) / b * LinearRampThreshold;
+                colorScale = a * (1.0f - (1.0f / (b * normalizedIntensity + 1.0f)));
+            }
+
+            Shader.SetGlobalFloat("_GlobalLightEstimation", colorScale);
+#endif
+        }
+    }
+}
+
diff --git a/Assets/GoogleARCore/SDK/Scripts/EnvironmentalLight.cs.meta b/Assets/GoogleARCore/SDK/Scripts/EnvironmentalLight.cs.meta
new file mode 100644
index 0000000..987327f
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/EnvironmentalLight.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 92a4cf446a0c7334aaceb5457be27894
+timeCreated: 1502753977
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Frame.cs b/Assets/GoogleARCore/SDK/Scripts/Frame.cs
new file mode 100644
index 0000000..59c36a9
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Frame.cs
@@ -0,0 +1,135 @@
+//-----------------------------------------------------------------------
+// <copyright file="CurrentFrame.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System.Collections.Generic;
+    using UnityEngine;
+    using GoogleARCoreInternal;
+
+    /// <summary>
+    /// Provides a snapshot of the state of ARCore at a specific timestamp
+    /// associated with the current frame.  Frame holds information
+    /// about ARCore's state including tracking status, the pose of the camera
+    /// relative to the world, estimated lighting parameters, and information
+    /// on updates to objects (like Planes or Point Clouds) that ARCore is
+    /// tracking.
+    /// </summary>
+    public class Frame
+    {
+        /// <summary>
+        /// Gets the tracking state of the frame.
+        /// </summary>
+        public static FrameTrackingState TrackingState
+        {
+            get
+            {
+                if (SessionManager.ConnectionState != SessionConnectionState.Connected)
+                {
+                    return FrameTrackingState.TrackingNotInitialized;
+                }
+
+                Pose junkPose;
+                double junkTimestamp;
+                bool isTracking = SessionManager.Instance.MotionTrackingManager.TryGetLatestPose(out junkPose,
+                    out junkTimestamp);
+
+                if (isTracking)
+                {
+                    return FrameTrackingState.Tracking;
+                }
+                else
+                {
+                    return FrameTrackingState.LostTracking;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets the pose of the device's camera in the world coordinate frame
+        /// at the time of capture of the current frame.
+        /// </summary>
+        public static Pose Pose
+        {
+            get
+            {
+                Pose pose;
+                double timestamp;
+                SessionManager.Instance.MotionTrackingManager.TryGetLatestPose(out pose, out timestamp);
+                return pose;
+            }
+        }
+
+        /// <summary>
+        /// Gets the current light estimate for this frame.
+        /// </summary>
+        public static LightEstimate LightEstimate
+        {
+            get
+            {
+                return SessionManager.Instance.LightEstimateManager.GetLatestLightEstimate();
+            }
+        }
+
+        /// <summary>
+        /// Get the ARCore device's point cloud for the current ARCore frame.
+        /// </summary>
+        public static PointCloud PointCloud
+        {
+            get
+            {
+                return SessionManager.Instance.PointCloudManager.GetLatestPointCloud();
+            }
+        }
+
+        /// <summary>
+        /// Gets the hardware timestamp of the current ARCore frame.
+        /// </summary>
+        public static double Timestamp
+        {
+            get
+            {
+                Pose pose;
+                double timestamp;
+                SessionManager.Instance.MotionTrackingManager.TryGetLatestPose(out pose, out timestamp);
+                return timestamp;
+            }
+        }
+
+        /// <summary>
+        /// Gets planes newly detected in the current ARCore frame.
+        /// </summary>
+        /// <param name="newPlanes">A list reference that to be filled with planes detected in the current frame.
+        /// </param>
+        public static void GetNewPlanes(ref List<TrackedPlane> newPlanes)
+        {
+            SessionManager.Instance.TrackedPlaneManager.GetNewPlanes(ref newPlanes);
+        }
+
+        /// <summary>
+        /// Gets all TrackedPlane objects that have been detected in the session.
+        /// </summary>
+        /// <param name="planes">A list of TrackedPlane to be filled by the method call.</param>
+        public static void GetAllPlanes(ref List<TrackedPlane> planes)
+        {
+            SessionManager.Instance.TrackedPlaneManager.GetAllPlanes(ref planes);
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Frame.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Frame.cs.meta
new file mode 100644
index 0000000..5921558
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Frame.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: f23179d83fac54b6898d7f842a3ecf83
+timeCreated: 1503161028
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/FrameTrackingState.cs b/Assets/GoogleARCore/SDK/Scripts/FrameTrackingState.cs
new file mode 100644
index 0000000..83ee191
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/FrameTrackingState.cs
@@ -0,0 +1,45 @@
+//-----------------------------------------------------------------------
+// <copyright file="FrameTrackingState.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    /// <summary>
+    /// The tracking state for an ARCore frame.
+    /// </summary>
+    public enum FrameTrackingState
+    {
+        /// <summary>
+        /// The motion tracking system is not initialized.  The frame is invalid.
+        /// </summary>
+        TrackingNotInitialized = 0,
+
+        /// <summary>
+        /// The motion tracking system has lost tracking.  This can happen for various reasons including poor
+        /// lighting conditions or a lack of visually distinct features in the camera frame.  ARCore will attempt
+        /// to re-establish tracking, but the frame is invalid.
+        /// </summary>
+        LostTracking,
+
+        /// <summary>
+        /// The motion tracking system is tracking and the frame is valid.
+        /// </summary>
+        Tracking,
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/FrameTrackingState.cs.meta b/Assets/GoogleARCore/SDK/Scripts/FrameTrackingState.cs.meta
new file mode 100644
index 0000000..3a22007
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/FrameTrackingState.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 47754eb92209f45c5ab036367ed42822
+timeCreated: 1503161028
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/InvalidSessionAccessException.cs b/Assets/GoogleARCore/SDK/Scripts/InvalidSessionAccessException.cs
new file mode 100644
index 0000000..51adeac
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/InvalidSessionAccessException.cs
@@ -0,0 +1,35 @@
+//-----------------------------------------------------------------------
+// <copyright file="InvalidSessionAccessException.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+
+    /// <summary>
+    /// An exception indicating that the ARCore session resources have been accessed while in an invalid state.  This
+    /// will happen when the session is not connected but the developer has accessed the Session or Frame.
+    /// </summary>
+    public class InvalidSessionAccessException : Exception
+    {
+        public InvalidSessionAccessException(string message) : base(message) {}
+
+        public InvalidSessionAccessException(string message, Exception inner) : base(message, inner) {}
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/InvalidSessionAccessException.cs.meta b/Assets/GoogleARCore/SDK/Scripts/InvalidSessionAccessException.cs.meta
new file mode 100644
index 0000000..8376676
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/InvalidSessionAccessException.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 50b150a1f3f1d43eb8e315720b41b952
+timeCreated: 1503527569
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/LightEstimate.cs b/Assets/GoogleARCore/SDK/Scripts/LightEstimate.cs
new file mode 100644
index 0000000..d0549d6
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/LightEstimate.cs
@@ -0,0 +1,51 @@
+//-----------------------------------------------------------------------
+// <copyright file="LightEstimate.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using UnityEngine;
+    /// @cond EXCLUDE_FROM_DOXYGEN
+    using UnityTango = GoogleAR.UnityNative;
+    /// @endcond
+
+    /// <summary>
+    /// An estimate of lighting conditions in the environment corresponding to
+    /// an AR frame.
+    /// </summary>
+    public struct LightEstimate
+    {
+        /// <summary>
+        /// Return an average pixel intensity. Values range from 0.0 to 1.0, where 0.0
+        /// represents black and 1.0 represents white.
+        /// </summary>
+        public float PixelIntensity { get; private set; }
+
+        /// <summary>
+        /// Constructor for a LightEstimate.
+        /// </summary>
+        /// <param name="pixelIntensity">Average pixel intensity. Values range from 0.0
+        /// to 1.0, where 0.0 represents black and 1.0 represents white.
+        /// </param>
+        public LightEstimate(float pixelIntensity)
+        {
+            PixelIntensity = pixelIntensity;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/LightEstimate.cs.meta b/Assets/GoogleARCore/SDK/Scripts/LightEstimate.cs.meta
new file mode 100644
index 0000000..d70fb42
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/LightEstimate.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: fda591ded80f4d6489368b5527603e86
+timeCreated: 1502160887
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers.meta b/Assets/GoogleARCore/SDK/Scripts/Managers.meta
new file mode 100644
index 0000000..e4ba6c7
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: dce186e1ec2f84d108a7e1543b19e958
+folderAsset: yes
+timeCreated: 1502400947
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/AnchorManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/AnchorManager.cs
new file mode 100644
index 0000000..a4ccb8a
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/AnchorManager.cs
@@ -0,0 +1,197 @@
+//-----------------------------------------------------------------------
+// <copyright file="AnchorManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System;
+    using System.Collections.Generic;
+    using GoogleARCore;
+    using UnityEngine;
+    using UnityTango = UnityEngine.XR.Tango;
+
+    public class AnchorManager
+    {
+        public enum AnchorManagerTrackingState
+        {
+            Tracking,
+            TrackingNotLocalized,
+            TrackingLost,
+            TrackingStopped,
+        }
+
+        private List<AnchorRecord> m_anchors = new List<AnchorRecord>();
+
+        private List<AnchorRecord> m_nonLocalizedAnchors = new List<AnchorRecord>();
+
+        public AnchorManagerTrackingState m_trackingState = AnchorManagerTrackingState.TrackingStopped;
+
+        /// <summary>
+        /// ARCore drift correction may shift the virtual coordinate frame as motion tracking estimates are refined;
+        /// this method creates an anchor that attempts to represent <c>position</c> and <c>rotation</c> relative to the
+        /// "real world" coordinate compensating for drift correction updates.
+        /// </summary>
+        /// <param name="position">The position to anchor.</param>
+        /// <param name="rotation">The rotation to anchor.</param>
+        /// <returns>A newly created anchor tracking <c>position</c> and <c>rotation</c> if successful, otherwise
+        /// <c>null</c>.</returns>
+        public Anchor CreateAnchor(Vector3 position, Quaternion rotation)
+        {
+            Action<double> updateTracking;
+            Action<AnchorTrackingState> updateTrackingState;
+            var newAnchor = Anchor.InstantiateAnchor(position, rotation, out updateTracking, out updateTrackingState);
+            var newAnchorRecord = new AnchorRecord(newAnchor, updateTracking, updateTrackingState);
+            if (SessionManager.Instance.MotionTrackingManager.IsLocalized)
+            {
+                m_anchors.Add(newAnchorRecord);
+            }
+            else
+            {
+                m_nonLocalizedAnchors.Add(newAnchorRecord);
+            }
+
+            return newAnchor;
+        }
+
+        /// <summary>
+        /// Updates the tracking of all anchors.
+        /// </summary>
+        public void EarlyUpdate()
+        {
+            _SetNewTrackingState(Frame.TrackingState, SessionManager.Instance.MotionTrackingManager.IsLocalized);
+
+            const string POSE_HISTORY_EVENT_KEY = "EXPERIMENTAL_PoseHistoryChanged";
+            double earliestTimestamp = double.MaxValue;
+            for (int i = 0; i < SessionManager.Instance.TangoEvents.Count; i++)
+            {
+                var tangoEvent = SessionManager.Instance.TangoEvents[i];
+                if (tangoEvent.key == POSE_HISTORY_EVENT_KEY && double.Parse(tangoEvent.value) < earliestTimestamp)
+                {
+                    earliestTimestamp = double.Parse(tangoEvent.value);
+                }
+            }
+
+            // Update the pose of anchors.
+            if (earliestTimestamp < double.MaxValue)
+            {
+                for (int i = 0; i < m_anchors.Count; i++)
+                {
+                    m_anchors[i].m_updateTracking(earliestTimestamp);
+                }
+
+                for (int i = 0;  i < m_nonLocalizedAnchors.Count; i++)
+                {
+                    m_nonLocalizedAnchors[i].m_updateTracking(earliestTimestamp);
+                }
+            }
+        }
+
+        public void OnApplicationPause(bool isPaused)
+        {
+            if (isPaused)
+            {
+                _UpdateAnchorTrackingState(AnchorTrackingState.StoppedTracking, m_anchors);
+                _UpdateAnchorTrackingState(AnchorTrackingState.StoppedTracking, m_nonLocalizedAnchors);
+                m_anchors.Clear();
+                m_nonLocalizedAnchors.Clear();
+            }
+        }
+
+        private void _SetNewTrackingState(FrameTrackingState frameTrackingState, bool localized)
+        {
+            AnchorManagerTrackingState oldTrackingState = m_trackingState;
+
+            if (frameTrackingState == FrameTrackingState.LostTracking)
+            {
+                m_trackingState = AnchorManagerTrackingState.TrackingLost;
+            }
+            else if (frameTrackingState == FrameTrackingState.TrackingNotInitialized)
+            {
+                m_trackingState = AnchorManagerTrackingState.TrackingStopped;
+            }
+            else if (!localized)
+            {
+                m_trackingState = AnchorManagerTrackingState.TrackingNotLocalized;
+            }
+            else
+            {
+                m_trackingState = AnchorManagerTrackingState.Tracking;
+            }
+
+            _HandleTrackingStateChange(oldTrackingState, m_trackingState);
+        }
+
+        private void _HandleTrackingStateChange(AnchorManagerTrackingState oldState,
+            AnchorManagerTrackingState newState)
+        {
+            if (oldState == newState)
+            {
+                // There is no state change to process.
+                return;
+            }
+            else if (newState == AnchorManagerTrackingState.Tracking)
+            {
+                // Tracking has been (re-)established, any non-localized anchors that were not lost become localized and
+                // all localized anchors become tracked.
+                m_anchors.AddRange(m_nonLocalizedAnchors);
+                m_nonLocalizedAnchors.Clear();
+                _UpdateAnchorTrackingState(AnchorTrackingState.Tracking, m_anchors);
+            }
+            else if (newState == AnchorManagerTrackingState.TrackingNotLocalized)
+            {
+                // The device is tracking but not localized; meaning the device is on a separate map from localized
+                // anchors. Thus, localized anchors are lost.
+                _UpdateAnchorTrackingState(AnchorTrackingState.LostTracking, m_anchors);
+            }
+            else if (newState == AnchorManagerTrackingState.TrackingLost)
+            {
+                // Tracking is now lost and localized anchors should move to not tracking.  Any non-localized anchors
+                // are now lost forever (stopped).
+                _UpdateAnchorTrackingState(AnchorTrackingState.LostTracking, m_anchors);
+                _UpdateAnchorTrackingState(AnchorTrackingState.StoppedTracking, m_nonLocalizedAnchors);
+                m_nonLocalizedAnchors.Clear();
+            }
+        }
+
+        private void _UpdateAnchorTrackingState(AnchorTrackingState trackingState, List<AnchorRecord> anchorRecords)
+        {
+            for (int i = 0; i < anchorRecords.Count; i++)
+            {
+                anchorRecords[i].m_updateTrackingState(trackingState);
+            }
+        }
+
+        private struct AnchorRecord
+        {
+            public Anchor m_anchor;
+
+            public Action<double> m_updateTracking;
+
+            public Action<AnchorTrackingState> m_updateTrackingState;
+
+            public AnchorRecord(Anchor anchor, Action<double> updateTracking,
+                Action<AnchorTrackingState> updateTrackingState)
+            {
+                m_anchor = anchor;
+                m_updateTracking = updateTracking;
+                m_updateTrackingState = updateTrackingState;
+            }
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/AnchorManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/AnchorManager.cs.meta
new file mode 100644
index 0000000..3a4e2e0
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/AnchorManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 05c032f157c6b416f8d2bbcdef61456f
+timeCreated: 1502925769
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/LightEstimateManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/LightEstimateManager.cs
new file mode 100644
index 0000000..6d2c165
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/LightEstimateManager.cs
@@ -0,0 +1,88 @@
+//-----------------------------------------------------------------------
+// <copyright file="LightEstimateManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System;
+    using System.Runtime.InteropServices;
+    using GoogleARCore;
+    using UnityEngine;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// A manager for light estimate state.
+    /// </summary>
+    public class LightEstimateManager
+    {
+        /// <summary>
+        /// The latest light estimate for this frame.
+        /// </summary>
+        private LightEstimate m_latestLightEstimate;
+
+        /// <summary>
+        /// The unity frame count where <c>m_latestLightEstimate</c> was last updated.
+        /// </summary>
+        private int m_latestLightEstimateFrame = 0;
+
+        /// <summary>
+        /// Get the most recent light estimate.
+        /// </summary>
+        /// <returns></returns>
+        public LightEstimate GetLatestLightEstimate()
+        { 
+            // Maintain frame consistency.
+            if (Time.frameCount == m_latestLightEstimateFrame)
+            {
+                return m_latestLightEstimate;
+            }
+
+            m_latestLightEstimateFrame = Time.frameCount;
+
+            UnityTango.NativeImage nativeImage = new UnityTango.NativeImage();
+            if (!UnityTango.Device.TryAcquireLatestImageBuffer(ref nativeImage))
+            {
+                Debug.LogError("Unable to acquire image buffer.");
+                return m_latestLightEstimate;
+            }
+
+            // The Y plane is always the first one.
+            var yPlaneInfo = nativeImage.planeInfos[0];
+            IntPtr yPlaneStart = new IntPtr(nativeImage.planeData.ToInt64() + yPlaneInfo.offset);
+            float intensity;
+            ApiServiceErrorStatus status = TangoClientApi.TangoService_getPixelIntensity(
+                yPlaneStart,
+                (int)nativeImage.width,
+                (int)nativeImage.height,
+                nativeImage.planeInfos[0].rowStride,
+                out intensity);
+            if (status != ApiServiceErrorStatus.Success)
+            {
+                Debug.LogErrorFormat("Call to getPixelIntensity failed: {0}.", status);
+                return m_latestLightEstimate;
+            }
+
+            m_latestLightEstimate = new LightEstimate(intensity);
+
+            UnityTango.Device.ReleaseImageBuffer(nativeImage);
+
+            return m_latestLightEstimate;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/LightEstimateManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/LightEstimateManager.cs.meta
new file mode 100644
index 0000000..28672af
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/LightEstimateManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 88655108d6b234793bc9238ffeb5c260
+timeCreated: 1502418261
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/MotionTrackingManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/MotionTrackingManager.cs
new file mode 100644
index 0000000..45fb121
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/MotionTrackingManager.cs
@@ -0,0 +1,113 @@
+//-----------------------------------------------------------------------
+// <copyright file="MotionTrackingManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using UnityEngine;
+    using UnityTango = GoogleAR.UnityNative;
+    using System.Collections.Generic;
+
+    /// <summary>
+    /// A manager for motion tracking.
+    /// </summary>
+    public class MotionTrackingManager
+    {
+        private Pose m_latestPose = new Pose();
+
+        private bool m_latestPoseValid;
+
+        private int m_latestPoseFrame = 0;
+
+        private double m_latestTimestamp = 0.0f;
+
+        private Queue<ApiPoseData> m_poseQueue = new Queue<ApiPoseData>();
+
+        private object m_poseQueueLock = new object();
+
+        public bool IsLocalized { get; private set; }
+
+        public MotionTrackingManager()
+        {
+            ApiCoordinateFramePair[] framePairs = new ApiCoordinateFramePair[]
+            {
+                new ApiCoordinateFramePair()
+                {
+                    baseFrame = ApiCoordinateFrameType.AreaDescription,
+                    targetFrame = ApiCoordinateFrameType.StartOfService,
+                }
+            };
+
+            TangoClientApi.ConnectOnPoseAvailable(framePairs, m_poseQueue, m_poseQueueLock);
+        }
+
+        public void EarlyUpdate()
+        {
+            lock (m_poseQueueLock)
+            {
+                while (m_poseQueue.Count > 0)
+                {
+                    ApiPoseData pose = m_poseQueue.Dequeue();
+                    if (pose.framePair.baseFrame == ApiCoordinateFrameType.AreaDescription &&
+                        pose.framePair.targetFrame == ApiCoordinateFrameType.StartOfService)
+                    {
+                        IsLocalized = pose.statusCode == ApiPoseStatusType.Valid;
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// Attempts to get the most recent valid pose produced by ARCore motion tracking.  This will be frame
+        /// consistent with Unity.
+        /// </summary>
+        /// <param name="pose">The latest pose.</param>
+        /// <param name="timestamp">The timestamp of the latest pose.</param>
+        /// <returns><c>true</c> if the ARCore could produce a latest pose, otherwise <c>false</c>.</returns>
+        public bool TryGetLatestPose(out Pose pose, out double timestamp)
+        {
+            // Maintain frame consistency.
+            if (Time.frameCount == m_latestPoseFrame)
+            {
+                pose = m_latestPose;
+                timestamp = m_latestTimestamp;
+                return m_latestPoseValid;
+            }
+
+            m_latestPoseFrame = Time.frameCount;
+
+            UnityTango.PoseData poseData;
+            bool getPoseSuccess = UnityTango.InputTracking.TryGetPoseAtTime(
+                out poseData, UnityTango.CoordinateFrame.StartOfService, UnityTango.CoordinateFrame.CameraColor, 0.0f);
+            if (!getPoseSuccess || (poseData.statusCode != UnityTango.PoseStatus.Valid))
+            {
+                m_latestPose = pose = new Pose();
+                timestamp = 0.0d;
+                m_latestPoseValid = false;
+                return false;
+            }
+
+            // Update latest pose with new valid pose.
+            m_latestPose = pose = new Pose(poseData.position, poseData.rotation);
+            m_latestTimestamp = timestamp = poseData.timestamp;
+            m_latestPoseValid = true;
+            return true;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/MotionTrackingManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/MotionTrackingManager.cs.meta
new file mode 100644
index 0000000..c5fdbe9
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/MotionTrackingManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: f1d37069342944497bc25265eb5e71b7
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/PointCloudManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/PointCloudManager.cs
new file mode 100644
index 0000000..2b37f1d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/PointCloudManager.cs
@@ -0,0 +1,68 @@
+//-----------------------------------------------------------------------
+// <copyright file="DepthCameraManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using GoogleARCore;
+    using UnityEngine;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// A manager for the depth camera.
+    /// </summary>
+    public class PointCloudManager
+    {
+        /// <summary>
+        /// The latest raw point cloud data.
+        /// </summary>
+        private PointCloud m_latestRawPointCloud = new PointCloud(null);
+
+        /// <summary>
+        /// The unity frame count where <c>m_latestPose</c> was last updated.
+        /// </summary>
+        private int m_latestPointCloudFrame = 0;
+
+        /// <summary>
+        /// Gets the latest point cloud from the depth camera.
+        /// </summary>
+        /// <returns>The latest point cloud from the depth camera.</returns>
+        public PointCloud GetLatestPointCloud()
+        {
+            // Maintain frame consistency.
+            if (Time.frameCount == m_latestPointCloudFrame)
+            {
+                return m_latestRawPointCloud;
+            }
+
+            // Attempt to query latest point cloud.
+            UnityTango.PointCloudData rawPointCloud = new UnityTango.PointCloudData();
+            if (!UnityTango.Device.TryGetLatestPointCloud(ref rawPointCloud))
+            {
+                return m_latestRawPointCloud;
+            }
+
+            // Update the latest point cloud.
+            m_latestRawPointCloud = new PointCloud(rawPointCloud);
+            m_latestPointCloudFrame = Time.frameCount;
+
+            return m_latestRawPointCloud;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/PointCloudManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/PointCloudManager.cs.meta
new file mode 100644
index 0000000..f9933f3
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/PointCloudManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 51d2d9ca3d4c740f8b68bfd58bffad4a
+timeCreated: 1502414771
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/RaycastManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/RaycastManager.cs
new file mode 100644
index 0000000..97be1d6
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/RaycastManager.cs
@@ -0,0 +1,235 @@
+//-----------------------------------------------------------------------
+// <copyright file="RaycastManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Collections.Generic;
+    using GoogleARCore;
+    using UnityEngine;
+
+    public class RaycastManager
+    {
+        private List<TrackedPlane> m_allPlanes = new List<TrackedPlane>();
+
+        private List<Vector3> m_tmpPolygonPoints = new List<Vector3>();
+
+        /// <summary>
+        /// Hit test against all detected planes. If point cloud hit flag is enabled, it will return point
+        /// cloud hit if there's no plane hit found.
+        /// </summary>
+        /// <param name="screenUV">Touch UV point in Unity screen space.
+        ///     The bottom-left of the screen is (0,0); the right-top is (pixelWidth,pixelHeight).</param>
+        /// <param name="hitTestType">Hit test method used.</param>
+        /// <param name="hitPose">Output pose if hit test is successful.</param>
+        /// <returns>Return true if hit test is successful, otherwise false.</returns>
+        public bool Raycast(Ray ray, TrackableHitFlag filter, out TrackableHit hitResult)
+        {
+            TrackableHit? closestHit = null;
+            Frame.GetAllPlanes(ref m_allPlanes);
+
+            for (int i = 0; i < m_allPlanes.Count; i++)
+            {
+                TrackableHit? currentHit = null;
+
+                if (!m_allPlanes[i].IsValid || m_allPlanes[i].SubsumedBy != null)
+                {
+                    continue;
+                }
+
+                TrackableHit hit;
+                if (HitTestPlane(ray, filter, m_allPlanes[i], out hit))
+                {
+                    currentHit = hit;
+                }
+
+                if (currentHit != null && (closestHit == null || Vector3.Distance(ray.origin, currentHit.Value.Point)
+                    < Vector3.Distance(ray.origin, closestHit.Value.Point)))
+                {
+                    closestHit = currentHit;
+                }
+            }
+
+            if (closestHit != null)
+            {
+                hitResult = closestHit.Value;
+                return true;
+            }
+            else
+            {
+                if (_HasFlag(filter, TrackableHitFlag.PointCloud))
+                {
+                    Vector3 hitpoint = new Vector3();
+                    if (_IsRayIntersectingPoint(ray, Frame.PointCloud, ref hitpoint))
+                    {
+                        hitResult = new TrackableHit(hitpoint, Vector3.up, Vector3.Distance(hitpoint, ray.origin),
+                            TrackableHitFlag.PointCloud, null);
+                        return true;
+                    }
+                }
+            }
+
+            hitResult = new TrackableHit(Vector3.zero, Vector3.zero, 0.0f, 0, null);
+            return false;
+        }
+
+        public bool HitTestPlane(Ray ray, TrackableHitFlag hitFilterFlags, TrackedPlane plane, out TrackableHit hit)
+        {
+            Plane unityPlane = new Plane(plane.Rotation * Vector3.up, plane.Position);
+            float distance;
+
+            if (unityPlane.Raycast(ray, out distance))
+            {
+                Vector3 hitPoint = ray.GetPoint(distance);
+                TrackableHitFlag hitResultFlags = TrackableHitFlag.None;
+
+                if (_HasFlag(hitFilterFlags, TrackableHitFlag.PlaneWithinBounds) &&
+                    _IsPointInBoundingBox(hitPoint, plane))
+                {
+                    hitResultFlags = hitResultFlags | TrackableHitFlag.PlaneWithinBounds;
+                }
+
+                if (_HasFlag(hitFilterFlags, TrackableHitFlag.PlaneWithinPolygon) && _IsPointInPolygon(hitPoint, plane))
+                {
+                    hitResultFlags |= TrackableHitFlag.PlaneWithinPolygon;
+                }
+
+                if (_HasFlag(hitFilterFlags, TrackableHitFlag.PlaneWithinInfinity))
+                {
+                    hitResultFlags |= TrackableHitFlag.PlaneWithinInfinity;
+                }
+
+                if (hitResultFlags != TrackableHitFlag.None)
+                {
+                    hit = new TrackableHit(hitPoint, unityPlane.normal, distance, hitResultFlags, plane);
+                    return true;
+                }
+            }
+
+            hit = new TrackableHit(Vector3.zero, Vector3.zero, 0.0f, 0, null);
+            return false;
+        }
+
+        /// <summary>
+        /// Check if a point is within a TrackedPlane polygon's boundary. This function assume the polygon
+        /// to be convex.
+        /// </summary>
+        /// <param name="point">3D point in world space.</param>
+        /// <param name="plane">A TrackedPlane reference detected by ARCore.</param>
+        private bool _IsPointInPolygon(Vector3 point, TrackedPlane plane)
+        {
+            List<Vector3> polygonPoints = m_tmpPolygonPoints;
+            plane.GetBoundaryPolygon(ref m_tmpPolygonPoints);
+
+            int count = polygonPoints.Count;
+            if (count < 3)
+            {
+                return false;
+            }
+
+            Vector3 lastUp = Vector3.zero;
+
+            for (int i = 0; i < count; ++i)
+            {
+                Vector3 v0 = point - polygonPoints[i];
+                Vector3 v1;
+                if (i == count - 1)
+                {
+                    v1 = polygonPoints[0] - polygonPoints[i];
+                }
+                else
+                {
+                    v1 = polygonPoints[i + 1] - polygonPoints[i];
+                }
+
+                Vector3 up = Vector3.Cross(v0, v1);
+                if (i != 0)
+                {
+                    float sign = Vector3.Dot(up, lastUp);
+                    if (sign < 0)
+                    {
+                        return false;
+                    }
+                }
+
+                lastUp = up;
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// Check if a point is within a TrackedPlane bounding box.
+        /// </summary>
+        /// <param name="point">3D point in world space.</param>
+        /// <param name="plane">A TrackedPlane reference detected by ARCore.</param>
+        private bool _IsPointInBoundingBox(Vector3 point, TrackedPlane plane)
+        {
+            Matrix4x4 world_T_plane = Matrix4x4.TRS(plane.Position, plane.Rotation, Vector3.one);
+            Vector3 pointInPlane = world_T_plane.inverse.MultiplyPoint3x4(point);
+
+            if (-0.5f * plane.Bounds.x <= pointInPlane.x && pointInPlane.x <= 0.5f * plane.Bounds.x &&
+                -0.5f * plane.Bounds.y <= pointInPlane.z && pointInPlane.z <= 0.5f * plane.Bounds.y)
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        /// <summary>
+        /// Check if a ray hit point with the point cloud.
+        /// </summary>
+        /// <param name="ray">A ray start from tracked position.</param>
+        /// <param name="pointcloud">A point cloud to hit aginst.</param>
+        /// <param name="hitPoint">The hit point's position.</param>
+        private static bool _IsRayIntersectingPoint(Ray ray, PointCloud pointcloud, ref Vector3 hitPoint)
+        {
+            int pointcloudCount = pointcloud.PointCount;
+            if (pointcloudCount == 0)
+            {
+                ARDebug.LogError("point cloud count is zero");
+                return false;
+            }
+
+            float min = float.MaxValue;
+            bool isPointFound = false;
+            for(int i = 0; i < pointcloudCount; ++i)
+            {
+                Vector3 point = pointcloud.GetPoint(i);
+                Vector3 v0 = point - ray.origin;
+                Vector3 v1 = ray.direction;
+                float angle = Vector3.Angle(v0, v1);
+
+                const float TOUCH_SEARCH_ANGLE_DEGREE = 5.0f;
+
+                if (angle < TOUCH_SEARCH_ANGLE_DEGREE && angle < min)
+                {
+                    isPointFound = true;
+                    hitPoint = point;
+                }
+            }
+            return isPointFound;
+        }
+
+        private bool _HasFlag(TrackableHitFlag filter, TrackableHitFlag flag)
+        {
+            return (filter & flag) != TrackableHitFlag.None;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/RaycastManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/RaycastManager.cs.meta
new file mode 100644
index 0000000..d2f2429
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/RaycastManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 154f7afa7be4542a9a0328f7fe4f60ce
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/SessionManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/SessionManager.cs
new file mode 100644
index 0000000..226f3b6
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/SessionManager.cs
@@ -0,0 +1,125 @@
+//-----------------------------------------------------------------------
+// <copyright file="SessionManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System.Collections.Generic;
+    using GoogleARCore;
+    using UnityEngine;
+    using UnityTango = GoogleAR.UnityNative;
+
+    /// <summary>
+    /// A container for internal ARCore session managers.
+    /// </summary>
+    public class SessionManager
+    {
+        private static SessionManager m_instance;
+
+        private static SessionConnectionState m_connectionState = SessionConnectionState.Uninitialized;
+
+        public static SessionManager Instance
+        {
+            get
+            {
+                if (m_instance == null)
+                {
+                    throw new InvalidSessionAccessException(
+                        "Attempted to access the ARCore Session while not connected.");
+                }
+
+                return m_instance;
+            }
+        }
+
+        public static SessionConnectionState ConnectionState
+        {
+            get
+            {
+                return m_connectionState;
+            }
+            set
+            {
+                if (value == SessionConnectionState.Connected)
+                {
+                    m_instance = new SessionManager();
+                }
+
+                Debug.LogFormat("Connection state became {0}", value);
+                m_connectionState = value;
+            }
+        }
+
+        private Queue<ApiTangoEvent> m_eventQueue = new Queue<ApiTangoEvent>();
+
+        private object m_eventQueueLockObject = new object();
+
+        public AnchorManager AnchorManager { get; private set; }
+
+        public LightEstimateManager LightEstimateManager { get; private set; }
+
+        public MotionTrackingManager MotionTrackingManager { get; private set; }
+
+        public PointCloudManager PointCloudManager { get; private set; }
+
+        public RaycastManager RaycastManager { get; private set; }
+
+        public TrackedPlaneManager TrackedPlaneManager { get; private set; }
+
+        public List<ApiTangoEvent> TangoEvents { get; private set; }
+
+        public SessionManager()
+        {
+            AnchorManager = new AnchorManager();
+            LightEstimateManager = new LightEstimateManager();
+            MotionTrackingManager = new MotionTrackingManager();
+            PointCloudManager = new PointCloudManager();
+            RaycastManager = new RaycastManager();
+            TrackedPlaneManager = new TrackedPlaneManager();
+            TangoEvents = new List<ApiTangoEvent>();
+            TangoClientApi.ConnectOnEventAvailable(m_eventQueue, m_eventQueueLockObject);
+        }
+
+        public void EarlyUpdate()
+        {
+            _ProcessEventQueue();
+            MotionTrackingManager.EarlyUpdate();
+            AnchorManager.EarlyUpdate();
+            TrackedPlaneManager.EarlyUpdate();
+        }
+
+        public void OnApplicationPause(bool isPaused)
+        {
+            AnchorManager.OnApplicationPause(isPaused);
+            TrackedPlaneManager.OnApplicationPause(isPaused);
+        }
+
+        private void _ProcessEventQueue()
+        {
+            TangoEvents.Clear();
+            lock (m_eventQueueLockObject)
+            {
+                while (m_eventQueue.Count > 0)
+                {
+                    TangoEvents.Add(m_eventQueue.Dequeue());
+                }
+            }
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/SessionManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/SessionManager.cs.meta
new file mode 100644
index 0000000..b449cf7
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/SessionManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e8f67b896e9424397b805fab574bbdd7
+timeCreated: 1502927358
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/TrackedPlaneManager.cs b/Assets/GoogleARCore/SDK/Scripts/Managers/TrackedPlaneManager.cs
new file mode 100644
index 0000000..6bc3ed3
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/TrackedPlaneManager.cs
@@ -0,0 +1,222 @@
+//-----------------------------------------------------------------------
+// <copyright file="TrackedPlaneManager.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCoreInternal
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Runtime.InteropServices;
+    using GoogleARCore;
+    using UnityEngine;
+
+    public class TrackedPlaneManager
+    {
+        private List<TrackedPlaneRecord> m_allPlaneRecords = new List<TrackedPlaneRecord>();
+
+        private List<TrackedPlaneRecord> m_newPlaneRecords = new List<TrackedPlaneRecord>();
+
+        private float m_lastUpdateTime;
+
+        private List<ApiPlaneData> m_mostRecentApiPlanes = new List<ApiPlaneData>();
+
+        private HashSet<int> m_tmpLastestPlanesHash = new HashSet<int>();
+
+        public void GetNewPlanes(ref List<TrackedPlane> newPlanes)
+        {
+            newPlanes.Clear();
+            for (int i = 0; i < m_newPlaneRecords.Count; i++)
+            {
+                newPlanes.Add(m_newPlaneRecords[i].m_plane);
+            }
+        }
+
+        public void GetAllPlanes(ref List<TrackedPlane> allPlanes)
+        {
+            allPlanes.Clear();
+            for (int i = 0; i < m_allPlaneRecords.Count; i++)
+            {
+                allPlanes.Add(m_allPlaneRecords[i].m_plane);
+            }
+        }
+
+        public void OnApplicationPause(bool isPaused)
+        {
+            if (!isPaused)
+            {
+                return;
+            }
+
+            for (int i = 0; i < m_allPlaneRecords.Count; i++)
+            {
+                ApiPlaneData invalidPlane = new ApiPlaneData();
+                invalidPlane.id = m_allPlaneRecords[i].m_planeData.id;
+                m_allPlaneRecords[i].m_updatePlane(invalidPlane, null, true);
+            }
+        }
+
+        public void EarlyUpdate()
+        {
+            m_newPlaneRecords.Clear();
+
+            const float MIN_DELTA_BETWEEN_UPDATES = .1f;
+            if ((Time.time - m_lastUpdateTime) < MIN_DELTA_BETWEEN_UPDATES)
+            {
+                return;
+            }
+
+            // We are performing an update of the planes, update the time/frame tracking and clear the new planes list.
+            m_lastUpdateTime = Time.time;
+
+            var forceUpdate = _UpdateMostRecentApiPlanes();
+            _UpdatePlanes(m_mostRecentApiPlanes, m_newPlaneRecords, m_allPlaneRecords, forceUpdate);
+
+            return;
+        }
+
+        private bool _UpdateMostRecentApiPlanes()
+        {
+            IntPtr apiPlanesPtr = IntPtr.Zero;
+            int planeCount = 0;
+            if (TangoClientApi.TangoService_Experimental_getPlanes(ref apiPlanesPtr, ref planeCount).IsTangoFailure())
+            {
+                for (int i =0; i < m_mostRecentApiPlanes.Count; i++)
+                {
+                    ApiPlaneData planeData = m_mostRecentApiPlanes[i];
+                    planeData.isValid = false;
+                    m_mostRecentApiPlanes[i] = planeData;
+                }
+
+                return true;
+            }
+
+            // The planes api is handling a COM reset, and the current state is not available. Leave the most recent
+            // Api planes collection unchanged.
+            if (apiPlanesPtr == null)
+            {
+                return false;
+            }
+
+            // Marshal the most recent planes returned from the Api into m_mostRecentApiPlanes.
+            m_mostRecentApiPlanes.Clear();
+            MarshalingHelper.AddUnmanagedStructArrayToList<ApiPlaneData>(apiPlanesPtr, planeCount,
+                m_mostRecentApiPlanes);
+
+            if (TangoClientApi.TangoPlaneData_free(apiPlanesPtr, planeCount).IsTangoFailure())
+            {
+                ARDebug.LogErrorFormat("Failed to deallocate planes from the ARCore API.");
+            }
+
+            return false;
+        }
+
+        private void _UpdatePlanes(List<ApiPlaneData> latestPlaneData, List<TrackedPlaneRecord> newPlaneRecords,
+            List<TrackedPlaneRecord> planeRecords, bool forceUpdate)
+        {
+            // Add latest planedata to a convenient hash on ID (note: not hashing plane itself to avoid potential boxing
+            // of the struct on comparison overloads).
+            m_tmpLastestPlanesHash.Clear();
+            for (int i = 0; i < latestPlaneData.Count; i++)
+            {
+                m_tmpLastestPlanesHash.Add(latestPlaneData[i].id);
+            }
+
+            // Create or update all planes that appear in latestPlaneData.
+            newPlaneRecords.Clear();
+            for (int i = 0; i < latestPlaneData.Count; i++)
+            {
+                int planeRecordIndex = _FindPlaneRecordById(latestPlaneData[i].id, planeRecords);
+                if (planeRecordIndex != -1)
+                {
+                    planeRecords[planeRecordIndex] = new TrackedPlaneRecord(planeRecords[planeRecordIndex].m_plane,
+                        latestPlaneData[i], planeRecords[planeRecordIndex].m_updatePlane);
+                    planeRecords[planeRecordIndex].m_updatePlane(latestPlaneData[i], null, forceUpdate);
+                }
+                else
+                {
+                    Action<ApiPlaneData, TrackedPlane, bool> updatePlane;
+                    var trackedPlane = new TrackedPlane(latestPlaneData[i], out updatePlane);
+                    newPlaneRecords.Add(new TrackedPlaneRecord(trackedPlane, latestPlaneData[i], updatePlane));
+                }
+            }
+
+            // Add new planes into plane records
+            for (int i = 0; i < newPlaneRecords.Count; i++)
+            {
+                planeRecords.Add(newPlaneRecords[i]);
+            }
+
+            // Invalidate planes that were previously tracking but not present in latestPlaneData.  Delete planes that
+            // are invalid or subsumed.
+            for (int i = planeRecords.Count - 1; i >= 0; i--)
+            {
+                if (!m_tmpLastestPlanesHash.Contains(planeRecords[i].m_planeData.id))
+                {
+                    ApiPlaneData invalidPlane = new ApiPlaneData();
+                    invalidPlane.id = planeRecords[i].m_planeData.id;
+                    planeRecords[i].m_updatePlane(invalidPlane, null, true);
+                    planeRecords.RemoveAt(i);
+                }
+                else if (planeRecords[i].m_planeData.subsumedBy > -1)
+                {
+                    int subsumerIndex = _FindPlaneRecordById(planeRecords[i].m_planeData.subsumedBy, planeRecords);
+                    if (subsumerIndex == -1)
+                    {
+                        ARDebug.LogError("Failed to find a record of the subsuming plane.");
+                        continue;
+                    }
+
+                    planeRecords[i].m_updatePlane(planeRecords[i].m_planeData, planeRecords[subsumerIndex].m_plane,
+                        true);
+                    planeRecords.RemoveAt(i);
+                }
+            }
+        }
+
+        private int _FindPlaneRecordById(int id, List<TrackedPlaneRecord> planeRecords)
+        {
+            for (int i = 0; i < planeRecords.Count; i++)
+            {
+                if (planeRecords[i].m_planeData.id == id)
+                {
+                    return i;
+                }
+            }
+
+            return -1;
+        }
+
+        private struct TrackedPlaneRecord
+        {
+            public TrackedPlane m_plane;
+
+            public ApiPlaneData m_planeData;
+
+            public Action<ApiPlaneData, TrackedPlane, bool> m_updatePlane;
+
+            public TrackedPlaneRecord(TrackedPlane plane, ApiPlaneData planeData,
+                Action<ApiPlaneData, TrackedPlane, bool> updatePlane)
+            {
+                m_plane = plane;
+                m_planeData = planeData;
+                m_updatePlane = updatePlane;
+            }
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Managers/TrackedPlaneManager.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Managers/TrackedPlaneManager.cs.meta
new file mode 100644
index 0000000..660cec2
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Managers/TrackedPlaneManager.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 6455d6e08ef1b47a99b84a3171ec9804
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math.meta b/Assets/GoogleARCore/SDK/Scripts/Math.meta
new file mode 100644
index 0000000..edbc83b
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 759b1cc6b382d4c23af9cb7205b0c587
+folderAsset: yes
+timeCreated: 1502400914
+licenseType: Free
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math/DMatrix4x4.cs b/Assets/GoogleARCore/SDK/Scripts/Math/DMatrix4x4.cs
new file mode 100644
index 0000000..71b841d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math/DMatrix4x4.cs
@@ -0,0 +1,661 @@
+//-----------------------------------------------------------------------
+// <copyright file="DMatrix4x4.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Collections;
+    using GoogleARCoreInternal;
+    using UnityEngine;
+
+    /// <summary>
+    /// Double percision matrix class.
+    /// </summary>
+    public struct DMatrix4x4
+    {
+        // Column major matrix.
+        // Row is first number, column is the second number.
+        public double m00;
+        public double m10;
+        public double m20;
+        public double m30;
+        public double m01;
+        public double m11;
+        public double m21;
+        public double m31;
+        public double m02;
+        public double m12;
+        public double m22;
+        public double m32;
+        public double m03;
+        public double m13;
+        public double m23;
+        public double m33;
+
+        /// <summary>
+        /// Element wise construction.
+        /// </summary>
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.ReadabilityRules",
+                                                         "SA1107:CodeMustNotContainMultipleStatementsOnOneLine",
+                                                         Justification = "Matrix layout.")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules",
+                                                         "SA1611:ElementParametersMustBeDocumented",
+                                                         Justification = "Matrix layout.")]
+        public DMatrix4x4(double m00, double m01, double m02, double m03,
+                          double m10, double m11, double m12, double m13,
+                          double m20, double m21, double m22, double m23,
+                          double m30, double m31, double m32, double m33)
+        {
+            this.m00 = m00; this.m01 = m01; this.m02 = m02; this.m03 = m03;
+            this.m10 = m10; this.m11 = m11; this.m12 = m12; this.m13 = m13;
+            this.m20 = m20; this.m21 = m21; this.m22 = m22; this.m23 = m23;
+            this.m30 = m30; this.m31 = m31; this.m32 = m32; this.m33 = m33;
+        }
+
+        /// <summary>
+        /// Creates a new double-precision matrix from the given
+        /// single-precision matrix.
+        /// </summary>
+        /// <param name="matrix">A single-precision matrix.</param>
+        public DMatrix4x4(Matrix4x4 matrix)
+        {
+            m00 = matrix.m00;
+            m10 = matrix.m10;
+            m20 = matrix.m20;
+            m30 = matrix.m30;
+
+            m01 = matrix.m01;
+            m11 = matrix.m11;
+            m21 = matrix.m21;
+            m31 = matrix.m31;
+
+            m02 = matrix.m02;
+            m12 = matrix.m12;
+            m22 = matrix.m22;
+            m32 = matrix.m32;
+
+            m03 = matrix.m03;
+            m13 = matrix.m13;
+            m23 = matrix.m23;
+            m33 = matrix.m33;
+        }
+
+        /// <summary>
+        /// Construct matrix from array.
+        /// </summary>
+        /// <param name="arr">Array of matrix's elements.</param>
+        public DMatrix4x4(double[] arr)
+        {
+            m00 = arr[0];
+            m10 = arr[1];
+            m20 = arr[2];
+            m30 = arr[3];
+
+            m01 = arr[4];
+            m11 = arr[5];
+            m21 = arr[6];
+            m31 = arr[7];
+
+            m02 = arr[8];
+            m12 = arr[9];
+            m22 = arr[10];
+            m32 = arr[11];
+
+            m03 = arr[12];
+            m13 = arr[13];
+            m23 = arr[14];
+            m33 = arr[15];
+        }
+
+        /// <summary>
+        /// Gets identity matrix.
+        /// </summary>
+        /// <value>DMatrix4x4 value.</value>
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.ReadabilityRules",
+                                                         "SA1107:CodeMustNotContainMultipleStatementsOnOneLine",
+                                                         Justification = "Matrix layout.")]
+        public static DMatrix4x4 Identity
+        {
+            get
+            {
+                return new DMatrix4x4
+                {
+                    m00 = 1.0, m01 = 0.0, m02 = 0.0, m03 = 0.0,
+                    m10 = 0.0, m11 = 1.0, m12 = 0.0, m13 = 0.0,
+                    m20 = 0.0, m21 = 0.0, m22 = 1.0, m23 = 0.0,
+                    m30 = 0.0, m31 = 0.0, m32 = 0.0, m33 = 1.0
+                };
+            }
+        }
+
+        /// <summary>
+        /// Gets inverse matrix.
+        /// </summary>
+        /// <value>DMatrix4x4 value.</value>
+        public DMatrix4x4 Inverse
+        {
+            get
+            {
+                // Invert a 4 x 4 matrix using Cramer's Rule
+                DMatrix4x4 ret = new DMatrix4x4();
+
+                // transpose matrix
+                double src0  = m00;
+                double src4  = m10;
+                double src8  = m20;
+                double src12 = m30;
+
+                double src1  = m01;
+                double src5  = m11;
+                double src9  = m21;
+                double src13 = m31;
+
+                double src2  = m02;
+                double src6  = m12;
+                double src10 = m22;
+                double src14 = m32;
+
+                double src3  = m03;
+                double src7  = m13;
+                double src11 = m23;
+                double src15 = m33;
+
+                // calculate pairs for first 8 elements (cofactors)
+                double atmp0  = src10 * src15;
+                double atmp1  = src11 * src14;
+                double atmp2  = src9  * src15;
+                double atmp3  = src11 * src13;
+                double atmp4  = src9  * src14;
+                double atmp5  = src10 * src13;
+                double atmp6  = src8  * src15;
+                double atmp7  = src11 * src12;
+                double atmp8  = src8  * src14;
+                double atmp9  = src10 * src12;
+                double atmp10 = src8  * src13;
+                double atmp11 = src9  * src12;
+
+                // calculate first 8 elements (cofactors)
+                double dst0  = ((atmp0 * src5) + (atmp3 * src6) + (atmp4 * src7)) -
+                    ((atmp1 * src5) + (atmp2 * src6) + (atmp5 * src7));
+                double dst1  = ((atmp1 * src4) + (atmp6 * src6) + (atmp9 * src7))
+                    - ((atmp0 * src4) + (atmp7 * src6) + (atmp8 * src7));
+                double dst2  = ((atmp2 * src4) + (atmp7 * src5) + (atmp10 * src7))
+                    - ((atmp3 * src4) + (atmp6 * src5) + (atmp11 * src7));
+                double dst3  = ((atmp5 * src4) + (atmp8 * src5) + (atmp11 * src6))
+                    - ((atmp4 * src4) + (atmp9 * src5) + (atmp10 * src6));
+                double dst4  = ((atmp1 * src1) + (atmp2 * src2) + (atmp5  * src3))
+                    - ((atmp0 * src1) + (atmp3 * src2) + (atmp4  * src3));
+                double dst5  = ((atmp0 * src0) + (atmp7 * src2) + (atmp8  * src3))
+                    - ((atmp1 * src0) + (atmp6 * src2) + (atmp9  * src3));
+                double dst6  = ((atmp3 * src0) + (atmp6 * src1) + (atmp11 * src3))
+                    - ((atmp2 * src0) + (atmp7 * src1) + (atmp10 * src3));
+                double dst7  = ((atmp4 * src0) + (atmp9 * src1) + (atmp10 * src2))
+                    - ((atmp5 * src0) + (atmp8 * src1) + (atmp11 * src2));
+
+                // calculate pairs for second 8 elements (cofactors)
+                double btmp0  = src2 * src7;
+                double btmp1  = src3 * src6;
+                double btmp2  = src1 * src7;
+                double btmp3  = src3 * src5;
+                double btmp4  = src1 * src6;
+                double btmp5  = src2 * src5;
+                double btmp6  = src0 * src7;
+                double btmp7  = src3 * src4;
+                double btmp8  = src0 * src6;
+                double btmp9  = src2 * src4;
+                double btmp10 = src0 * src5;
+                double btmp11 = src1 * src4;
+
+                // calculate second 8 elements (cofactors)
+                double dst8  = ((btmp0  * src13) + (btmp3  * src14) + (btmp4  * src15))
+                    - ((btmp1  * src13) + (btmp2  * src14) + (btmp5  * src15));
+                double dst9  = ((btmp1  * src12) + (btmp6 * src14) + (btmp9 * src15))
+                    - ((btmp0  * src12) + (btmp7  * src14) + (btmp8  * src15));
+                double dst10 = ((btmp2  * src12) + (btmp7 * src13) + (btmp10 * src15))
+                    - ((btmp3  * src12) + (btmp6  * src13) + (btmp11 * src15));
+                double dst11 = ((btmp5  * src12) + (btmp8 * src13) + (btmp11 * src14))
+                    - ((btmp4  * src12) + (btmp9  * src13) + (btmp10 * src14));
+                double dst12 = ((btmp2 * src10) + (btmp5 * src11) + (btmp1 * src9))
+                    - ((btmp4  * src11) + (btmp0  * src9) + (btmp3  * src10));
+                double dst13 = ((btmp8  * src11) + (btmp0 * src8) + (btmp7  * src10))
+                    - ((btmp6 * src10) + (btmp9 * src11) + (btmp1 * src8));
+                double dst14 = ((btmp6 * src9) + (btmp11 * src11) + (btmp3 * src8))
+                    - ((btmp10 * src11) + (btmp2 * src8) + (btmp7 * src9));
+                double dst15 = ((btmp10 * src10) + (btmp4 * src8) + (btmp9 * src9))
+                    - ((btmp8  * src9)  + (btmp11 * src10) + (btmp5 * src8));
+
+                // calculate determinant
+                double det = (src0 * dst0) + (src1 * dst1) + (src2 * dst2) + (src3 * dst3);
+
+                if (det == 0.0)
+                {
+                    ARDebug.LogError("Matrix is not invertable.");
+                    return new DMatrix4x4();
+                }
+
+                // calculate matrix inverse
+                double invdet = 1.0 / det;
+                ret.m00 = dst0  * invdet;
+                ret.m10 = dst1  * invdet;
+                ret.m20 = dst2  * invdet;
+                ret.m30 = dst3  * invdet;
+
+                ret.m01 = dst4  * invdet;
+                ret.m11 = dst5  * invdet;
+                ret.m21 = dst6  * invdet;
+                ret.m31 = dst7  * invdet;
+
+                ret.m02 = dst8  * invdet;
+                ret.m12 = dst9  * invdet;
+                ret.m22 = dst10 * invdet;
+                ret.m32 = dst11 * invdet;
+
+                ret.m03 = dst12 * invdet;
+                ret.m13 = dst13 * invdet;
+                ret.m23 = dst14 * invdet;
+                ret.m33 = dst15 * invdet;
+
+                return ret;
+            }
+        }
+
+        /// <summary>
+        /// Matrix indexer based on row and colmn index.
+        /// </summary>
+        /// <param name="row">Row index.</param>
+        /// <param name="column">Column index.</param>
+        /// <returns>Specific element's value.</returns>
+        public double this[int row, int column]
+        {
+            get
+            {
+                return this[row + (column * 4)];
+            }
+
+            set
+            {
+                this[row + (column * 4)] = value;
+            }
+        }
+
+        /// <summary>
+        /// Matrix indexer.
+        /// </summary>
+        /// <param name="index">Index number.</param>
+        /// <returns>Specific index's value.</returns>
+        public double this[int index]
+        {
+            get
+            {
+                switch (index)
+                {
+                    case 0:
+                        return this.m00;
+                    case 1:
+                        return this.m10;
+                    case 2:
+                        return this.m20;
+                    case 3:
+                        return this.m30;
+                    case 4:
+                        return this.m01;
+                    case 5:
+                        return this.m11;
+                    case 6:
+                        return this.m21;
+                    case 7:
+                        return this.m31;
+                    case 8:
+                        return this.m02;
+                    case 9:
+                        return this.m12;
+                    case 10:
+                        return this.m22;
+                    case 11:
+                        return this.m32;
+                    case 12:
+                        return this.m03;
+                    case 13:
+                        return this.m13;
+                    case 14:
+                        return this.m23;
+                    case 15:
+                        return this.m33;
+                    default:
+                        throw new IndexOutOfRangeException("Invalid matrix index!");
+                }
+            }
+
+            set
+            {
+                switch (index)
+                {
+                    case 0:
+                        this.m00 = value;
+                        break;
+                    case 1:
+                        this.m10 = value;
+                        break;
+                    case 2:
+                        this.m20 = value;
+                        break;
+                    case 3:
+                        this.m30 = value;
+                        break;
+                    case 4:
+                        this.m01 = value;
+                        break;
+                    case 5:
+                        this.m11 = value;
+                        break;
+                    case 6:
+                        this.m21 = value;
+                        break;
+                    case 7:
+                        this.m31 = value;
+                        break;
+                    case 8:
+                        this.m02 = value;
+                        break;
+                    case 9:
+                        this.m12 = value;
+                        break;
+                    case 10:
+                        this.m22 = value;
+                        break;
+                    case 11:
+                        this.m32 = value;
+                        break;
+                    case 12:
+                        this.m03 = value;
+                        break;
+                    case 13:
+                        this.m13 = value;
+                        break;
+                    case 14:
+                        this.m23 = value;
+                        break;
+                    case 15:
+                        this.m33 = value;
+                        break;
+                    default:
+                        throw new IndexOutOfRangeException("Invalid matrix index!");
+                }
+            }
+        }
+
+        /// <summary>
+        /// Create a translation and rotation matrix.
+        /// </summary>
+        /// <param name="translation">Translation in unity vector.</param>
+        /// <param name="orientation">Orientation in unity quaternion.</param>
+        /// <returns>Double matrix.</returns>
+        public static DMatrix4x4 TR(Vector3 translation, Quaternion orientation)
+        {
+            Double[] dTranslation = new double[3];
+            Double[] dOrientation = new double[4];
+
+            dTranslation[0] = translation.x;
+            dTranslation[1] = translation.y;
+            dTranslation[2] = translation.z;
+
+            dOrientation[0] = orientation.x;
+            dOrientation[1] = orientation.y;
+            dOrientation[2] = orientation.z;
+            dOrientation[3] = orientation.w;
+
+            return DMatrix4x4.TR(dTranslation, dOrientation);
+        }
+
+        /// <summary>
+        /// Create a translation and rotation matrix.
+        /// </summary>
+        /// <param name="translation">Translation as 3 doubles in a DVector3 struct.</param>
+        /// <param name="orientation">Orientation as 4 doubles in a DVector4 struct.</param>
+        /// <returns>Double matrix.</returns>
+        public static DMatrix4x4 TR(DVector3 translation, DVector4 orientation)
+        {
+            double[] dTranslation = new double[3];
+            double[] dOrientation = new double[4];
+
+            dTranslation[0] = translation.x;
+            dTranslation[1] = translation.y;
+            dTranslation[2] = translation.z;
+
+            dOrientation[0] = orientation.x;
+            dOrientation[1] = orientation.y;
+            dOrientation[2] = orientation.z;
+            dOrientation[3] = orientation.w;
+
+            return DMatrix4x4.TR(dTranslation, dOrientation);
+        }
+
+        /// <summary>
+        /// Multiplication operator overloading.
+        /// </summary>
+        /// <param name="lhs">Matrix on the left.</param>
+        /// <param name="rhs">Matrix on the right.</param>
+        /// <returns>Result matrix.</returns>
+        public static DMatrix4x4 operator *(DMatrix4x4 lhs, DMatrix4x4 rhs)
+        {
+            return new DMatrix4x4
+            {
+                m00 = (lhs.m00 * rhs.m00) + (lhs.m01 * rhs.m10) + (lhs.m02 * rhs.m20) + (lhs.m03 * rhs.m30),
+                m01 = (lhs.m00 * rhs.m01) + (lhs.m01 * rhs.m11) + (lhs.m02 * rhs.m21) + (lhs.m03 * rhs.m31),
+                m02 = (lhs.m00 * rhs.m02) + (lhs.m01 * rhs.m12) + (lhs.m02 * rhs.m22) + (lhs.m03 * rhs.m32),
+                m03 = (lhs.m00 * rhs.m03) + (lhs.m01 * rhs.m13) + (lhs.m02 * rhs.m23) + (lhs.m03 * rhs.m33),
+                m10 = (lhs.m10 * rhs.m00) + (lhs.m11 * rhs.m10) + (lhs.m12 * rhs.m20) + (lhs.m13 * rhs.m30),
+                m11 = (lhs.m10 * rhs.m01) + (lhs.m11 * rhs.m11) + (lhs.m12 * rhs.m21) + (lhs.m13 * rhs.m31),
+                m12 = (lhs.m10 * rhs.m02) + (lhs.m11 * rhs.m12) + (lhs.m12 * rhs.m22) + (lhs.m13 * rhs.m32),
+                m13 = (lhs.m10 * rhs.m03) + (lhs.m11 * rhs.m13) + (lhs.m12 * rhs.m23) + (lhs.m13 * rhs.m33),
+                m20 = (lhs.m20 * rhs.m00) + (lhs.m21 * rhs.m10) + (lhs.m22 * rhs.m20) + (lhs.m23 * rhs.m30),
+                m21 = (lhs.m20 * rhs.m01) + (lhs.m21 * rhs.m11) + (lhs.m22 * rhs.m21) + (lhs.m23 * rhs.m31),
+                m22 = (lhs.m20 * rhs.m02) + (lhs.m21 * rhs.m12) + (lhs.m22 * rhs.m22) + (lhs.m23 * rhs.m32),
+                m23 = (lhs.m20 * rhs.m03) + (lhs.m21 * rhs.m13) + (lhs.m22 * rhs.m23) + (lhs.m23 * rhs.m33),
+                m30 = (lhs.m30 * rhs.m00) + (lhs.m31 * rhs.m10) + (lhs.m32 * rhs.m20) + (lhs.m33 * rhs.m30),
+                m31 = (lhs.m30 * rhs.m01) + (lhs.m31 * rhs.m11) + (lhs.m32 * rhs.m21) + (lhs.m33 * rhs.m31),
+                m32 = (lhs.m30 * rhs.m02) + (lhs.m31 * rhs.m12) + (lhs.m32 * rhs.m22) + (lhs.m33 * rhs.m32),
+                m33 = (lhs.m30 * rhs.m03) + (lhs.m31 * rhs.m13) + (lhs.m32 * rhs.m23) + (lhs.m33 * rhs.m33)
+            };
+        }
+
+        /// <summary>
+        /// Convert from float matrix to double matrix.
+        /// </summary>
+        /// <param name="m">Float matrix.</param>
+        /// <returns>Double matrix.</returns>
+        public static DMatrix4x4 FromMatrix4x4(Matrix4x4 m)
+        {
+            DMatrix4x4 dm = new DMatrix4x4((double)m.m00, (double)m.m01, (double)m.m02, (double)m.m03,
+                                           (double)m.m10, (double)m.m11, (double)m.m12, (double)m.m13,
+                                           (double)m.m20, (double)m.m21, (double)m.m22, (double)m.m23,
+                                           (double)m.m30, (double)m.m31, (double)m.m32, (double)m.m33);
+            return dm;
+        }
+
+        /// <summary>
+        /// Returns a column of the matrix.
+        ///
+        /// The i-th column is returned as a DVector4. i must be from 0 to 3 inclusive.
+        /// </summary>
+        /// <param name="i">Column index.</param>
+        /// <returns>The i-th column as a DVector4.</returns>
+        public DVector4 GetColumn(int i)
+        {
+            return new DVector4(this[0, i], this[1, i], this[2, i], this[3, i]);
+        }
+
+        /// <summary>
+        /// Returns a row of the matrix.
+        ///
+        /// The i-th column is returned as a DVector4. i must be from 0 to 3 inclusive.
+        /// </summary>
+        /// <param name="i">Row index.</param>
+        /// <returns>The i-th column as a DVector4.</returns>
+        public DVector4 GetRow(int i)
+        {
+            return new DVector4(this[i, 0], this[i, 1], this[i, 2], this[i, 3]);
+        }
+
+        /// <summary>
+        /// Transforms a position by this matrix (generic).
+        ///
+        /// Returns a position v transformed by the current fully arbitrary matrix. If the matrix is a regular 3D
+        /// transformation matrix, it is much faster to use MultiplyPoint3x4 instead. MultiplyPoint is slower, but can
+        /// handle projective transformations as well.
+        /// </summary>
+        /// <returns>The transformed point.</returns>
+        /// <param name="v">The point to be transformed.</param>
+        public DVector3 MultiplyPoint(DVector3 v)
+        {
+            DVector3 transformed = new DVector3(
+                (this.m00 * v.x) + (this.m01 * v.y) + (this.m02 * v.z) + this.m03,
+                (this.m10 * v.x) + (this.m11 * v.y) + (this.m12 * v.z) + this.m13,
+                (this.m20 * v.x) + (this.m21 * v.y) + (this.m22 * v.z) + this.m23);
+
+            double proj = (this.m30 * v.x) + (this.m31 * v.y) + (this.m32 * v.z) + this.m33;
+            transformed.x /= proj;
+            transformed.y /= proj;
+            transformed.z /= proj;
+            return transformed;
+        }
+
+        /// <summary>
+        /// Transforms a position by this matrix (fast).
+        ///
+        /// Returns a position transformed by the current transformation matrix. This function is a faster version of
+        /// MultiplyPoint; but it can only handle regular 3D transformations. MultiplyPoint is slower, but can handle
+        /// projective transformations as well.
+        ///
+        /// </summary>
+        /// <returns>The transformed position.</returns>
+        /// <param name="v">The position to transform.</param>
+        public DVector3 MultiplyPoint3x4(DVector3 v)
+        {
+            DVector3 transformed = new DVector3(
+                (this.m00 * v.x) + (this.m01 * v.y) + (this.m02 * v.z) + this.m03,
+                (this.m10 * v.x) + (this.m11 * v.y) + (this.m12 * v.z) + this.m13,
+                (this.m20 * v.x) + (this.m21 * v.y) + (this.m22 * v.z) + this.m23);
+            return transformed;
+        }
+
+        /// <summary>
+        /// Convert DMatrix4x4 to unity Matrix4x4.
+        /// </summary>
+        /// <returns>Matrix in float.</returns>
+        public Matrix4x4 ToMatrix4x4()
+        {
+            Matrix4x4 mat = new Matrix4x4();
+            mat.m00 = (float)m00;
+            mat.m01 = (float)m01;
+            mat.m02 = (float)m02;
+            mat.m03 = (float)m03;
+
+            mat.m10 = (float)m10;
+            mat.m11 = (float)m11;
+            mat.m12 = (float)m12;
+            mat.m13 = (float)m13;
+
+            mat.m20 = (float)m20;
+            mat.m21 = (float)m21;
+            mat.m22 = (float)m22;
+            mat.m23 = (float)m23;
+
+            mat.m30 = (float)m30;
+            mat.m31 = (float)m31;
+            mat.m32 = (float)m32;
+            mat.m33 = (float)m33;
+            return mat;
+        }
+
+        /// <summary>
+        /// Format to string for output.
+        /// </summary>
+        /// <returns>String of this matrix.</returns>
+        public override string ToString()
+        {
+            return string.Format("{0}, {1}, {2}, {3}\n" +
+                                 "{4}, {5}, {6}, {7}\n" +
+                                 "{8}, {9}, {10}, {11}\n" +
+                                 "{12}, {13}, {14}, {15}\n",
+                                 m00.ToString("F3"), m01.ToString("F3"), m02.ToString("F3"), m03.ToString("F3"),
+                                 m10.ToString("F3"), m11.ToString("F3"), m12.ToString("F3"), m13.ToString("F3"),
+                                 m20.ToString("F3"), m21.ToString("F3"), m22.ToString("F3"), m23.ToString("F3"),
+                                 m30.ToString("F3"), m31.ToString("F3"), m32.ToString("F3"), m33.ToString("F3"));
+        }
+
+        /// <summary>
+        /// Convert matrix's elements to an array.
+        /// </summary>
+        /// <returns>Double array of matrix's elements.</returns>
+        public double[] ToArray()
+        {
+            double[] arr = new double[16];
+            for (int i = 0; i < 16; ++i)
+            {
+                arr[i] = this[i];
+            }
+
+            return arr;
+        }
+
+        /// <summary>
+        /// Retrive translation vector from matrix.
+        /// </summary>
+        /// <param name="translation">Translation in vector double array, x, y, z.</param>
+        /// <param name="orientation">Orientation in quaternion double array, x, y, z, w.</param>
+        /// <returns>Double matrix.</returns>
+        private static DMatrix4x4 TR(double[] translation, double[] orientation)
+        {
+            DMatrix4x4 dmat = new DMatrix4x4();
+            double sqw = orientation[3] * orientation[3];
+            double sqx = orientation[0] * orientation[0];
+            double sqy = orientation[1] * orientation[1];
+            double sqz = orientation[2] * orientation[2];
+
+            // invs (inverse square length) is only required if quaternion is not already normalised
+            double invs = 1 / (sqx + sqy + sqz + sqw);
+            dmat.m00 = (sqx - sqy - sqz + sqw) * invs;
+            dmat.m11 = (-sqx + sqy - sqz + sqw) * invs;
+            dmat.m22 = (-sqx - sqy + sqz + sqw) * invs;
+
+            double tmp1 = orientation[0] * orientation[1];
+            double tmp2 = orientation[2] * orientation[3];
+            dmat.m10 = 2.0 * (tmp1 + tmp2) * invs;
+            dmat.m01 = 2.0 * (tmp1 - tmp2) * invs;
+
+            tmp1 = orientation[0] * orientation[2];
+            tmp2 = orientation[1] * orientation[3];
+            dmat.m20 = 2.0 * (tmp1 - tmp2) * invs;
+            dmat.m02 = 2.0 * (tmp1 + tmp2) * invs;
+            tmp1 = orientation[1] * orientation[2];
+            tmp2 = orientation[0] * orientation[3];
+            dmat.m21 = 2.0 * (tmp1 + tmp2) * invs;
+            dmat.m12 = 2.0 * (tmp1 - tmp2) * invs;
+
+            dmat.m03 = translation[0];
+            dmat.m13 = translation[1];
+            dmat.m23 = translation[2];
+            dmat.m33 = 1.0;
+
+            return dmat;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math/DMatrix4x4.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Math/DMatrix4x4.cs.meta
new file mode 100644
index 0000000..9908916
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math/DMatrix4x4.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 41f1d4d1d75da471982989c3b3236957
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math/DVector3.cs b/Assets/GoogleARCore/SDK/Scripts/Math/DVector3.cs
new file mode 100644
index 0000000..874439c
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math/DVector3.cs
@@ -0,0 +1,201 @@
+//-----------------------------------------------------------------------
+// <copyright file="DVector3.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Runtime.InteropServices;
+    using UnityEngine;
+
+    /// <summary>
+    /// Double precision vector in 3D.
+    /// </summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct DVector3
+    {
+        [MarshalAs(UnmanagedType.R8)]
+        public double x;
+        [MarshalAs(UnmanagedType.R8)]
+        public double y;
+        [MarshalAs(UnmanagedType.R8)]
+        public double z;
+
+        /// <summary>
+        /// Creates a new double-precision vector with given x, y, z components.
+        /// </summary>
+        /// <param name="x">The x component.</param>
+        /// <param name="y">The y component.</param>
+        /// <param name="z">The z component.</param>
+        public DVector3(double x, double y, double z)
+        {
+            this.x = x;
+            this.y = y;
+            this.z = z;
+        }
+
+        /// <summary>
+        /// Creates a new double-precision vector from a given Vector3.
+        /// </summary>
+        /// <param name="copy">The Vector3 to copy.</param>
+        public DVector3(Vector3 copy)
+        {
+            this.x = copy.x;
+            this.y = copy.y;
+            this.z = copy.z;
+        }
+
+        /// <summary>
+        /// Gets zero DVector3.
+        /// </summary>
+        /// <value>Zero DVector3.</value>
+        public static DVector3 Zero
+        {
+            get { return new DVector3(0.0, 0.0, 0.0); }
+        }
+
+        /// <summary>
+        /// Gets the length of this vector (Read Only).
+        /// </summary>
+        /// <value>The length.</value>
+        public double Magnitude
+        {
+            get { return Math.Sqrt(SqrMagnitude); }
+        }
+
+        /// <summary>
+        /// Gets the squared length of this vector (Read Only).
+        /// </summary>
+        /// <value>The squared length.</value>
+        public double SqrMagnitude
+        {
+            get { return (x * x) + (y * y) + (z * z); }
+        }
+
+        /// <summary>
+        /// Get or set x,y,z components (double) as 0,1,2 - other values throw an IndexOutOfRange exception.
+        /// </summary>
+        /// <param name="index">Set a component of the quaternion by int index.</param>
+        /// <returns>
+        /// A <see cref="System.Double"/> in the quaternion.
+        /// </returns>
+        public double this[int index]
+        {
+            get
+            {
+                switch (index)
+                {
+                    case 0:
+                        return x;
+                    case 1:
+                        return y;
+                    case 2:
+                        return z;
+                    default:
+                        throw new System.IndexOutOfRangeException();
+                }
+            }
+
+            set
+            {
+                switch (index)
+                {
+                    case 0:
+                        x = value;
+                        return;
+                    case 1:
+                        y = value;
+                        return;
+                    case 2:
+                        z = value;
+                        return;
+                    default:
+                        throw new System.IndexOutOfRangeException();
+                }
+            }
+        }
+
+        /// <summary>
+        /// Returns the distance between a and b.
+        /// </summary>
+        /// <returns>Euclidean distance as a double.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static double Distance(DVector3 a, DVector3 b)
+        {
+            return (a - b).Magnitude;
+        }
+
+        /// <summary>
+        /// Dot Product of two vectors.
+        /// </summary>
+        /// <returns>Dot product as a double.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static double Dot(DVector3 a, DVector3 b)
+        {
+            return (a.x * b.x) + (a.y * b.y) + (a.z * b.z);
+        }
+
+        /// <summary>
+        /// Subtracts one vector from another.
+        ///
+        /// Subtracts each component of b from a.
+        /// </summary>
+        /// <returns>Subtraction result.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static DVector3 operator -(DVector3 a, DVector3 b)
+        {
+            return new DVector3(a.x - b.x, a.y - b.y, a.z - b.z);
+        }
+
+        /// <summary>
+        /// Adds two vectors.
+        ///
+        /// Adds corresponding components together.
+        /// </summary>
+        /// <returns>Addition result.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static DVector3 operator +(DVector3 a, DVector3 b)
+        {
+            return new DVector3(a.x + b.x, a.y + b.y, a.z + b.z);
+        }
+
+        /// <summary>
+        /// Returns a single-precision vector representation of this
+        /// double-precision vector.
+        /// </summary>
+        /// <returns>A single-precision vector.</returns>
+        public Vector3 ToVector3()
+        {
+            return new Vector3((float)x, (float)y, (float)z);
+        }
+
+        /// <summary>
+        /// Overrided ToString function to formatted DVector3 string output.
+        /// </summary>
+        /// <returns>Formatted string of this DVector3.</returns>
+        public override string ToString()
+        {
+            return string.Format("{0}, {1}, {2}", x, y, z);
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math/DVector3.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Math/DVector3.cs.meta
new file mode 100644
index 0000000..72f2cb2
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math/DVector3.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 769fadb0d8af8488b8f88cd5b6b0a4b7
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math/DVector4.cs b/Assets/GoogleARCore/SDK/Scripts/Math/DVector4.cs
new file mode 100644
index 0000000..eb09100
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math/DVector4.cs
@@ -0,0 +1,211 @@
+//-----------------------------------------------------------------------
+// <copyright file="DVector4.cs" company="Google">
+//
+// Copyright 2016 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Runtime.InteropServices;
+    using UnityEngine;
+
+    /// <summary>
+    /// Double precision vector in 4D.
+    /// </summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct DVector4
+    {
+        [MarshalAs(UnmanagedType.R8)]
+        public double x;
+        [MarshalAs(UnmanagedType.R8)]
+        public double y;
+        [MarshalAs(UnmanagedType.R8)]
+        public double z;
+        [MarshalAs(UnmanagedType.R8)]
+        public double w;
+
+        /// <summary>
+        /// Creates a new double-precision vector with given x, y, z, w components.
+        /// </summary>
+        /// <param name="x">The x component.</param>
+        /// <param name="y">The y component.</param>
+        /// <param name="z">The z component.</param>
+        /// <param name="w">The w component.</param>
+        public DVector4(double x, double y, double z, double w)
+        {
+            this.x = x;
+            this.y = y;
+            this.z = z;
+            this.w = w;
+        }
+
+        /// <summary>
+        /// Creates a new double-precision vector with given Vector4.
+        /// </summary>
+        /// <param name="copy">The Vector4 to copy.</param>
+        public DVector4(UnityEngine.Vector4 copy)
+        {
+            this.x = copy.x;
+            this.y = copy.y;
+            this.z = copy.z;
+            this.w = copy.w;
+        }
+
+        /// <summary>
+        /// Gets identity quaternion in DVector4 format.
+        /// </summary>
+        /// <value>Identity quaternion.</value>
+        public static DVector4 IdentityQuaternion
+        {
+            get { return new DVector4(0.0, 0.0, 0.0, 1.0); }
+        }
+
+        /// <summary>
+        /// Gets the length of this vector (Read Only).
+        /// </summary>
+        /// <value>The length.</value>
+        public double Magnitude
+        {
+            get { return Math.Sqrt(SqrMagnitude); }
+        }
+
+        /// <summary>
+        /// Gets the squared length of this vector (Read Only).
+        /// </summary>
+        /// <value>The squared length.</value>
+        public double SqrMagnitude
+        {
+            get { return (x * x) + (y * y) + (z * z) + (w * w); }
+        }
+
+        /// <summary>
+        /// Get or set x,y,z,w components (double) as 0,1,2,3 - other values throw an IndexOutOfRange exception.
+        /// </summary>
+        /// <param name="index">Set a component of the quaternion by int index.</param>
+        /// <returns>
+        /// A <see cref="System.Double"/> in the quaternion.
+        /// </returns>
+        public double this[int index]
+        {
+            get
+            {
+                switch (index)
+                {
+                    case 0:
+                        return x;
+                    case 1:
+                        return y;
+                    case 2:
+                        return z;
+                    case 3:
+                        return w;
+                    default:
+                        throw new System.IndexOutOfRangeException();
+                }
+            }
+
+            set
+            {
+                switch (index)
+                {
+                    case 0:
+                        x = value;
+                        return;
+                    case 1:
+                        y = value;
+                        return;
+                    case 2:
+                        z = value;
+                        return;
+                    case 3:
+                        w = value;
+                        return;
+                    default:
+                        throw new System.IndexOutOfRangeException();
+                }
+            }
+        }
+
+        /// <summary>
+        /// Returns the distance between a and b.
+        /// </summary>
+        /// <returns>Euclidean distance as a double.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static double Distance(DVector4 a, DVector4 b)
+        {
+            return (a - b).Magnitude;
+        }
+
+        /// <summary>
+        /// Dot Product of two vectors.
+        /// </summary>
+        /// <returns>Dot product as a double.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static double Dot(DVector4 a, DVector4 b)
+        {
+            return (a.x * b.x) + (a.y * b.y) + (a.z * b.z) + (a.w * b.w);
+        }
+
+        /// <summary>
+        /// Subtracts one vector from another.
+        ///
+        /// Subtracts each component of b from a.
+        /// </summary>
+        /// <returns>Subtraction result.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static DVector4 operator -(DVector4 a, DVector4 b)
+        {
+            return new DVector4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
+        }
+
+        /// <summary>
+        /// Adds two vectors.
+        ///
+        /// Adds corresponding components together.
+        /// </summary>
+        /// <returns>Addition result.</returns>
+        /// <param name="a">First vector.</param>
+        /// <param name="b">Second vector.</param>
+        public static DVector4 operator +(DVector4 a, DVector4 b)
+        {
+            return new DVector4(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
+        }
+
+        /// <summary>
+        /// Returns a single-precision quaternion representation of this
+        /// double-precision vector.
+        /// </summary>
+        /// <returns>A single-precision vector.</returns>
+        public Quaternion ToQuaternion()
+        {
+            return new Quaternion((float)x, (float)y, (float)z, (float)w);
+        }
+
+        /// <summary>
+        /// Overrided ToString function to formatted DVector4 string output.
+        /// </summary>
+        /// <returns>Formatted string of this DVector4.</returns>
+        public override string ToString()
+        {
+            return string.Format("{0}, {1}, {2}, {3}", x, y, z, w);
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/Math/DVector4.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Math/DVector4.cs.meta
new file mode 100644
index 0000000..6e7f7a4
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Math/DVector4.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: de0c8767c79834ad4a3e1f7cac9eb468
+timeCreated: 1502330118
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/PointCloud.cs b/Assets/GoogleARCore/SDK/Scripts/PointCloud.cs
new file mode 100644
index 0000000..8047e7a
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/PointCloud.cs
@@ -0,0 +1,155 @@
+//-----------------------------------------------------------------------
+// <copyright file="PointCloud.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Collections;
+    using System.Collections.Generic;
+    using System.Runtime.InteropServices;
+    using GoogleARCoreInternal;
+    using UnityEngine;
+    /// @cond EXCLUDE_FROM_DOXYGEN
+    using UnityTango = GoogleAR.UnityNative;
+    /// @endcond
+
+    /// <summary>
+    /// A point cloud is a set of observed 3D points and associated confidence
+    /// values that correspond to the feature points tracked by ARCore.
+    /// </summary>
+    public struct PointCloud
+    {
+        /// <summary>
+        /// The point cloud in Depth Coordinates being wrapped.
+        /// </summary>
+        private UnityTango.PointCloudData m_rawPointCloud;
+
+        /// <summary>
+        /// The matrix converting between unity world and depth camera coordinate frames.
+        /// </summary>
+        private Matrix4x4 m_unityWorldTDepthCamera;
+
+        private const string TANGO_CLIENT_API_DLL = "tango_client_api2";
+
+        /// <summary>
+        /// Constructor for a new PointCloud wrapping <c>rawPointCloud</c>.
+        /// </summary>
+        /// <param name="rawPointCloud">The raw point cloud to wrap.  If <c>rawPointCloud</c> is null, the
+        /// resulting PointCloud will have <c>IsValid</c> set to false.</param>
+        public PointCloud(UnityTango.PointCloudData? rawPointCloud)
+        {
+            if (rawPointCloud == null)
+            {
+                IsValid = false;
+                m_rawPointCloud = new UnityTango.PointCloudData();
+                Pose = new Pose();
+                m_unityWorldTDepthCamera = Matrix4x4.identity;
+                return;
+            }
+
+            IsValid = true;
+            m_rawPointCloud = rawPointCloud.Value;
+            Pose = new Pose();
+            m_unityWorldTDepthCamera = Matrix4x4.identity;
+
+            ApiPoseData apiPoseData = new ApiPoseData();
+            if (ExternApi.TangoService_getPoseAtTime(m_rawPointCloud.timestamp,
+                new ApiCoordinateFramePair(Constants.START_SERVICE_T_DEPTH_FRAME_PAIR),
+                ref apiPoseData) == ApiServiceErrorStatus.Success)
+            {
+                Matrix4x4 ss_T_depth = Matrix4x4.TRS(apiPoseData.translation.ToVector3(),
+                    apiPoseData.orientation.ToQuaternion(), Vector3.one);
+                m_unityWorldTDepthCamera = Constants.UNITY_WORLD_T_START_SERVICE * ss_T_depth;
+                Vector3 translation = m_unityWorldTDepthCamera.GetColumn(3);
+                Quaternion rotation = Quaternion.LookRotation(m_unityWorldTDepthCamera.GetColumn(2),
+                    m_unityWorldTDepthCamera.GetColumn(1));
+                Pose = new Pose(translation, rotation);
+            }
+            else
+            {
+                ARDebug.LogError("Could not retrieve a pose for the point cloud.");
+                Pose = new Pose();
+                m_unityWorldTDepthCamera = Matrix4x4.identity;
+            }
+        }
+
+        /// <summary>
+        /// Returns whether this point cloud stores valid data. May be false
+        /// when ARCore is not in a tracking state.
+        /// </summary>
+        public bool IsValid { get; private set; }
+
+        /// <summary>
+        /// Gets the number of points in the point cloud.
+        /// </summary>
+        public int PointCount
+        {
+            get
+            {
+                if (m_rawPointCloud.points == null)
+                {
+                    return 0;
+                }
+                return m_rawPointCloud.points.Count;
+            }
+        }
+
+        /// <summary>
+        /// Gets the pose associated with the point cloud in world space. The
+        /// points in this cloud are defined relative to this pose.
+        /// {@link #GetPoint} can be used to access each point in the cloud in Unity
+        /// Coordinates, automatically transforming them properly.
+        /// </summary>
+        public Pose Pose { get; private set; }
+
+        /// <summary>
+        /// Gets the timestamp of when the point cloud was observed.
+        /// </summary>
+        public double Timestamp
+        {
+            get
+            {
+                return m_rawPointCloud.timestamp;
+            }
+        }
+
+        /// <summary>
+        /// Gets a point from the point cloud in Unity Coordinates.
+        /// </summary>
+        /// <param name="index">The index of the point to access.</param>
+        /// <returns>The point cloud point at <c>index</c>.</returns>
+        public Vector3 GetPoint(int index)
+        {
+            return m_unityWorldTDepthCamera.MultiplyPoint3x4(m_rawPointCloud.points[index]);
+        }
+
+        /// <summary>
+        /// Interface to tango client API. This interface used as a temporary workaround for the screen rotation bug in
+        /// TangoInputTracking.TryGetPoseAtTime.
+        /// </summary>=
+        private struct ExternApi
+        {
+            [DllImport(TANGO_CLIENT_API_DLL)]
+            public static extern ApiServiceErrorStatus TangoService_getPoseAtTime(double timestamp, ApiCoordinateFramePair framePair,
+                ref ApiPoseData poseData);
+        }
+
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/PointCloud.cs.meta b/Assets/GoogleARCore/SDK/Scripts/PointCloud.cs.meta
new file mode 100644
index 0000000..9aa6549
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/PointCloud.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: ac6505e7dc69e4437be28a9de4383afd
+timeCreated: 1502414771
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/Session.cs b/Assets/GoogleARCore/SDK/Scripts/Session.cs
new file mode 100644
index 0000000..f45e7d2
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Session.cs
@@ -0,0 +1,73 @@
+//-----------------------------------------------------------------------

+// <copyright file="Session.cs" company="Google">

+//

+// Copyright 2017 Google Inc. 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.

+//

+// </copyright>

+//-----------------------------------------------------------------------

+

+namespace GoogleARCore

+{

+    using System.Collections.Generic;

+    using GoogleARCoreInternal;

+    using UnityEngine;

+

+    /// <summary>

+    /// Represents an ARCore session, which is an attachment point from the app

+    /// to the ARCore service. Holds information about the global state for

+    /// ARCore, manages tracking of Anchors and Planes, and performs hit tests

+    /// against objects ARCore is tracking in the world.

+    /// </summary>

+    public static class Session

+    {

+        public static SessionConnectionState ConnectionState

+        {

+            get

+            {

+                return SessionManager.ConnectionState;

+            }

+        }

+

+        /// <summary>

+        /// Creates an anchor in the current ARCore session.

+        ///

+        /// Anchors a gameobject to a position/rotation in the Unity world relative to ARCore's understanding of the

+        /// physical world.  ARCore may periodically perform operations that affect the mapping of Unity world coordinates

+        /// to the physical world; an example of such being drift correction.  Anchors allow GameObjects to retain their

+        /// physical world location when these operations occur.

+        /// </summary>

+        /// <param name="position">The position to anchor.</param>

+        /// <param name="rotation">The rotation to anchor.</param>

+        /// <returns>A newly created anchor tracking <c>position</c> and <c>rotation</c> if successful, otherwise

+        /// <c>null</c>.</returns>

+        public static Anchor CreateAnchor(Vector3 position, Quaternion rotation)

+        {

+            return  SessionManager.Instance.AnchorManager.CreateAnchor(position, rotation);

+        }

+

+        /// <summary>

+        /// Performs a raycast against physical objects being tracked by ARCore.

+        /// </summary>

+        /// <param name="ray">The starting point and direction of the ray.</param>

+        /// <param name="filter">A filter bitmask where each <c>TrackableHitFlag</c> which is set represents a category

+        /// of raycast hits the method call should consider valid.</param>

+        /// <param name="hitResult">A <c>TrackableHit</c> that will be set if the raycast is successful.</param>

+        /// <returns><c>true</c> if the raycast had a hit, otherwise <c>false</c>.</returns>

+        public static bool Raycast(Ray ray, TrackableHitFlag filter, out TrackableHit hitResult)

+        {

+            return  SessionManager.Instance.RaycastManager.Raycast(ray, filter, out hitResult);

+        }

+    }

+}

diff --git a/Assets/GoogleARCore/SDK/Scripts/Session.cs.meta b/Assets/GoogleARCore/SDK/Scripts/Session.cs.meta
new file mode 100644
index 0000000..d1b0198
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/Session.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 37d4175d892ef4e6190e38f26d22434c
+timeCreated: 1502156672
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/SessionComponent.cs b/Assets/GoogleARCore/SDK/Scripts/SessionComponent.cs
new file mode 100644
index 0000000..e0091cf
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/SessionComponent.cs
@@ -0,0 +1,348 @@
+//-----------------------------------------------------------------------
+// <copyright file="SessionComponent.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Collections;
+    using System.Collections.Generic;
+    using UnityEngine;
+    using GoogleARCoreInternal;
+    /// @cond EXCLUDE_FROM_DOXYGEN
+    using UnityTango = GoogleAR.UnityNative;
+    /// @endcond
+
+    /// <summary>
+    /// A component that manages the ARCore Session in a Unity scene.
+    /// </summary>
+    public class SessionComponent : MonoBehaviour
+    {
+        /// <summary>
+        /// A scriptable object specifying tango service connection settings.
+        /// </summary>
+        [Tooltip("A scriptable object specifying tango service connection settings.")]
+        public SessionConfig m_arSessionConfig;
+
+        /// <summary>
+        /// A camera used to render the scene from a first person view from the device.
+        /// </summary>
+        [Tooltip("A camera used to render the first person view from the Tango device.")]
+        public Camera m_firstPersonCamera;
+
+        /// <summary>
+        /// Toggles whether the tango service should be automatically connected upon Awake.
+        /// </summary>
+        [Tooltip("Toggles whether the tango service should be automatically connected upon Awake.")]
+        public bool m_connectOnAwake = true;
+
+        /// <summary>
+        /// The last known screen orientation.
+        /// </summary>
+        private ScreenOrientation m_cachedScreenOrientation = ScreenOrientation.Unknown;
+
+        /// <summary>
+        /// Indicates if the AR background is set up.
+        /// </summary>
+        private bool m_arBackgroundSetup = false;
+
+        private int m_numberOfRecoveryAttempts;
+
+        /// <summary>
+        /// Gets a value indicating whether the first person camera is active.
+        /// </summary>
+        private bool IsFirstPersonCameraActive
+        {
+            get
+            {
+                return m_firstPersonCamera != null && m_firstPersonCamera.gameObject.activeInHierarchy;
+            }
+        }
+
+        /// <summary>
+        /// Unity Awake method.
+        /// </summary>
+        public void Awake()
+        {
+            if (FindObjectsOfType<SessionComponent>().Length > 1)
+            {
+                ARDebug.LogError("Multiple SessionComponents present in the game scene.  Destroying the gameobject " +
+                 "of the newest one.");
+                Destroy(gameObject);
+                return;
+            }
+
+            // Launches a temporary recovery daemon for a known race condition in ARCore connection code.
+            StartCoroutine(_AttemptRecoverIfInvalidState());
+
+            if (m_connectOnAwake)
+            {
+                Connect();
+            }
+        }
+
+        /// <summary>
+        /// Unity Update method.
+        /// </summary>
+        public void Update()
+        {
+            // Unity defaults to targeting 30fps on Android which makes the color image look stuttery since it does
+            // not come in at a perfect every 33ms and so every so often misses a frame. Target an extremely high
+            // frame rate so that Unity instead updates every vblank.
+            Application.targetFrameRate = 300;
+            QualitySettings.vSyncCount = 0;
+
+            AsyncTask.EarlyUpdate();
+
+            if (SessionManager.ConnectionState != SessionConnectionState.Connected)
+            {
+                return;
+            }
+
+            SessionManager.Instance.EarlyUpdate();
+
+            // Handle camera FOV changes needed upon orientation change when using the video overlay.
+            if (m_arBackgroundSetup && m_cachedScreenOrientation != Screen.orientation)
+            {
+                _UpdateCameraFOV();
+            }
+        }
+
+        public void OnApplicationPause(bool isPaused)
+        {
+            if (SessionManager.ConnectionState != SessionConnectionState.Connected)
+            {
+                return;
+            }
+
+            SessionManager.Instance.OnApplicationPause(isPaused);
+        }
+
+        /// <summary>
+        /// Connects an ARSession using <c>m_arSessionConfig</c> configuration. Note that if user permissions are needed
+        ///they will be requested and thus this is an asynchronous method.
+        /// </summary>
+         /// <returns>An <c>AsyncTask</c> that completes when the connection has been made or failed. </returns>
+
+        public AsyncTask<SessionConnectionState> Connect()
+        {
+            return Connect(m_arSessionConfig);
+        }
+
+        /// <summary>
+        /// Connects an ARSession.  Note that if user permissions are needed they will be requested and thus this is an
+        /// asynchronous method.
+        /// </summary>
+        /// <param name="sessionConfig">The session configuration.</param>
+        /// <returns>An <c>AsyncTask</c> that completes when the connection has been made or failed. </returns>
+        public AsyncTask<SessionConnectionState> Connect(SessionConfig sessionConfig)
+        {
+            const string ANDROID_CAMERA_PERMISSION_NAME = "android.permission.CAMERA";
+
+            if (sessionConfig == null)
+            {
+                ARDebug.LogError("Unable to connect ARSession session due to missing ARSessionConfig.");
+                SessionManager.ConnectionState = SessionConnectionState.MissingConfiguration;
+                return new AsyncTask<SessionConnectionState>(SessionManager.ConnectionState);
+            }
+
+            bool isSupported;
+            ApiServiceErrorStatus status = TangoClientApi.TangoService_IsSupported(out isSupported);
+            if (status.IsTangoFailure())
+            {
+                ARDebug.LogError("There was an error accessing the ARCore API.");
+                SessionManager.ConnectionState = SessionConnectionState.ConnectToServiceFailed;
+                return new AsyncTask<SessionConnectionState>(SessionManager.ConnectionState);
+            }
+            if (!isSupported)
+            {
+                ARDebug.LogError("Device does not support ARCore.");
+                SessionManager.ConnectionState = SessionConnectionState.DeviceNotSupported;
+                return new AsyncTask<SessionConnectionState>(SessionManager.ConnectionState);
+            }
+
+            // We have already connected at least once.
+            if (SessionManager.ConnectionState != SessionConnectionState.Uninitialized)
+            {
+                ARDebug.LogError("Multiple attempts to connect to the ARSession.  Note that the ARSession connection " +
+                    "spans the lifetime of the application and cannot be reconfigured.  This will change in future " +
+                    "versions of ARCore.");
+                return new AsyncTask<SessionConnectionState>(SessionManager.ConnectionState);
+            }
+
+            // Create an asynchronous task for the potential permissions flow and service connection.
+            Action<SessionConnectionState> onTaskComplete;
+            var returnTask = new AsyncTask<SessionConnectionState>(out onTaskComplete);
+
+            // Attempt service connection immediately if permissions are granted.
+            if (AndroidPermissionsManager.IsPermissionGranted(ANDROID_CAMERA_PERMISSION_NAME))
+            {
+                _ConnectToService(sessionConfig, onTaskComplete);
+                return returnTask;
+            }
+
+            // Request needed permissions and attempt service connection if granted.
+            var permissionsArray = new string[] { ANDROID_CAMERA_PERMISSION_NAME };
+            AndroidPermissionsManager.RequestPermission(permissionsArray).ThenAction((requestResult) => {
+                if (requestResult.IsAllGranted)
+                {
+                    _ConnectToService(sessionConfig, onTaskComplete);
+                }
+                else
+                {
+                    ARDebug.LogError("ARCore connection failed because a needed permission was rejected.");
+                    SessionManager.ConnectionState = SessionConnectionState.UserRejectedNeededPermission;
+                    onTaskComplete(SessionManager.ConnectionState);
+                }
+            });
+
+            return returnTask;
+        }
+
+        /// <summary>
+        /// Connects to the ARCore service.
+        /// </summary>
+        /// <param name="sessionConfig">The session configuration to connect with.</param>
+        /// <param name="onComplete">A callback for when the result of the connection attempt is known.</param>
+        private void _ConnectToService(SessionConfig sessionConfig, Action<SessionConnectionState> onComplete)
+        {
+            // Connect the ARCore session.
+            UnityTango.Config tangoConfig = _GetSessionTangoConfiguration(sessionConfig);
+            if (!UnityTango.Device.Connect(tangoConfig))
+            {
+                ARDebug.LogError("Failed to connect the ARSession.");
+                SessionManager.ConnectionState = SessionConnectionState.ConnectToServiceFailed;
+                onComplete(SessionConnectionState.ConnectToServiceFailed);
+                return;
+            }
+
+            if(sessionConfig.m_enableARBackground)
+            {
+                _SetupVideoOverlay();
+            }
+
+            SessionManager.ConnectionState = SessionConnectionState.Connected;
+            onComplete(SessionManager.ConnectionState);
+        }
+
+        /// <summary>
+        /// Updates the first person camera FOV to match the field of view of the video overlay.
+        /// </summary>
+        private void _UpdateCameraFOV()
+        {
+            bool qurerySuccess = false;
+            float fieldOfView;
+
+            if (Screen.orientation == ScreenOrientation.Portrait ||
+                Screen.orientation == ScreenOrientation.PortraitUpsideDown)
+            {
+                qurerySuccess = UnityTango.Device.TryGetHorizontalFov(out fieldOfView);
+            }
+            else
+            {
+                qurerySuccess = UnityTango.Device.TryGetVerticalFov(out fieldOfView);
+            }
+
+            if (qurerySuccess)
+            {
+                m_firstPersonCamera.fieldOfView = fieldOfView;
+                m_cachedScreenOrientation = Screen.orientation;
+            }
+        }
+
+        /// <summary>
+        /// Sets up the video overlay rendering.
+        /// </summary>
+        private void _SetupVideoOverlay()
+        {
+            if (m_arBackgroundSetup)
+            {
+                return;
+            }
+
+            if (!IsFirstPersonCameraActive)
+            {
+                Debug.LogError("The first person camera must be set for video overlay to work.");
+                return;
+            }
+
+            var backgroundRender = new UnityEngine.XR.ARBackgroundRenderer();
+            backgroundRender.backgroundMaterial =
+                Resources.Load("Materials/ARBackground", typeof(Material)) as Material;
+            backgroundRender.mode = UnityEngine.XR.ARRenderMode.MaterialAsBackground;
+            if (m_firstPersonCamera != null)
+            {
+                backgroundRender.camera = m_firstPersonCamera;
+            }
+
+            UnityTango.Device.backgroundRenderer = backgroundRender;
+            m_arBackgroundSetup = true;
+        }
+
+        private IEnumerator _AttemptRecoverIfInvalidState()
+        {
+            const string ANDROID_CAMERA_PERMISSION_NAME = "android.permission.CAMERA";
+            const int MAX_RECOVERY_ATTEMPTS = 10;
+            var permissionsArray = new string[] { ANDROID_CAMERA_PERMISSION_NAME };
+
+            while (true)
+            {
+                if (TangoClientApi.CallsToConnectWithoutMatchingDisconnect())
+                {
+                    Debug.LogWarning("Recovery daemon detected ARCore connection problem.  Cycling pause resume.");
+
+                    // Asking for the camera permission we already have forces a Pause/Resume "kick".
+                    AndroidPermissionsManager.RequestPermission(permissionsArray);
+
+                    // This avoids thrashing on recovery attempts.
+                    if (++m_numberOfRecoveryAttempts >= MAX_RECOVERY_ATTEMPTS)
+                    {
+                        yield break;
+                    }
+                }
+
+                yield return null;
+            }
+        }
+
+        private UnityTango.Config _GetSessionTangoConfiguration(SessionConfig sessionConfig)
+        {
+            const string DRIFT_CORRECTION_FLAG = "config_enable_drift_correction";
+            const string PLANE_DETECTION_FLAG = "config_experimental_enable_plane_detection";
+            const string POINTCLOUD_FROM_VIO_FLAG = "config_experimental_enable_depth_from_vio";
+            const string POINTCLOUD_FLAG = "config_enable_depth";
+            const string POINTCLOUD_TYPE_FLAG = "config_depth_mode";
+            const int XYZC_POINTCLOUD_MODE = 0;
+            UnityTango.Config tangoConfig = new UnityTango.Config();
+
+            // Set defaults
+            tangoConfig.enableMotionTracking = true;
+            tangoConfig.enableDepth = false;
+            tangoConfig.enableColorCamera = sessionConfig.m_enableARBackground;
+            tangoConfig.areaLearningMode = UnityTango.AreaLearningMode.None;
+            tangoConfig.AddConfigParameter(DRIFT_CORRECTION_FLAG, true);
+            tangoConfig.AddConfigParameter(POINTCLOUD_FROM_VIO_FLAG, sessionConfig.m_enablePointcloud);
+            tangoConfig.AddConfigParameter(POINTCLOUD_TYPE_FLAG, XYZC_POINTCLOUD_MODE);
+            tangoConfig.AddConfigParameter(POINTCLOUD_FLAG, sessionConfig.m_enablePointcloud);
+            tangoConfig.AddConfigParameter(PLANE_DETECTION_FLAG, sessionConfig.m_enablePlaneFinding);
+
+            return tangoConfig;
+        }
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/SessionComponent.cs.meta b/Assets/GoogleARCore/SDK/Scripts/SessionComponent.cs.meta
new file mode 100644
index 0000000..1a662db
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/SessionComponent.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 7bf3911478e8b449181ac73714fa7424
+timeCreated: 1502157890
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: -32000
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/SessionConfig.cs b/Assets/GoogleARCore/SDK/Scripts/SessionConfig.cs
new file mode 100644
index 0000000..0529466
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/SessionConfig.cs
@@ -0,0 +1,51 @@
+//-----------------------------------------------------------------------
+// <copyright file="SessionConfig.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using UnityEngine;
+
+    /// <summary>
+    /// Holds settings that are used to configure the session.
+    /// </summary>
+    [CreateAssetMenu(fileName = "ARCoreSessionConfig", menuName = "GoogleARCore/SessionConfig", order = 1)]
+    public class SessionConfig : ScriptableObject
+    {
+        /// <summary>
+        /// Toggles whether the color camera passthrough is enabled.
+        /// </summary>
+        [Space(10), Header("Color Camera"), Space(5)]
+        [Tooltip("Toggles whether the color camera is rendered as an AR background.")]
+        public bool m_enableARBackground = true;
+
+        /// <summary>
+        /// Toggles whether plane finding is enabled.
+        /// </summary>
+        [Space(10), Header("Services"), Space(5)]
+        [Tooltip("Toggles whether plane finding is enabled.")]
+        public bool m_enablePlaneFinding = true;
+
+        /// <summary>
+        /// Toggles whether point cloud is enabled.
+        /// </summary>
+        [Tooltip("Toggles whether point cloud is enabled.")]
+        public bool m_enablePointcloud = true;
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/SessionConfig.cs.meta b/Assets/GoogleARCore/SDK/Scripts/SessionConfig.cs.meta
new file mode 100644
index 0000000..265a03d
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/SessionConfig.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 2c267d21797034e5a82bfd30dcc038ba
+timeCreated: 1502156672
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/SessionConnectionState.cs b/Assets/GoogleARCore/SDK/Scripts/SessionConnectionState.cs
new file mode 100644
index 0000000..476f92c
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/SessionConnectionState.cs
@@ -0,0 +1,50 @@
+//-----------------------------------------------------------------------
+// <copyright file="SessionConnectionResult.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+
+    /// <summary>
+    /// Possible states for the ARCore session connection.
+    /// </summary>
+    public enum SessionConnectionState
+    {
+        /// The ARCore session has not been initialized.
+        Uninitialized = 0,
+
+        /// The ARCore session is connected.
+        Connected,
+
+        /// The ARCore session failed to connect because no configuration was supplied.
+        MissingConfiguration,
+
+        /// The ARCore session failed to connect because an invalid configuration was supplied.
+        InvalidConfiguration,
+
+        /// The ARCore session failed to connect because the user rejected at least one needed permission.
+        UserRejectedNeededPermission,
+
+        /// The ARCore session failed to connect because the device is not supported.
+        DeviceNotSupported,
+
+        /// The ARCore session failed to connect for unknown reason.
+        ConnectToServiceFailed,
+    }
+}
\ No newline at end of file
diff --git a/Assets/GoogleARCore/SDK/Scripts/SessionConnectionState.cs.meta b/Assets/GoogleARCore/SDK/Scripts/SessionConnectionState.cs.meta
new file mode 100644
index 0000000..85e8f16
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/SessionConnectionState.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 8ee375b70bec246e2ba1aa45b534a9c6
+timeCreated: 1503354175
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/TrackableHit.cs b/Assets/GoogleARCore/SDK/Scripts/TrackableHit.cs
new file mode 100644
index 0000000..2d3d864
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/TrackableHit.cs
@@ -0,0 +1,69 @@
+//-----------------------------------------------------------------------
+// <copyright file="TrackableHit.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using UnityEngine;
+
+    /// <summary>
+    /// Contains information about a raycast hit against a physical object tracked by ARCore.
+    /// </summary>
+    public struct TrackableHit
+    {
+        /// <summary>
+        /// The location where the raycast hit the object in Unity world coordinates.
+        /// </summary>
+        public Vector3 Point { get; private set; }
+
+        /// <summary>
+        /// The normal of the hit.
+        /// </summary>
+        public Vector3 Normal { get; private set; }
+
+        /// <summary>
+        /// The distance from the origin of the ray to the hit.
+        /// </summary>
+        public float Distance { get; private set; }
+
+        /// <summary>
+        /// A bitmask where set TrackableHitFlag flags correspond to categories of objects the hit belongs to.
+        /// </summary>
+        public TrackableHitFlag Flags { get; private set; }
+
+        /// <summary>
+        /// Gets the TrackedPlane intersected by the Raycast if one exists, otherwise gets <c>null</c>.
+        /// </summary>
+        public TrackedPlane Plane { get; private set; }
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Constructs a TrackableHit.
+        /// </summary>
+        public TrackableHit(Vector3 point, Vector3 normal, float distance, TrackableHitFlag flags, TrackedPlane plane)
+        {
+            Point = point;
+            Normal = normal;
+            Distance = distance;
+            Flags = flags;
+            Plane = plane;
+        }
+        /// @endcond
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/TrackableHit.cs.meta b/Assets/GoogleARCore/SDK/Scripts/TrackableHit.cs.meta
new file mode 100644
index 0000000..ba3ce6f
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/TrackableHit.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: f69a232195c4d4a699cc8501f6ee7649
+timeCreated: 1502302494
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/TrackableHitFlag.cs b/Assets/GoogleARCore/SDK/Scripts/TrackableHitFlag.cs
new file mode 100644
index 0000000..2858bee
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/TrackableHitFlag.cs
@@ -0,0 +1,59 @@
+//-----------------------------------------------------------------------
+// <copyright file="TrackableHitFlag.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using UnityEngine;
+
+    /// <summary>
+    /// Flags representing categories of raycast hits.
+    /// </summary>
+    [System.Flags]
+    public enum TrackableHitFlag
+    {
+        /// <summary>
+        /// This value is returned on a TrackableHit to indicate no collision occurred.
+        ///
+        /// If you pass this into Raycast, you will not get any collision results.
+        /// </summary>
+        None = 0,
+
+        /// <summary>
+        /// The collision is within the the TrackedPlane's convex bounding polygon.
+        /// </summary>
+        PlaneWithinPolygon = 1,
+
+        /// <summary>
+        /// The collision is within the TrackedPlane's bounding box.
+        /// </summary>
+        PlaneWithinBounds = 2,
+
+        /// <summary>
+        /// The collision is on the TrackedPlane, but not limited to the bounding box or polygon.
+        /// This acts as if the plane extends out to infinity.
+        /// </summary>
+        PlaneWithinInfinity = 4,
+
+        /// <summary>
+        /// The collision is on points in the current frame's point cloud.
+        /// </summary>
+        PointCloud = 8,
+    }
+}
diff --git a/Assets/GoogleARCore/SDK/Scripts/TrackableHitFlag.cs.meta b/Assets/GoogleARCore/SDK/Scripts/TrackableHitFlag.cs.meta
new file mode 100644
index 0000000..449b096
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/TrackableHitFlag.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: a541164e523764394a27cc3803637e58
+timeCreated: 1502302494
+licenseType: Free
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GoogleARCore/SDK/Scripts/TrackedPlane.cs b/Assets/GoogleARCore/SDK/Scripts/TrackedPlane.cs
new file mode 100644
index 0000000..4d09f8f
--- /dev/null
+++ b/Assets/GoogleARCore/SDK/Scripts/TrackedPlane.cs
@@ -0,0 +1,186 @@
+//-----------------------------------------------------------------------
+// <copyright file="TrackedPlane.cs" company="Google">
+//
+// Copyright 2017 Google Inc. 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.
+//
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace GoogleARCore
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Runtime.InteropServices;
+    using GoogleARCoreInternal;
+    using UnityEngine;
+
+    /// <summary>
+    /// A real-world plane being tracked by ARCore.
+    /// </summary>
+    public class TrackedPlane
+    {
+        /// <summary>
+        /// Center position of the plane.
+        /// </summary>
+        public Vector3 Position { get; private set; }
+
+        /// <summary>
+        /// Rotation of the plane.
+        /// </summary>
+        public Quaternion Rotation { get; private set; }
+
+        /// <summary>
+        /// Bounding box size aligned with plane's x and z axis.
+        /// </summary>
+        public Vector2 Bounds
+        {
+            get
+            {
+                return new Vector2((float)m_apiPlaneData.width, (float)m_apiPlaneData.height);
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating if the plane data has been updated in the current ARCore Frame.
+        /// </summary>
+        public bool IsUpdated
+        {
+            get
+            {
+                return Time.frameCount == m_lastUpdatedFrame;
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating the plane is valid. If this is false, the plane should not be rendered.
+        /// </summary>
+        public bool IsValid
+        {
+            get
+            {
+                return m_apiPlaneData.isValid;
+            }
+        }
+
+        /// <summary>
+        /// Gets a reference to the plane subsuming this plane, if any.  If not null, only the subsuming plane should be
+        /// considered valid for rendering.
+        /// </summary>
+        public TrackedPlane SubsumedBy { get; private set; }
+
+        private ApiPlaneData m_apiPlaneData;
+
+        private Matrix4x4 m_unityWorldTPlane;
+
+        private List<Vector3> m_boundaryPolygonPoints = new List<Vector3>();
+
+        private int m_lastUpdatedFrame;
+
+        private  bool m_initialized;
+
+        /// @cond EXCLUDE_FROM_DOXYGEN
+        /// <summary>
+        /// Construct PlaneData from APIPlaneData.
+        /// Note that this will convert plane's pose from Tango space to Unity world space.
+        /// </summary>
+        /// <param name="apiPlaneData">ApiPlaneData source.</param>
+        /// <param name="updatePlane">A callback to update the API data of the plane.</param>
+        public TrackedPlane(ApiPlaneData apiPlaneData, out Action<ApiPlaneData, TrackedPlane, bool> updatePlane)
+        {
+            _UpdatePlaneIfNeeded(apiPlaneData, null, true);
+            updatePlane = _UpdatePlaneIfNeeded;
+        }
+        /// @endcond
+
+        /// <summary>
+        /// Gets a list of points (in clockwise order) in Unity world space representing a boundary polygon for
+        /// the plane.
+        /// </summary>
+        /// <param name="boundaryPolygonPoints">A list of <b>Vector3</b> to be filled by the method call.</param>
+        public void GetBoundaryPolygon(ref List<Vector3> boundaryPolygonPoints)
+        {
+            if (boundaryPolygonPoints == null)
+            {
+                boundaryPolygonPoints = new List<Vector3>();
+            }
+
+            boundaryPolygonPoints.Clear();
+            boundaryPolygonPoints.AddRange(m_boundaryPolygonPoints);
+        }
+
+        /// <summary>
+        /// Update the plane's data with APIPlaneData
+        /// Note that this will convert plane's pose from Tango space to Unity world space.
+        /// </summary>
+        /// <param name="apiPlaneData">ApiPlaneData source.</param>