Import Cobalt 22.master.0.305678
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 174d63a..cc6dd4e 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -38,7 +38,12 @@
         language: system
         types: [c++]
         args: [--verbose=4, --quiet]
-        exclude: '(^cobalt/bindings/(templates|generated)/|tests?.(cc|h)$)'
+        exclude: |
+            (?x)(
+                ^cobalt/bindings/(templates|generated)/|
+                ^starboard/shared/uikit/.*\.h$|
+                tests?\.(cc|h)$
+            )
     -   id: cpplint_test
         name: cpplint_test
         entry: cpplint
@@ -46,6 +51,7 @@
         types: [c++]
         args: [--verbose=5, --quiet]
         files: '.*tests?.(cc|h)$'
+        exclude: '^starboard/shared/uikit/.*\.h$'
     -   id: yapf
         name: yapf
         description: Run yapf (the python formatter) in-place on changed files.
@@ -141,9 +147,17 @@
         entry: python precommit_hooks/internal_file_check_wrapper.py
         language: python
         types: [text]
-        exclude: 'EXCLUDE\.FILES(\.RECURSIVE)?$'
+        # TODO: Remove docker-compose-windows.yml after internal check evaluates
+        # properly on it.
+        exclude: '(^docker-compose-windows.yml|EXCLUDE\.FILES(\.RECURSIVE)?)$'
     -   id: gn-format
         name: GN format
         entry: gn format
         language: system
         files: '.*\.gni?$'
+    -   id: gyp-changes
+        name: Disallow GYP Changes
+        entry: echo -e "GYP is deprecated and will not be included past Cobalt 22. Use GN.\n"
+        language: system
+        files: '\.gypi?$'
+        verbose: true
diff --git a/BUILD.gn b/BUILD.gn
index 6900b8c..7a4b5d1 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -12,14 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# executable("hello_world") {
-#   sources = ["hello_world.cc"]
-# }
-
 group("gn_all") {
   testonly = true
 
-  deps = [ "//starboard:gn_all" ]
+  deps = [
+    "//cobalt:gn_all",
+    "//starboard:gn_all",
+  ]
 }
 
 group("default") {
diff --git a/docker/precommit_hooks/docker-compose.yml b/cobalt/BUILD.gn
similarity index 70%
rename from docker/precommit_hooks/docker-compose.yml
rename to cobalt/BUILD.gn
index 6106d19..5206049 100644
--- a/docker/precommit_hooks/docker-compose.yml
+++ b/cobalt/BUILD.gn
@@ -12,16 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: '2.4'
+group("gn_all") {
+  testonly = true
 
-services:
-  pre-commit:
-    build:
-      context: .
-      dockerfile: Dockerfile
-    image: pre-commit
-    volumes:
-      - ${COBALT_SRC:-../../}:/code/
-    environment:
-      FROM_REF: ${FROM_REF:-HEAD^1}
-      TO_REF: ${TO_REF:-HEAD}
+  deps = [
+    "//cobalt/network_bridge",
+    "//cobalt/storage:storage_constants",
+    "//nb",
+    "//third_party/libwebp",
+  ]
+}
diff --git a/cobalt/browser/browser_module.cc b/cobalt/browser/browser_module.cc
index 44fc15e..ea42569 100644
--- a/cobalt/browser/browser_module.cc
+++ b/cobalt/browser/browser_module.cc
@@ -409,6 +409,15 @@
 #endif  // ENABLE_DEBUGGER
     }
   }
+
+  if (command_line->HasSwitch(switches::kDisableMediaEncryptionSchemes)) {
+    std::string encryption_schemes = command_line->GetSwitchValueASCII(
+        switches::kDisableMediaEncryptionSchemes);
+    if (!encryption_schemes.empty()) {
+      can_play_type_handler_->SetDisabledMediaEncryptionSchemes(
+          encryption_schemes);
+    }
+  }
 #endif  // ENABLE_DEBUG_COMMAND_LINE_SWITCHES
 
   if (application_state_ == base::kApplicationStateStarted ||
diff --git a/cobalt/browser/switches.cc b/cobalt/browser/switches.cc
index e2743e9..ff63221 100644
--- a/cobalt/browser/switches.cc
+++ b/cobalt/browser/switches.cc
@@ -71,6 +71,15 @@
     "example, setting the value to \"avc;hvc\" will disable any h264 and h265 "
     "playbacks.";
 
+const char kDisableMediaEncryptionSchemes[] =
+    "disable_media_encryption_schemes";
+const char kDisableMediaEncryptionSchemesHelp[] =
+    "Disables the semicolon-separated list of encryption schemes that will be "
+    "treated as unsupported for encrypted media playback. Used for debugging "
+    "and testing purposes. For example, setting the value to \"cenc;cbcs\" "
+    "will disable any cenc and cbcs DRM playbacks. Accepted values: \"cenc\", "
+    "\"cbcs\", \"cbcs-1-9\".";
+
 const char kDisableRasterizerCaching[] = "disable_rasterizer_caching";
 const char kDisableRasterizerCachingHelp[] =
     "Disables caching of rasterized render tree nodes; caching improves "
@@ -442,6 +451,7 @@
         {kDisableImageAnimations, kDisableImageAnimationsHelp},
         {kForceDeterministicRendering, kForceDeterministicRenderingHelp},
         {kDisableMediaCodecs, kDisableMediaCodecsHelp},
+        {kDisableMediaEncryptionSchemes, kDisableMediaEncryptionSchemesHelp},
         {kDisableRasterizerCaching, kDisableRasterizerCachingHelp},
         {kDisableSignIn, kDisableSignInHelp},
         {kDisableSplashScreenOnReloads, kDisableSplashScreenOnReloadsHelp},
diff --git a/cobalt/browser/switches.h b/cobalt/browser/switches.h
index 50e3b4c..9786622 100644
--- a/cobalt/browser/switches.h
+++ b/cobalt/browser/switches.h
@@ -41,6 +41,8 @@
 extern const char kForceDeterministicRendering[];
 extern const char kDisableMediaCodecs[];
 extern const char kDisableMediaCodecsHelp[];
+extern const char kDisableMediaEncryptionSchemes[];
+extern const char kDisableMediaEncryptionSchemesHelp[];
 extern const char kDisableRasterizerCaching[];
 extern const char kDisableSignIn[];
 extern const char kDisableSignInHelp[];
diff --git a/cobalt/build/gyp_utils.py b/cobalt/build/gyp_utils.py
index 963e560..42affa5 100644
--- a/cobalt/build/gyp_utils.py
+++ b/cobalt/build/gyp_utils.py
@@ -34,16 +34,14 @@
 
 
 def CheckRevInfo(key, cwd=None):
-  cwd = cwd if cwd else '.'
-  git_prefix = ['git', '-C', cwd]
-  git_get_remote_args = git_prefix + ['config', '--get', 'remote.origin.url']
-  remote = subprocess.check_output(git_get_remote_args).strip()
+  git_get_remote_args = ['git', 'config', '--get', 'remote.origin.url']
+  remote = subprocess.check_output(git_get_remote_args, cwd=cwd).strip()
 
   if remote.endswith('.git'):
     remote = remote[:-len('.git')]
 
-  git_get_revision_args = git_prefix + ['rev-parse', 'HEAD']
-  revision = subprocess.check_output(git_get_revision_args).strip()
+  git_get_revision_args = ['git', 'rev-parse', 'HEAD']
+  revision = subprocess.check_output(git_get_revision_args, cwd=cwd).strip()
   return {key: '{}@{}'.format(remote, revision)}
 
 
@@ -73,7 +71,11 @@
     try:
       repos.update(CheckRevInfo(rel_path, cwd=path))
     except subprocess.CalledProcessError as e:
-      logging.warning('Failed to get revision information for subrepo: %s', e)
+      logging.warning('Failed to get revision information for subrepo %s: %s',
+                      rel_path, e)
+      continue
+    except OSError as e:
+      logging.info('%s. Subrepository %s not found.', e, rel_path)
       continue
 
   return repos
diff --git a/cobalt/content/ssl/certs/002c0b4f.0 b/cobalt/content/ssl/certs/002c0b4f.0
new file mode 100644
index 0000000..559a390
--- /dev/null
+++ b/cobalt/content/ssl/certs/002c0b4f.0
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA
+MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD
+VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy
+MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt
+c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ
+OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG
+vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud
+316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo
+0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE
+y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF
+zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE
++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN
+I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs
+x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa
+ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC
+4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4
+7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg
+JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti
+2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk
+pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF
+FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt
+rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk
+ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5
+u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP
+4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6
+N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3
+vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/0c4c9b6c.0 b/cobalt/content/ssl/certs/0c4c9b6c.0
deleted file mode 100644
index 70b4ce4..0000000
--- a/cobalt/content/ssl/certs/0c4c9b6c.0
+++ /dev/null
@@ -1,41 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
-MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
-cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
-A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
-BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
-KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
-G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
-zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
-ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
-HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
-Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
-yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
-beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
-6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
-zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
-BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
-ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
-ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
-cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
-YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
-CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
-KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
-hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
-UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
-X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
-fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
-a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
-Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
-SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
-AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
-M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
-v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/116bf586.0 b/cobalt/content/ssl/certs/116bf586.0
deleted file mode 100644
index f9364c0..0000000
--- a/cobalt/content/ssl/certs/116bf586.0
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
-MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
-KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
-MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
-NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
-BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
-So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
-tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
-CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
-qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
-rD6ogRLQy7rQkgu2npaqBA+K
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/128805a3.0 b/cobalt/content/ssl/certs/128805a3.0
deleted file mode 100644
index 013d461..0000000
--- a/cobalt/content/ssl/certs/128805a3.0
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
-MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
-czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
-CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
-MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
-ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
-b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
-euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
-bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
-WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
-MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
-1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
-zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
-BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
-BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
-v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
-E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
-iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
-GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/2c543cd1.0 b/cobalt/content/ssl/certs/2c543cd1.0
deleted file mode 100644
index bcb2529..0000000
--- a/cobalt/content/ssl/certs/2c543cd1.0
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/2e4eed3c.0 b/cobalt/content/ssl/certs/2e4eed3c.0
deleted file mode 100644
index 998460f..0000000
--- a/cobalt/content/ssl/certs/2e4eed3c.0
+++ /dev/null
@@ -1,25 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
-qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
-BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
-NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
-LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
-A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
-W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
-3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
-6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
-Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
-NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
-r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
-DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
-YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
-/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
-LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
-jVaMaA==
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/3fb36b73.0 b/cobalt/content/ssl/certs/3fb36b73.0
new file mode 100644
index 0000000..59f8ce3
--- /dev/null
+++ b/cobalt/content/ssl/certs/3fb36b73.0
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM
+BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG
+T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx
+CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD
+b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA
+iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH
+38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE
+HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz
+kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP
+szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq
+vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf
+nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG
+YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo
+0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a
+CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K
+AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I
+36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN
+qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj
+cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm
++LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL
+hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe
+lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7
+p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8
+piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR
+LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX
+5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO
+dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul
+9XXeifdy
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/480720ec.0 b/cobalt/content/ssl/certs/480720ec.0
deleted file mode 100644
index 03c70c7..0000000
--- a/cobalt/content/ssl/certs/480720ec.0
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
-MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
-R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
-MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
-AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
-ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
-7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
-kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
-mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
-KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
-6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
-4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
-oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
-UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
-AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/5a4d6896.0 b/cobalt/content/ssl/certs/5a4d6896.0
deleted file mode 100644
index bc6a756..0000000
--- a/cobalt/content/ssl/certs/5a4d6896.0
+++ /dev/null
@@ -1,32 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX
-DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP
-cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW
-IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX
-xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy
-KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR
-9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az
-5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8
-6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7
-Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP
-bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt
-BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt
-XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd
-INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp
-LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8
-Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp
-gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh
-/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw
-0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A
-fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq
-4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR
-1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/
-QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM
-94B7IWcnMFk=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/5f618aec.0 b/cobalt/content/ssl/certs/5f618aec.0
new file mode 100644
index 0000000..573ec33
--- /dev/null
+++ b/cobalt/content/ssl/certs/5f618aec.0
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV
+BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g
+Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ
+BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ
+R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF
+dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw
+vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ
+uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp
+n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs
+cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW
+xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P
+rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF
+DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx
+DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy
+LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C
+eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ
+d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq
+kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC
+b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl
+qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0
+OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c
+NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk
+ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO
+pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj
+03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk
+PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE
+1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX
+QRBdJ3NghVdJIgc=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/6410666e.0 b/cobalt/content/ssl/certs/6410666e.0
deleted file mode 100644
index 51187d8..0000000
--- a/cobalt/content/ssl/certs/6410666e.0
+++ /dev/null
@@ -1,32 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
-MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
-PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
-AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
-IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
-gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
-yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
-F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
-jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
-ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
-VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
-YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
-EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
-Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
-DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
-MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
-UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
-qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
-ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
-JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
-hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
-EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
-nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
-udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
-ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
-LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
-pYYsfPQS
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/7d0b38bd.0 b/cobalt/content/ssl/certs/7d0b38bd.0
deleted file mode 100644
index e19fdea..0000000
--- a/cobalt/content/ssl/certs/7d0b38bd.0
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
-U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
-SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
-biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
-GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
-fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
-aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
-aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
-kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
-4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
-FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/8867006a.0 b/cobalt/content/ssl/certs/8867006a.0
deleted file mode 100644
index bed6cd0..0000000
--- a/cobalt/content/ssl/certs/8867006a.0
+++ /dev/null
@@ -1,31 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
-VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
-c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
-WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
-FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
-XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
-se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
-KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
-IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
-y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
-hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
-QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
-Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
-HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
-KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
-L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
-Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
-ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
-T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
-GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
-1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
-OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
-6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
-QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/8d89cda1.0 b/cobalt/content/ssl/certs/8d89cda1.0
new file mode 100644
index 0000000..e3be2a5
--- /dev/null
+++ b/cobalt/content/ssl/certs/8d89cda1.0
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw
+CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD
+VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
+MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV
+UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy
+b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR
+ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb
+hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3
+FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV
+L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB
+iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/9482e63a.0 b/cobalt/content/ssl/certs/9482e63a.0
new file mode 100644
index 0000000..81f8a2e
--- /dev/null
+++ b/cobalt/content/ssl/certs/9482e63a.0
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw
+CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw
+JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT
+EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0
+WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT
+LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX
+BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE
+KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm
+Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8
+EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J
+UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn
+nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/9b5697b0.0 b/cobalt/content/ssl/certs/9b5697b0.0
new file mode 100644
index 0000000..8f308f5
--- /dev/null
+++ b/cobalt/content/ssl/certs/9b5697b0.0
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG
+SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN
+FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w
+DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw
+CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh
+DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/9f727ac7.0 b/cobalt/content/ssl/certs/9f727ac7.0
new file mode 100644
index 0000000..f440412
--- /dev/null
+++ b/cobalt/content/ssl/certs/9f727ac7.0
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg
+Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL
+MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
+YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv
+b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l
+mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE
+4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv
+a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M
+pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw
+Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b
+LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY
+AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB
+AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq
+E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr
+W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ
+CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU
+X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3
+f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja
+H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP
+JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P
+zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt
+jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0
+/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT
+BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79
+aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW
+xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU
+63ZTGI0RmLo=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/ad088e1d.0 b/cobalt/content/ssl/certs/ad088e1d.0
deleted file mode 100644
index 6bc2888..0000000
--- a/cobalt/content/ssl/certs/ad088e1d.0
+++ /dev/null
@@ -1,31 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
-IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
-VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
-cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
-QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
-F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
-c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
-mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
-VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
-teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
-f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
-Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
-nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
-/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
-MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
-9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
-IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
-ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
-uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
-Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
-QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
-koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
-ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
-DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
-bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/b1b8a7f3.0 b/cobalt/content/ssl/certs/b1b8a7f3.0
deleted file mode 100644
index a695c21..0000000
--- a/cobalt/content/ssl/certs/b1b8a7f3.0
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
-ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
-aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
-ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
-NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
-A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
-VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
-SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
-VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
-w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
-mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
-4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
-4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
-EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
-SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
-ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
-vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
-Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
-/L7fCg0=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/b204d74a.0 b/cobalt/content/ssl/certs/b204d74a.0
deleted file mode 100644
index 707ff08..0000000
--- a/cobalt/content/ssl/certs/b204d74a.0
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
-ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
-nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
-t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
-SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
-BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
-rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
-NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
-BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
-BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
-MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
-p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
-5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
-WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
-4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
-hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/b433981b.0 b/cobalt/content/ssl/certs/b433981b.0
new file mode 100644
index 0000000..c371237
--- /dev/null
+++ b/cobalt/content/ssl/certs/b433981b.0
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV
+BAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk
+YWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV
+BAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN
+MzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF
+UzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD
+VQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj
+cqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q
+yGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH
+2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX
+H1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL
+zc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR
+p1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz
+W7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/
+SiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn
+LNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3
+n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B
+u8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj
+o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
+AgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L
+9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej
+rw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK
+pFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0
+vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq
+OknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ
+/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9
+2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI
++PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2
+MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo
+tt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/b81b93f0.0 b/cobalt/content/ssl/certs/b81b93f0.0
new file mode 100644
index 0000000..8dde431
--- /dev/null
+++ b/cobalt/content/ssl/certs/b81b93f0.0
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw
+CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw
+FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S
+Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5
+MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL
+DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS
+QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH
+sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK
+Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu
+SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC
+MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy
+v+c=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/ba89ed3b.0 b/cobalt/content/ssl/certs/ba89ed3b.0
deleted file mode 100644
index acfed9d..0000000
--- a/cobalt/content/ssl/certs/ba89ed3b.0
+++ /dev/null
@@ -1,25 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
-rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
-BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
-Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
-LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
-MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
-gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
-YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
-b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
-9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
-zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
-OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
-HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
-2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
-oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
-KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
-m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
-MdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/bf53fb88.0 b/cobalt/content/ssl/certs/bf53fb88.0
new file mode 100644
index 0000000..3bdfb23
--- /dev/null
+++ b/cobalt/content/ssl/certs/bf53fb88.0
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl
+MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw
+NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG
+EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N
+aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ
+Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0
+ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1
+HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm
+gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ
+jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc
+aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG
+YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6
+W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K
+UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH
++FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q
+W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC
+NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC
+LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC
+gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6
+tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh
+SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2
+TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3
+pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR
+xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp
+GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9
+dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN
+AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB
+RA+GsCyRxj3qrg+E
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/c01cdfa2.0 b/cobalt/content/ssl/certs/c01cdfa2.0
deleted file mode 100644
index b5f1875..0000000
--- a/cobalt/content/ssl/certs/c01cdfa2.0
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
-vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
-ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
-IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
-IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
-bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
-9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
-H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
-LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
-/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
-rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
-WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
-exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
-sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
-seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
-4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
-BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
-lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
-7M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/c089bbbd.0 b/cobalt/content/ssl/certs/c089bbbd.0
deleted file mode 100644
index 447ee3d..0000000
--- a/cobalt/content/ssl/certs/c089bbbd.0
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
-IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
-BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
-MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
-YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
-dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
-BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
-papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
-DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
-KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
-XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/c0ff1f52.0 b/cobalt/content/ssl/certs/c0ff1f52.0
deleted file mode 100644
index 6880364..0000000
--- a/cobalt/content/ssl/certs/c0ff1f52.0
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
-N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
-KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
-kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
-CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
-imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
-2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
-DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
-F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
-TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/c47d9980.0 b/cobalt/content/ssl/certs/c47d9980.0
deleted file mode 100644
index 7d3a249..0000000
--- a/cobalt/content/ssl/certs/c47d9980.0
+++ /dev/null
@@ -1,42 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
-IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
-MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
-dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
-EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
-MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
-28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
-VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
-DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
-5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
-ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
-Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
-UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
-+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
-Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
-hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
-HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
-+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
-YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
-L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
-ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
-IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
-HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
-DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
-PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
-5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
-glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
-FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
-pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
-xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
-tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
-jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
-fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
-d0jQ
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/d853d49e.0 b/cobalt/content/ssl/certs/d853d49e.0
deleted file mode 100644
index fb804c9..0000000
--- a/cobalt/content/ssl/certs/d853d49e.0
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF
-MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL
-ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx
-MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc
-MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+
-AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH
-iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj
-vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA
-0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB
-OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/
-BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E
-FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01
-GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW
-zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4
-1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE
-f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F
-jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN
-ZetX2fNXlrtIzYE=
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/d887a5bb.0 b/cobalt/content/ssl/certs/d887a5bb.0
new file mode 100644
index 0000000..e1ddb42
--- /dev/null
+++ b/cobalt/content/ssl/certs/d887a5bb.0
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ
+j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF
+1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G
+A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3
+AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC
+MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu
+Sw==
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/def36a68.0 b/cobalt/content/ssl/certs/def36a68.0
deleted file mode 100644
index 014657f..0000000
--- a/cobalt/content/ssl/certs/def36a68.0
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQEL
-BQAwRjELMAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNV
-BAMMFkx1eFRydXN0IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUw
-MzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5B
-LjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcN
-AQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wmKb3F
-ibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTem
-hfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1
-EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn
-Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4
-zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ
-96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5m
-j5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4g
-DEa/a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+
-8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2j
-X5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmH
-hFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5MDcGByuB
-KwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0
-Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
-+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQEL
-BQADggIBAGoZFO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9
-BzZAcg4atmpZ1gDlaCDdLnINH2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTO
-jFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9
-loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIuZY+kt9J/Z93I055c
-qqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWAVWe+
-2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/
-JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre
-zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQf
-LSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+
-x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6
-oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/e2799e36.0 b/cobalt/content/ssl/certs/e2799e36.0
deleted file mode 100644
index dc1f859..0000000
--- a/cobalt/content/ssl/certs/e2799e36.0
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
-mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
-MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
-BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
-BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
-+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
-hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
-5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
-JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
-DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
-huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
-HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
-AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
-zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
-kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
-SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
-spki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/e35234b1.0 b/cobalt/content/ssl/certs/e35234b1.0
new file mode 100644
index 0000000..fa7fa74
--- /dev/null
+++ b/cobalt/content/ssl/certs/e35234b1.0
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6
+MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu
+MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV
+BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw
+MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg
+U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ
+n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q
+p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq
+NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF
+8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3
+HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa
+mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi
+7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF
+ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P
+qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ
+v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6
+Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1
+vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD
+ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4
+WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo
+zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR
+5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ
+GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf
+5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq
+0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D
+P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM
+qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP
+0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf
+E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/e868b802.0 b/cobalt/content/ssl/certs/e868b802.0
new file mode 100644
index 0000000..b6f59c2
--- /dev/null
+++ b/cobalt/content/ssl/certs/e868b802.0
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV
+BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk
+LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv
+b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ
+BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg
+THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v
+IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv
+xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H
+Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB
+eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo
+jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ
++efcMQ==
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/ecccd8db.0 b/cobalt/content/ssl/certs/ecccd8db.0
new file mode 100644
index 0000000..42924b0
--- /dev/null
+++ b/cobalt/content/ssl/certs/ecccd8db.0
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw
+CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh
+cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v
+dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG
+A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
+aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg
+Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7
+KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y
+STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD
+AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw
+SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN
+nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/f249de83.0 b/cobalt/content/ssl/certs/f249de83.0
new file mode 100644
index 0000000..85da765
--- /dev/null
+++ b/cobalt/content/ssl/certs/f249de83.0
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw
+CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x
+ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1
+c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx
+OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
+SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI
+b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn
+swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu
+7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8
+1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW
+80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP
+JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l
+RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw
+hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10
+coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc
+BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n
+twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud
+DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W
+0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe
+uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q
+lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB
+aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE
+sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT
+MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe
+qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh
+VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8
+h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9
+EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK
+yeC2nOnOcXHebD8WpHk=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/fa5da96b.0 b/cobalt/content/ssl/certs/fa5da96b.0
new file mode 100644
index 0000000..c80b4e8
--- /dev/null
+++ b/cobalt/content/ssl/certs/fa5da96b.0
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG
+A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw
+FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx
+MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
+aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b
+RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z
+YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3
+QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw
+yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+
+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ
+SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH
+r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0
+4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me
+dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw
+q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2
+nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu
+H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA
+VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC
+XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd
+6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf
++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi
+kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7
+wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB
+TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C
+MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn
+4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I
+aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
+qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/fd64f3fc.0 b/cobalt/content/ssl/certs/fd64f3fc.0
new file mode 100644
index 0000000..58c5b54
--- /dev/null
+++ b/cobalt/content/ssl/certs/fd64f3fc.0
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL
+BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg
+Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv
+b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG
+EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u
+IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ
+n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd
+2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF
+VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ
+GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF
+li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU
+r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2
+eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb
+MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg
+jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB
+7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW
+5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE
+ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0
+90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z
+xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu
+QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4
+FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH
+22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP
+xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn
+dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5
+Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b
+nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ
+CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH
+u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj
+d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=
+-----END CERTIFICATE-----
diff --git a/cobalt/content/ssl/certs/feffd413.0 b/cobalt/content/ssl/certs/feffd413.0
new file mode 100644
index 0000000..d9e601c
--- /dev/null
+++ b/cobalt/content/ssl/certs/feffd413.0
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx
+CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD
+ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw
+MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
+HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq
+R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd
+yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ
+7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8
++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A=
+-----END CERTIFICATE-----
diff --git a/cobalt/dom/performance.cc b/cobalt/dom/performance.cc
index a7b2fd9..d1298ce 100644
--- a/cobalt/dom/performance.cc
+++ b/cobalt/dom/performance.cc
@@ -74,7 +74,9 @@
     : EventTarget(settings),
       time_origin_(base::TimeTicks::Now()),
       tick_clock_(base::DefaultTickClock::GetInstance()),
-      timing_(new PerformanceTiming(clock, time_origin_)),
+      timing_(new PerformanceTiming(
+          clock,
+          (time_origin_ - base::TimeTicks::UnixEpoch()).InMilliseconds())),
       memory_(new MemoryInfo()),
       resource_timing_buffer_size_limit_(
           Performance::kMaxResourceTimingBufferSize),
diff --git a/cobalt/dom/performance_test.cc b/cobalt/dom/performance_test.cc
index 4d9d6ce..f0a28ed 100644
--- a/cobalt/dom/performance_test.cc
+++ b/cobalt/dom/performance_test.cc
@@ -72,17 +72,19 @@
   // the object will be created at the beginning of a new navigation.
   scoped_refptr<base::SystemMonotonicClock> clock(
       new base::SystemMonotonicClock());
-  base::TimeTicks lower_limit = base::TimeTicks::Now();
 
-  scoped_refptr<PerformanceTiming> performance_timing(
-      new PerformanceTiming(clock, base::TimeTicks::Now()));
+  uint64 lower_limit =
+      (base::TimeTicks::Now() - base::TimeTicks::UnixEpoch()).InMilliseconds();
 
-  base::TimeTicks upper_limit = base::TimeTicks::Now();
+  testing::StubEnvironmentSettings environment_settings;
+  scoped_refptr<Performance> performance(
+      new Performance(&environment_settings, clock));
 
-  DCHECK_GE(performance_timing->navigation_start(),
-            static_cast<uint64>((lower_limit.ToInternalValue())));
-  DCHECK_LE(performance_timing->navigation_start(),
-            static_cast<uint64>((upper_limit.ToInternalValue())));
+  uint64 upper_limit =
+      (base::TimeTicks::Now() - base::TimeTicks::UnixEpoch()).InMilliseconds();
+
+  DCHECK_GE(performance->timing()->navigation_start(), lower_limit);
+  DCHECK_LE(performance->timing()->navigation_start(), upper_limit);
 }
 
 }  // namespace dom
diff --git a/cobalt/dom/performance_timing.cc b/cobalt/dom/performance_timing.cc
index 910eb03..c0cf211 100644
--- a/cobalt/dom/performance_timing.cc
+++ b/cobalt/dom/performance_timing.cc
@@ -18,16 +18,13 @@
 namespace dom {
 
 PerformanceTiming::PerformanceTiming(
-    const scoped_refptr<base::BasicClock>& clock,
-    base::TimeTicks time_origin)
-    : navigation_start_(time_origin),
+    const scoped_refptr<base::BasicClock>& clock, uint64 navigation_start)
+    : navigation_start_(navigation_start),
       navigation_start_clock_(new base::OffsetClock(clock, clock->Now())) {}
 
 PerformanceTiming::~PerformanceTiming() {}
 
-uint64 PerformanceTiming::navigation_start() const {
-  return static_cast<uint64>(navigation_start_.ToInternalValue());
-}
+uint64 PerformanceTiming::navigation_start() const { return navigation_start_; }
 
 scoped_refptr<base::OffsetClock> PerformanceTiming::GetNavigationStartClock() {
   return navigation_start_clock_;
diff --git a/cobalt/dom/performance_timing.h b/cobalt/dom/performance_timing.h
index 184d92d..a0a761c 100644
--- a/cobalt/dom/performance_timing.h
+++ b/cobalt/dom/performance_timing.h
@@ -29,7 +29,7 @@
   // Performance::Mark and Performance::Measure.
  public:
   explicit PerformanceTiming(const scoped_refptr<base::BasicClock>& clock,
-                             base::TimeTicks time_origin);
+                             uint64 navigation_start);
 
   // This attribute must return the time immediately after the user agent
   // finishes prompting to unload the previous document. If there is no previous
@@ -50,7 +50,7 @@
   ~PerformanceTiming();
 
   // The navigation start time relative to January 1, 1970.
-  base::TimeTicks navigation_start_;
+  uint64 navigation_start_;
   scoped_refptr<base::OffsetClock> navigation_start_clock_;
 
   DISALLOW_COPY_AND_ASSIGN(PerformanceTiming);
diff --git a/cobalt/evergreen_tests/evergreen_tests.py b/cobalt/evergreen_tests/evergreen_tests.py
index 38845e8..23fc411 100644
--- a/cobalt/evergreen_tests/evergreen_tests.py
+++ b/cobalt/evergreen_tests/evergreen_tests.py
@@ -95,7 +95,9 @@
 
   run_all_tests = os.path.join(REPOSITORY_ROOT,
                                'starboard/evergreen/testing/run_all_tests.sh')
-  command = [run_all_tests, args.platform_under_test]
+
+  # /bin/bash is executed since run_all_tests.sh may not be executable.
+  command = ['/bin/bash', run_all_tests, args.platform_under_test]
 
   if launcher.device_id:
     # The automated tests run on this host should target a remote device.
diff --git a/cobalt/h5vcc/h5vcc.gyp b/cobalt/h5vcc/h5vcc.gyp
index 6486986..ce59392 100644
--- a/cobalt/h5vcc/h5vcc.gyp
+++ b/cobalt/h5vcc/h5vcc.gyp
@@ -110,6 +110,9 @@
             'h5vcc_updater.cc',
             'h5vcc_updater.h',
           ],
+         'dependencies': [
+           '<(DEPTH)/cobalt/updater/updater.gyp:updater',
+         ],
         }],
       ],
     },
diff --git a/cobalt/h5vcc/h5vcc_updater.cc b/cobalt/h5vcc/h5vcc_updater.cc
index c4d7bbf..97162bb 100644
--- a/cobalt/h5vcc/h5vcc_updater.cc
+++ b/cobalt/h5vcc/h5vcc_updater.cc
@@ -14,6 +14,10 @@
 
 #include "cobalt/h5vcc/h5vcc_updater.h"
 
+#if SB_IS(EVERGREEN)
+#include "cobalt/updater/utils.h"
+#endif
+
 namespace {
 
 const uint16 kInvalidInstallationIndex = 1000;
@@ -23,6 +27,7 @@
 namespace cobalt {
 namespace h5vcc {
 
+#if SB_IS(EVERGREEN)
 std::string H5vccUpdater::GetUpdaterChannel() const {
   if (!updater_module_) {
     return "";
@@ -66,5 +71,10 @@
   return index == -1 ? kInvalidInstallationIndex : static_cast<uint16>(index);
 }
 
+std::string H5vccUpdater::GetLibrarySha256(uint16 index) const {
+  return cobalt::updater::GetLibrarySha256(index);
+}
+
+#endif  // SB_IS(EVERGREEN)
 }  // namespace h5vcc
 }  // namespace cobalt
diff --git a/cobalt/h5vcc/h5vcc_updater.h b/cobalt/h5vcc/h5vcc_updater.h
index 841b893..8b869ff 100644
--- a/cobalt/h5vcc/h5vcc_updater.h
+++ b/cobalt/h5vcc/h5vcc_updater.h
@@ -46,6 +46,8 @@
 
   uint16 GetInstallationIndex() const;
 
+  std::string GetLibrarySha256(uint16 index) const;
+
 #else
   H5vccUpdater() {}
 #endif
diff --git a/cobalt/h5vcc/h5vcc_updater.idl b/cobalt/h5vcc/h5vcc_updater.idl
index 4a81664..d71d603 100644
--- a/cobalt/h5vcc/h5vcc_updater.idl
+++ b/cobalt/h5vcc/h5vcc_updater.idl
@@ -24,4 +24,7 @@
   void resetInstallations();
 
   unsigned short getInstallationIndex();
+
+  DOMString getLibrarySha256(unsigned short index);
+
 };
diff --git a/cobalt/media/base/sbplayer_pipeline.cc b/cobalt/media/base/sbplayer_pipeline.cc
index 7e5bb2b..3fa6b43 100644
--- a/cobalt/media/base/sbplayer_pipeline.cc
+++ b/cobalt/media/base/sbplayer_pipeline.cc
@@ -544,11 +544,6 @@
   error_cb_.Reset();
   if (demuxer_) {
     stop_cb_ = stop_cb;
-    {
-      base::AutoLock auto_lock(lock_);
-      audio_stream_ = nullptr;
-      video_stream_ = nullptr;
-    }
     demuxer_->Stop();
     OnDemuxerStopped();
   } else {
@@ -909,7 +904,7 @@
   // TODO:  Check |suspended_| here as the pipeline can be suspended before the
   // player is created.  In this case we should delay creating the player as the
   // creation of player may fail.
-
+  std::string error_message;
   {
     base::AutoLock auto_lock(lock_);
     LOG(INFO) << "Creating StarboardPlayer with url: " << source_url;
@@ -921,6 +916,7 @@
       SetPlaybackRateTask(playback_rate_);
       SetVolumeTask(volume_);
     } else {
+      error_message = player_->GetPlayerCreationErrorMessage();
       player_.reset();
       LOG(INFO) << "Failed to create a valid StarboardPlayer.";
     }
@@ -938,8 +934,9 @@
   }
 
   CallSeekCB(DECODER_ERROR_NOT_SUPPORTED,
-             "SbPlayerPipeline::CreateUrlPlayer failed: "
-             "player_->IsValid() is false.");
+             "SbPlayerPipeline::CreateUrlPlayer failed to create a valid "
+             "StarboardPlayer:" +
+                 (error_message.empty() ? "" : " Error: " + error_message));
 }
 
 void SbPlayerPipeline::SetDrmSystem(SbDrmSystem drm_system) {
@@ -995,6 +992,7 @@
         video_stream_->video_decoder_config());
   }
 
+  std::string error_message;
   {
     base::AutoLock auto_lock(lock_);
     SB_DCHECK(!player_);
@@ -1013,6 +1011,7 @@
       SetPlaybackRateTask(playback_rate_);
       SetVolumeTask(volume_);
     } else {
+      error_message = player_->GetPlayerCreationErrorMessage();
       player_.reset();
       LOG(INFO) << "Failed to create a valid StarboardPlayer.";
     }
@@ -1037,8 +1036,9 @@
   }
 
   CallSeekCB(DECODER_ERROR_NOT_SUPPORTED,
-             "SbPlayerPipeline::CreatePlayer failed: "
-             "player_->IsValid() is false.");
+             "SbPlayerPipeline::CreatePlayer failed to create a valid "
+             "StarboardPlayer:" +
+                 (error_message.empty() ? "" : " Error: " + error_message));
 }
 
 void SbPlayerPipeline::OnDemuxerInitialized(PipelineStatus status) {
diff --git a/cobalt/media/base/starboard_player.cc b/cobalt/media/base/starboard_player.cc
index 7d19612..47ad52b 100644
--- a/cobalt/media/base/starboard_player.cc
+++ b/cobalt/media/base/starboard_player.cc
@@ -554,6 +554,8 @@
 
   bool has_audio = audio_codec != kSbMediaAudioCodecNone;
 
+  is_creating_player_ = true;
+
 #if SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
 
   SbPlayerCreationParam creation_param = {};
@@ -592,6 +594,8 @@
 
 #endif  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
 
+  is_creating_player_ = false;
+
   if (!SbPlayerIsValid(player_)) {
     return;
   }
@@ -856,6 +860,19 @@
   }
 }
 
+bool StarboardPlayer::TryToSetPlayerCreationErrorMessage(
+    const std::string& message) {
+  DCHECK(task_runner_->BelongsToCurrentThread());
+  if (is_creating_player_) {
+    player_creation_error_message_ = message;
+    return true;
+  }
+  LOG(INFO) << "TryToSetPlayerCreationErrorMessage() "
+               "is called when |is_creating_player_| "
+               "is false. Error message is ignored.";
+  return false;
+}
+
 // static
 void StarboardPlayer::DecoderStatusCB(SbPlayer player, void* context,
                                       SbMediaType type,
@@ -880,6 +897,13 @@
 void StarboardPlayer::PlayerErrorCB(SbPlayer player, void* context,
                                     SbPlayerError error, const char* message) {
   StarboardPlayer* helper = static_cast<StarboardPlayer*>(context);
+  if (player == kSbPlayerInvalid) {
+    // TODO: Simplify by combining the functionality of
+    // TryToSetPlayerCreationErrorMessage() with OnPlayerError().
+    if (helper->TryToSetPlayerCreationErrorMessage(message)) {
+      return;
+    }
+  }
   helper->task_runner_->PostTask(
       FROM_HERE, base::Bind(&StarboardPlayer::CallbackHelper::OnPlayerError,
                             helper->callback_helper_, player, error,
diff --git a/cobalt/media/base/starboard_player.h b/cobalt/media/base/starboard_player.h
index 588ca42..6e40ac4 100644
--- a/cobalt/media/base/starboard_player.h
+++ b/cobalt/media/base/starboard_player.h
@@ -118,6 +118,15 @@
   //       Need to be removed with media refactor.
   void Resume(SbWindow window);
 
+  // These functions help the pipeline report an error message on a player
+  // creation error. TryToSetPlayerCreationErrorMessage() will set
+  // |player_creation_error_message_| and return true when called while
+  // |is_creating_player_| is true, else it will do nothing and return false.
+  bool TryToSetPlayerCreationErrorMessage(const std::string& message);
+  std::string GetPlayerCreationErrorMessage() const {
+    return player_creation_error_message_;
+  }
+
   SbDecodeTarget GetCurrentSbDecodeTarget();
   SbPlayerOutputMode GetSbPlayerOutputMode();
 
@@ -256,6 +265,10 @@
   // A string of video maximum capabilities.
   std::string max_video_capabilities_;
 
+  // Keep track of errors during player creation.
+  bool is_creating_player_ = false;
+  std::string player_creation_error_message_;
+
 #if SB_HAS(PLAYER_WITH_URL)
   const bool is_url_based_;
 #endif  // SB_HAS(PLAYER_WITH_URL)
diff --git a/cobalt/media/can_play_type_handler.h b/cobalt/media/can_play_type_handler.h
index 00b94f1..5ed65d7 100644
--- a/cobalt/media/can_play_type_handler.h
+++ b/cobalt/media/can_play_type_handler.h
@@ -30,6 +30,8 @@
   virtual SbMediaSupportType CanPlayAdaptive(
       const std::string& mime_type, const std::string& key_system) const = 0;
   virtual void SetDisabledMediaCodecs(const std::string& codecs) = 0;
+  virtual void SetDisabledMediaEncryptionSchemes(
+      const std::string& disabled_encryption_schemes) = 0;
 
  protected:
   CanPlayTypeHandler() {}
diff --git a/cobalt/media/media_module.cc b/cobalt/media/media_module.cc
index b70b045..3f6671d 100644
--- a/cobalt/media/media_module.cc
+++ b/cobalt/media/media_module.cc
@@ -14,6 +14,9 @@
 
 #include "cobalt/media/media_module.h"
 
+#include <algorithm>
+#include <string>
+#include <utility>
 #include <vector>
 
 #include "base/bind.h"
@@ -37,6 +40,57 @@
 
 namespace {
 
+// TODO: Determine if ExtractCodecs() and ExtractEncryptionScheme() can be
+// combined and simplified.
+static std::vector<std::string> ExtractCodecs(const std::string& mime_type) {
+  std::vector<std::string> codecs;
+  std::vector<std::string> components = base::SplitString(
+      mime_type, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+  LOG_IF(WARNING, components.empty())
+      << "argument mime type \"" << mime_type << "\" is not valid.";
+  // The first component is the type/subtype pair. We want to iterate over the
+  // remaining components to search for the codecs.
+  auto iter = components.begin() + 1;
+  for (; iter != components.end(); ++iter) {
+    std::vector<std::string> name_and_value = base::SplitString(
+        *iter, "=", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+    if (name_and_value.size() != 2) {
+      LOG(WARNING) << "parameter for mime_type \"" << mime_type
+                   << "\" is not valid.";
+      continue;
+    }
+    if (name_and_value[0] == "codecs") {
+      ParseCodecString(name_and_value[1], &codecs, /* strip= */ false);
+      return codecs;
+    }
+  }
+  return codecs;
+}
+
+static std::string ExtractEncryptionScheme(const std::string& key_system) {
+  std::vector<std::string> components = base::SplitString(
+      key_system, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+
+  auto iter = components.begin();
+  for (; iter != components.end(); ++iter) {
+    std::vector<std::string> name_and_value = base::SplitString(
+        *iter, "=", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+    if (name_and_value.size() != 1 && name_and_value.size() != 2) {
+      LOG(WARNING) << "parameter for key_system \"" << key_system
+                   << "\" is not valid.";
+      continue;
+    }
+    if (name_and_value[0] == "encryptionscheme") {
+      if (name_and_value.size() < 2) {
+        return "";
+      }
+      base::RemoveChars(name_and_value[1], "\"", &name_and_value[1]);
+      return name_and_value[1];
+    }
+  }
+  return "";
+}
+
 class CanPlayTypeHandlerStarboard : public CanPlayTypeHandler {
  public:
   void SetDisabledMediaCodecs(
@@ -48,6 +102,15 @@
               << "\" from console/command line.";
   }
 
+  void SetDisabledMediaEncryptionSchemes(
+      const std::string& disabled_encryption_schemes) override {
+    disabled_encryption_schemes_ =
+        base::SplitString(disabled_encryption_schemes, ";",
+                          base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+    LOG(INFO) << "Disabled encryption scheme(s) \""
+              << disabled_encryption_schemes << "\" from command line.";
+  }
+
   SbMediaSupportType CanPlayProgressive(
       const std::string& mime_type) const override {
     // |mime_type| is something like:
@@ -72,31 +135,6 @@
   }
 
  private:
-  std::vector<std::string> ExtractCodecs(const std::string& mime_type) const {
-    std::vector<std::string> codecs;
-    std::vector<std::string> components = base::SplitString(
-        mime_type, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
-    LOG_IF(WARNING, components.empty())
-        << "argument mime type \"" << mime_type << "\" is not valid.";
-    // The first component is the type/subtype pair. We want to iterate over the
-    // remaining components to search for the codecs.
-    auto iter = components.begin() + 1;
-    for (; iter != components.end(); ++iter) {
-      std::vector<std::string> name_and_value = base::SplitString(
-          *iter, "=", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
-      if (name_and_value.size() != 2) {
-        LOG(WARNING) << "parameter for mime_type \"" << mime_type
-                     << "\" is not valid.";
-        continue;
-      }
-      if (name_and_value[0] == "codecs") {
-        ParseCodecString(name_and_value[1], &codecs, /* strip= */ false);
-        return codecs;
-      }
-    }
-    return codecs;
-  }
-
   SbMediaSupportType CanPlayType(const std::string& mime_type,
                                  const std::string& key_system) const {
     if (!disabled_media_codecs_.empty()) {
@@ -111,6 +149,17 @@
         }
       }
     }
+
+    if (!disabled_encryption_schemes_.empty()) {
+      std::string encryption_scheme = ExtractEncryptionScheme(key_system);
+      if (std::find(disabled_encryption_schemes_.begin(),
+                    disabled_encryption_schemes_.end(),
+                    encryption_scheme) != disabled_encryption_schemes_.end()) {
+        LOG(INFO) << "Encryption scheme (" << encryption_scheme
+                  << ") is disabled via console/command line.";
+        return kSbMediaSupportTypeNotSupported;
+      }
+    }
     SbMediaSupportType type =
         SbMediaCanPlayMimeAndKeySystem(mime_type.c_str(), key_system.c_str());
     return type;
@@ -118,6 +167,9 @@
 
   // List of disabled media codecs that will be treated as unsupported.
   std::vector<std::string> disabled_media_codecs_;
+  // List of disabled DRM encryption schemes that will be treated as
+  // unsupported.
+  std::vector<std::string> disabled_encryption_schemes_;
 };
 
 }  // namespace
diff --git a/docker/precommit_hooks/docker-compose.yml b/cobalt/network_bridge/BUILD.gn
similarity index 70%
copy from docker/precommit_hooks/docker-compose.yml
copy to cobalt/network_bridge/BUILD.gn
index 6106d19..4c83d97 100644
--- a/docker/precommit_hooks/docker-compose.yml
+++ b/cobalt/network_bridge/BUILD.gn
@@ -12,16 +12,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: '2.4'
+static_library("network_bridge") {
+  has_pedantic_warnings = true
 
-services:
-  pre-commit:
-    build:
-      context: .
-      dockerfile: Dockerfile
-    image: pre-commit
-    volumes:
-      - ${COBALT_SRC:-../../}:/code/
-    environment:
-      FROM_REF: ${FROM_REF:-HEAD^1}
-      TO_REF: ${TO_REF:-HEAD}
+  sources = [
+    "cookie_jar.h",
+    "net_poster.cc",
+    "net_poster.h",
+  ]
+}
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/finger_print-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/finger_print-expected.png
deleted file mode 100755
index 978125d..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/finger_print-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/finger_print.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/finger_print.json
deleted file mode 100755
index beee64c..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/finger_print.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.3","fr":25,"ip":0,"op":96,"w":730,"h":500,"nm":"FINGERPRINT 2X","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[73.25,0],[0,-64],[-69.5,0],[0,55.5]],"o":[[-67.25,0],[0,56],[69.5,0],[0,-55.5]],"v":[[-56.25,-117.25],[-174,2],[-56,118.5],[62.5,-1]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"hand details","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.314,-154.096],[-117.686,-36.596],[0.314,80.904],[118.314,-36.596]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.802,-153.113],[-117.198,-35.613],[0.802,81.887],[118.802,-35.613]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.083,-151.37],[-117.917,-33.87],[0.083,83.63],[118.083,-33.87]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.839,-147.872],[-117.161,-30.372],[0.839,87.128],[118.839,-30.372]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-1.987,-143.263],[-119.987,-25.763],[-1.987,91.737],[116.013,-25.763]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-5.003,-135.474],[-123.003,-17.974],[-5.003,99.526],[112.997,-17.974]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-8.319,-127.592],[-126.319,-10.092],[-8.319,107.408],[109.681,-10.092]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-12.854,-119.432],[-130.854,-1.932],[-12.854,115.568],[105.146,-1.932]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":9,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-24.992,-108.918],[-142.992,8.582],[-24.992,126.082],[93.008,8.582]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-31.169,-107.098],[-149.169,10.402],[-31.169,127.902],[86.831,10.402]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-36.57,-107.515],[-154.57,9.985],[-36.57,127.485],[81.43,9.985]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-44.066,-108.433],[-162.066,9.067],[-44.066,126.567],[73.934,9.067]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":18,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-54.156,-115.724],[-172.156,1.776],[-54.156,119.276],[63.844,1.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-56.031,-116.349],[-174.031,1.151],[-56.031,118.651],[61.969,1.151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-49.155,-114.917],[-167.155,2.583],[-49.155,120.083],[68.845,2.583]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-39.583,-113.183],[-157.583,4.317],[-39.583,121.817],[78.417,4.317]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-25.857,-113.839],[-143.857,3.661],[-25.857,121.161],[92.143,3.661]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-12.868,-120.448],[-130.868,-2.948],[-12.868,114.552],[105.132,-2.948]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-3.238,-129.453],[-121.238,-11.953],[-3.238,105.547],[114.762,-11.953]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.567,-141.116],[-117.433,-23.616],[0.567,93.884],[118.567,-23.616]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[1.48,-149.526],[-116.52,-32.026],[1.48,85.474],[119.48,-32.026]],"c":true}]},{"t":79,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.778,-153.058],[-117.222,-35.558],[0.778,81.942],[118.778,-35.558]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.215,"y":1},"o":{"x":0.643,"y":0},"t":14,"s":[{"i":[[0,0],[-1.5,-3.625],[0,0]],"o":[[0,0],[1.5,3.625],[0,0]],"v":[[-102.25,78.25],[-96.75,87.5],[-95,94.625]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-1.5,-3.625],[0,0]],"o":[[0,0],[1.5,3.625],[0,0]],"v":[[-115,70.5],[-111.75,75.875],[-110.5,79.25]],"c":false}]},{"i":{"x":0.519,"y":1},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[-1.5,-3.625],[0,0]],"o":[[0,0],[1.5,3.625],[0,0]],"v":[[-115,70.5],[-111.75,75.875],[-110.5,79.25]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[-1.5,-3.625],[0,0]],"o":[[0,0],[1.5,3.625],[0,0]],"v":[[-102.25,78.25],[-96.75,87.5],[-95,94.625]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.83,"y":0},"t":14,"s":[{"i":[[0,0],[0,0],[3.669,-9.386],[0,0]],"o":[[0,0],[0,0],[-5.375,13.75],[0,0]],"v":[[-42.75,5.25],[-56.5,21.375],[-62.75,45.125],[-74.5,62.5]],"c":false}]},{"i":{"x":0.215,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0],[4.119,-7.925],[0,0]],"o":[[0,0],[0,0],[-7.001,12.805],[0,0]],"v":[[-46.789,18.512],[-62.1,34.221],[-71.16,56.098],[-85.615,72.641]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[4.75,-5.875],[0,0]],"o":[[0,0],[0,0],[-9.282,11.48],[0,0]],"v":[[-48.25,24.5],[-65.75,39.625],[-78.75,58.875],[-97,74.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[0,0],[4.75,-5.875],[0,0]],"o":[[0,0],[0,0],[-9.282,11.48],[0,0]],"v":[[-48.25,24.5],[-65.75,39.625],[-78.75,58.875],[-97,74.25]],"c":false}]},{"i":{"x":0.323,"y":1},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[4.119,-7.925],[0,0]],"o":[[0,0],[0,0],[-7.001,12.805],[0,0]],"v":[[-46.789,18.512],[-62.1,34.221],[-71.16,56.098],[-85.615,72.641]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[0,0],[3.669,-9.386],[0,0]],"o":[[0,0],[0,0],[-5.375,13.75],[0,0]],"v":[[-42.75,5.25],[-56.5,21.375],[-62.75,45.125],[-74.5,62.5]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0]},{"t":70,"s":[2]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":14,"s":[{"i":[[0,0],[-1.562,-3.062],[0,0]],"o":[[0,0],[1.938,-1.375],[0,0]],"v":[[-44.812,-12.75],[-39.188,-6.562],[-33.875,-11.312]],"c":false}]},{"i":{"x":0.215,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-1.562,-3.062],[0,0]],"o":[[0,0],[1.938,-1.375],[0,0]],"v":[[-45.213,-10.852],[-39.751,-4.612],[-34.406,-9.232]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-1.562,-3.062],[0,0]],"o":[[0,0],[1.938,-1.375],[0,0]],"v":[[-43.812,7.562],[-39.75,14.25],[-34.125,10.75]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[-1.562,-3.062],[0,0]],"o":[[0,0],[1.938,-1.375],[0,0]],"v":[[-43.812,7.562],[-39.75,14.25],[-34.125,10.75]],"c":false}]},{"i":{"x":0.519,"y":1},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-1.562,-3.062],[0,0]],"o":[[0,0],[1.938,-1.375],[0,0]],"v":[[-45.688,-6.689],[-40.752,-0.281],[-35.302,-4.479]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[-1.562,-3.062],[0,0]],"o":[[0,0],[1.938,-1.375],[0,0]],"v":[[-44.812,-12.75],[-39.188,-6.562],[-33.875,-11.312]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":14,"s":[{"i":[[0,0],[-3.121,1.615],[0,0]],"o":[[0,0],[2.92,-1.511],[0,0]],"v":[[-80.018,6.971],[-67.893,2.869],[-61.943,-0.544]],"c":false}]},{"i":{"x":0.215,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-3.109,1.616],[0,0]],"o":[[0,0],[4.138,-2.151],[0,0]],"v":[[-81.649,5.6],[-69.638,0.651],[-61.035,-3.714]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-3.051,1.743],[0,0]],"o":[[0,0],[2.625,-1.5],[0,0]],"v":[[-75.875,14.312],[-63.375,8.75],[-57.688,6.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[-3.051,1.743],[0,0]],"o":[[0,0],[2.625,-1.5],[0,0]],"v":[[-75.875,14.312],[-63.375,8.75],[-57.688,6.188]],"c":false}]},{"i":{"x":0.323,"y":1},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-3.197,1.433],[0,0]],"o":[[0,0],[5.13,-2.3],[0,0]],"v":[[-79.974,7.951],[-67.546,3.113],[-58.201,-0.8]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[-3.121,1.615],[0,0]],"o":[[0,0],[2.92,-1.511],[0,0]],"v":[[-80.018,6.971],[-67.893,2.869],[-61.943,-0.544]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-67.252,-5.853],[-74.502,-12.416],[-82.314,-15.916]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.83,"y":0},"t":14,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-68.75,-8.5],[-76,-15.062],[-83.812,-18.562]],"c":false}]},{"i":{"x":0.215,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-66.325,-0.424],[-75.688,-11.056],[-85.113,-15.649]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-64.125,8.5],[-75.25,-5.438],[-86.938,-11.562]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-64.125,8.5],[-75.25,-5.438],[-86.938,-11.562]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-65.075,0.826],[-75.688,-11.056],[-85.113,-15.649]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[3.875,2.75],[0,0]],"o":[[0,0],[-3.875,-2.75],[0,0]],"v":[[-67.252,-5.853],[-74.502,-12.416],[-82.314,-15.916]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.83,"y":0},"t":14,"s":[{"i":[[0,0],[3.625,3]],"o":[[0,0],[-2.565,-2.122]],"v":[[-55.875,-25.938],[-62.312,-33.812]],"c":false}]},{"i":{"x":0.215,"y":1},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[2.402,3.13]],"o":[[0,0],[-1.779,-2.596]],"v":[[-56.709,-20.414],[-61.888,-30.466]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0.688,3.312]],"o":[[0,0],[-0.676,-3.26]],"v":[[-54.375,-6.938],[-56.188,-17.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[0.688,3.312]],"o":[[0,0],[-0.676,-3.26]],"v":[[-54.375,-6.938],[-56.188,-17.062]],"c":false}]},{"i":{"x":0.323,"y":1},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[2.402,3.13]],"o":[[0,0],[-1.779,-2.596]],"v":[[-53.209,-12.664],[-59.763,-26.841]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[3.625,3]],"o":[[0,0],[-2.565,-2.122]],"v":[[-55.875,-25.938],[-62.312,-33.812]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-45.14,-57.253],[-43.261,-54.03],[-37.244,-57.149]],"c":false}]},{"i":{"x":0.215,"y":1},"o":{"x":0.643,"y":0},"t":14,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-30.062,-49.938],[-30.125,-46.062],[-23.25,-46]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-20.062,-18.188],[-20.188,-16.562],[-14.25,-13.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-20.062,-18.188],[-20.188,-16.562],[-14.25,-13.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-33.949,-40.675],[-33.102,-38.276],[-27.126,-38.436]],"c":false}]},{"i":{"x":0.438,"y":1},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.247,-48.742],[-38.941,-45.977],[-32.947,-47.453]],"c":false}]},{"t":76,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-45.14,-57.253],[-43.261,-54.03],[-37.244,-57.149]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"hand","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[20.051]},{"t":18,"s":[0],"h":1},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[0]},{"t":79,"s":[20.051]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.203,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[251,166,0],"to":[11.5,-5.667,0],"ti":[-34.667,-25,0]},{"t":23,"s":[320,132,0],"h":1},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54,"s":[320,132,0],"to":[0,0,0],"ti":[14,-44.167,0]},{"t":79,"s":[251,166,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.314,-154.096],[-117.686,-36.596],[0.314,80.904],[118.314,-36.596]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.802,-153.113],[-117.198,-35.613],[0.802,81.887],[118.802,-35.613]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.083,-151.37],[-117.917,-33.87],[0.083,83.63],[118.083,-33.87]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.839,-147.872],[-117.161,-30.372],[0.839,87.128],[118.839,-30.372]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-1.987,-143.263],[-119.987,-25.763],[-1.987,91.737],[116.013,-25.763]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-5.003,-135.474],[-123.003,-17.974],[-5.003,99.526],[112.997,-17.974]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-8.319,-127.592],[-126.319,-10.092],[-8.319,107.408],[109.681,-10.092]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-12.854,-119.432],[-130.854,-1.932],[-12.854,115.568],[105.146,-1.932]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":9,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-24.992,-108.918],[-142.992,8.582],[-24.992,126.082],[93.008,8.582]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-31.169,-107.098],[-149.169,10.402],[-31.169,127.902],[86.831,10.402]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-36.57,-107.515],[-154.57,9.985],[-36.57,127.485],[81.43,9.985]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-44.066,-108.433],[-162.066,9.067],[-44.066,126.567],[73.934,9.067]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":18,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-54.156,-115.724],[-172.156,1.776],[-54.156,119.276],[63.844,1.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-56.031,-116.349],[-174.031,1.151],[-56.031,118.651],[61.969,1.151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-49.155,-114.917],[-167.155,2.583],[-49.155,120.083],[68.845,2.583]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-39.583,-113.183],[-157.583,4.317],[-39.583,121.817],[78.417,4.317]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-25.857,-113.839],[-143.857,3.661],[-25.857,121.161],[92.143,3.661]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-12.868,-120.448],[-130.868,-2.948],[-12.868,114.552],[105.132,-2.948]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-3.238,-129.453],[-121.238,-11.953],[-3.238,105.547],[114.762,-11.953]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.567,-141.116],[-117.433,-23.616],[0.567,93.884],[118.567,-23.616]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[1.48,-149.526],[-116.52,-32.026],[1.48,85.474],[119.48,-32.026]],"c":true}]},{"t":79,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.778,-153.058],[-117.222,-35.558],[0.778,81.942],[118.778,-35.558]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[6.104,-5.516],[10.943,-13.805],[10.125,-18.25],[3.75,-4.5],[0,0],[0,0],[-4.375,7.125],[-8.035,16.07],[0,0],[-12.505,13.056],[-2.25,6.25],[5.172,-3.649],[4.375,-2.375],[-3.226,4.517],[-4.5,6.75],[-2.625,4.571],[-3.463,2.822],[-3.769,3.912],[6.89,-3.651]],"o":[[-3.493,3.822],[-11.46,14.732],[-7.763,13.993],[-3.75,4.5],[0,0],[0,0],[16,-5],[7.75,-15.5],[0,0],[4.108,-4.289],[2.25,-6.25],[-7.936,5.599],[-4.375,2.375],[4.375,-6.125],[4.5,-6.75],[4.517,-2.99],[4.396,-3.226],[3.836,-3.981],[-5.367,2.844]],"v":[[-57.558,-49.423],[-84.29,-23.275],[-116.54,20.975],[-127.04,48.225],[-157.54,87.225],[-107.04,126.975],[-95.915,100.6],[-60.54,67.225],[-56.915,25.6],[-44.5,7.217],[-31.345,-7.125],[-37.596,-18.788],[-62.29,-0.025],[-72.165,2.725],[-62.79,-13.025],[-53.233,-30.592],[-43.949,-44.477],[-33.349,-52.378],[-40.735,-59.942]],"c":true}]},{"i":{"x":0.215,"y":1},"o":{"x":0.643,"y":0},"t":14,"s":[{"i":[[9.25,-0.625],[14.875,-13.25],[10.125,-18.25],[3.75,-4.5],[0,0],[0,0],[-4.375,7.125],[-8.035,16.07],[0,0],[-3.875,4.5],[-5.979,6.802],[6.102,-4.945],[4.375,-2.375],[-3.226,4.517],[-4.5,6.75],[-4.25,3.375],[-3.25,1],[-4.625,5],[3.75,0.625]],"o":[[-5.803,0.392],[-14.032,12.499],[-7.763,13.993],[-3.75,4.5],[0,0],[0,0],[16,-5],[7.75,-15.5],[0,0],[3.875,-4.5],[6.978,-7.939],[-4.917,3.985],[-4.375,2.375],[4.375,-6.125],[4.5,-6.75],[4.25,-3.375],[4.75,0.375],[2.072,-2.24],[-3.75,-0.625]],"v":[[-42.375,-50.625],[-83.75,-28],[-116,16.25],[-126.5,43.5],[-157,82.5],[-106.5,122.25],[-95.375,95.875],[-60,62.5],[-56.375,20.875],[-44.125,7.875],[-32.786,-7.839],[-40.921,-17.493],[-61.75,-4.75],[-71.625,-2],[-62.25,-17.75],[-48.318,-30.011],[-35.442,-37.972],[-19.125,-42.125],[-20.25,-49.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[24.25,0.875],[18.945,-6.157],[8,-10.75],[3.75,-4.5],[0,0],[0,0],[-4.375,7.125],[-6,6.25],[0,0],[-4.475,3.904],[-4.374,4.999],[7,-2.125],[4.375,-2.375],[-2,3.25],[-7.468,3.168],[-3,0.5],[-4.375,-0.125],[-4,-0.5],[3.824,1.586]],"o":[[-14.13,-0.51],[-10,3.25],[-9.553,12.837],[-3.75,4.5],[0,0],[0,0],[16,-5],[12.001,-12.501],[0,0],[5.875,-5.125],[2.625,-3],[-5.754,1.747],[-4.375,2.375],[1.472,-2.392],[4.125,-1.75],[2.542,-0.424],[4.75,0.375],[3.028,0.379],[-5.125,-2.125]],"v":[[-54,-26.875],[-96.5,-16],[-124.75,14.25],[-136.75,36.75],[-162,71.25],[-123,112.5],[-110.625,78.875],[-81,61.75],[-65.625,39.875],[-44.375,21.625],[-30.125,11.25],[-37.875,0.75],[-59.125,8.25],[-63.875,-0.25],[-53.125,-7.875],[-42.375,-11],[-26.25,-11.625],[-13.75,-10],[-12.25,-16.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[24.25,0.875],[18.945,-6.157],[8,-10.75],[3.75,-4.5],[0,0],[0,0],[-4.375,7.125],[-6,6.25],[0,0],[-4.475,3.904],[-4.374,4.999],[7,-2.125],[4.375,-2.375],[-2,3.25],[-7.468,3.168],[-3,0.5],[-4.375,-0.125],[-4,-0.5],[3.824,1.586]],"o":[[-14.13,-0.51],[-10,3.25],[-9.553,12.837],[-3.75,4.5],[0,0],[0,0],[16,-5],[12.001,-12.501],[0,0],[5.875,-5.125],[2.625,-3],[-5.754,1.747],[-4.375,2.375],[1.472,-2.392],[4.125,-1.75],[2.542,-0.424],[4.75,0.375],[3.028,0.379],[-5.125,-2.125]],"v":[[-54,-26.875],[-96.5,-16],[-124.75,14.25],[-136.75,36.75],[-162,71.25],[-123,112.5],[-110.625,78.875],[-81,61.75],[-65.625,39.875],[-44.375,21.625],[-30.125,11.25],[-37.875,0.75],[-59.125,8.25],[-63.875,-0.25],[-53.125,-7.875],[-42.375,-11],[-26.25,-11.625],[-13.75,-10],[-12.25,-16.125]],"c":true}]},{"i":{"x":0.314,"y":1},"o":{"x":0.167,"y":0.167},"t":63,"s":[{"i":[[13.71,-2.837],[14.297,-10.599],[9.234,-15.106],[3.75,-4.5],[0,0],[0,0],[-4.375,7.125],[-7.182,11.954],[0,0],[-9.139,9.219],[-3.14,5.726],[5.938,-3.01],[4.375,-2.375],[-2.712,3.986],[-5.744,5.249],[-2.782,2.864],[-3.845,1.587],[-3.218,2.899],[5.605,-1.456]],"o":[[-7.951,2.006],[-10.848,9.919],[-8.514,13.508],[-3.75,4.5],[0,0],[0,0],[16,-5],[9.532,-14.243],[0,0],[4.849,-4.639],[2.407,-4.888],[-7.021,3.984],[-4.375,2.375],[3.158,-4.56],[4.343,-4.654],[3.689,-1.915],[7.064,0.363],[3.497,-2.154],[-5.265,0.761]],"v":[[-56.067,-39.971],[-89.408,-20.226],[-119.981,18.156],[-131.11,43.415],[-159.409,80.529],[-113.73,120.907],[-102.081,91.493],[-69.116,64.93],[-60.566,31.584],[-44.448,13.257],[-30.834,0.578],[-37.713,-10.598],[-60.963,3.444],[-68.69,1.478],[-58.738,-10.866],[-52.47,-17.714],[-38.939,-29.702],[-25.134,-34.614],[-28.795,-41.575]],"c":true}]},{"t":76,"s":[{"i":[[6.104,-5.516],[10.943,-13.805],[10.125,-18.25],[3.75,-4.5],[0,0],[0,0],[-4.375,7.125],[-8.035,16.07],[0,0],[-12.505,13.056],[-2.25,6.25],[5.172,-3.649],[4.375,-2.375],[-3.226,4.517],[-4.5,6.75],[-2.625,4.571],[-3.463,2.822],[-3.769,3.912],[6.89,-3.651]],"o":[[-3.493,3.822],[-11.46,14.732],[-7.763,13.993],[-3.75,4.5],[0,0],[0,0],[16,-5],[7.75,-15.5],[0,0],[4.108,-4.289],[2.25,-6.25],[-7.936,5.599],[-4.375,2.375],[4.375,-6.125],[4.5,-6.75],[4.517,-2.99],[4.396,-3.226],[3.836,-3.981],[-5.367,2.844]],"v":[[-57.558,-49.423],[-84.29,-23.275],[-116.54,20.975],[-127.04,48.225],[-157.54,87.225],[-107.04,126.975],[-95.915,100.6],[-60.54,67.225],[-56.915,25.6],[-44.5,7.217],[-31.345,-7.125],[-37.596,-18.788],[-62.29,-0.025],[-72.165,2.725],[-62.79,-13.025],[-55.938,-26.205],[-43.949,-44.477],[-33.349,-52.378],[-40.735,-59.942]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"button","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.215,"y":1},"o":{"x":0.657,"y":0},"t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.27,-40.033],[-27.76,-39.99],[-27.77,-37.07],[-7.27,-37.105]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.041,-12.021],[-26.969,-11.969],[-27,-7.986],[-6.062,-8.031]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.041,-12.021],[-26.969,-11.969],[-27,-7.986],[-6.062,-8.031]],"c":true}]},{"t":83,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.27,-40.033],[-27.76,-39.99],[-27.77,-37.07],[-7.27,-37.105]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823529412,0.513725490196,0.949019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"screen","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[65.17,0],[0,-64.893],[-65.164,0.866],[0.281,57.849]],"o":[[-65.17,0],[0,64.893],[67.781,-0.901],[-0.316,-64.893]],"v":[[-56.031,-116.349],[-174.031,1.151],[-56.031,118.651],[61.969,0.151]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.21,"y":1},"o":{"x":0.634,"y":0},"t":14,"s":[{"i":[[0,0],[5.25,0],[0,-3.25],[0,0],[0,0]],"o":[[0,0],[-5.25,0],[0,3.25],[0,0],[0,0]],"v":[[114,-33.75],[-32,-33.625],[-39.75,-27],[-39.5,174.75],[114.5,175]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[5.25,0],[-0.625,-4.25],[0,0],[0,0]],"o":[[0,0],[-5.25,0],[0.473,3.215],[0,0],[0,0]],"v":[[117.75,-2],[-29.5,-1.875],[-37,5.5],[-15.5,144.5],[118.5,144.75]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60,"s":[{"i":[[0,0],[5.25,0],[-0.625,-4.25],[0,0],[0,0]],"o":[[0,0],[-5.25,0],[0.473,3.215],[0,0],[0,0]],"v":[[117.75,-2],[-29.5,-1.875],[-37,5.5],[-15.5,144.5],[118.5,144.75]],"c":true}]},{"t":82.884765625,"s":[{"i":[[0,0],[5.25,0],[0,-3.25],[0,0],[0,0]],"o":[[0,0],[-5.25,0],[0,3.25],[0,0],[0,0]],"v":[[114,-33.75],[-32,-33.625],[-39.75,-27],[-39.5,174.75],[114.5,175]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"tablet","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[65.17,0],[0,-64.893],[-65.164,0.866],[0.281,57.849]],"o":[[-65.17,0],[0,64.893],[67.781,-0.901],[-0.316,-64.893]],"v":[[-56.031,-116.349],[-174.031,1.151],[-56.031,118.651],[61.969,0.151]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.202,"y":1},"o":{"x":0.63,"y":0},"t":14,"s":[{"i":[[0,0],[5.125,0],[0.125,-5],[0,0],[0,0]],"o":[[0,0],[-5.125,0],[-0.084,3.374],[0,0],[0,0]],"v":[[92.25,-39],[-33.5,-38.375],[-45,-28.875],[-45,162.25],[90.5,163.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[5.125,0],[0.125,-5],[0,0],[0,0]],"o":[[0,0],[-5.125,0],[-0.084,3.374],[0,0],[0,0]],"v":[[92.25,-7],[-32.75,-6.625],[-42.75,2.875],[-14.594,186.75],[90.5,189.25]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[0,0],[5.125,0],[0.125,-5],[0,0],[0,0]],"o":[[0,0],[-5.125,0],[-0.084,3.374],[0,0],[0,0]],"v":[[92.25,-7],[-32.75,-6.625],[-42.75,2.875],[-14.594,186.75],[90.5,189.25]],"c":true}]},{"t":83,"s":[{"i":[[0,0],[5.125,0],[0.125,-5],[0,0],[0,0]],"o":[[0,0],[-5.125,0],[-0.084,3.374],[0,0],[0,0]],"v":[[92.25,-39],[-33.5,-38.375],[-45,-28.875],[-45,162.25],[90.5,163.5]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.858823529412,0.874509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176470588,0.949019607843,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"border","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[65.17,0],[0,-64.893],[-65.164,0.866],[0.281,57.849]],"o":[[-65.17,0],[0,64.893],[67.781,-0.901],[-0.316,-64.893]],"v":[[-56.031,-116.349],[-174.031,1.151],[-56.031,118.651],[61.969,0.151]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.202,"y":1},"o":{"x":0.63,"y":0},"t":14,"s":[{"i":[[0,0],[8.5,-0.125],[0,-9.625],[0,0]],"o":[[0,0],[-8.5,0.125],[16.375,2.875],[0,0]],"v":[[93.125,-38.375],[-32.75,-38.125],[-43.5,-22.125],[90.875,0.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[8.5,-0.125],[-0.25,-4.625],[0,0]],"o":[[0,0],[-8.5,0.125],[16.375,2.875],[0,0]],"v":[[93.25,-13.125],[-32.625,-12.875],[-43.125,2.875],[91,25.5]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[0,0],[8.5,-0.125],[-0.25,-4.625],[0,0]],"o":[[0,0],[-8.5,0.125],[16.375,2.875],[0,0]],"v":[[93.25,-13.125],[-32.625,-12.875],[-43.125,2.875],[91,25.5]],"c":true}]},{"t":83,"s":[{"i":[[0,0],[8.5,-0.125],[0,-9.625],[0,0]],"o":[[0,0],[-8.5,0.125],[16.375,2.875],[0,0]],"v":[[93.125,-38.375],[-32.75,-38.125],[-43.5,-22.125],[90.875,0.25]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.858823529412,0.874509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"hand back","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.314,-154.096],[-117.686,-36.596],[0.314,80.904],[118.314,-36.596]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.802,-153.113],[-117.198,-35.613],[0.802,81.887],[118.802,-35.613]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.083,-151.37],[-117.917,-33.87],[0.083,83.63],[118.083,-33.87]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.839,-147.872],[-117.161,-30.372],[0.839,87.128],[118.839,-30.372]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-1.987,-143.263],[-119.987,-25.763],[-1.987,91.737],[116.013,-25.763]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-5.003,-135.474],[-123.003,-17.974],[-5.003,99.526],[112.997,-17.974]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-8.319,-127.592],[-126.319,-10.092],[-8.319,107.408],[109.681,-10.092]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-12.854,-119.432],[-130.854,-1.932],[-12.854,115.568],[105.146,-1.932]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":9,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-24.992,-108.918],[-142.992,8.582],[-24.992,126.082],[93.008,8.582]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-31.169,-107.098],[-149.169,10.402],[-31.169,127.902],[86.831,10.402]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-36.57,-107.515],[-154.57,9.985],[-36.57,127.485],[81.43,9.985]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-44.066,-108.433],[-162.066,9.067],[-44.066,126.567],[73.934,9.067]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":18,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-54.156,-115.724],[-172.156,1.776],[-54.156,119.276],[63.844,1.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":54,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-56.031,-116.349],[-174.031,1.151],[-56.031,118.651],[61.969,1.151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-49.155,-114.917],[-167.155,2.583],[-49.155,120.083],[68.845,2.583]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-39.583,-113.183],[-157.583,4.317],[-39.583,121.817],[78.417,4.317]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-25.857,-113.839],[-143.857,3.661],[-25.857,121.161],[92.143,3.661]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-12.868,-120.448],[-130.868,-2.948],[-12.868,114.552],[105.132,-2.948]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[-3.238,-129.453],[-121.238,-11.953],[-3.238,105.547],[114.762,-11.953]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.567,-141.116],[-117.433,-23.616],[0.567,93.884],[118.567,-23.616]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[1.48,-149.526],[-116.52,-32.026],[1.48,85.474],[119.48,-32.026]],"c":true}]},{"t":79,"s":[{"i":[[65.17,0],[0,-64.893],[-65.17,0],[0,64.893]],"o":[[-65.17,0],[0,64.893],[65.17,0],[0,-64.893]],"v":[[0.778,-153.058],[-117.222,-35.558],[0.778,81.942],[118.778,-35.558]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.606,"y":0.606},"o":{"x":0.167,"y":0},"t":4,"s":[{"i":[[7.235,-4.106],[5.046,-4.005],[2.952,-2.818],[-8.133,9.096],[-8.054,7.267]],"o":[[-5.969,4.315],[-8.245,6.544],[-8.668,8.275],[8.155,-9.12],[10.187,-7.473]],"v":[[-39.846,13.37],[-53.768,23.78],[-74.56,41.2],[-59.611,53.679],[-35.977,23.378]],"c":true}]},{"i":{"x":0.269,"y":1},"o":{"x":0.584,"y":0},"t":14,"s":[{"i":[[7.657,1.41],[5.742,-0.232],[4.459,-0.478],[-12.505,2.439],[-11.835,0.489]],"o":[[-2.691,-0.496],[-10.598,0.428],[-12.526,1.342],[12.505,-2.439],[20.412,1.931]],"v":[[-30.526,34.031],[-44.028,33.761],[-71.974,35.908],[-73.741,57.793],[-39.248,46.822]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[7.683,0.569],[5.353,-0.387],[4.336,-0.776],[-12.129,2.782],[-11.64,1.209]],"o":[[-2.7,-0.2],[-9.88,0.715],[-6.685,1.196],[12.129,-2.782],[11.64,-1.209]],"v":[[-55.943,15.569],[-68.774,15.95],[-94.827,18.815],[-89.567,32.554],[-56.14,27.751]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":53,"s":[{"i":[[7.683,0.569],[5.353,-0.387],[4.336,-0.776],[-12.129,2.782],[-11.64,1.209]],"o":[[-2.7,-0.2],[-9.88,0.715],[-6.685,1.196],[12.129,-2.782],[11.64,-1.209]],"v":[[-56.193,16.819],[-71.524,16.45],[-94.827,18.815],[-89.567,32.554],[-58.64,26.251]],"c":true}]},{"t":79,"s":[{"i":[[7.235,-4.106],[5.046,-4.005],[2.952,-2.818],[-8.133,9.096],[-8.054,7.267]],"o":[[-5.969,4.315],[-8.245,6.544],[-8.668,8.275],[8.155,-9.12],[10.187,-7.473]],"v":[[-39.846,13.37],[-53.768,23.78],[-74.56,41.2],[-59.611,53.679],[-35.977,23.378]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.586,"y":0.586},"o":{"x":0.167,"y":0},"t":4,"s":[{"i":[[6.733,-2.477],[5.059,-4.199],[-9.224,8.193],[-9.044,6.428],[9.451,-2.625]],"o":[[-6.174,3.156],[-5.059,4.199],[9.25,-8.277],[17.315,-5.525],[-5.147,1.43]],"v":[[-55.918,2.009],[-76.839,16.006],[-65.271,31.517],[-38.175,9.222],[-36.707,-6.436]],"c":true}]},{"i":{"x":0.233,"y":1},"o":{"x":0.548,"y":0},"t":14,"s":[{"i":[[3.096,0.3],[6.75,-1.5],[-12.25,3.5],[-11.75,1.5],[0,4.869]],"o":[[-7.75,-0.75],[-6.75,1.5],[12.25,-3.5],[14.991,2.303],[0,-3.239]],"v":[[-32.75,13.25],[-72,17.25],[-66.75,34.75],[-41.577,26.982],[-24.298,20.548]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[3.097,0.289],[6.745,-1.522],[-12.238,3.54],[-11.745,1.539],[1.646,4.118]],"o":[[-7.752,-0.724],[-6.745,1.522],[12.238,-3.54],[7.053,-0.924],[-1.095,-2.74]],"v":[[-45.779,2.684],[-85.015,6.813],[-79.707,24.296],[-45.977,18.184],[-39.121,8]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":53,"s":[{"i":[[3.097,0.289],[6.745,-1.522],[-12.238,3.54],[-11.836,-0.478],[-0.422,4.415]],"o":[[-7.752,-0.724],[-6.745,1.522],[12.238,-3.54],[4.727,0.191],[0.371,-3.875]],"v":[[-41.154,3.934],[-85.015,6.813],[-79.707,24.296],[-47.477,14.684],[-35.746,10.5]],"c":true}]},{"t":79,"s":[{"i":[[6.733,-2.477],[5.059,-4.199],[-9.224,8.193],[-9.044,6.428],[9.451,-2.625]],"o":[[-6.174,3.156],[-5.059,4.199],[9.25,-8.277],[17.315,-5.525],[-5.147,1.43]],"v":[[-55.918,2.009],[-76.839,16.006],[-65.271,31.517],[-38.175,9.222],[-36.707,-6.436]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":4,"s":[{"i":[[8.718,2.911],[6.67,-6.846],[5.423,-5.956],[-8.396,5.743],[-0.226,0.737],[-4.706,1.65]],"o":[[-6.534,2.591],[-6.754,7.068],[-5.423,5.956],[8.396,-5.743],[0.226,-0.737],[5.935,-2.081]],"v":[[-37.463,-35.314],[-61.022,-21.913],[-88.41,3.463],[-79.538,16.751],[-52.109,-11.362],[-36.909,-24.718]],"c":true}]},{"i":{"x":0.215,"y":1},"o":{"x":0.53,"y":0},"t":14,"s":[{"i":[[2.815,4.624],[9.32,-3.493],[7.25,-3.75],[-10,2.5],[0,0],[-4.75,0.75]],"o":[[-4.137,-6.797],[-15.671,5.874],[-7.25,3.75],[10,-2.5],[0,0],[4.75,-0.75]],"v":[[-27.249,-17.202],[-49.474,-16.644],[-87,0.5],[-83.25,16.25],[-45.75,-2],[-33.411,-7.18]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[3.65,7.07],[9.834,-1.532],[8.014,-1.547],[-10.299,-0.429],[0,0],[-4.768,-0.623]],"o":[[-3.65,-7.07],[-9.834,1.532],[-8.014,1.547],[10.299,0.429],[0,0],[4.768,0.623]],"v":[[-23.004,-8.763],[-49.142,-16.467],[-86.534,-8.982],[-87.389,7.185],[-51.099,-0.102],[-34.762,1.064]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":53,"s":[{"i":[[7.212,3.361],[9.834,-1.532],[8.014,-1.547],[-10.299,-0.429],[0,0],[-4.768,-0.623]],"o":[[-3.996,-1.862],[-9.834,1.532],[-8.014,1.547],[10.299,0.429],[0,0],[4.768,0.623]],"v":[[-25.504,-9.263],[-48.267,-14.092],[-86.534,-8.982],[-87.389,7.185],[-47.349,-1.727],[-34.887,-0.686]],"c":true}]},{"t":79,"s":[{"i":[[8.718,2.911],[6.67,-6.846],[5.423,-5.956],[-8.396,5.743],[-0.226,0.737],[-4.706,1.65]],"o":[[-6.534,2.591],[-6.754,7.068],[-5.423,5.956],[8.396,-5.743],[0.226,-0.737],[5.935,-2.081]],"v":[[-37.463,-35.314],[-61.022,-21.913],[-88.41,3.463],[-79.538,16.751],[-52.109,-11.362],[-36.909,-24.718]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529411765,0.890196078431,0.988235294118,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.627451002598,0.760784327984,0.976470589638,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"screen","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.203,"y":1},"o":{"x":0.624,"y":0},"t":14,"s":[{"i":[[3.625,0],[4,0],[0,-4.375],[0,-3.875],[-3.125,0],[-3.375,0],[0,3.5],[0,4.5]],"o":[[-3.625,0],[-4,0],[0,3.5],[0,4.75],[3.125,0],[3.375,0],[0,-3.5],[0,-4.5]],"v":[[176.75,-10.75],[-4.75,-10.625],[-10.125,-4.875],[-9.875,113.375],[-5.125,120.25],[176.75,120.25],[182.375,114.75],[182.5,-4.125]],"c":true}]},{"i":{"x":0.462,"y":0.462},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[3.625,0],[4,0],[-0.875,-5.125],[-0.218,-2.503],[-3.125,0],[-3.375,0],[-0.417,3.475],[-0.659,4.451]],"o":[[-3.625,0],[-4,0],[0.589,3.45],[0.25,2.875],[3.125,0],[3.375,0],[0.375,-3.125],[0.5,-3.375]],"v":[[162.375,15.75],[-17.5,15.875],[-19.875,24.125],[-9,93.5],[-5.5,98],[151.875,97.875],[155.25,93.875],[166.625,20.125]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[3.625,0],[4,0],[-0.875,-5.125],[-0.218,-2.503],[-3.125,0],[-3.375,0],[-0.417,3.475],[-0.659,4.451]],"o":[[-3.625,0],[-4,0],[0.589,3.45],[0.25,2.875],[3.125,0],[3.375,0],[0.375,-3.125],[0.5,-3.375]],"v":[[162.375,15.75],[-17.5,15.875],[-19.875,24.125],[-9,93.5],[-5.5,98],[151.875,97.875],[155.25,93.875],[166.625,20.125]],"c":true}]},{"t":83,"s":[{"i":[[3.625,0],[4,0],[0,-4.375],[0,-3.875],[-3.125,0],[-3.375,0],[0,3.5],[0,4.5]],"o":[[-3.625,0],[-4,0],[0,3.5],[0,4.75],[3.125,0],[3.375,0],[0,-3.5],[0,-4.5]],"v":[[176.75,-10.75],[-4.75,-10.625],[-10.125,-4.875],[-9.875,113.375],[-5.125,120.25],[176.75,120.25],[182.375,114.75],[182.5,-4.125]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.066666995778,0.419607992733,0.713725968903,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"tablet","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.203,"y":1},"o":{"x":0.624,"y":0},"t":14,"s":[{"i":[[5.375,0],[0,-5],[0,-5.5],[-4.5,0],[-5.5,0],[0,4.75],[0,7.5],[5,0]],"o":[[-5.375,0],[0,5],[0,5.5],[4.5,0],[5.5,0],[0,-4.75],[0,-7.5],[-5,0]],"v":[[-5.5,-14.875],[-14.125,-5.625],[-14.25,115.625],[-6.125,124.625],[176.25,124.75],[186.625,116.625],[186.75,-3.625],[178.375,-15.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[5.375,0],[-0.625,-7.375],[-1,-6.375],[-4.5,0],[-5.496,0.196],[-1.231,4.588],[-1.258,7.394],[5,0]],"o":[[-5.375,0],[0.422,4.982],[0.852,5.434],[4.5,0],[7,-0.25],[1.375,-5.125],[1,-5.875],[-5,0]],"v":[[-19,9.875],[-25.625,21.125],[-14.5,95.625],[-6.875,103.375],[152.75,103],[160.625,95.125],[172.75,18.625],[163.375,10.125]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[5.375,0],[-0.625,-7.375],[-1,-6.375],[-4.5,0],[-5.496,0.196],[-1.231,4.588],[-1.258,7.394],[5,0]],"o":[[-5.375,0],[0.422,4.982],[0.852,5.434],[4.5,0],[7,-0.25],[1.375,-5.125],[1,-5.875],[-5,0]],"v":[[-19,9.875],[-25.625,21.125],[-14.5,95.625],[-6.875,103.375],[152.75,103],[160.625,95.125],[172.75,18.625],[163.375,10.125]],"c":true}]},{"t":83,"s":[{"i":[[5.375,0],[0,-5],[0,-5.5],[-4.5,0],[-5.5,0],[0,4.75],[0,7.5],[5,0]],"o":[[-5.375,0],[0,5],[0,5.5],[4.5,0],[5.5,0],[0,-4.75],[0,-7.5],[-5,0]],"v":[[-5.5,-14.875],[-14.125,-5.625],[-14.25,115.625],[-6.125,124.625],[176.25,124.75],[186.625,116.625],[186.75,-3.625],[178.375,-15.125]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941176470588,0.949019607843,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"border","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.202,"y":1},"o":{"x":0.617,"y":0},"t":14,"s":[{"i":[[5,0],[6.25,-0.125],[-1,-6.875],[-7.125,0]],"o":[[-5,0],[-5.75,0.115],[27.25,0],[0.375,-5.125]],"v":[[179.25,-14.375],[-5.875,-14.25],[-12.375,-2.5],[186,-2.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[5,0],[6.25,-0.125],[-1,-6.875],[-7.125,0]],"o":[[-5,0],[-5.75,0.115],[27.25,0],[0.375,-5.125]],"v":[[166,6.75],[-19.125,6.875],[-25.625,18.625],[172.75,18.375]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[5,0],[6.25,-0.125],[-1,-6.875],[-7.125,0]],"o":[[-5,0],[-5.75,0.115],[27.25,0],[0.375,-5.125]],"v":[[166,6.75],[-19.125,6.875],[-25.625,18.625],[172.75,18.375]],"c":true}]},{"t":83,"s":[{"i":[[5,0],[6.25,-0.125],[-1,-6.875],[-7.125,0]],"o":[[-5,0],[-5.75,0.115],[27.25,0],[0.375,-5.125]],"v":[[179.25,-14.375],[-5.875,-14.25],[-12.375,-2.5],[186,-2.75]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.858823529412,0.874509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"buttons","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.203,"y":1},"o":{"x":0.624,"y":0},"t":14,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[138.25,125.125],[140.125,127.5],[150.875,127.5],[152.625,125.125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[115.75,101],[117.625,103.375],[128.375,103.375],[130.125,101]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[115.75,101],[117.625,103.375],[128.375,103.375],[130.125,101]],"c":true}]},{"t":83,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[138.25,125.125],[140.125,127.5],[150.875,127.5],[152.625,125.125]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.203,"y":1},"o":{"x":0.624,"y":0},"t":14,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[160.875,125],[162.75,127.375],[166.875,127.375],[168.625,125]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[133,101.375],[134.875,103.75],[139,103.75],[140.75,101.375]],"c":true}]},{"i":{"x":0.275,"y":1},"o":{"x":0.717,"y":0},"t":60.115,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[133,101.375],[134.875,103.75],[139,103.75],[140.75,101.375]],"c":true}]},{"t":83,"s":[{"i":[[0,0],[-2.25,0],[-1.75,0.125],[0,0]],"o":[[0,0],[2.25,0],[1.75,-0.125],[0,0]],"v":[[160.875,125],[162.75,127.375],[166.875,127.375],[168.625,125]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.862745098039,0.878431372549,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858823529412,0.866666666667,0.882352941176,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":96,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"radio waves","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.255,"y":1},"o":{"x":0.683,"y":0},"t":14,"s":[302.5,92.5,0],"to":[0.333,4.167,0],"ti":[-0.333,-4.167,0]},{"t":37,"s":[304.5,117.5,0]}],"ix":2},"a":{"a":0,"k":[302.5,92.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":640,"h":264,"ip":19,"op":70,"st":19,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"radio waves 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":82,"s":[100]},{"t":99,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":62,"s":[0,0]},{"t":99,"s":[70,70]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-17.591,-39.614],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":62,"op":99,"st":45,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"radio waves 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[100]},{"t":87,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[0,0]},{"t":87,"s":[70,70]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-17.591,-39.614],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":50,"op":87,"st":33,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"radio waves 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":32,"s":[100]},{"t":49,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":12,"s":[0,0]},{"t":49,"s":[70,70]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-17.591,-39.614],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":49,"st":-5,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"radio waves","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[100]},{"t":37,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,132,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":0,"s":[0,0]},{"t":37,"s":[70,70]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.627450980392,0.760784313725,0.976470588235,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-17.591,-39.614],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":-17,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"pre FINGERPRINT","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[351.5,246,0],"ix":2},"a":{"a":0,"k":[320,132,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"w":640,"h":264,"ip":0,"op":96,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_back-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_back-expected.png
deleted file mode 100755
index 8cac659..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_back-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_back.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_back.json
deleted file mode 100755
index 9b7240f..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_back.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.6.4","fr":60,"ip":0,"op":181,"w":445,"h":445,"nm":"Gesture Go back ","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"White Solid 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-158.438,222.5,0],"ix":2},"a":{"a":0,"k":[222.5,222.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[485.658,114],[375.438,114],[375.438,318.68],[485.658,318.68]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":445,"sh":445,"sc":"#ffffff","ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Pale Royal Blue Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-153.375,222.5,0],"ix":2},"a":{"a":0,"k":[222.5,222.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[462.902,119],[370.875,119],[370.875,311.615],[462.902,311.615]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":445,"sh":445,"sc":"#f0f2f3","ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[222.5,222.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"arrow Outlines 2","parent":8,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":106,"s":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":132,"s":[100]},{"t":144,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.12,"y":0.91},"o":{"x":0.88,"y":0.09},"t":106,"s":[4.591,12.717,0],"to":[1.354,0,0],"ti":[-1.354,0,0]},{"t":129.072265625,"s":[12.716,12.717,0]}],"ix":2},"a":{"a":0,"k":[6.117,6.117,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.867,-0.734],[-3.061,-0.734],[1.036,-4.831],[-0.001,-5.867],[-5.867,-0.001],[-0.001,5.867],[1.036,4.829],[-3.061,0.732],[5.867,0.732]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.117,6.117],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":96,"op":696,"st":96,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"backicon white 2 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.12],"y":[0.908]},"o":{"x":[0.167],"y":[0.167]},"t":116.857,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":132,"s":[100]},{"t":144,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.12,"y":0.886},"o":{"x":0.88,"y":0.114},"t":106,"s":[49.448,222.908,0],"to":[11.25,0,0],"ti":[-11.25,0,0]},{"t":129.072265625,"s":[116.948,222.908,0]}],"ix":2},"a":{"a":0,"k":[12.716,12.716,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,6.885],[-6.885,0],[0,-6.885],[6.886,0]],"o":[[0,-6.885],[6.886,0],[0,6.885],[-6.885,0]],"v":[[-12.467,0.001],[-0.001,-12.467],[12.467,0.001],[-0.001,12.467]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.716,12.717],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":96,"op":696,"st":96,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"touch blue Outlines 2","parent":8,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":129.072,"s":[54]},{"t":144,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.716,12.717,0],"ix":2},"a":{"a":0,"k":[22.25,22.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":116,"s":[60,60,100]},{"t":129.072265625,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"o":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"v":[[-22,0],[0,-22],[22,0],[0,22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.560999971278,0.677999997606,0.933000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.25,22.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":96,"op":696,"st":96,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"backicon white Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":116.857,"s":[100]},{"t":129.072265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.12,"y":0.886},"o":{"x":0.88,"y":0.114},"t":106,"s":[49.448,222.908,0],"to":[11.25,0,0],"ti":[-11.25,0,0]},{"t":129.072265625,"s":[116.948,222.908,0]}],"ix":2},"a":{"a":0,"k":[12.716,12.716,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,6.885],[-6.885,0],[0,-6.885],[6.886,0]],"o":[[0,-6.885],[6.886,0],[0,6.885],[-6.885,0]],"v":[[-12.467,0.001],[-0.001,-12.467],[12.467,0.001],[-0.001,12.467]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.716,12.717],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":96,"op":696,"st":96,"bm":0},{"ddd":0,"ind":8,"ty":3,"nm":"backicon white","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":116.857,"s":[100]},{"t":129.072265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.12,"y":0.886},"o":{"x":0.88,"y":0.114},"t":106,"s":[49.448,222.908,0],"to":[11.25,0,0],"ti":[-11.25,0,0]},{"t":129.072265625,"s":[116.948,222.908,0]}],"ix":2},"a":{"a":0,"k":[12.716,12.716,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":96,"op":696,"st":96,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"arrow Outlines","parent":12,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19.34,"s":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40.805,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"t":52,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":19.34,"s":[2.35]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":41,"s":[13.1]},{"t":46,"s":[13.1]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":19.34,"s":[12.717]},{"t":41,"s":[12.717]}],"ix":4}},"a":{"a":0,"k":[6.117,6.117,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.867,-0.734],[-3.061,-0.734],[1.036,-4.831],[-0.001,-5.867],[-5.867,-0.001],[-0.001,5.867],[1.036,4.829],[-3.061,0.732],[5.867,0.732]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.117,6.117],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":605,"st":5,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"backicon white 2 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46.172,"s":[100]},{"t":52,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.33,"y":0},"t":18,"s":[52.948,222.908,0],"to":[11.25,0,0],"ti":[-11.25,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[120.448,222.908,0],"to":[0,0,0],"ti":[0,0,0]},{"t":46,"s":[120.448,222.908,0]}],"ix":2},"a":{"a":0,"k":[12.716,12.716,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,6.885],[-6.885,0],[0,-6.885],[6.886,0]],"o":[[0,-6.885],[6.886,0],[0,6.885],[-6.885,0]],"v":[[-12.467,0.001],[-0.001,-12.467],[12.467,0.001],[-0.001,12.467]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960791794,0.450980422076,0.909803981407,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.716,12.717],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":605,"st":5,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"backicon white 2 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46.172,"s":[0]},{"t":52,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.33,"y":0},"t":18,"s":[52.948,222.908,0],"to":[11.25,0,0],"ti":[-11.25,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[120.448,222.908,0],"to":[0,0,0],"ti":[0,0,0]},{"t":46,"s":[120.448,222.908,0]}],"ix":2},"a":{"a":0,"k":[12.716,12.716,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,6.885],[-6.885,0],[0,-6.885],[6.886,0]],"o":[[0,-6.885],[6.886,0],[0,6.885],[-6.885,0]],"v":[[-12.467,0.001],[-0.001,-12.467],[12.467,0.001],[-0.001,12.467]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.716,12.717],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":605,"st":5,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"backicon white Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"t":52,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.33,"y":0},"t":18,"s":[52.948,222.908,0],"to":[11.25,0,0],"ti":[-11.25,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[120.448,222.908,0],"to":[0,0,0],"ti":[0,0,0]},{"t":46,"s":[120.448,222.908,0]}],"ix":2},"a":{"a":0,"k":[12.716,12.716,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,6.885],[-6.885,0],[0,-6.885],[6.886,0]],"o":[[0,-6.885],[6.886,0],[0,6.885],[-6.885,0]],"v":[[-12.467,0.001],[-0.001,-12.467],[12.467,0.001],[-0.001,12.467]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.716,12.717],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":605,"st":5,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"touch blue Outlines","parent":12,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[54]},{"t":52,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.716,12.717,0],"ix":2},"a":{"a":0,"k":[22.25,22.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":18,"s":[60,60,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":41,"s":[100,100,100]},{"t":46,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"o":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"v":[[-22,0],[0,-22],[22,0],[0,22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.560999971278,0.677999997606,0.933000033509,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.25,22.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":18,"op":605,"st":5,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Thumb nail","parent":17,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6.567,12.936,0],"ix":2},"a":{"a":0,"k":[7.357,10.534,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[1.53,4.831],[2.082,3.285],[-2.357,-5.534]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":46,"s":[{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[0.539,5.214],[3.889,2.587],[-0.55,-6.232]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[0.539,5.214],[3.889,2.587],[-0.55,-6.232]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":96,"s":[{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[1.53,4.831],[2.082,3.285],[-2.357,-5.534]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.9,"y":0},"t":109,"s":[{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[1.53,4.831],[2.082,3.285],[-2.357,-5.534]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[0.539,5.214],[1.091,3.668],[-3.348,-5.151]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[7.357,10.534],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Thumb wrinkle","parent":17,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[-18]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":96,"s":[-18]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[-18]},{"t":129,"s":[0]}],"ix":10},"p":{"a":0,"k":[27.512,23.803,0],"ix":2},"a":{"a":0,"k":[10.082,4.23,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[-0.96,0.103]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":46,"s":[{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[0.072,0.075]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[0.072,0.075]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.33,"y":0},"t":96,"s":[{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[-0.96,0.103]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.9,"y":0},"t":109,"s":[{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[-0.96,0.103]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[-2.456,1.855]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[7.457,6.856],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Thumb top","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[-10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[-10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":96,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[0]},{"t":129,"s":[-10]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[18.797,13.493,0],"to":[0.131,-0.064,0],"ti":[-0.131,0.064,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[19.582,13.108,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[19.582,13.108,0],"to":[-0.131,0.064,0],"ti":[0.131,-0.064,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0.33},"t":96,"s":[18.797,13.493,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.9,"y":0},"t":109,"s":[18.797,13.493,0],"to":[0.131,-0.064,0],"ti":[-0.131,0.064,0]},{"t":129,"s":[19.582,13.108,0]}],"ix":2},"a":{"a":0,"k":[24.415,32.846,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.9,"y":0},"t":46,"s":[{"i":[[0,0],[1.764,3.78],[-2.009,0.695],[-2.812,-9.641],[0,0],[5.009,-1.46],[0,0],[0.925,5.708]],"o":[[-0.232,-0.798],[-0.898,-1.927],[10.083,-4.007],[0,0],[1.461,5.01],[0,0],[-5.551,1.619],[0,0]],"v":[[-8.725,0.397],[-13.267,-9.691],[-11.187,-14.59],[11.336,0.128],[12.704,4.82],[6.253,16.585],[4.905,16.977],[-7.286,9.279]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[1.764,3.78],[-2.009,0.695],[-2.812,-9.641],[0,0],[5.009,-1.46],[0,0],[0.925,5.708]],"o":[[-0.232,-0.798],[-0.898,-1.927],[10.083,-4.007],[0,0],[1.461,5.01],[0,0],[-5.551,1.619],[0,0]],"v":[[-8.725,0.397],[-13.267,-9.691],[-11.187,-14.59],[11.336,0.128],[12.704,4.82],[6.253,16.585],[4.905,16.977],[-7.286,9.279]],"c":true}]},{"t":129,"s":[{"i":[[0,0],[1.764,3.78],[-2.009,0.695],[-2.812,-9.641],[0,0],[5.009,-1.46],[0,0],[0.925,5.708]],"o":[[-0.232,-0.798],[-0.898,-1.927],[10.083,-4.007],[0,0],[1.461,5.01],[0,0],[-5.551,1.619],[0,0]],"v":[[-8.725,0.397],[-13.267,-9.691],[-11.187,-14.59],[11.336,0.128],[12.704,4.82],[6.253,16.585],[4.905,16.977],[-7.286,9.279]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.415,18.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Thumb border line","parent":19,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.68],"y":[-0.196]},"t":16,"s":[-45]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[-33]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[-33]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":96,"s":[-45]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[-45]},{"t":129,"s":[-28]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.68],"y":[-7.516]},"t":16,"s":[29.473]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[29.705]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[29.705]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":96,"s":[29.473]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[29.473]},{"t":129,"s":[28.343]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.68],"y":[1.417]},"t":16,"s":[8.299]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[7.625]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[9.651]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":96,"s":[8.299]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[8.299]},{"t":129,"s":[8.303]}],"ix":4}},"a":{"a":0,"k":[7.657,5.806,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[-3.064,12.767],[0,0]],"v":[[1.532,-8.556],[-0.609,8.556]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[6.532,13.556],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Thumb bottom","parent":28,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.175],"y":[0]},"t":0,"s":[15.556]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[16.556]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[16.556]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":96,"s":[15.556]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[15.556]},{"t":129,"s":[17]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[27.091]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[27.091]},{"t":129,"s":[28.041]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[103.199]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[103.199]},{"t":129,"s":[102.88]}],"ix":4}},"a":{"a":0,"k":[59.637,47.74,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.903,1.245],[0,0],[0,0],[0,0],[6.242,6.985],[0,0]],"o":[[0,0],[0,0],[0,0],[-8,2],[0,0],[-5.02,-4.898]],"v":[[-26.871,-33.016],[-24.243,-33.49],[36.387,-9.787],[22.881,31.49],[-0.949,15.691],[-31.367,-18.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.637,33.74],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Forfinger nail","parent":23,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[8.719,9.876,0],"to":[0.784,2.042,0],"ti":[-1.574,-1.183,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[13.425,22.126,0],"to":[1.574,1.183,0],"ti":[-0.79,0.859,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[18.163,16.973,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[18.163,16.973,0],"to":[-1.397,-0.762,0],"ti":[0.79,-0.859,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96,"s":[9.781,12.404,0],"to":[-0.79,0.859,0],"ti":[-0.829,-1.563,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.88,"y":0.453},"t":109,"s":[13.425,22.126,0],"to":[0.829,1.563,0],"ti":[-0.222,0.057,0]},{"t":129,"s":[14.754,21.784,0]}],"ix":2},"a":{"a":0,"k":[10.945,10.342,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[-1.552,0.259],[0,0]],"o":[[0,0],[0.175,0.845],[0,0],[0,0]],"v":[[-2.82,0.401],[-2.096,4.173],[0.709,5.49],[6.721,3.2]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[0,0],[0,0],[-0.895,0.281],[0,0]],"o":[[0,0],[0.137,0.937],[0,0],[0,0]],"v":[[-2.361,1.028],[-2.679,1.691],[-0.691,2.138],[4.626,-0.074]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":46,"s":[{"i":[[0,0],[0,0],[-1.074,0.273],[0,0]],"o":[[0,0],[0.213,1.182],[0,0],[0,0]],"v":[[-2.524,-0.268],[-2.634,2.143],[0.445,2.938],[4.574,1.471]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,0],[0,0],[-1.074,0.273],[0,0]],"o":[[0,0],[0.213,1.182],[0,0],[0,0]],"v":[[-2.524,-0.268],[-2.634,2.143],[0.445,2.938],[4.574,1.471]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96,"s":[{"i":[[0,0],[0,0],[-1.552,0.259],[0,0]],"o":[[0,0],[0.175,0.845],[0,0],[0,0]],"v":[[-2.82,0.401],[-2.096,4.173],[0.709,5.49],[6.721,3.2]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.88,"y":0.14},"t":109,"s":[{"i":[[0,0],[0,0],[-0.895,0.281],[0,0]],"o":[[0,0],[0.137,0.937],[0,0],[0,0]],"v":[[-2.361,1.028],[-2.679,1.691],[-0.691,2.138],[4.626,-0.074]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0],[-1.074,0.273],[0,0]],"o":[[0,0],[0.213,1.182],[0,0],[0,0]],"v":[[-3.304,-0.2],[-3.204,1.283],[-0.125,2.078],[4.004,0.611]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":3,"lj":3,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[9.444,8.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Forfinger wrinkle","parent":23,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[2]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[-1]},{"i":{"x":[0.67],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[2]},{"t":109,"s":[-1]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[26.419,52.39,0],"to":[-0.18,-0.43,0],"ti":[-0.733,0.334,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[25.342,49.811,0],"to":[0.733,-0.334,0],"ti":[-0.912,-0.096,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[30.814,50.387,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[30.814,50.387,0],"to":[-0.733,0.334,0],"ti":[0.663,0.112,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96,"s":[26.419,52.39,0],"to":[-0.663,-0.112,0],"ti":[-0.535,0.028,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.88,"y":0.203},"t":109,"s":[26.838,49.713,0],"to":[0.535,-0.028,0],"ti":[-0.465,-0.418,0]},{"t":129,"s":[29.631,52.222,0]}],"ix":2},"a":{"a":0,"k":[11.35,5.174,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.276,0.709],[-1.206,0.042]],"o":[[1.111,-0.809],[1.798,-0.562],[0,0]],"v":[[-4.85,1.673],[0.245,-0.889],[4.85,-1.673]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[9.85,6.674],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Forfinger borderline","parent":23,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[14]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[11]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":75,"s":[14]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.88],"y":[0.14]},"t":109,"s":[14]},{"t":129,"s":[11]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[50.768,85.811,0],"to":[-0.105,0.014,0],"ti":[0.105,-0.014,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[50.136,85.893,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[50.136,85.893,0],"to":[0.105,-0.014,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.88,"y":0.14},"t":109,"s":[50.768,85.811,0],"to":[0,0,0],"ti":[0.105,-0.014,0]},{"t":129,"s":[50.136,85.893,0]}],"ix":2},"a":{"a":0,"k":[8.003,9.498,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.698,-2.879]],"o":[[0,0],[0,0]],"v":[[-3.003,-4.498],[3.003,4.498]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[8.003,9.498],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Forfinger","parent":28,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[-4]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.675],"y":[0]},"t":16,"s":[-4]},{"i":{"x":[0.833],"y":[0.267]},"o":{"x":[0.297],"y":[0]},"t":46,"s":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.041]},"t":86,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[-3]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.88],"y":[0.14]},"t":109,"s":[-4]},{"t":129,"s":[9]}],"ix":10},"p":{"a":0,"k":[30.907,52.47,0],"ix":2},"a":{"a":0,"k":[45.715,111.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-5.834,2.261],[0,0],[-1.46,-2.604],[0,0],[0,0],[1.432,7.604],[7.284,29.085],[1.346,4.997]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.906,-7.61],[-1.627,-6.042]],"v":[[-25.084,-78.624],[-24.826,-78.731],[-16.891,-75.791],[1.364,-30.252],[31.965,42.729],[0.503,72.146],[-19.49,-22.018],[-30.339,-64.261]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[-5.834,2.261],[0,0],[-0.915,-2.306],[0,0],[0,0],[1.432,7.604],[4.878,24.758],[0.795,7.041]],"o":[[0,0],[3.616,0.017],[0,0],[0,0],[0,0],[-7.249,-38.501],[-1.934,-9.819],[-0.703,-6.227]],"v":[[-21.417,-64.342],[-18.764,-64.662],[-11.349,-57.748],[1.053,-31.944],[31.965,42.729],[0.503,72.146],[-20.596,-24.684],[-26.572,-49.596]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":46,"s":[{"i":[[-5.834,2.261],[0,0],[-0.915,-2.306],[0,0],[0,0],[1.432,7.604],[4.764,25.988],[0.857,5.122]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.247,-6.8],[-1.032,-6.171]],"v":[[-17.452,-70.181],[-14.257,-69.983],[-7.396,-65.103],[5.867,-29.45],[31.965,42.729],[0.503,72.146],[-19.644,-33.885],[-22.817,-51.824]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[-5.834,2.261],[0,0],[-0.915,-2.306],[0,0],[0,0],[1.432,7.604],[4.764,25.988],[0.857,5.122]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.247,-6.8],[-1.032,-6.171]],"v":[[-17.452,-70.181],[-14.257,-69.983],[-7.396,-65.103],[5.867,-29.45],[31.965,42.729],[0.503,72.146],[-19.644,-33.885],[-22.817,-51.824]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96,"s":[{"i":[[-5.834,2.261],[0,0],[-1.46,-2.604],[0,0],[0,0],[1.432,7.604],[7.284,29.085],[1.346,4.997]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.906,-7.61],[-1.627,-6.042]],"v":[[-24.191,-74.35],[-23.684,-74.451],[-15.998,-71.517],[2.12,-30.483],[31.965,42.728],[0.503,72.146],[-20.496,-21.793],[-29.446,-59.987]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.88,"y":0.14},"t":109,"s":[{"i":[[-5.834,2.261],[0,0],[-0.915,-2.306],[0,0],[0,0],[1.432,7.604],[4.878,24.758],[0.795,7.041]],"o":[[0,0],[3.616,0.017],[0,0],[0,0],[0,0],[-7.249,-38.501],[-1.934,-9.819],[-0.703,-6.227]],"v":[[-21.417,-64.342],[-18.764,-64.662],[-11.349,-57.748],[1.053,-31.944],[31.965,42.729],[0.503,72.146],[-20.596,-24.684],[-26.572,-49.596]],"c":true}]},{"t":129,"s":[{"i":[[-5.834,2.261],[0,0],[-0.915,-2.306],[0,0],[0,0],[1.432,7.604],[4.878,24.758],[0.795,7.041]],"o":[[0,0],[3.616,0.017],[0,0],[0,0],[0,0],[-7.249,-38.501],[-1.934,-9.819],[-0.703,-6.227]],"v":[[-21.417,-64.342],[-18.764,-64.662],[-11.349,-57.748],[1.053,-31.944],[31.965,42.729],[0.503,72.146],[-20.596,-24.684],[-26.572,-49.596]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.216,80],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Middlefinger wrinkle","parent":26,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[-5]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.9],"y":[0]},"t":109,"s":[-5]},{"t":129,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[30.999,13.704,0],"to":[0.27,-0.411,0],"ti":[-0.27,0.411,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[32.618,11.238,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[32.618,11.238,0],"to":[-0.27,0.411,0],"ti":[-0.212,-0.453,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.9,"y":0},"t":116,"s":[30.999,13.704,0],"to":[0.212,0.453,0],"ti":[-0.482,-0.042,0]},{"t":129,"s":[33.891,13.954,0]}],"ix":2},"a":{"a":0,"k":[11.279,5.341,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.35,0.402],[-1.202,-0.118]],"o":[[1.209,-0.653],[1.856,-0.318],[0,0]],"v":[[-5.029,1.092],[0.361,-0.773],[5.029,-0.939]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[10.029,6.091],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Middlefinger border line","parent":26,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[47.644,40.112,0],"ix":2},"a":{"a":0,"k":[11.039,23.172,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-6.039,-18.172],[6.039,15.383],[5.809,18.172]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[11.039,23.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Middlefinger","parent":28,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[0.556]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":75,"s":[0.556]},{"t":129,"s":[0.556]}],"ix":10},"p":{"a":0,"k":[54.275,33.441,0],"ix":2},"a":{"a":0,"k":[43.966,61.435,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":46,"s":[{"i":[[-0.486,1.22],[0,0],[-1.404,-0.571],[0,0],[-0.437,-1.213],[0,0],[0,0],[0,0],[2.456,3.338],[0.063,0.134]],"o":[[0.501,-1.257],[1.338,-0.713],[0,0],[1.194,0.486],[0,0],[0,0],[0,0],[0,0],[-0.298,-0.405],[-0.727,-1.54]],"v":[[-20.808,-27.749],[-18.715,-30.179],[-12.387,-31.114],[8.492,-22.622],[11.054,-19.953],[26.717,23.56],[3.272,31.685],[-10.344,-9.766],[-18.92,-19.427],[-20.516,-21.872]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[-0.702,0.459],[0,0],[-1.404,-0.571],[0,0],[-0.437,-1.213],[0,0],[0,0],[0,0],[1.571,2.35],[0.029,0.062]],"o":[[0.702,-0.459],[1.338,-0.713],[0,0],[1.194,0.486],[0,0],[0,0],[0,0],[0,0],[-0.083,-0.124],[-0.727,-1.54]],"v":[[-22.723,-28.66],[-16.712,-30.89],[-12.387,-31.114],[8.492,-22.622],[11.054,-19.953],[26.717,23.56],[3.272,31.685],[-10.344,-9.766],[-22.628,-25.027],[-22.798,-25.307]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.9,"y":0},"t":109,"s":[{"i":[[-0.152,0.825],[0,0],[-1.889,-0.292],[0,0],[-0.437,-1.213],[0,0],[0,0],[0,0],[1.285,1.839],[0.019,0.066]],"o":[[0.355,-1.93],[1.799,-0.732],[0,0],[1.194,0.486],[0,0],[0,0],[0,0],[0,0],[-0.068,-0.097],[-1.119,-3.823]],"v":[[-21.002,-24.623],[-17.471,-28.721],[-10.288,-29.35],[8.492,-22.622],[11.054,-19.953],[26.717,23.56],[1.68,30.019],[-9.387,-10.569],[-20.239,-19.561],[-20.37,-19.805]],"c":true}]},{"t":129,"s":[{"i":[[-0.702,0.459],[0,0],[-1.404,-0.571],[0,0],[-0.437,-1.213],[0,0],[0,0],[0,0],[1.571,2.35],[0.029,0.062]],"o":[[0.702,-0.459],[1.338,-0.713],[0,0],[1.194,0.486],[0,0],[0,0],[0,0],[0,0],[-0.083,-0.124],[-0.727,-1.54]],"v":[[-22.723,-28.66],[-16.712,-30.89],[-12.387,-31.114],[8.492,-22.622],[12.114,-17.689],[26.717,23.56],[3.272,31.685],[-10.344,-9.766],[-22.628,-25.027],[-22.798,-25.307]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[26.967,31.935],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"The rest of the finger","parent":28,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0.556,"ix":10},"p":{"a":0,"k":[83.335,41.922,0],"ix":2},"a":{"a":0,"k":[36.395,53.331,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.891,-16.107],[4.756,12.001],[5.891,16.107]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[35.131,34.554],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.349,0.402]],"o":[[1.208,-0.654],[0,0]],"v":[[-2.695,0.932],[2.695,-0.932]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[16.27,5.932],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.056,-2.299],[0,0],[0,0],[-0.969,-2.191],[0,0],[0,0]],"o":[[0,0],[2.499,0.396],[0,0],[0,0],[2.339,0.524],[0,0],[0,0],[0,0]],"v":[[-27.145,-25.23],[-8.774,-22.326],[-3.083,-18.012],[0.666,-9.846],[9.149,-7.939],[14.408,-3.62],[27.145,25.23],[-19.321,15.889]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.395,26.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"The back of the hand","parent":29,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0.556]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0.556]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[13]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[0.556]},{"i":{"x":[0.67],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":109,"s":[0.556]},{"t":129,"s":[15.556]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":16,"s":[54.319,12.028,0],"to":[-0.833,0.029,0],"ti":[0.833,-0.029,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[49.322,12.202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[49.322,12.202,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[49.322,12.202,0],"to":[0.833,-0.029,0],"ti":[0,0,0]},{"i":{"x":0.67,"y":1},"o":{"x":0.33,"y":0},"t":109,"s":[54.319,12.028,0],"to":[0,0,0],"ti":[0.833,-0.029,0]},{"t":129,"s":[49.322,12.202,0]}],"ix":2},"a":{"a":0,"k":[81.22,124.153,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.98,-24.846],[39.311,2.495],[20.472,14.216],[0.733,15.236],[-1.016,7.951],[-3.849,8.116]],"o":[[3.301,41.419],[-24.875,-1.579],[-8.667,-6.018],[-0.374,-7.782],[1.692,-13.251],[15.593,-32.878]],"v":[[44.993,-22.559],[20.159,69.408],[-34.642,53.473],[-59.096,14.31],[-46.802,-5.223],[-37.957,-39.024]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.72,72.153],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Wrist","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[2]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[2]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":46,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[2]},{"i":{"x":[0.12],"y":[0.86]},"o":{"x":[0.88],"y":[0.14]},"t":109,"s":[2]},{"t":129,"s":[9]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[219.22,481.332,0],"to":[-1.833,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[208.22,481.332,0],"to":[4.968,0,0],"ti":[-5.576,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.9,"y":0},"t":46,"s":[231.741,491.332,0],"to":[6.777,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":47,"s":[231.741,491.332,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[231.741,491.332,0],"to":[0,0,0],"ti":[-0.747,-1,0]},{"i":{"x":0.12,"y":0.623},"o":{"x":0.333,"y":0},"t":109,"s":[211.22,481.332,0],"to":[0.747,1,0],"ti":[0,0,0]},{"t":129,"s":[236.22,497.332,0]}],"ix":2},"a":{"a":0,"k":[104.97,71.418,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[103,103,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":16,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1.152,1.152,-13.771]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":75,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0.094,0.094,9.144]},"t":96,"s":[102,102,100]},{"t":109,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-84.221,-32.333],[-42.76,34.529],[63.198,35.401],[-4.41,-35.737]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[84.471,35.918],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shelf Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0]},{"t":166,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[224.175,323.08,0],"ix":2},"a":{"a":0,"k":[154.051,5.278,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.349,0],[0,0],[0,2.349],[0,0],[0,0],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,0],[0,0],[0,2.349]],"v":[[149.549,5.027],[-151.327,5.045],[-155.175,0.793],[-155.175,-5.01],[153.8,-5.027],[153.8,0.775]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.05,5.278],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shelf icons ","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":129,"s":[0]},{"t":138,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[223.098,303.588,0],"ix":2},"a":{"a":0,"k":[66.178,11.442,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.391,0],[0,-4.393],[4.393,0]],"o":[[0,-4.393],[4.393,0],[0,4.393],[-4.391,0]],"v":[[-7.953,0],[0,-7.953],[7.953,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.838999968884,0.913999968884,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[114.584,11.442],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.952,0],[0.001,-7.953],[7.952,0],[0.001,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.855000035903,0.842999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.678,11.442],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.952,0],[0,-7.953],[7.952,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215695858,0.913725495338,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.709,11.442],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.953,0],[0,-7.953],[7.953,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.776000019148,0.929000016755,0.847000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.741,11.442],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.953,0],[0,-7.953],[7.953,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819999964097,0.902000038297,0.991999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.772,11.442],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.318,0],[0,0],[0,6.318],[0,0],[-6.318,0],[0,0],[0,-6.319],[0,0]],"o":[[0,0],[-6.318,0],[0,0],[0,-6.319],[0,0],[6.318,0],[0,0],[0,6.318]],"v":[[54.738,11.442],[-54.738,11.442],[-66.178,0.001],[-66.178,-0.001],[-54.738,-11.442],[54.738,-11.442],[66.178,-0.001],[66.178,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[66.178,11.442],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Launcher","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":129,"s":[0]},{"t":138,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[223.816,222.979,0],"ix":2},"a":{"a":0,"k":[154.253,105.85,0],"ix":1},"s":{"a":0,"k":[100.5,100.5,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":4,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":4,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.713999968884,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":4,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":4,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":4,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":4,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":4,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":4,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.59,0],[0,0],[0,3.59],[3.59,0],[0,0],[0,-3.59]],"o":[[0,0],[3.59,0],[0,-3.59],[0,0],[-3.59,0],[0,3.59]],"v":[[-74,6.5],[74,6.5],[80.5,0],[74,-6.5],[-74,-6.5],[-80.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.535,17.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.349,0],[0,0],[0,2.348],[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0],[2.349,0],[0,0],[0,2.348]],"v":[[149.751,105.6],[-149.751,105.6],[-154.002,101.348],[-154.002,-101.347],[-149.751,-105.6],[149.751,-105.6],[154.002,-101.347],[154.002,101.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.252,105.85],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Device Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[223.598,222.107,0],"ix":2},"a":{"a":0,"k":[238.859,238.058,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.141,0.042],[0,0],[-0.058,3.164],[0,0],[0,0],[0,0]],"o":[[0,0],[-2.462,0.042],[0,0],[0,0],[0,0],[0.033,3.314]],"v":[[149.897,5.298],[-149.751,5.298],[-154.124,0.863],[-154.124,-5.027],[154.129,-5.027],[154.129,0.87]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[238.598,339.58],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.523,0],[0,0],[0,-5.522],[0,0],[-5.523,0],[0,0],[0,5.523],[0,0]],"o":[[0,0],[-5.523,0],[0,0],[0,5.523],[0,0],[5.523,0],[0,0],[0,-5.522]],"v":[[150.155,-111.807],[-150.155,-111.807],[-160.155,-101.807],[-160.155,101.807],[-150.155,111.807],[150.155,111.807],[160.155,101.807],[160.155,-101.807]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-2.206],[0,0],[2.206,0],[0,0],[0,2.206],[0,0],[-2.206,0]],"o":[[2.206,0],[0,0],[0,2.206],[0,0],[-2.206,0],[0,0],[0,-2.206],[0,0]],"v":[[150.155,-105.807],[154.155,-101.807],[154.155,101.807],[150.155,105.807],[-150.155,105.807],[-154.155,101.807],[-154.155,-101.807],[-150.155,-105.807]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941000007181,0.948999980852,0.952999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[238.598,239.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.523,0],[0,0],[0,-5.522],[0,0],[-5.523,0],[0,0],[0,5.523],[0,0]],"o":[[0,0],[-5.523,0],[0,0],[0,5.523],[0,0],[5.523,0],[0,0],[0,-5.522]],"v":[[150.155,-111.807],[-150.155,-111.807],[-160.155,-101.807],[-160.155,101.807],[-150.155,111.807],[150.155,111.807],[160.155,101.807],[160.155,-101.807]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-4.411],[0,0],[4.411,0],[0,0],[0,4.411],[0,0],[-4.411,0]],"o":[[4.411,0],[0,0],[0,4.411],[0,0],[-4.411,0],[0,0],[0,-4.411],[0,0]],"v":[[150.155,-109.807],[158.155,-101.807],[158.155,101.807],[150.155,109.807],[-150.155,109.807],[-158.155,101.807],[-158.155,-101.807],[-150.155,-109.807]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.859000052658,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[238.598,239.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"App UI 2 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":52,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":128,"s":[100]},{"t":137,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[222.323,222.908,0],"ix":2},"a":{"a":0,"k":[154.23,105.691,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.292,30.5],[66.293,30.5],[68.293,28.5],[68.293,-28.5],[66.293,-30.5],[-66.292,-30.5],[-68.292,-28.5],[-68.292,28.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.964999988032,0.889999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.905,83.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-118.5,2.5],[118.5,2.5],[118.5,-2.5],[-118.5,-2.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128.697,196.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-126.5,2.5],[126.5,2.5],[126.5,-2.5],[-126.5,-2.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[136.697,181.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-119,2.5],[119,2.5],[119,-2.5],[-119,-2.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[129.197,166.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-95,2.5],[95,2.5],[95,-2.5],[-95,-2.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[105.197,152.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.293,30.5],[66.293,30.5],[68.293,28.5],[68.293,-28.5],[66.293,-30.5],[-66.293,-30.5],[-68.293,-28.5],[-68.293,28.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.964999988032,0.889999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.49,83.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-61.5,6.5],[61.5,6.5],[63.5,4.5],[63.5,-4.5],[61.5,-6.5],[-61.5,-6.5],[-63.5,-4.5],[-63.5,4.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.697,131.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.105],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.105],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-17.5,6.5],[17.5,6.5],[19.5,4.5],[19.5,-4.5],[17.5,-6.5],[-17.5,-6.5],[-19.5,-4.5],[-19.5,4.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964999988032,0.862999949736,0.528999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.697,34.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.349,0],[0,0],[0,2.348],[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0],[2.349,0],[0,0],[0,2.348]],"v":[[149.751,105.6],[-149.751,105.6],[-154.002,101.348],[-154.002,-101.347],[-149.751,-105.6],[149.751,-105.6],[154.002,-101.347],[154.002,101.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.252,105.85],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Yellow Window Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":52,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":161,"s":[100]},{"t":189,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":92,"s":[222.354,233.44,0],"to":[0.016,-0.089,0],"ti":[-0.016,0.089,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.001,"y":0.001},"t":117,"s":[222.448,232.908,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.36,"y":1},"o":{"x":0.22,"y":0.99},"t":139,"s":[222.448,232.908,0],"to":[0,-4.5,0],"ti":[0,4.5,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":211,"s":[222.448,205.908,0],"to":[0,0,0],"ti":[0,0,0]},{"t":270,"s":[222.448,205.908,0]}],"ix":2},"a":{"a":0,"k":[154.23,116.217,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.36,0.36,0.36],"y":[1,1,1]},"o":{"x":[0.22,0.22,0.22],"y":[0.99,0.99,0]},"t":139,"s":[100,100,100]},{"t":211,"s":[58,58,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.292,30.5],[66.293,30.5],[68.293,28.5],[68.293,-28.5],[66.293,-30.5],[-66.292,-30.5],[-68.292,-28.5],[-68.292,28.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.862999949736,0.922000002394,0.866999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.905,106.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.292,17.125],[66.293,17.125],[68.293,15.125],[68.293,-17.5],[66.293,-19.5],[-66.292,-19.5],[-68.292,-17.5],[-68.292,15.125]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.922000002394,0.913999968884,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.49,191.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.293,17.125],[66.293,17.125],[68.293,15.125],[68.293,-17.5],[66.293,-19.5],[-66.293,-19.5],[-68.293,-17.5],[-68.293,15.125]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964999988032,0.952999997606,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.49,191.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-63.5,6.5],[63.5,6.5],[63.5,-6.5],[-63.5,-6.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.697,154.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.293,30.5],[66.293,30.5],[68.293,28.5],[68.293,-28.5],[66.293,-30.5],[-66.293,-30.5],[-68.293,-28.5],[-68.293,28.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.922000002394,0.913999968884,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.49,106.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.105],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.105],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-61.5,6.5],[61.5,6.5],[63.5,4.5],[63.5,-4.5],[61.5,-6.5],[-61.5,-6.5],[-63.5,-4.5],[-63.5,4.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.697,58.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.105],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.105],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-17.5,6.5],[17.5,6.5],[19.5,4.5],[19.5,-4.5],[17.5,-6.5],[-17.5,-6.5],[-19.5,-4.5],[-19.5,4.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964999988032,0.862999949736,0.528999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.697,34.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.349,0],[0,0],[0,2.348],[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0],[2.349,0],[0,0],[0,2.348]],"v":[[149.751,105.6],[-149.751,105.6],[-154.002,101.348],[-154.002,-101.347],[-149.751,-105.6],[149.751,-105.6],[154.002,-101.347],[154.002,101.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.252,105.85],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}],"markers":[{"tm":16,"cm":"0","dr":0},{"tm":33,"cm":"1","dr":0},{"tm":46,"cm":"2","dr":0},{"tm":63,"cm":"3","dr":0},{"tm":86,"cm":"4","dr":0},{"tm":107,"cm":"5","dr":0},{"tm":120,"cm":"6","dr":0},{"tm":129,"cm":"7","dr":0}]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_home-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_home-expected.png
deleted file mode 100755
index bf07bc2..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_home-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_home.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_home.json
deleted file mode 100755
index 68d14c3..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/gesture_go_home.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.6.4","fr":60,"ip":8,"op":121,"w":445,"h":445,"nm":"Gesture Go home","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Thumb nail ","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[7.915,11.761,0],"ix":2},"a":{"a":0,"k":[7.357,10.534,0],"ix":1},"s":{"a":0,"k":[91.15,91.15,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.275,0.579],[0,0]],"o":[[0,0],[0.579,-0.275],[0,0],[0,0]],"v":[[-1.078,5.534],[1.53,4.831],[2.082,3.285],[-2.357,-5.534]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[7.357,10.534],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Thumb wrinkle","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-28,"ix":10},"p":{"a":0,"k":[26.546,23.907,0],"ix":2},"a":{"a":0,"k":[10.082,4.23,0],"ix":1},"s":{"a":0,"k":[91.15,91.15,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[-2.911,0.838],[0,0]],"v":[[2.456,-1.855],[-0.96,0.103]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[7.457,6.856],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Thumb top","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18.797,13.493,0],"ix":2},"a":{"a":0,"k":[24.415,32.846,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.764,3.78],[-2.009,0.695],[-2.812,-9.641],[0,0],[5.009,-1.46],[0,0],[0.925,5.708]],"o":[[-0.232,-0.798],[-0.898,-1.927],[10.083,-4.007],[0,0],[1.461,5.01],[0,0],[-5.551,1.619],[0,0]],"v":[[-8.725,0.397],[-13.267,-9.691],[-11.187,-14.59],[11.336,0.128],[12.704,4.82],[6.253,16.585],[4.905,16.977],[-7.286,9.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.415,18.847],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Thumb border line","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[-39]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[-39]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":42,"s":[-39]},{"t":53,"s":[-21]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[33.559]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[40.553]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":42,"s":[40.553]},{"t":53,"s":[36.476]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[10.114]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[12.235]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":42,"s":[12.235]},{"t":53,"s":[10.468]}],"ix":4}},"a":{"a":0,"k":[7.657,5.806,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[-3.064,12.767],[0,0]],"v":[[1.532,-8.556],[-0.609,8.556]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[6.532,13.556],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Thumb bottom","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":8,"s":[12.556]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":33,"s":[6]},{"t":42,"s":[6]}],"ix":10},"p":{"a":0,"k":[28.041,102.88,0],"ix":2},"a":{"a":0,"k":[59.637,47.74,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.903,1.245],[0,0],[0,0],[0,0],[6.242,6.985],[0,0]],"o":[[0,0],[0,0],[0,0],[-8,2],[0,0],[-5.02,-4.898]],"v":[[-26.871,-33.016],[-24.243,-33.49],[36.387,-9.787],[22.881,31.49],[-0.949,15.691],[-31.367,-18.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.637,33.74],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Forfinger nail","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":8,"s":[8.978,19.524,0],"to":[-0.247,3.36,0],"ti":[0.247,-3.36,0]},{"i":{"x":0.58,"y":0.58},"o":{"x":0.001,"y":0.001},"t":33,"s":[7.499,39.687,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.446,"y":0.484},"o":{"x":0.001,"y":0},"t":42,"s":[7.499,39.687,0],"to":[-0.239,-2.045,0],"ti":[0.58,4.97,0]},{"i":{"x":0.685,"y":1},"o":{"x":0.32,"y":0.278},"t":48.191,"s":[4.565,28.858,0],"to":[-0.373,-3.201,0],"ti":[0.154,1.317,0]},{"t":53,"s":[5.146,19.511,0]}],"ix":2},"a":{"a":0,"k":[10.945,10.342,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":8,"s":[{"i":[[0,0],[0,0],[-1.552,0.259],[0,0]],"o":[[0,0],[0.175,0.845],[0,0],[0,0]],"v":[[-2.82,0.401],[-2.096,4.173],[0.709,5.49],[6.721,3.2]],"c":false}]},{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":33,"s":[{"i":[[0,0],[0,0],[-0.891,0.408],[0,0]],"o":[[0,0],[0.488,0.868],[0,0],[0,0]],"v":[[-2.168,1.149],[-1.685,1.932],[0.693,1.695],[3.735,0.147]],"c":false}]},{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":42,"s":[{"i":[[0,0],[0,0],[-0.891,0.408],[0,0]],"o":[[0,0],[0.488,0.868],[0,0],[0,0]],"v":[[-2.168,1.149],[-1.685,1.932],[0.693,1.695],[3.735,0.147]],"c":false}]},{"t":53,"s":[{"i":[[0,0],[0,0],[-1.104,0.522],[0,0]],"o":[[0,0],[0.175,0.845],[0,0],[0,0]],"v":[[-3.622,2.244],[-2.335,4.352],[0.143,5.144],[5.452,2.943]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":3,"lj":3,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[9.444,8.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Forfinger wrinkle","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-4,"ix":10},"p":{"a":0,"k":[27.077,50.793,0],"ix":2},"a":{"a":0,"k":[11.35,5.174,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.276,0.709],[-1.206,0.042]],"o":[[1.111,-0.809],[1.798,-0.562],[0,0]],"v":[[-4.85,1.673],[0.245,-0.889],[4.85,-1.673]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[9.85,6.674],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Forfinger borderline","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":14,"ix":10},"p":{"a":0,"k":[50.768,85.811,0],"ix":2},"a":{"a":0,"k":[8.003,9.498,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.698,-2.879]],"o":[[0,0],[0,0]],"v":[[-3.003,-4.498],[3.003,4.498]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[8.003,9.498],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Forfinger","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":8,"s":[-0.819]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":33,"s":[-4]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":42,"s":[-4]},{"i":{"x":[0.686],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":53,"s":[13]},{"t":95,"s":[11.5]}],"ix":10},"p":{"a":0,"k":[30.907,52.47,0],"ix":2},"a":{"a":0,"k":[45.715,111.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":8,"s":[{"i":[[-5.834,2.261],[0,0],[-1.981,-2.623],[0,0],[0,0],[1.432,7.604],[5.876,21.954],[2.685,5.402]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.913,-6.787],[-2.482,-5.602]],"v":[[-26.181,-66.337],[-25.759,-66.5],[-17.534,-63.579],[1.758,-30.72],[31.965,42.729],[0.503,72.146],[-19.034,-20.237],[-29.895,-51.26]],"c":true}]},{"i":{"x":0.58,"y":1},"o":{"x":0.001,"y":0},"t":33,"s":[{"i":[[-5.834,2.261],[0,0],[-2.893,-2.656],[0,0],[0,0],[1.432,7.604],[3.415,9.485],[5.027,6.109]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.926,-5.348],[-3.976,-4.832]],"v":[[-28.1,-44.853],[-27.39,-45.113],[-18.659,-42.226],[2.446,-31.538],[31.965,42.729],[0.503,72.146],[-18.237,-17.121],[-29.119,-28.525]],"c":true}]},{"i":{"x":0.833,"y":0.865},"o":{"x":0.001,"y":0},"t":42,"s":[{"i":[[-5.834,2.261],[0,0],[-2.893,-2.656],[0,0],[0,0],[1.432,7.604],[3.415,9.485],[5.027,6.109]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.926,-5.348],[-3.976,-4.832]],"v":[[-28.1,-44.853],[-27.39,-45.113],[-18.659,-42.226],[2.446,-31.538],[31.965,42.729],[0.503,72.146],[-18.237,-17.121],[-29.119,-28.525]],"c":true}]},{"i":{"x":0.833,"y":0.865},"o":{"x":0.167,"y":0.135},"t":49.428,"s":[{"i":[[-5.834,2.261],[0,0],[-2.315,-2.635],[0,0],[0,0],[1.432,7.604],[2.04,5.665],[3.544,5.661]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-1.15,-3.194],[-3.03,-5.319]],"v":[[-32.012,-56.209],[-31.484,-56.407],[-23.074,-53.499],[2.289,-31.476],[31.965,42.728],[0.503,72.146],[-18.742,-19.093],[-34.238,-39.806]],"c":true}]},{"i":{"x":0.58,"y":1},"o":{"x":0.167,"y":0.135},"t":50.666,"s":[{"i":[[-5.834,2.261],[0,0],[-2.027,-2.625],[0,0],[0,0],[1.432,7.604],[1.351,3.753],[2.802,5.437]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[-0.762,-2.116],[-2.556,-5.563]],"v":[[-32.286,-60.533],[-31.849,-60.701],[-23.599,-57.781],[2.211,-31.445],[31.965,42.728],[0.503,72.146],[-18.994,-20.08],[-35.534,-44.818]],"c":true}]},{"t":53,"s":[{"i":[[-5.834,2.261],[0,0],[-1.46,-2.604],[0,0],[0,0],[1.432,7.604],[0,0],[1.346,4.997]],"o":[[0,0],[2.313,-0.897],[0,0],[0,0],[0,0],[-8.024,-42.619],[0,0],[-1.627,-6.042]],"v":[[-30.806,-66.137],[-30.548,-66.244],[-22.613,-63.304],[2.057,-31.384],[31.965,42.729],[0.503,72.146],[-19.49,-22.018],[-36.061,-51.774]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.216,80],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Middlefinger wrinkle","parent":12,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":1,"ix":10},"p":{"a":0,"k":[32.388,11.982,0],"ix":2},"a":{"a":0,"k":[11.279,5.341,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.35,0.402],[-1.202,-0.118]],"o":[[1.209,-0.653],[1.856,-0.318],[0,0]],"v":[[-5.029,1.092],[0.361,-0.773],[5.029,-0.939]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[10.029,6.091],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Middlefinger borderline","parent":12,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[47.644,40.112,0],"ix":2},"a":{"a":0,"k":[11.039,23.172,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-6.039,-18.172],[6.039,15.383],[5.809,18.172]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[11.039,23.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Middlefinger","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":8,"s":[-0.444]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":33,"s":[3]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":42,"s":[3]},{"t":53,"s":[2]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[54.275,33.441,0],"to":[0.36,0.296,0],"ti":[-0.36,-0.296,0]},{"t":53,"s":[56.437,35.219,0]}],"ix":2},"a":{"a":0,"k":[43.966,61.435,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.152,0.825],[0,0],[-1.889,-0.292],[0,0],[-0.437,-1.213],[0,0],[0,0],[0,0],[0.384,1.311]],"o":[[0.355,-1.93],[1.799,-0.732],[0,0],[1.194,0.486],[0,0],[0,0],[0,0],[0,0],[-1.119,-3.823]],"v":[[-21.002,-24.623],[-17.471,-28.721],[-10.288,-29.35],[8.492,-22.622],[11.054,-19.953],[26.717,23.56],[1.68,30.019],[-9.387,-10.569],[-20.37,-19.805]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[26.967,31.935],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"The rest of the fingers","parent":12,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":1,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":8,"s":[73.701,69.32,0],"to":[0.184,-0.181,0],"ti":[-0.184,0.181,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.001,"y":0.001},"t":33,"s":[74.804,68.233,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":42,"s":[74.804,68.233,0],"to":[-0.209,-0.072,0],"ti":[0.209,0.072,0]},{"t":53,"s":[73.549,67.801,0]}],"ix":2},"a":{"a":0,"k":[36.395,53.331,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.891,-16.107],[4.756,12.001],[5.891,16.107]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[35.131,34.554],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.143,-0.187]],"o":[[1.455,-0.491],[0,0]],"v":[[-2.695,0.932],[4.625,0.167]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.584999952129,0.758000033509,0.994000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[16.27,5.932],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.056,-2.299],[0,0],[0,0],[-0.969,-2.191],[0,0],[0,0]],"o":[[0,0],[2.499,0.396],[0,0],[0,0],[2.339,0.524],[0,0],[0,0],[0,0]],"v":[[-27.145,-25.23],[-8.774,-22.326],[-3.083,-18.012],[0.666,-9.845],[9.149,-7.939],[14.408,-3.62],[28.044,30.018],[-19.321,15.889]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.395,26.387],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"The back of the hand","parent":15,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":8,"s":[0.556]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":33,"s":[-2.444]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":42,"s":[-2.444]},{"t":53,"s":[11]}],"ix":10},"p":{"a":0,"k":[51.974,15.78,0],"ix":2},"a":{"a":0,"k":[81.22,124.153,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[{"i":[[-1.98,-24.846],[39.311,2.495],[20.472,14.216],[0.733,15.236],[-1.016,7.951],[-3.849,8.116]],"o":[[3.301,41.419],[-24.875,-1.579],[-8.667,-6.018],[-0.374,-7.782],[1.692,-13.251],[15.593,-32.878]],"v":[[44.993,-22.559],[20.159,69.408],[-34.642,53.473],[-59.096,14.31],[-46.802,-5.223],[-37.957,-39.024]],"c":true}]},{"t":53,"s":[{"i":[[-1.98,-24.846],[35.147,-31.683],[20.472,14.216],[0.733,15.236],[-1.016,7.951],[-3.849,8.116]],"o":[[3.301,41.419],[-18.513,16.689],[-8.667,-6.018],[-0.374,-7.782],[1.692,-13.251],[15.593,-32.878]],"v":[[44.993,-22.558],[20.159,69.408],[-34.642,53.474],[-59.096,14.309],[-46.802,-5.223],[-37.957,-39.024]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.72,72.153],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Wrist","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-41]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.001],"y":[0]},"t":33,"s":[-46]},{"i":{"x":[0.58],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":42,"s":[-46]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":53,"s":[-32]},{"t":95,"s":[-33]}],"ix":10},"p":{"a":0,"k":[506.22,352.332,0],"ix":2},"a":{"a":0,"k":[104.97,71.418,0],"ix":1},"s":{"a":0,"k":[113,113,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-78.139,-22.213],[-39.905,50.225],[63.198,35.401],[-4.41,-35.737]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[84.471,35.918],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":1,"nm":"White Solid 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[108.438,441.5,0],"ix":2},"a":{"a":0,"k":[222.5,222.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[485.469,115],[199.748,115.11],[200.158,191.289],[485.879,191.18]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":445,"sh":445,"sc":"#ffffff","ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":1,"nm":"Pale Royal Blue Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.125,255.5,0],"ix":2},"a":{"a":0,"k":[222.5,222.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[462.902,295],[194.875,295],[194.875,311.615],[462.902,311.615]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":445,"sh":445,"sc":"#f0f2f3","ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"swipe up motion Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[56]},{"t":71,"s":[0]}],"ix":11},"r":{"a":0,"k":12.289,"ix":10},"p":{"a":0,"k":[237.959,263.992,0],"ix":2},"a":{"a":0,"k":[12.203,31.503,0],"ix":1},"s":{"a":0,"k":[130.331,174.152,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0,0],[1.142,-3.785],[-2.541,-6.81],[-1.236,2.329],[0,0]],"o":[[0,0],[-0.314,1.042],[0,0],[0.875,-1.65],[0,0]],"v":[[2.369,24.051],[1.03,25.585],[2.497,31.504],[5.706,24.823],[5.913,24.523]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[{"i":[[0,0],[-0.578,-3.911],[-2.541,-6.81],[-1.236,2.329],[0,0]],"o":[[0,0],[1.341,9.077],[0,0],[0.875,-1.65],[0,0]],"v":[[-0.162,15.354],[-1.502,16.889],[2.497,31.504],[3.174,16.126],[3.381,15.827]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":46,"s":[{"i":[[0,0],[-1.265,-7.619],[-3.235,-9.194],[-3.56,10.092],[0,0]],"o":[[0,0],[1.503,9.052],[0,0],[2.294,-6.503],[0,0]],"v":[[-2.554,-7.028],[-3.478,9.425],[2.497,31.504],[4.993,3.489],[8.894,-6.375]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[{"i":[[0,0],[0.642,-11.622],[-4.515,-10.895],[-9.671,21.152],[0,0]],"o":[[0,0],[-1.038,18.79],[0,0],[2.867,-6.272],[0,0]],"v":[[2.888,-24.076],[-4.53,-7.006],[2.497,31.504],[8.149,-6.575],[14.747,-18.642]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[{"i":[[0,0],[1.068,-19.165],[-4.114,-8.169],[-9.551,21.207],[0,0]],"o":[[0,0],[-1.122,20.132],[0,0],[6.448,-14.317],[0,0]],"v":[[13.143,-49.549],[-4.506,-7.597],[2.497,31.504],[8.149,-6.575],[30.26,-39.536]],"c":true}]},{"t":54,"s":[{"i":[[0,0],[1.068,-19.165],[-4.114,-8.169],[-9.551,21.207],[0,0]],"o":[[0,0],[-1.122,20.132],[0,0],[6.448,-14.317],[0,0]],"v":[[13.143,-49.549],[-4.506,-7.597],[2.497,31.504],[8.149,-6.575],[30.26,-39.536]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.810000011968,0.890999947342,0.998000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.203,31.504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":43,"op":609,"st":9,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 3","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-41.948,-71.533,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16.24,16.24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.925490255917,0.772549079446,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.5,80.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":58,"op":600,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":3,"nm":"Yellow Icon 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[258.178,199.485,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[279.678,241.36,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[279.116,257.262,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[278.538,272.393,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63,"s":[273.448,307.533,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68,"s":[273.448,303.033,0],"to":[0,0,0],"ti":[0,0,0]},{"t":599,"s":[273.198,303.533,0]}],"ix":2},"a":{"a":0,"k":[9,9,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":58,"s":[379,379,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":63.047,"s":[100,100,100]},{"t":68,"s":[100,100,100]}],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[1,0.925490260124,0.77254909277,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]}],"ip":58,"op":600,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Hotseat","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":42,"s":[224.598,341.088,0],"to":[0,-6.333,0],"ti":[0,6.333,0]},{"t":59,"s":[224.598,303.088,0]}],"ix":2},"a":{"a":0,"k":[66.428,11.692,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.952,0],[0.001,-7.953],[7.952,0],[0.001,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.855000035903,0.842999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.928,11.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.952,0],[0,-7.953],[7.952,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215695858,0.913725495338,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.959,11.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.953,0],[0,-7.953],[7.953,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.776000019148,0.929000016755,0.847000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.991,11.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.393],[-4.392,0],[0,-4.393],[4.392,0]],"o":[[0,-4.393],[4.392,0],[0,4.393],[-4.392,0]],"v":[[-7.953,0],[0,-7.953],[7.953,0],[0,7.953]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819999964097,0.902000038297,0.991999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.022,11.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.318,0],[0,0],[0,6.318],[0,0],[-6.318,0],[0,0],[0,-6.319],[0,0]],"o":[[0,0],[-6.318,0],[0,0],[0,-6.319],[0,0],[6.318,0],[0,0],[0,6.318]],"v":[[54.738,11.442],[-54.738,11.442],[-66.178,0.001],[-66.178,-0.001],[-54.738,-11.442],[54.738,-11.442],[66.178,-0.001],[66.178,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[66.428,11.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":593,"st":-7,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Device Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[223.598,222.107,0],"ix":2},"a":{"a":0,"k":[160.405,112.057,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.151,-0.006],[0,0],[0,2.349],[0,0],[0,0],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,0],[0,0],[0,2.349]],"v":[[149.75,5.301],[-149.969,5.348],[-154.17,1.282],[-154.17,-4.521],[154.128,-4.749],[154.128,1.054]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.405,212.53],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.523,0],[0,0],[0,-5.522],[0,0],[-5.523,0],[0,0],[0,5.523],[0,0]],"o":[[0,0],[-5.523,0],[0,0],[0,5.523],[0,0],[5.523,0],[0,0],[0,-5.522]],"v":[[150.155,-111.807],[-150.155,-111.807],[-160.155,-101.807],[-160.155,101.807],[-150.155,111.807],[150.155,111.807],[160.155,101.807],[160.155,-101.807]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-2.206],[0,0],[2.206,0],[0,0],[0,2.206],[0,0],[-1.25,0]],"o":[[2.206,0],[0,0],[0,2.206],[0,0],[-2.206,0],[0,0],[0,-0.956],[0,0]],"v":[[150.155,-105.807],[154.155,-101.807],[154.155,101.807],[150.155,105.807],[-150.155,105.807],[-154.155,101.807],[-154.155,-101.807],[-150.155,-105.807]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.941000007181,0.948999980852,0.952999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.405,112.057],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":6,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.523,0],[0,0],[0,-5.522],[0,0],[-5.523,0],[0,0],[0,5.523],[0,0]],"o":[[0,0],[-5.523,0],[0,0],[0,5.523],[0,0],[5.523,0],[0,0],[0,-5.522]],"v":[[150.155,-111.807],[-150.155,-111.807],[-160.155,-101.807],[-160.155,101.807],[-150.155,111.807],[150.155,111.807],[160.155,101.807],[160.155,-101.807]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-4.411],[0,0],[4.411,0],[0,0],[0,4.411],[0,0],[-4.411,0]],"o":[[4.411,0],[0,0],[0,4.411],[0,0],[-4.411,0],[0,0],[0,-4.411],[0,0]],"v":[[150.155,-109.807],[158.155,-101.807],[158.155,101.807],[150.155,109.807],[-150.155,109.807],[-158.155,101.807],[-158.155,-101.807],[-150.155,-109.807]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.859000052658,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.405,112.057],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":6,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[154,103],[-154,103]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.755,110.359],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Full window Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":56.857,"s":[100]},{"t":59,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.497,"y":0.54},"o":{"x":0.002,"y":0},"t":44,"s":[222.448,221.908,0],"to":[0.012,-0.121,0],"ti":[-22.405,-15.046,0]},{"i":{"x":0.681,"y":0.604},"o":{"x":0.34,"y":0.144},"t":54,"s":[264.671,192.146,0],"to":[9.009,6.05,0],"ti":[-0.781,-19.115,0]},{"i":{"x":0.764,"y":1},"o":{"x":0.405,"y":0.51},"t":58,"s":[277.881,239.621,0],"to":[1.27,31.072,0],"ti":[0,0,0]},{"t":63,"s":[273.448,301.533,0]}],"ix":2},"a":{"a":0,"k":[154.23,106.217,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.999,0.999,0.999],"y":[1,1,1]},"o":{"x":[0.42,0.42,0.42],"y":[0,0,0]},"t":44,"s":[100.5,100.5,100]},{"t":59,"s":[18,18,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.292,30.5],[66.293,30.5],[68.293,28.5],[68.293,-28.5],[66.293,-30.5],[-66.292,-30.5],[-68.292,-28.5],[-68.292,28.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.862999949736,0.922000002394,0.866999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.905,106.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.292,19.112],[66.293,19.112],[68.293,19.164],[68.293,-17.5],[66.293,-19.5],[-66.292,-19.5],[-68.292,-17.5],[-68.292,19.164]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.922000002394,0.913999968884,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[226.49,191.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.293,19.112],[66.293,19.112],[68.293,19.164],[68.293,-17.5],[66.293,-19.5],[-66.293,-19.5],[-68.293,-17.5],[-68.293,19.164]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964999988032,0.952999997606,0.819999964097,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.49,191.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-63.5,6.5],[63.5,6.5],[63.5,-6.5],[-63.5,-6.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.697,154.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.104],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.104],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-66.293,30.5],[66.293,30.5],[68.293,28.5],[68.293,-28.5],[66.293,-30.5],[-66.293,-30.5],[-68.293,-28.5],[-68.293,28.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.922000002394,0.913999968884,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.49,106.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.105],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.105],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-61.5,6.5],[61.5,6.5],[63.5,4.5],[63.5,-4.5],[61.5,-6.5],[-61.5,-6.5],[-63.5,-4.5],[-63.5,4.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.697,58.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,0],[0,1.104],[0,0],[1.104,0],[0,0],[0,-1.105],[0,0]],"o":[[0,0],[1.104,0],[0,0],[0,-1.105],[0,0],[-1.104,0],[0,0],[0,1.104]],"v":[[-17.5,6.5],[17.5,6.5],[19.5,4.5],[19.5,-4.5],[17.5,-6.5],[-17.5,-6.5],[-19.5,-4.5],[-19.5,4.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964999988032,0.862999949736,0.528999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.697,34.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.349,0],[0,0],[0,2.348],[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0],[2.349,0],[0,0],[0,2.348]],"v":[[149.751,105.6],[-149.751,105.6],[-154.002,101.348],[-154.002,-101.347],[-149.751,-105.6],[149.751,-105.6],[154.002,-101.347],[154.002,101.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.252,105.85],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Launcher","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[223.503,222.229,0],"ix":2},"a":{"a":0,"k":[154.253,105.85,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,153.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.59],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.59],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,120.029],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":4,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":4,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":4,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.92199999094,0.929000020027,0.940999984741,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":4,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":4,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,87.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":4,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[254.387,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":4,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0,-8.311],[8.31,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.292,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":4,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.31,0],[0.001,-8.311],[8.311,0],[0.001,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.197,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":4,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.103,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":4,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.589],[-4.59,0],[0,-4.59],[4.589,0]],"o":[[0,-4.59],[4.589,0],[0,4.589],[-4.59,0]],"v":[[-8.311,0],[0,-8.311],[8.311,0],[0,8.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.008,54.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":4,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.59,0],[0,0],[0,3.59],[3.59,0],[0,0],[0,-3.59]],"o":[[0,0],[3.59,0],[0,-3.59],[0,0],[-3.59,0],[0,3.59]],"v":[[-74,6.5],[74,6.5],[80.5,0],[74,-6.5],[-74,-6.5],[-80.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.929000016755,0.941000007181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.535,17.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":4,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.349,0],[0,0],[0,2.348],[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0]],"o":[[0,0],[-2.349,0],[0,0],[0,-2.348],[0,0],[2.349,0],[0,0],[0,2.348]],"v":[[149.751,105.6],[-149.751,105.6],[-154.002,101.348],[-154.002,-101.347],[-149.751,-105.6],[149.751,-105.6],[154.002,-101.347],[154.002,101.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.732999973671,0.74900004069,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.252,105.85],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":4,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}],"markers":[{"tm":8,"cm":"0","dr":0},{"tm":33,"cm":"1","dr":0},{"tm":42,"cm":"2","dr":0},{"tm":45,"cm":"*\r\r","dr":0},{"tm":53,"cm":"3","dr":0},{"tm":59,"cm":"**\r","dr":0},{"tm":120,"cm":"6","dr":0},{"tm":129,"cm":"7","dr":0}]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/heart_preloader-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/heart_preloader-expected.png
deleted file mode 100755
index 90a6d5b..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/heart_preloader-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/heart_preloader.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/heart_preloader.json
deleted file mode 100755
index 005043c..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/heart_preloader.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.20","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":30,"w":300,"h":300,"nm":"All Preloaders","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[52.5,52.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":0,"k":{"i":[[-0.29,-1.59],[0,0],[0.05,-0.31],[2.46,-4.273],[2.662,-2.965],[3.911,-3.417],[3.76,-2.82],[5.1,-3.65],[0.348,0.308],[4.37,3.33],[4.44,3.78],[4.382,5.881],[1.126,5.435],[0.23,1.22],[0,0],[-0.06,0.26],[-0.63,2],[-6.073,3.37],[-6.437,-1.191],[-4.197,-4.783],[-0.147,-0.317],[-0.85,0.79],[-10.845,-9.997],[-1.314,-5.331]],"o":[[0,0],[-0.07,0.3],[-0.629,4.89],[-2.075,3.401],[-3.414,3.914],[-3.59,3.12],[-5,3.76],[-0.348,0.308],[-4.49,-3.16],[-4.6,-3.51],[-5.586,-4.752],[-3.326,-4.444],[-0.35,-1.28],[0,0],[0.06,-0.26],[0.44,-2],[2.11,-6.618],[5.653,-3.301],[6.278,1.037],[0.206,0.282],[1.09,-1.09],[10.777,-10.07],[4.064,3.691],[0.44,1.53]],"v":[[50.5,-15.281],[50.5,-10.811],[50.3,-9.891],[45.62,3.989],[38.5,13.559],[27.5,24.569],[16.5,33.569],[1.2,44.509],[-0.02,44.509],[-13.49,34.999],[-26.93,23.999],[-41.93,7.999],[-48.69,-7.001],[-49.5,-10.671],[-49.5,-15.281],[-49.33,-16.051],[-47.98,-22.051],[-35.24,-37.601],[-16.5,-40.871],[-0.3,-31.871],[0.23,-30.971],[2.98,-33.691],[41.32,-33.821],[49.57,-19.981]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[126.336,126.336],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":2,"k":{"a":0,"k":[0,1,0,0.2235294117647059,1,1,0.6980392156862745,0.5333333333333333],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[100,0],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.207,-0.145],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.088,83.088],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"5_white","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,150,0],"ix":2},"a":{"a":0,"k":[52.5,52.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[80,84.211,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":5,"s":[90,94.737,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":9,"s":[100,105.263,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":13,"s":[125,131.579,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":15,"s":[130,136.842,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":17,"s":[125,131.579,100]},{"t":29,"s":[80,84.211,100]}],"ix":6}},"ao":0,"w":105,"h":105,"ip":0,"op":30,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/ripple_loading_animation-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/ripple_loading_animation-expected.png
deleted file mode 100755
index 9b4a63e..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/ripple_loading_animation-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/ripple_loading_animation.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/ripple_loading_animation.json
deleted file mode 100755
index 1935a03..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/ripple_loading_animation.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"4.10.1","fr":60,"ip":0,"op":120,"w":800,"h":800,"nm":"loading_animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":23,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":34,"s":[100],"e":[20]},{"t":69}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0_1_0p333_0","0_1_0p333_0"],"t":23,"s":[400,400],"e":[440,440]},{"i":{"x":[0.009,0.009],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p009_1_0p333_0","0p009_1_0p333_0"],"t":34,"s":[440,440],"e":[400,400]},{"t":59}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":34,"s":[10],"e":[5]},{"t":59}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":16,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":27,"s":[100],"e":[20]},{"t":62}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":16,"s":[320,320],"e":[360,360]},{"i":{"x":[0.025,0.025],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p025_1_0p333_0","0p025_1_0p333_0"],"t":27,"s":[360,360],"e":[320,320]},{"t":52}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":27,"s":[10],"e":[5]},{"t":52}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":9,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":20,"s":[100],"e":[20]},{"t":55}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":9,"s":[240,240],"e":[280,280]},{"i":{"x":[0.051,0.051],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p051_1_0p333_0","0p051_1_0p333_0"],"t":20,"s":[280,280],"e":[240,240]},{"t":45}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":9,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[10],"e":[5]},{"t":45}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":2,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":13,"s":[100],"e":[20]},{"t":48}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":2,"s":[160,160],"e":[200,200]},{"i":{"x":[0.034,0.034],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p034_1_0p333_0","0p034_1_0p333_0"],"t":13,"s":[200,200],"e":[160,160]},{"t":38}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13,"s":[10],"e":[5]},{"t":38}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[20],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":11,"s":[100],"e":[20]},{"t":46}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[80,80],"e":[120,120]},{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0_1_0p333_0","0_1_0p333_0"],"t":11,"s":[120,120],"e":[80,80]},{"t":36}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[5],"e":[10]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11,"s":[10],"e":[5]},{"t":35}],"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0.627,1,0.5,0.496,0.314,1,1,0.992,0,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-3d-2planes-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-3d-2planes-expected.png
deleted file mode 100755
index 808ffed..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-3d-2planes-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-3d-2planes.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-3d-2planes.json
deleted file mode 100755
index 997ee23..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-3d-2planes.json
+++ /dev/null
@@ -1,990 +0,0 @@
-{
-  "assets": [
-    {
-      "id": "comp_0",
-      "layers": [
-        {
-          "ao": 0,
-          "bm": 0,
-          "ddd": 0,
-          "ind": 1,
-          "ip": 0,
-          "ks": {
-            "a": {
-              "a": 0,
-              "ix": 1,
-              "k": [
-                0,
-                0,
-                0
-              ]
-            },
-            "o": {
-              "a": 0,
-              "ix": 11,
-              "k": 35
-            },
-            "p": {
-              "a": 0,
-              "ix": 2,
-              "k": [
-                50,
-                50,
-                0
-              ]
-            },
-            "r": {
-              "a": 0,
-              "ix": 10,
-              "k": 0
-            },
-            "s": {
-              "a": 0,
-              "ix": 6,
-              "k": [
-                100,
-                100,
-                100
-              ]
-            }
-          },
-          "nm": "Shape Layer 1",
-          "op": 1203,
-          "shapes": [
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 6",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      -20,
-                      -20
-                    ],
-                    "t": 450,
-                    "ti": [
-                      0,
-                      -3.333
-                    ],
-                    "to": [
-                      0,
-                      3.333
-                    ]
-                  },
-                  {
-                    "s": [
-                      -20,
-                      0
-                    ],
-                    "t": 570
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 4",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      0,
-                      -20
-                    ],
-                    "t": 600,
-                    "ti": [
-                      3.333,
-                      0
-                    ],
-                    "to": [
-                      -3.333,
-                      0
-                    ]
-                  },
-                  {
-                    "s": [
-                      -20,
-                      -20
-                    ],
-                    "t": 720
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 5",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      20,
-                      -20
-                    ],
-                    "t": 750,
-                    "ti": [
-                      3.333,
-                      0
-                    ],
-                    "to": [
-                      -3.333,
-                      0
-                    ]
-                  },
-                  {
-                    "s": [
-                      0,
-                      -20
-                    ],
-                    "t": 870
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 3",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      -20,
-                      0
-                    ],
-                    "t": 300,
-                    "ti": [
-                      -3.333,
-                      0
-                    ],
-                    "to": [
-                      3.333,
-                      0
-                    ]
-                  },
-                  {
-                    "s": [
-                      0,
-                      0
-                    ],
-                    "t": 420
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 1",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      0,
-                      0
-                    ],
-                    "t": 150,
-                    "ti": [
-                      0,
-                      -3.333
-                    ],
-                    "to": [
-                      0,
-                      3.333
-                    ]
-                  },
-                  {
-                    "s": [
-                      0,
-                      20
-                    ],
-                    "t": 270
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 2",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      20,
-                      0
-                    ],
-                    "t": 900,
-                    "ti": [
-                      0,
-                      3.333
-                    ],
-                    "to": [
-                      0,
-                      -3.333
-                    ]
-                  },
-                  {
-                    "s": [
-                      20,
-                      -20
-                    ],
-                    "t": 1020
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 8",
-              "p": {
-                "a": 0,
-                "ix": 3,
-                "k": [
-                  -20,
-                  20
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "d": 1,
-              "hd": false,
-              "mn": "ADBE Vector Shape - Rect",
-              "nm": "Rectangle Path 7",
-              "p": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      0,
-                      20
-                    ],
-                    "t": 0,
-                    "ti": [
-                      -3.333,
-                      0
-                    ],
-                    "to": [
-                      3.333,
-                      0
-                    ]
-                  },
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      20,
-                      20
-                    ],
-                    "t": 120,
-                    "ti": [
-                      0,
-                      0
-                    ],
-                    "to": [
-                      0,
-                      0
-                    ]
-                  },
-                  {
-                    "i": {
-                      "x": 0.833,
-                      "y": 0.833
-                    },
-                    "o": {
-                      "x": 0.167,
-                      "y": 0.167
-                    },
-                    "s": [
-                      20,
-                      20
-                    ],
-                    "t": 1050,
-                    "ti": [
-                      0,
-                      3.333
-                    ],
-                    "to": [
-                      0,
-                      -3.333
-                    ]
-                  },
-                  {
-                    "s": [
-                      20,
-                      0
-                    ],
-                    "t": 1170
-                  }
-                ]
-              },
-              "r": {
-                "a": 0,
-                "ix": 4,
-                "k": 0
-              },
-              "s": {
-                "a": 0,
-                "ix": 2,
-                "k": [
-                  16,
-                  16
-                ]
-              },
-              "ty": "rc"
-            },
-            {
-              "bm": 0,
-              "c": {
-                "a": 0,
-                "ix": 4,
-                "k": [
-                  0,
-                  1,
-                  0.263311892748,
-                  1
-                ]
-              },
-              "hd": false,
-              "mn": "ADBE Vector Graphic - Fill",
-              "nm": "Fill 1",
-              "o": {
-                "a": 0,
-                "ix": 5,
-                "k": 100
-              },
-              "r": 1,
-              "ty": "fl"
-            }
-          ],
-          "sr": 1,
-          "st": 0,
-          "ty": 4
-        }
-      ]
-    }
-  ],
-  "ddd": 1,
-  "fr": 60,
-  "h": 100,
-  "ip": 0,
-  "layers": [
-    {
-      "bm": 0,
-      "ddd": 0,
-      "ind": 1,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            50,
-            50,
-            0
-          ]
-        },
-        "or": {
-          "a": 0,
-          "ix": 7,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "p": {
-          "a": 1,
-          "ix": 2,
-          "k": [
-            {
-              "i": {
-                "x": 0.833,
-                "y": 0.833
-              },
-              "o": {
-                "x": 0.167,
-                "y": 0.167
-              },
-              "s": [
-                50,
-                50,
-                -200
-              ],
-              "t": 0,
-              "ti": [
-                0,
-                0,
-                0
-              ],
-              "to": [
-                -25,
-                41.667,
-                0
-              ]
-            },
-            {
-              "i": {
-                "x": 0.833,
-                "y": 0.833
-              },
-              "o": {
-                "x": 0.167,
-                "y": 0.167
-              },
-              "s": [
-                -100,
-                300,
-                -200
-              ],
-              "t": 360,
-              "ti": [
-                -41.21,
-                68.683,
-                0
-              ],
-              "to": [
-                0,
-                0,
-                0
-              ]
-            },
-            {
-              "i": {
-                "x": 0.833,
-                "y": 0.833
-              },
-              "o": {
-                "x": 0.167,
-                "y": 0.167
-              },
-              "s": [
-                200,
-                300,
-                -200
-              ],
-              "t": 840,
-              "ti": [
-                -10.083,
-                16.805,
-                0
-              ],
-              "to": [
-                27.854,
-                -46.424,
-                0
-              ]
-            },
-            {
-              "s": [
-                50,
-                50,
-                -200
-              ],
-              "t": 1200
-            }
-          ]
-        },
-        "rx": {
-          "a": 0,
-          "ix": 8,
-          "k": 0
-        },
-        "ry": {
-          "a": 0,
-          "ix": 9,
-          "k": 0
-        },
-        "rz": {
-          "a": 1,
-          "ix": 10,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "s": [
-                0
-              ],
-              "t": 0
-            },
-            {
-              "s": [
-                360
-              ],
-              "t": 1200
-            }
-          ]
-        }
-      },
-      "nm": "Camera 1",
-      "op": 1201,
-      "pe": {
-        "a": 0,
-        "ix": 1,
-        "k": 269
-      },
-      "sr": 1,
-      "st": 0,
-      "ty": 13
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 1,
-      "h": 100,
-      "ind": 2,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            50,
-            50,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "or": {
-          "a": 0,
-          "ix": 7,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            50,
-            50,
-            20
-          ]
-        },
-        "rx": {
-          "a": 0,
-          "ix": 8,
-          "k": 0
-        },
-        "ry": {
-          "a": 0,
-          "ix": 9,
-          "k": 0
-        },
-        "rz": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "bottom",
-      "op": 1201,
-      "refId": "comp_0",
-      "sr": 1,
-      "st": 0,
-      "tm": {
-        "a": 1,
-        "ix": 2,
-        "k": [
-          {
-            "i": {
-              "x": [
-                0.833
-              ],
-              "y": [
-                0.833
-              ]
-            },
-            "o": {
-              "x": [
-                0.167
-              ],
-              "y": [
-                0.167
-              ]
-            },
-            "s": [
-              20
-            ],
-            "t": 0
-          },
-          {
-            "i": {
-              "x": [
-                0.833
-              ],
-              "y": [
-                0.833
-              ]
-            },
-            "o": {
-              "x": [
-                0.167
-              ],
-              "y": [
-                0.167
-              ]
-            },
-            "s": [
-              0
-            ],
-            "t": 1200
-          },
-          {
-            "s": [
-              20.017
-            ],
-            "t": 1201
-          }
-        ]
-      },
-      "ty": 0,
-      "w": 100
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 1,
-      "h": 100,
-      "ind": 4,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            50,
-            50,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "or": {
-          "a": 0,
-          "ix": 7,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            50,
-            50,
-            -20
-          ]
-        },
-        "rx": {
-          "a": 0,
-          "ix": 8,
-          "k": 0
-        },
-        "ry": {
-          "a": 0,
-          "ix": 9,
-          "k": 0
-        },
-        "rz": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "top",
-      "op": 1201,
-      "refId": "comp_0",
-      "sr": 1,
-      "st": 0,
-      "ty": 0,
-      "w": 100
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 5,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            50,
-            50,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            50,
-            50,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "Black Solid 1",
-      "op": 1201,
-      "sc": "#000000",
-      "sh": 100,
-      "sr": 1,
-      "st": 0,
-      "sw": 100,
-      "ty": 1
-    }
-  ],
-  "markers": [],
-  "nm": "cube",
-  "op": 1201,
-  "v": "5.5.5",
-  "w": 100
-}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-effects-tranform-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-effects-tranform-expected.png
deleted file mode 100755
index ef35678..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-effects-tranform-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-effects-tranform.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-effects-tranform.json
deleted file mode 100755
index 4df1b5c..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-effects-tranform.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.2","fr":60,"ip":0,"op":900,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[{"id":"image_0","w":150,"h":150,"u":"images/","p":"triangle.png","e":0},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75,75,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":3,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":25,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":50,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":900,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":899,"s":[720]}],"ix":10},"p":{"a":0,"k":[115,115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[150,150,100],"ix":6}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":191.25,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":30,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"shapes":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":3,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":25,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":50,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":900,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"triangle","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":899,"s":[720]}],"ix":10},"p":{"a":0,"k":[385,115,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[150,150,100],"ix":6}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":191.25,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":30,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"w":150,"h":150,"ip":0,"op":900,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"triangle (0-00-00-00).png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":899,"s":[720]}],"ix":10},"p":{"a":0,"k":[385,385,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[150,150,100],"ix":6}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":191.25,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":30,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]}],"ip":0,"op":900,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":1,"nm":"White Solid 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#ffffff","ip":0,"op":900,"st":0,"bm":0}],"markers":[]}
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-fill-effect-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-fill-effect-expected.png
deleted file mode 100755
index 019a1a8..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-fill-effect-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-fill-effect.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-fill-effect.json
deleted file mode 100755
index 8ae8849..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-fill-effect.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.10","fr":60,"ip":0,"op":601,"w":500,"h":500,"nm":"fill","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[100,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.250980407,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":50,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":162,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.250980407,0,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[720]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[175,175],"ix":2},"p":{"a":0,"k":[-90,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.250980407,0,1,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[-360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":601,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"precomp","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1,0,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0,1,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":406,"s":[0,0,1,1]},{"t":600,"s":[1,0,0,1]}],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0.5]},{"t":600,"s":[1]}],"ix":7}}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"White Solid 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#ffffff","ip":0,"op":601,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-opacity-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-opacity-expected.png
deleted file mode 100755
index c3ad8d5..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-opacity-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-opacity.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-opacity.json
deleted file mode 100755
index db0057b..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-opacity.json
+++ /dev/null
@@ -1,585 +0,0 @@
-{
-  "assets": [],
-  "ddd": 0,
-  "fr": 60,
-  "h": 500,
-  "ip": 0,
-  "layers": [
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 1,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            250,
-            75,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "Shape Layer 1",
-      "op": 301,
-      "shapes": [
-        {
-          "d": 1,
-          "hd": false,
-          "mn": "ADBE Vector Shape - Rect",
-          "nm": "Rectangle Path 1",
-          "p": {
-            "a": 0,
-            "ix": 3,
-            "k": [
-              0,
-              0
-            ]
-          },
-          "r": {
-            "a": 0,
-            "ix": 4,
-            "k": 0
-          },
-          "s": {
-            "a": 0,
-            "ix": 2,
-            "k": [
-              400,
-              100
-            ]
-          },
-          "ty": "rc"
-        },
-        {
-          "bm": 0,
-          "e": {
-            "a": 0,
-            "ix": 6,
-            "k": [
-              200,
-              0
-            ]
-          },
-          "g": {
-            "k": {
-              "a": 0,
-              "ix": 9,
-              "k": [
-                0.50, 0, 1, 0,
-                0.50, 1, 0, 0,
-                0.00, 1,
-                0.25, 0,
-                0.50, 1,
-                0.75, 0,
-                1.00, 1
-              ]
-            },
-            "p": 2
-          },
-          "hd": false,
-          "mn": "ADBE Vector Graphic - G-Fill",
-          "nm": "Gradient Fill 1",
-          "o": {
-            "a": 0,
-            "ix": 10,
-            "k": 100
-          },
-          "r": 1,
-          "s": {
-            "a": 0,
-            "ix": 5,
-            "k": [
-              -200,
-              0
-            ]
-          },
-          "t": 1,
-          "ty": "gf"
-        }
-      ],
-      "sr": 1,
-      "st": 0,
-      "ty": 4
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 2,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            250,
-            190,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "Shape Layer 2",
-      "op": 301,
-      "shapes": [
-        {
-          "d": 1,
-          "hd": false,
-          "mn": "ADBE Vector Shape - Rect",
-          "nm": "Rectangle Path 1",
-          "p": {
-            "a": 0,
-            "ix": 3,
-            "k": [
-              0,
-              0
-            ]
-          },
-          "r": {
-            "a": 0,
-            "ix": 4,
-            "k": 0
-          },
-          "s": {
-            "a": 0,
-            "ix": 2,
-            "k": [
-              400,
-              100
-            ]
-          },
-          "ty": "rc"
-        },
-        {
-          "bm": 0,
-          "e": {
-            "a": 0,
-            "ix": 6,
-            "k": [
-              200,
-              0
-            ]
-          },
-          "g": {
-            "k": {
-              "a": 0,
-              "ix": 9,
-              "k": [
-                0.00, 0, 1, 0,
-                0.25, 1, 0, 0,
-                0.50, 0, 0, 1,
-                0.75, 1, 0, 0,
-                1.00, 0, 1, 0,
-
-                0.50, 0.35,
-                0.50, 1.00
-              ]
-            },
-            "p": 5
-          },
-          "hd": false,
-          "mn": "ADBE Vector Graphic - G-Fill",
-          "nm": "Gradient Fill 1",
-          "o": {
-            "a": 0,
-            "ix": 10,
-            "k": 100
-          },
-          "r": 1,
-          "s": {
-            "a": 0,
-            "ix": 5,
-            "k": [
-              -200,
-              0
-            ]
-          },
-          "t": 1,
-          "ty": "gf"
-        }
-      ],
-      "sr": 1,
-      "st": 0,
-      "ty": 4
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 3,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            250,
-            305,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "Shape Layer 3",
-      "op": 301,
-      "shapes": [
-        {
-          "d": 1,
-          "hd": false,
-          "mn": "ADBE Vector Shape - Rect",
-          "nm": "Rectangle Path 1",
-          "p": {
-            "a": 0,
-            "ix": 3,
-            "k": [
-              0,
-              0
-            ]
-          },
-          "r": {
-            "a": 0,
-            "ix": 4,
-            "k": 0
-          },
-          "s": {
-            "a": 0,
-            "ix": 2,
-            "k": [
-              400,
-              100
-            ]
-          },
-          "ty": "rc"
-        },
-        {
-          "bm": 0,
-          "e": {
-            "a": 0,
-            "ix": 6,
-            "k": [
-              200,
-              0
-            ]
-          },
-          "g": {
-            "k": {
-              "a": 0,
-              "ix": 9,
-              "k": [
-                0.00, 0, 1, 0,
-                0.25, 1, 0, 0,
-                0.50, 0, 0, 1,
-                0.75, 1, 0, 0,
-                1.00, 0, 1, 0,
-
-                0.25, 1,
-                0.37, 0,
-                0.50, 1,
-                0.62, 0,
-                0.75, 1
-              ]
-            },
-            "p": 5
-          },
-          "hd": false,
-          "mn": "ADBE Vector Graphic - G-Fill",
-          "nm": "Gradient Fill 1",
-          "o": {
-            "a": 0,
-            "ix": 10,
-            "k": 100
-          },
-          "r": 1,
-          "s": {
-            "a": 0,
-            "ix": 5,
-            "k": [
-              -200,
-              0
-            ]
-          },
-          "t": 1,
-          "ty": "gf"
-        }
-      ],
-      "sr": 1,
-      "st": 0,
-      "ty": 4
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 4,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            0,
-            0,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            250,
-            425,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "Shape Layer 4",
-      "op": 301,
-      "shapes": [
-        {
-          "d": 1,
-          "hd": false,
-          "mn": "ADBE Vector Shape - Rect",
-          "nm": "Rectangle Path 1",
-          "p": {
-            "a": 0,
-            "ix": 3,
-            "k": [
-              0,
-              0
-            ]
-          },
-          "r": {
-            "a": 0,
-            "ix": 4,
-            "k": 0
-          },
-          "s": {
-            "a": 0,
-            "ix": 2,
-            "k": [
-              400,
-              100
-            ]
-          },
-          "ty": "rc"
-        },
-        {
-          "bm": 0,
-          "e": {
-            "a": 0,
-            "ix": 6,
-            "k": [
-              200,
-              0
-            ]
-          },
-          "g": {
-            "k": {
-              "a": 0,
-              "ix": 9,
-              "k": [
-                0.25, 0, 1, 0,
-                0.37, 1, 0, 0,
-                0.50, 0, 0, 1,
-                0.62, 1, 0, 0,
-                0.75, 0, 1, 0,
-
-                0.00, 1,
-                0.25, 0,
-                0.50, 1,
-                0.75, 0,
-                1.00, 1
-              ]
-            },
-            "p": 5
-          },
-          "hd": false,
-          "mn": "ADBE Vector Graphic - G-Fill",
-          "nm": "Gradient Fill 1",
-          "o": {
-            "a": 0,
-            "ix": 10,
-            "k": 100
-          },
-          "r": 1,
-          "s": {
-            "a": 0,
-            "ix": 5,
-            "k": [
-              -200,
-              0
-            ]
-          },
-          "t": 1,
-          "ty": "gf"
-        }
-      ],
-      "sr": 1,
-      "st": 0,
-      "ty": 4
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 5,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            250,
-            250,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            250,
-            250,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "White Solid 1",
-      "op": 301,
-      "sc": "#ffffff",
-      "sh": 500,
-      "sr": 1,
-      "st": 0,
-      "sw": 500,
-      "ty": 1
-    }
-  ],
-  "markers": [],
-  "nm": "gradient opacity",
-  "op": 301,
-  "v": "5.5.5",
-  "w": 500
-}
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-ramp-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-ramp-expected.png
deleted file mode 100755
index 73ef3d0..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-ramp-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-ramp.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-ramp.json
deleted file mode 100755
index 536f6f5..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-gradient-ramp.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.0","fr":60,"ip":0,"op":300,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"solid-linear","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125,125,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Gradient Ramp","np":10,"mn":"ADBE Ramp","ix":1,"en":1,"ef":[{"ty":3,"nm":"Start of Ramp","mn":"ADBE Ramp-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50,50],"to":[16.667,0],"ti":[-16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[150,50],"to":[16.667,16.667],"ti":[16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[150,150],"to":[-16.667,16.667],"ti":[16.667,16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":225,"s":[50,150],"to":[-16.667,-16.667],"ti":[0,16.667]},{"t":299,"s":[50,50]}],"ix":1}},{"ty":2,"nm":"Start Color","mn":"ADBE Ramp-0002","ix":2,"v":{"a":0,"k":[1,0,0,1],"ix":2}},{"ty":3,"nm":"End of Ramp","mn":"ADBE Ramp-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[150,150],"to":[-16.667,0],"ti":[16.667,16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[50,150],"to":[-16.667,-16.667],"ti":[-16.667,16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[50,50],"to":[16.667,-16.667],"ti":[-16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":225,"s":[150,50],"to":[16.667,16.667],"ti":[0,-16.667]},{"t":299,"s":[150,150]}],"ix":3}},{"ty":2,"nm":"End Color","mn":"ADBE Ramp-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1,1,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0,0,1,1]},{"t":299,"s":[1,1,0,1]}],"ix":4}},{"ty":7,"nm":"Ramp Shape","mn":"ADBE Ramp-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Ramp Scatter","mn":"ADBE Ramp-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Blend With Original","mn":"ADBE Ramp-0007","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":6,"nm":"","mn":"ADBE Ramp-0008","ix":8,"v":0}]}],"sw":200,"sh":200,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"solid-radial","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,125,0],"ix":2},"a":{"a":0,"k":[100,100,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Gradient Ramp","np":10,"mn":"ADBE Ramp","ix":1,"en":1,"ef":[{"ty":3,"nm":"Start of Ramp","mn":"ADBE Ramp-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50,50],"to":[16.667,0],"ti":[-16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[150,50],"to":[16.667,16.667],"ti":[16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[150,150],"to":[-16.667,16.667],"ti":[16.667,16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":225,"s":[50,150],"to":[-16.667,-16.667],"ti":[0,16.667]},{"t":299,"s":[50,50]}],"ix":1}},{"ty":2,"nm":"Start Color","mn":"ADBE Ramp-0002","ix":2,"v":{"a":0,"k":[1,0,0,1],"ix":2}},{"ty":3,"nm":"End of Ramp","mn":"ADBE Ramp-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[150,150],"to":[-16.667,0],"ti":[16.667,16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[50,150],"to":[-16.667,-16.667],"ti":[-16.667,16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[50,50],"to":[16.667,-16.667],"ti":[-16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":225,"s":[150,50],"to":[16.667,16.667],"ti":[0,-16.667]},{"t":299,"s":[150,150]}],"ix":3}},{"ty":2,"nm":"End Color","mn":"ADBE Ramp-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1,1,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0,0,1,1]},{"t":299,"s":[1,1,0,1]}],"ix":4}},{"ty":7,"nm":"Ramp Shape","mn":"ADBE Ramp-0005","ix":5,"v":{"a":0,"k":2,"ix":5}},{"ty":0,"nm":"Ramp Scatter","mn":"ADBE Ramp-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Blend With Original","mn":"ADBE Ramp-0007","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":6,"nm":"","mn":"ADBE Ramp-0008","ix":8,"v":0}]}],"sw":200,"sh":200,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"shapes-linear","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75,375,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Gradient Ramp","np":10,"mn":"ADBE Ramp","ix":1,"en":1,"ef":[{"ty":3,"nm":"Start of Ramp","mn":"ADBE Ramp-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[25,375],"to":[37.5,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[250,375],"to":[0,0],"ti":[37.5,0]},{"t":299,"s":[25,375]}],"ix":1}},{"ty":2,"nm":"Start Color","mn":"ADBE Ramp-0002","ix":2,"v":{"a":0,"k":[1,0.291544109583,0.868933796883,1],"ix":2}},{"ty":3,"nm":"End of Ramp","mn":"ADBE Ramp-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[250,375],"to":[-37.5,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[25,375],"to":[0,0],"ti":[-37.5,0]},{"t":299,"s":[250,375]}],"ix":3}},{"ty":2,"nm":"End Color","mn":"ADBE Ramp-0004","ix":4,"v":{"a":0,"k":[0,0.996721804142,0,1],"ix":4}},{"ty":7,"nm":"Ramp Shape","mn":"ADBE Ramp-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Ramp Scatter","mn":"ADBE Ramp-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Blend With Original","mn":"ADBE Ramp-0007","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":6,"nm":"","mn":"ADBE Ramp-0008","ix":8,"v":0}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"d":1,"ty":"el","s":{"a":0,"k":[146,146],"ix":2},"p":{"a":0,"k":[89,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"shapes-radial","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[325,375,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Gradient Ramp","np":10,"mn":"ADBE Ramp","ix":1,"en":1,"ef":[{"ty":3,"nm":"Start of Ramp","mn":"ADBE Ramp-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[275,375],"to":[33.333,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[475,375],"to":[0,0],"ti":[33.333,0]},{"t":299,"s":[275,375]}],"ix":1}},{"ty":2,"nm":"Start Color","mn":"ADBE Ramp-0002","ix":2,"v":{"a":0,"k":[1,0.291544109583,0.868933796883,1],"ix":2}},{"ty":3,"nm":"End of Ramp","mn":"ADBE Ramp-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[475,375],"to":[-33.333,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[275,375],"to":[0,0],"ti":[-33.333,0]},{"t":299,"s":[475,375]}],"ix":3}},{"ty":2,"nm":"End Color","mn":"ADBE Ramp-0004","ix":4,"v":{"a":0,"k":[0,0.996721804142,0,1],"ix":4}},{"ty":7,"nm":"Ramp Shape","mn":"ADBE Ramp-0005","ix":5,"v":{"a":0,"k":2,"ix":5}},{"ty":0,"nm":"Ramp Scatter","mn":"ADBE Ramp-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Blend With Original","mn":"ADBE Ramp-0007","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":6,"nm":"","mn":"ADBE Ramp-0008","ix":8,"v":0}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"d":1,"ty":"el","s":{"a":0,"k":[146,146],"ix":2},"p":{"a":0,"k":[89,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-linear-wipe-effect-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-linear-wipe-effect-expected.png
deleted file mode 100755
index 7d4441f..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-linear-wipe-effect-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-linear-wipe-effect.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-linear-wipe-effect.json
deleted file mode 100755
index fef7610..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-linear-wipe-effect.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.2","fr":60,"ip":0,"op":300,"w":500,"h":500,"nm":"linear wipe","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,70,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":90,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"45","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,190,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":45,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"90","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,310,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":1,"nm":"135","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,430,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":-45,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":1,"nm":"180","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[370,70,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":-90,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":1,"nm":"225","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[370,190,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":-135,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":1,"nm":"270","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[370,310,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":-180,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":1,"nm":"315","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[370,430,0],"ix":2},"a":{"a":0,"k":[125,50,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Linear Wipe","np":5,"mn":"ADBE Linear Wipe","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Linear Wipe-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Wipe Angle","mn":"ADBE Linear Wipe-0002","ix":2,"v":{"a":0,"k":-225,"ix":2}},{"ty":0,"nm":"Feather","mn":"ADBE Linear Wipe-0003","ix":3,"v":{"a":0,"k":20,"ix":3}}]}],"sw":250,"sh":100,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":1,"nm":"Black Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#000000","ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-luma-matte-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-luma-matte-expected.png
deleted file mode 100755
index ad1b24f..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-luma-matte-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-luma-matte.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-luma-matte.json
deleted file mode 100755
index a8817fc..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-luma-matte.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.5","fr":60,"ip":0,"op":300,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":50,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":150,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":75,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[101,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[-360]}],"ix":6},"o":{"a":0,"k":75,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[-100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":6},"o":{"a":0,"k":75,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Green Solid 1","tt":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"Black Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#000000","ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-mask-feather-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-mask-feather-expected.png
deleted file mode 100755
index f5788d8..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-mask-feather-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-mask-feather.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-mask-feather.json
deleted file mode 100755
index 3ae2337..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-mask-feather.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.2","fr":60,"ip":0,"op":300,"w":500,"h":500,"nm":"Mask feather","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"feather 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[100,100,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[10,10],"ix":2},"nm":"Mask 1"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"feather 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[250,100,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[20,20],"ix":2},"nm":"Mask 1"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"feather 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[400,100,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[40,40],"ix":2},"nm":"Mask 1"},{"inv":false,"mode":"n","pt":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-58,332]],"c":false},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[0,0],"ix":2},"nm":"Mask 2"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":4,"ty":1,"nm":"feather 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[100,250,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[10,0],"ix":2},"nm":"Mask 1"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":5,"ty":1,"nm":"feather 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[20,0],"ix":2},"nm":"Mask 1"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":6,"ty":1,"nm":"feather 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[400,250,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[40,0],"ix":2},"nm":"Mask 1"},{"inv":false,"mode":"n","pt":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-58,332]],"c":false},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[0,0],"ix":2},"nm":"Mask 2"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":7,"ty":1,"nm":"feather 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[100,400,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[0,10],"ix":2},"nm":"Mask 1"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":8,"ty":1,"nm":"feather 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[250,400,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[0,20],"ix":2},"nm":"Mask 1"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":9,"ty":1,"nm":"feather 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":10},"p":{"a":0,"k":[400,400,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[75,0],[86.756,58.82],[146.329,51.824],[94.021,81.18],[119.084,135.676],[75,95],[30.916,135.676],[55.979,81.18],[3.671,51.824],[63.244,58.82]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[0,40],"ix":2},"nm":"Mask 1"},{"inv":false,"mode":"n","pt":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-58,332]],"c":false},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"f":{"a":0,"k":[0,0],"ix":2},"nm":"Mask 2"}],"sw":150,"sh":150,"sc":"#000000","ip":0,"op":300,"st":0,"cp":false,"bm":0},{"ddd":0,"ind":10,"ty":1,"nm":"White Solid 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#ffffff","ip":0,"op":300,"st":0,"cp":false,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-matte-blendmode-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-matte-blendmode-expected.png
deleted file mode 100755
index ac3da35..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-matte-blendmode-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-matte-blendmode.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-matte-blendmode.json
deleted file mode 100755
index 431fc7a..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-matte-blendmode.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.5","fr":60,"ip":0,"op":301,"w":500,"h":500,"nm":"matted-blendmode","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"mask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":50,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":162,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":300,"s":[120]}],"ix":6},"o":{"a":0,"k":75,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[100,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":300,"s":[-360]}],"ix":6},"o":{"a":0,"k":75,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Red Solid 1","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#ff0000","ip":0,"op":301,"st":0,"bm":1},{"ddd":0,"ind":3,"ty":1,"nm":"Green Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#00ff00","ip":0,"op":301,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-motiontile-effect-phase-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-motiontile-effect-phase-expected.png
deleted file mode 100755
index 0509c25..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-motiontile-effect-phase-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-motiontile-effect-phase.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-motiontile-effect-phase.json
deleted file mode 100755
index b58a999..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-motiontile-effect-phase.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.2","fr":60,"ip":0,"op":300,"w":500,"h":500,"nm":"phase","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[98,98,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Motion Tile","np":10,"mn":"ADBE Tile","ix":1,"en":1,"ef":[{"ty":3,"nm":"Tile Center","mn":"ADBE Tile-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[250,250],"to":[16.667,16.667],"ti":[-16.667,-16.667]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[350,350],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":195,"s":[350,350],"to":[-16.667,-16.667],"ti":[16.667,16.667]},{"t":299,"s":[250,250]}],"ix":1}},{"ty":0,"nm":"Tile Width","mn":"ADBE Tile-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[50]},{"t":299,"s":[100]}],"ix":2}},{"ty":0,"nm":"Tile Height","mn":"ADBE Tile-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[30]},{"t":299,"s":[100]}],"ix":3}},{"ty":0,"nm":"Output Width","mn":"ADBE Tile-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Output Height","mn":"ADBE Tile-0005","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":7,"nm":"Mirror Edges","mn":"ADBE Tile-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Phase","mn":"ADBE Tile-0007","ix":7,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[360]},{"t":255,"s":[720]}],"ix":7}},{"ty":7,"nm":"Horizontal Phase Shift","mn":"ADBE Tile-0008","ix":8,"v":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":150,"s":[1],"h":1}],"ix":8}}]}],"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,400],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-225,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,400],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[225,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[400,50],"ix":2},"p":{"a":0,"k":[0,-225],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0.930851697922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[400,50],"ix":2},"p":{"a":0,"k":[0,225],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Black Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[249,249,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":498,"sh":498,"sc":"#000000","ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-shift-channels-effect-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-shift-channels-effect-expected.png
deleted file mode 100755
index d60f105..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-shift-channels-effect-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-shift-channels-effect.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-shift-channels-effect.json
deleted file mode 100755
index a762f85..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-shift-channels-effect.json
+++ /dev/null
@@ -1,1254 +0,0 @@
-{
-  "assets": [
-    {
-      "id": "comp_0",
-      "layers": [
-        {
-          "ao": 0,
-          "bm": 0,
-          "ddd": 0,
-          "ind": 1,
-          "ip": 0,
-          "ks": {
-            "a": {
-              "a": 0,
-              "ix": 1,
-              "k": [
-                0,
-                0,
-                0
-              ]
-            },
-            "o": {
-              "a": 0,
-              "ix": 11,
-              "k": 100
-            },
-            "p": {
-              "a": 0,
-              "ix": 2,
-              "k": [
-                125,
-                125,
-                0
-              ]
-            },
-            "r": {
-              "a": 0,
-              "ix": 10,
-              "k": 0
-            },
-            "s": {
-              "a": 0,
-              "ix": 6,
-              "k": [
-                50,
-                50,
-                100
-              ]
-            }
-          },
-          "nm": "Shape Layer 1",
-          "op": 302.5,
-          "shapes": [
-            {
-              "bm": 0,
-              "cix": 2,
-              "hd": false,
-              "it": [
-                {
-                  "d": 1,
-                  "hd": false,
-                  "ir": {
-                    "a": 0,
-                    "ix": 6,
-                    "k": 35
-                  },
-                  "is": {
-                    "a": 0,
-                    "ix": 8,
-                    "k": 0
-                  },
-                  "ix": 1,
-                  "mn": "ADBE Vector Shape - Star",
-                  "nm": "Polystar Path 1",
-                  "or": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 100
-                  },
-                  "os": {
-                    "a": 0,
-                    "ix": 9,
-                    "k": 0
-                  },
-                  "p": {
-                    "a": 0,
-                    "ix": 4,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "pt": {
-                    "a": 0,
-                    "ix": 3,
-                    "k": 9
-                  },
-                  "r": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": 0
-                  },
-                  "sy": 1,
-                  "ty": "sr"
-                },
-                {
-                  "a": {
-                    "a": 0,
-                    "ix": 8,
-                    "k": 0
-                  },
-                  "bm": 0,
-                  "e": {
-                    "a": 0,
-                    "ix": 6,
-                    "k": [
-                      100,
-                      0
-                    ]
-                  },
-                  "g": {
-                    "k": {
-                      "a": 0,
-                      "ix": 9,
-                      "k": [
-                        0,
-                        0,
-                        0.5,
-                        1,
-                        1,
-                        1,
-                        0,
-                        0.5
-                      ]
-                    },
-                    "p": 2
-                  },
-                  "h": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 0
-                  },
-                  "hd": false,
-                  "mn": "ADBE Vector Graphic - G-Fill",
-                  "nm": "Gradient Fill 1",
-                  "o": {
-                    "a": 0,
-                    "ix": 10,
-                    "k": 100
-                  },
-                  "r": 1,
-                  "s": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "t": 2,
-                  "ty": "gf"
-                },
-                {
-                  "a": {
-                    "a": 0,
-                    "ix": 1,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "nm": "Transform",
-                  "o": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 75
-                  },
-                  "p": {
-                    "a": 0,
-                    "ix": 2,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "r": {
-                    "a": 1,
-                    "ix": 6,
-                    "k": [
-                      {
-                        "i": {
-                          "x": [
-                            0.833
-                          ],
-                          "y": [
-                            0.833
-                          ]
-                        },
-                        "o": {
-                          "x": [
-                            0.167
-                          ],
-                          "y": [
-                            0.167
-                          ]
-                        },
-                        "s": [
-                          0
-                        ],
-                        "t": 0
-                      },
-                      {
-                        "s": [
-                          80
-                        ],
-                        "t": 300
-                      }
-                    ]
-                  },
-                  "s": {
-                    "a": 0,
-                    "ix": 3,
-                    "k": [
-                      100,
-                      100
-                    ]
-                  },
-                  "sa": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": 0
-                  },
-                  "sk": {
-                    "a": 0,
-                    "ix": 4,
-                    "k": 0
-                  },
-                  "ty": "tr"
-                }
-              ],
-              "ix": 1,
-              "mn": "ADBE Vector Group",
-              "nm": "Group 1",
-              "np": 2,
-              "ty": "gr"
-            },
-            {
-              "bm": 0,
-              "cix": 2,
-              "hd": false,
-              "it": [
-                {
-                  "d": 1,
-                  "hd": false,
-                  "mn": "ADBE Vector Shape - Ellipse",
-                  "nm": "Ellipse Path 1",
-                  "p": {
-                    "a": 0,
-                    "ix": 3,
-                    "k": [
-                      -85,
-                      0
-                    ]
-                  },
-                  "s": {
-                    "a": 0,
-                    "ix": 2,
-                    "k": [
-                      150,
-                      150
-                    ]
-                  },
-                  "ty": "el"
-                },
-                {
-                  "a": {
-                    "a": 0,
-                    "ix": 8,
-                    "k": 0
-                  },
-                  "bm": 0,
-                  "e": {
-                    "a": 0,
-                    "ix": 6,
-                    "k": [
-                      -10,
-                      0
-                    ]
-                  },
-                  "g": {
-                    "k": {
-                      "a": 0,
-                      "ix": 9,
-                      "k": [
-                        0,
-                        0.5,
-                        1,
-                        0,
-                        1,
-                        0,
-                        0.5,
-                        1
-                      ]
-                    },
-                    "p": 2
-                  },
-                  "h": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 0
-                  },
-                  "hd": false,
-                  "mn": "ADBE Vector Graphic - G-Fill",
-                  "nm": "Gradient Fill 1",
-                  "o": {
-                    "a": 0,
-                    "ix": 10,
-                    "k": 100
-                  },
-                  "r": 1,
-                  "s": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": [
-                      -85,
-                      0
-                    ]
-                  },
-                  "t": 2,
-                  "ty": "gf"
-                },
-                {
-                  "a": {
-                    "a": 0,
-                    "ix": 1,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "nm": "Transform",
-                  "o": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 75
-                  },
-                  "p": {
-                    "a": 0,
-                    "ix": 2,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "r": {
-                    "a": 1,
-                    "ix": 6,
-                    "k": [
-                      {
-                        "i": {
-                          "x": [
-                            0.833
-                          ],
-                          "y": [
-                            0.833
-                          ]
-                        },
-                        "o": {
-                          "x": [
-                            0.167
-                          ],
-                          "y": [
-                            0.167
-                          ]
-                        },
-                        "s": [
-                          0
-                        ],
-                        "t": 0
-                      },
-                      {
-                        "s": [
-                          360
-                        ],
-                        "t": 300
-                      }
-                    ]
-                  },
-                  "s": {
-                    "a": 0,
-                    "ix": 3,
-                    "k": [
-                      100,
-                      100
-                    ]
-                  },
-                  "sa": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": 0
-                  },
-                  "sk": {
-                    "a": 0,
-                    "ix": 4,
-                    "k": 0
-                  },
-                  "ty": "tr"
-                }
-              ],
-              "ix": 2,
-              "mn": "ADBE Vector Group",
-              "nm": "Group 2",
-              "np": 2,
-              "ty": "gr"
-            },
-            {
-              "bm": 0,
-              "cix": 2,
-              "hd": false,
-              "it": [
-                {
-                  "d": 1,
-                  "hd": false,
-                  "mn": "ADBE Vector Shape - Rect",
-                  "nm": "Rectangle Path 1",
-                  "p": {
-                    "a": 0,
-                    "ix": 3,
-                    "k": [
-                      75,
-                      75
-                    ]
-                  },
-                  "r": {
-                    "a": 0,
-                    "ix": 4,
-                    "k": 0
-                  },
-                  "s": {
-                    "a": 0,
-                    "ix": 2,
-                    "k": [
-                      150,
-                      150
-                    ]
-                  },
-                  "ty": "rc"
-                },
-                {
-                  "a": {
-                    "a": 0,
-                    "ix": 8,
-                    "k": 0
-                  },
-                  "bm": 0,
-                  "e": {
-                    "a": 0,
-                    "ix": 6,
-                    "k": [
-                      160,
-                      75
-                    ]
-                  },
-                  "g": {
-                    "k": {
-                      "a": 0,
-                      "ix": 9,
-                      "k": [
-                        0,
-                        0.5,
-                        0,
-                        1,
-                        1,
-                        1,
-                        0.5,
-                        0
-                      ]
-                    },
-                    "p": 2
-                  },
-                  "h": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 0
-                  },
-                  "hd": false,
-                  "mn": "ADBE Vector Graphic - G-Fill",
-                  "nm": "Gradient Fill 1",
-                  "o": {
-                    "a": 0,
-                    "ix": 10,
-                    "k": 100
-                  },
-                  "r": 1,
-                  "s": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": [
-                      75,
-                      75
-                    ]
-                  },
-                  "t": 2,
-                  "ty": "gf"
-                },
-                {
-                  "a": {
-                    "a": 0,
-                    "ix": 1,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "nm": "Transform",
-                  "o": {
-                    "a": 0,
-                    "ix": 7,
-                    "k": 75
-                  },
-                  "p": {
-                    "a": 0,
-                    "ix": 2,
-                    "k": [
-                      0,
-                      0
-                    ]
-                  },
-                  "r": {
-                    "a": 1,
-                    "ix": 6,
-                    "k": [
-                      {
-                        "i": {
-                          "x": [
-                            0.833
-                          ],
-                          "y": [
-                            0.833
-                          ]
-                        },
-                        "o": {
-                          "x": [
-                            0.167
-                          ],
-                          "y": [
-                            0.167
-                          ]
-                        },
-                        "s": [
-                          0
-                        ],
-                        "t": 0
-                      },
-                      {
-                        "s": [
-                          -360
-                        ],
-                        "t": 300
-                      }
-                    ]
-                  },
-                  "s": {
-                    "a": 0,
-                    "ix": 3,
-                    "k": [
-                      100,
-                      100
-                    ]
-                  },
-                  "sa": {
-                    "a": 0,
-                    "ix": 5,
-                    "k": 0
-                  },
-                  "sk": {
-                    "a": 0,
-                    "ix": 4,
-                    "k": 0
-                  },
-                  "ty": "tr"
-                }
-              ],
-              "ix": 3,
-              "mn": "ADBE Vector Group",
-              "nm": "Group 3",
-              "np": 2,
-              "ty": "gr"
-            }
-          ],
-          "sr": 1,
-          "st": 0,
-          "ty": 4
-        }
-      ]
-    }
-  ],
-  "ddd": 0,
-  "fr": 60,
-  "h": 500,
-  "ip": 0,
-  "layers": [
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "h": 250,
-      "ind": 1,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            125,
-            125,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            125,
-            125,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "baseline",
-      "op": 301,
-      "refId": "comp_0",
-      "sr": 1,
-      "st": 0,
-      "ty": 0,
-      "w": 250
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ef": [
-        {
-          "ef": [
-            {
-              "ix": 1,
-              "mn": "ADBE Shift Channels-0001",
-              "nm": "Take Alpha From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 1,
-                "k": 5
-              }
-            },
-            {
-              "ix": 2,
-              "mn": "ADBE Shift Channels-0002",
-              "nm": "Take Red From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 2,
-                "k": 3
-              }
-            },
-            {
-              "ix": 3,
-              "mn": "ADBE Shift Channels-0003",
-              "nm": "Take Green From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 3,
-                "k": 4
-              }
-            },
-            {
-              "ix": 4,
-              "mn": "ADBE Shift Channels-0004",
-              "nm": "Take Blue From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 4,
-                "k": 2
-              }
-            }
-          ],
-          "en": 1,
-          "ix": 1,
-          "mn": "ADBE Shift Channels",
-          "nm": "Shift Channels",
-          "np": 6,
-          "ty": 5
-        }
-      ],
-      "h": 250,
-      "ind": 2,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            125,
-            125,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            125,
-            375,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "shift1",
-      "op": 301,
-      "refId": "comp_0",
-      "sr": 1,
-      "st": 0,
-      "ty": 0,
-      "w": 250
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ef": [
-        {
-          "ef": [
-            {
-              "ix": 1,
-              "mn": "ADBE Shift Channels-0001",
-              "nm": "Take Alpha From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 1,
-                "k": 2
-              }
-            },
-            {
-              "ix": 2,
-              "mn": "ADBE Shift Channels-0002",
-              "nm": "Take Red From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 2,
-                "k": 5
-              }
-            },
-            {
-              "ix": 3,
-              "mn": "ADBE Shift Channels-0003",
-              "nm": "Take Green From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 3,
-                "k": 2
-              }
-            },
-            {
-              "ix": 4,
-              "mn": "ADBE Shift Channels-0004",
-              "nm": "Take Blue From",
-              "ty": 7,
-              "v": {
-                "a": 0,
-                "ix": 4,
-                "k": 3
-              }
-            }
-          ],
-          "en": 1,
-          "ix": 1,
-          "mn": "ADBE Shift Channels",
-          "nm": "Shift Channels",
-          "np": 6,
-          "ty": 5
-        }
-      ],
-      "h": 250,
-      "ind": 3,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            125,
-            125,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            375,
-            125,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "shift2",
-      "op": 301,
-      "refId": "comp_0",
-      "sr": 1,
-      "st": 0,
-      "ty": 0,
-      "w": 250
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ef": [
-        {
-          "ef": [
-            {
-              "ix": 1,
-              "mn": "ADBE Shift Channels-0001",
-              "nm": "Take Alpha From",
-              "ty": 7,
-              "v": {
-                "a": 1,
-                "ix": 1,
-                "k": [
-                  {
-                    "h": 1,
-                    "s": [
-                      1
-                    ],
-                    "t": 0
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      2
-                    ],
-                    "t": 30
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      3
-                    ],
-                    "t": 75
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      4
-                    ],
-                    "t": 120
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      5
-                    ],
-                    "t": 165
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      9
-                    ],
-                    "t": 210
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      9
-                    ],
-                    "t": 255
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      9
-                    ],
-                    "t": 285
-                  }
-                ]
-              }
-            },
-            {
-              "ix": 2,
-              "mn": "ADBE Shift Channels-0002",
-              "nm": "Take Red From",
-              "ty": 7,
-              "v": {
-                "a": 1,
-                "ix": 2,
-                "k": [
-                  {
-                    "h": 1,
-                    "s": [
-                      2
-                    ],
-                    "t": 0
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      3
-                    ],
-                    "t": 30
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      4
-                    ],
-                    "t": 75
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      5
-                    ],
-                    "t": 120
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      9
-                    ],
-                    "t": 165
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      10
-                    ],
-                    "t": 210
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      1
-                    ],
-                    "t": 255
-                  }
-                ]
-              }
-            },
-            {
-              "ix": 3,
-              "mn": "ADBE Shift Channels-0003",
-              "nm": "Take Green From",
-              "ty": 7,
-              "v": {
-                "a": 1,
-                "ix": 3,
-                "k": [
-                  {
-                    "h": 1,
-                    "s": [
-                      3
-                    ],
-                    "t": 0
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      4
-                    ],
-                    "t": 30
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      5
-                    ],
-                    "t": 75
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      9
-                    ],
-                    "t": 120
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      10
-                    ],
-                    "t": 165
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      1
-                    ],
-                    "t": 210
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      2
-                    ],
-                    "t": 255
-                  }
-                ]
-              }
-            },
-            {
-              "ix": 4,
-              "mn": "ADBE Shift Channels-0004",
-              "nm": "Take Blue From",
-              "ty": 7,
-              "v": {
-                "a": 1,
-                "ix": 4,
-                "k": [
-                  {
-                    "h": 1,
-                    "s": [
-                      4
-                    ],
-                    "t": 0
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      5
-                    ],
-                    "t": 30
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      9
-                    ],
-                    "t": 75
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      10
-                    ],
-                    "t": 120
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      1
-                    ],
-                    "t": 165
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      2
-                    ],
-                    "t": 210
-                  },
-                  {
-                    "h": 1,
-                    "s": [
-                      3
-                    ],
-                    "t": 255
-                  }
-                ]
-              }
-            }
-          ],
-          "en": 1,
-          "ix": 1,
-          "mn": "ADBE Shift Channels",
-          "nm": "Shift Channels",
-          "np": 6,
-          "ty": 5
-        }
-      ],
-      "h": 250,
-      "ind": 4,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            125,
-            125,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            375,
-            375,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "shift3",
-      "op": 301,
-      "refId": "comp_0",
-      "sr": 1,
-      "st": 0,
-      "ty": 0,
-      "w": 250
-    },
-    {
-      "ao": 0,
-      "bm": 0,
-      "ddd": 0,
-      "ind": 5,
-      "ip": 0,
-      "ks": {
-        "a": {
-          "a": 0,
-          "ix": 1,
-          "k": [
-            250,
-            250,
-            0
-          ]
-        },
-        "o": {
-          "a": 0,
-          "ix": 11,
-          "k": 100
-        },
-        "p": {
-          "a": 0,
-          "ix": 2,
-          "k": [
-            250,
-            250,
-            0
-          ]
-        },
-        "r": {
-          "a": 0,
-          "ix": 10,
-          "k": 0
-        },
-        "s": {
-          "a": 0,
-          "ix": 6,
-          "k": [
-            100,
-            100,
-            100
-          ]
-        }
-      },
-      "nm": "Pale Cyan Solid 1",
-      "op": 302.5,
-      "sc": "#e1e8e8",
-      "sh": 500,
-      "sr": 1,
-      "st": 0,
-      "sw": 500,
-      "ty": 1
-    }
-  ],
-  "markers": [],
-  "nm": "shift channel",
-  "op": 301,
-  "v": "5.5.5",
-  "w": 500
-}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-tritone-effect-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-tritone-effect-expected.png
deleted file mode 100755
index 8a70c29..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-tritone-effect-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-tritone-effect.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-tritone-effect.json
deleted file mode 100755
index aa51c38..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-tritone-effect.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.10","fr":60,"ip":0,"op":601,"w":500,"h":500,"nm":"tritone","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[100,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.250980407,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":50,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":162,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.250980407,0,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[720]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[175,175],"ix":2},"p":{"a":0,"k":[-90,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.250980407,0,1,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[-360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":601,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"precomp","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":23,"nm":"Tritone","np":6,"mn":"ADBE Tritone","ix":1,"en":1,"ef":[{"ty":2,"nm":"Highlights","mn":"ADBE Tritone-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1,0.988710165024,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0.50727635622,0,1,1]},{"t":600,"s":[1,1,1,0]}],"ix":1}},{"ty":2,"nm":"Midtones","mn":"ADBE Tritone-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1,0,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0,0,0,1]},{"t":600,"s":[1,0,0,1]}],"ix":2}},{"ty":2,"nm":"Shadows","mn":"ADBE Tritone-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0,1,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0,0,0.535355389118,1]},{"t":600,"s":[0,1,0,1]}],"ix":3}},{"ty":0,"nm":"Blend With Original","mn":"ADBE Tritone-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[0.5]},{"t":600,"s":[0]}],"ix":4}}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"White Solid 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#ffffff","ip":0,"op":601,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-venetianblinds-effect-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-venetianblinds-effect-expected.png
deleted file mode 100755
index 69f4af6..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-venetianblinds-effect-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-venetianblinds-effect.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-venetianblinds-effect.json
deleted file mode 100755
index a161a5c..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/skottie-venetianblinds-effect.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.5.2","fr":60,"ip":0,"op":300,"w":500,"h":500,"nm":"blinds","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"Green Solid 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,130,0],"ix":2},"a":{"a":0,"k":[125,125,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Venetian Blinds","np":6,"mn":"ADBE Venetian Blinds","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Venetian Blinds-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[100]},{"t":299,"s":[0]}],"ix":1}},{"ty":0,"nm":"Direction","mn":"ADBE Venetian Blinds-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[360]}],"ix":2}},{"ty":0,"nm":"Width","mn":"ADBE Venetian Blinds-0003","ix":3,"v":{"a":0,"k":50,"ix":3}},{"ty":0,"nm":"Feather","mn":"ADBE Venetian Blinds-0004","ix":4,"v":{"a":0,"k":0,"ix":4}}]}],"sw":250,"sh":250,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Green Solid 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,370,0],"ix":2},"a":{"a":0,"k":[125,125,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Venetian Blinds","np":6,"mn":"ADBE Venetian Blinds","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Venetian Blinds-0001","ix":1,"v":{"a":0,"k":75,"ix":1}},{"ty":0,"nm":"Direction","mn":"ADBE Venetian Blinds-0002","ix":2,"v":{"a":0,"k":45,"ix":2}},{"ty":0,"nm":"Width","mn":"ADBE Venetian Blinds-0003","ix":3,"v":{"a":0,"k":100,"ix":3}},{"ty":0,"nm":"Feather","mn":"ADBE Venetian Blinds-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[150]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[150]},{"t":299,"s":[0]}],"ix":4}}]}],"sw":250,"sh":250,"sc":"#00ff00","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[370,130,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Venetian Blinds","np":6,"mn":"ADBE Venetian Blinds","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Venetian Blinds-0001","ix":1,"v":{"a":0,"k":50,"ix":1}},{"ty":0,"nm":"Direction","mn":"ADBE Venetian Blinds-0002","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":0,"nm":"Width","mn":"ADBE Venetian Blinds-0003","ix":3,"v":{"a":0,"k":100,"ix":3}},{"ty":0,"nm":"Feather","mn":"ADBE Venetian Blinds-0004","ix":4,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[100]},{"t":299,"s":[0]}],"ix":4}}]}],"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":33,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":100,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.314644604921,0.276639103889,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[250,250],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[370,370,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Venetian Blinds","np":6,"mn":"ADBE Venetian Blinds","ix":1,"en":1,"ef":[{"ty":0,"nm":"Transition Completion","mn":"ADBE Venetian Blinds-0001","ix":1,"v":{"a":0,"k":29,"ix":1}},{"ty":0,"nm":"Direction","mn":"ADBE Venetian Blinds-0002","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":0,"nm":"Width","mn":"ADBE Venetian Blinds-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[250]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[250]},{"t":299,"s":[1]}],"ix":3}},{"ty":0,"nm":"Feather","mn":"ADBE Venetian Blinds-0004","ix":4,"v":{"a":0,"k":5,"ix":4}}]}],"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":33,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":100,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.314644604921,0.276639103889,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[250,250],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":1,"nm":"Black Solid 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#000000","ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/white_material_wave_loading-expected.png b/cobalt/renderer/rasterizer/testdata/lottie_coverage/white_material_wave_loading-expected.png
deleted file mode 100755
index 6685b37..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/white_material_wave_loading-expected.png
+++ /dev/null
Binary files differ
diff --git a/cobalt/renderer/rasterizer/testdata/lottie_coverage/white_material_wave_loading.json b/cobalt/renderer/rasterizer/testdata/lottie_coverage/white_material_wave_loading.json
deleted file mode 100755
index cafcccf..0000000
--- a/cobalt/renderer/rasterizer/testdata/lottie_coverage/white_material_wave_loading.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":40.0000016292334,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[208.6,127.969,0],"e":[208.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[208.6,88,0],"e":[208.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":40.0000016292334}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9843137,0.5490196,0,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[168.6,128,0],"e":[168.6,88,0],"to":[0,-6.66666650772095,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[168.6,88,0],"e":[168.6,128,0],"to":[0,0,0],"ti":[0,-6.66666650772095,0]},{"t":35.0000014255792}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9921569,0.8470588,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[128.594,127.969,0],"e":[128.594,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[128.594,88,0],"e":[128.594,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":30.0000012219251}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.2627451,0.627451,0.2784314,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":5,"s":[88.6,127.969,0],"e":[88.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[88.6,88,0],"e":[88.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":25.0000010182709}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.1176471,0.5333334,0.8980392,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[48.6,127.969,0],"e":[48.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[48.6,88,0],"e":[48.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":20.0000008146167}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.8980392,0.2235294,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]}
\ No newline at end of file
diff --git a/cobalt/site/docs/gen/starboard/build/doc/gn_migrate_stub_to_platform.md b/cobalt/site/docs/gen/starboard/build/doc/gn_migrate_stub_to_platform.md
index f717d32..12c9356 100644
--- a/cobalt/site/docs/gen/starboard/build/doc/gn_migrate_stub_to_platform.md
+++ b/cobalt/site/docs/gen/starboard/build/doc/gn_migrate_stub_to_platform.md
@@ -17,14 +17,14 @@
 Here are the steps to do your migration:
 
 1.  [Copy stub files over to your platform and build them](#copy-stub-files-over-to-your-platform-and-build-them).
-2.  [Replace stub toolchain with your platform's toolchain](#replace-stub-toolchain-with-your-platforms-toolchain).
-3.  [Replace stub configuration with your platform's configuration](#replace-stub-configuration-with-your-platforms-configuration).
-4.  [Replace stubbed starboard_platform target sources with your platform's
-    sources](#replace-stubbed-starboardplatform-sources-with-your-platforms-sources).
+2.  [Replace stub toolchain with toolchain for your platform](#replace-stub-toolchain-with-toolchain-for-your-platform).
+3.  [Replace stub configuration with configuration for your platform](#replace-stub-configuration-with-configuration-for-your-platform).
+4.  [Replace stubbed starboard_platform sources with sources for your platform](#replace-stubbed-starboard_platform-sources-with-sources-for-your-platform).
 
-After each step, you should be able to build the starboard_platform target.
-For example, you would build raspi2 starboard_platform target with the following
+After each step, you should be able to build the starboard_platform target. For
+example, you would build raspi2 starboard_platform target with the following
 commands:
+
 ```
 $gn gen out/raspi-2gn_devel --args='target_platform="raspi-2" build_type="devel"'
 $ninja -C out/raspi-2gn_devel/ starboard
@@ -47,41 +47,43 @@
     *   starboard/stub/toolchain/BUILD.gn >
         starboard/YOUR_PLATFORM/toolchain/BUILD.gn
 2.  Add your platform path to starboard/build/platforms.gni as referenced
-    [here](../migrating_gyp_to_gn.md#adding-your-platform-to-starboard)
+    [here](./migrating_gyp_to_gn.md#adding-your-platform-to-starboard)
 3.  Resolve any errors which come up for missing/incorrect file paths. Then, you
     should be able to build your platform target with the stubbed out files
     suggested in the above section.
 
-### Replace Stub Toolchain with Your Platform's Toolchain
+### Replace Stub Toolchain with Toolchain for Your Platform
 
-Follow instructions [here](../migrating_gyp_to_gn.md#migrating-a-toolchain) for
+Follow instructions [here](./migrating_gyp_to_gn.md#migrating-a-toolchain) for
 migrating the toolchain. Resolve errors and build the starboard_platform target
 with the stubbed files.
 
-### Replace Stub Configuration with Your Platform's Configuration
+### Replace Stub Configuration with Configuration for Your Platform
 
 This involves migrating the compiler flags and build variables as referenced
-[here](../migrating_gyp_to_gn.md#migrating-a-platform).
+[here](./migrating_gyp_to_gn.md#migrating-a-platform).
 
 > **Highly recommended** \
-> It’s good to turn off the `treat_warnings_as_errors flag` until you can compile
-> the starboard_platform target with the platform files.
-> If this flag is not disabled you might run into a lot of
-> warnings turned errors and it might take time to solve all those errors.
-> Meanwhile you won't be in a buildable state which might make it uncertain as to
-> how much progress you are actually making.
-> For disabling the flag you can pass that as an argument to gn.
-> Here's an example for disabling the flag for raspi2:
+> It’s good to turn off the `treat_warnings_as_errors flag` until you can
+> compile the starboard_platform target with the platform files. If this flag is
+> not disabled you might run into a lot of warnings turned errors and it might
+> take time to solve all those errors. Meanwhile you won't be in a buildable
+> state which might make it uncertain as to how much progress you are actually
+> making. For disabling the flag you can pass that as an argument to gn. Here's
+> an example for disabling the flag for raspi2:
+>
 > ```
-> $gn gen out/raspi-2gn_devel --args='target_platform="raspi-2" build_type="devel" treat_warnings_as_errors=false'
+> $gn gen out/raspi-2gn_devel
+> --args='target_platform="raspi-2" build_type="devel"
+> treat_warnings_as_errors=false'
 > ```
 
 Resolve errors and build the starboard_platform target with the stubbed files.
 
-### Replace Stubbed starboard_platform Sources with Your Platform's Sources
+### Replace Stubbed starboard_platform Sources with Sources for Your Platform
 
 This involves adding files for the starboard_platform target as suggested
-[here](../migrating_gyp_to_gn.md#migrating-a-platform).
+[here](./migrating_gyp_to_gn.md#migrating-a-platform).
 
 While building any target, follow the recommendation above of building the
 target with `treat_warnings_as_errors=false`.
@@ -118,15 +120,16 @@
     *   Are the compiler flags for this file the same as in GYP ?
 
         > To compare flags for GYP vs GN refer
-        > [section](../migrating_gyp_to_gn.md#validating-a-target). To check if
+        > [section](./migrating_gyp_to_gn.md#validating-a-target). To check if
         > the variables/flags you are compiling have changed since GYP, refer
-        > [page](../migration_changes.md).
+        > [page](./migration_changes.md).
 
     *   Have you passed in the default arguments for your platform correctly?
 
         > Default variables such as `target_cpu`, `target_os` and others can be
         > overridden by passing arguments to gn while building. Here's an
         > example of passing the default argument `target_cpu` for raspi2:
+        >
         > ```
         > $gn gen out/raspi-2gn_devel --args='target_platform="raspi-2" build_type="devel" target_cpu="arm"'
         > ```
diff --git a/cobalt/site/docs/gen/starboard/build/doc/migrating_gyp_to_gn.md b/cobalt/site/docs/gen/starboard/build/doc/migrating_gyp_to_gn.md
index 07b4968..e4b9c0a 100644
--- a/cobalt/site/docs/gen/starboard/build/doc/migrating_gyp_to_gn.md
+++ b/cobalt/site/docs/gen/starboard/build/doc/migrating_gyp_to_gn.md
@@ -83,7 +83,8 @@
 ```
 
 You also may need to remove default configs. The default configs are listed in
-[BUILDCONFIG.gn](../config/BUILDCONFIG.gn). You remove a config like so:
+[BUILDCONFIG.gn](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/starboard/build/config/BUILDCONFIG.gn).
+You remove a config like so:
 
 ```
 static_library("foo") {
@@ -148,8 +149,9 @@
 
 Instead of implicitly searching directories for certain files like GYP did, we
 explicitly enumerate our ports and their locations.
-[platforms.gni](../platforms.gni) contains all of this information, and you'll
-need to add your platform to that list following the same format.
+[platforms.gni](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/starboard/build/platforms.gni)
+contains all of this information, and you'll need to add your platform to that
+list following the same format.
 
 ### Migrating a Family of Platforms
 
@@ -175,10 +177,10 @@
 
 You may define a toolchain from scratch following the [reference][gn_toolchain],
 or you can use the
-[gcc/clang templates](../../../build/toolchain/gcc_toolchain.gni) provided.
-Almost all of the reference platforms use these templates, so look to those as
-examples for how to use it correctly. Here's the linux-x64x11
-[toolchain/BUILD.gn file](../../linux/x64x11/toolchain/BUILD.gn).
+[gcc/clang templates](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/build/toolchain/gcc_toolchain.gni)
+provided. Almost all of the reference platforms use these templates, so look to
+those as examples for how to use it correctly. Here's the linux-x64x11
+[toolchain/BUILD.gn file](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/starboard/linux/x64x11/toolchain/BUILD.gn).
 
 ## Checking Your Migration
 
@@ -203,29 +205,36 @@
 ```
 
 If this was equivalent to a GYP target, you can compare the ninja compilation
-databases by using [format_ninja.py](../../../tools/format_ninja.py) and a
-comparison tool, i.e. [meld](https://meldmerge.org/). This will allow you to see
-any changes in commands, i.e. with flags or otherwise.
+databases by using
+[format_ninja.py](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/tools/format_ninja.py)
+and a comparison tool, i.e. [meld](https://meldmerge.org/). This will allow you
+to see any changes in commands, i.e. with flags or otherwise.
 
 The following differences for ninja flags between GYP and GN don't cause any
 issues:
 
-1. The name of the intermediate .o, .d files is different in both cases: Here is
-   an example while compiling the same source file
-   ```
-   starboard/common/new.cc
-   ```
-   GYP generates:
-   ```
-   obj/starboard/common/common.new.cc.o
-   ```
-   GN generates:
-   ```
-   obj/starboard/common/common/new.o
-   ```
-2. The `-x` flag for specifying language is not present in GN migration.
-   For example GYP specifies `-x c` flag while building c language files for
-   certain targets. This flag is not specified while building any GN targets.
+1.  The name of the intermediate .o, .d files is different in both cases: Here
+    is an example while compiling the same source file
+
+    ```
+    starboard/common/new.cc
+    ```
+
+    GYP generates:
+
+    ```
+    obj/starboard/common/common.new.cc.o
+    ```
+
+    GN generates:
+
+    ```
+    obj/starboard/common/common/new.o
+    ```
+
+1.  The `-x` flag for specifying language is not present in GN migration. For
+    example GYP specifies `-x c` flag while building c language files for
+    certain targets. This flag is not specified while building any GN targets.
 
 ### Validating a Platform
 
@@ -240,7 +249,7 @@
 
 ### Step by Step Stub to Your Platform Migration Guide
 
-This [document](../gn_migrate_stub_to_platform.md) outlines a step by step
+This [document](./gn_migrate_stub_to_platform.md) outlines a step by step
 process for converting the stub platform's GN files to GN files that will be
 able to be built for your platform.
 
diff --git a/cobalt/site/docs/gen/starboard/doc/evergreen/cobalt_evergreen_overview.md b/cobalt/site/docs/gen/starboard/doc/evergreen/cobalt_evergreen_overview.md
index 4e07d8e..8d770ca 100644
--- a/cobalt/site/docs/gen/starboard/doc/evergreen/cobalt_evergreen_overview.md
+++ b/cobalt/site/docs/gen/starboard/doc/evergreen/cobalt_evergreen_overview.md
@@ -507,16 +507,17 @@
 
 ### Fonts
 The system font directory `kSbSystemPathFontDirectory` should be configured to
-point to the `standard` (23MB) or the `limited` (3.1MB) cobalt font packages. An
-easy way to do that is to use the `kSbSystemPathContentDirectory` to contain
-the system font directory and setting the `cobalt_font_package` to `standard` or
-`limited` in your port.
+point to either the system fonts on the device or the Cobalt `standard` (23MB)
+or the Cobalt `limited` (3.1MB) font packages. An easy way to use the Cobalt
+fonts is to set `kSbSystemPathFontDirectory` to point to
+`kSbSystemPathContentDirectory/fonts` and configure `cobalt_font_package` to
+`standard` or `limited` in your port.
 
 Cobalt Evergreen (built by Google), will by default use the `empty` font
 package to minimize storage requirements. A separate
 `cobalt_font_package` variable is set to `empty` in the Evergreen platform.
 
-On Raspberry Pi this is:
+On Raspberry Pi the Cobalt fonts are configured the following way:
 
 `empty` set of fonts under:
 ```
diff --git a/docker/precommit_hooks/docker-compose.yml b/cobalt/storage/BUILD.gn
similarity index 69%
copy from docker/precommit_hooks/docker-compose.yml
copy to cobalt/storage/BUILD.gn
index 6106d19..1bce50a 100644
--- a/docker/precommit_hooks/docker-compose.yml
+++ b/cobalt/storage/BUILD.gn
@@ -12,16 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: '2.4'
-
-services:
-  pre-commit:
-    build:
-      context: .
-      dockerfile: Dockerfile
-    image: pre-commit
-    volumes:
-      - ${COBALT_SRC:-../../}:/code/
-    environment:
-      FROM_REF: ${FROM_REF:-HEAD^1}
-      TO_REF: ${TO_REF:-HEAD}
+static_library("storage_constants") {
+  sources = [
+    "storage_constants.cc",
+    "storage_constants.h",
+  ]
+}
diff --git a/cobalt/updater/utils.cc b/cobalt/updater/utils.cc
index 5baad0a..4c96c7c 100644
--- a/cobalt/updater/utils.cc
+++ b/cobalt/updater/utils.cc
@@ -4,6 +4,7 @@
 
 #include "cobalt/updater/utils.h"
 
+#include <memory>
 #include <vector>
 
 #include "base/base_paths.h"
@@ -11,10 +12,13 @@
 #include "base/files/file_util.h"
 #include "base/logging.h"
 #include "base/path_service.h"
+#include "base/strings/string_number_conversions.h"
 #include "base/values.h"
 #include "build/build_config.h"
 #include "cobalt/extension/installation_manager.h"
 #include "components/update_client/utils.h"
+#include "crypto/secure_hash.h"
+#include "crypto/sha2.h"
 #include "starboard/configuration_constants.h"
 #include "starboard/string.h"
 #include "starboard/system.h"
@@ -151,5 +155,74 @@
   return version.GetString();
 }
 
+std::string GetLibrarySha256(int index) {
+  base::FilePath filepath;
+  auto installation_manager =
+      static_cast<const CobaltExtensionInstallationManagerApi*>(
+          SbSystemGetExtension(kCobaltExtensionInstallationManagerName));
+  if (!installation_manager && index == 0) {
+    // Evergreen Lite
+    std::vector<char> system_path_content_dir(kSbFileMaxPath);
+    if (!SbSystemGetPath(kSbSystemPathContentDirectory,
+                         system_path_content_dir.data(), kSbFileMaxPath)) {
+      SB_LOG(ERROR)
+          << "GetLibrarySha256: Failed to get system path content directory";
+      return "";
+    }
+
+    filepath = base::FilePath(std::string(system_path_content_dir.begin(),
+                                          system_path_content_dir.end()))
+                   .DirName();
+  } else if (!installation_manager && index != 0) {
+    SB_LOG(ERROR) << "GetLibrarySha256: Evergreen lite supports only slot 0";
+    return "";
+  } else {
+    // Evergreen Full
+    std::vector<char> installation_path(kSbFileMaxPath);
+    if (installation_manager->GetInstallationPath(
+            index, installation_path.data(), kSbFileMaxPath) == IM_EXT_ERROR) {
+      SB_LOG(ERROR) << "GetLibrarySha256: Failed to get installation path";
+      return "";
+    }
+
+    filepath = base::FilePath(installation_path.data());
+  }
+
+  filepath = filepath.AppendASCII("lib").AppendASCII("libcobalt.so");
+  base::File source_file(filepath,
+                         base::File::FLAG_OPEN | base::File::FLAG_READ);
+  if (!source_file.IsValid()) {
+    SB_LOG(ERROR) << "GetLibrarySha256(): Unable to open source file: "
+                  << filepath.value();
+    return "";
+  }
+
+  const size_t kBufferSize = 32768;
+  std::vector<char> buffer(kBufferSize);
+  uint8_t actual_hash[crypto::kSHA256Length] = {0};
+  std::unique_ptr<crypto::SecureHash> hasher(
+      crypto::SecureHash::Create(crypto::SecureHash::SHA256));
+
+  while (true) {
+    int bytes_read = source_file.ReadAtCurrentPos(&buffer[0], buffer.size());
+    if (bytes_read < 0) {
+      SB_LOG(ERROR) << "GetLibrarySha256(): error reading from: "
+                    << filepath.value();
+
+      return "";
+    }
+
+    if (bytes_read == 0) {
+      break;
+    }
+
+    hasher->Update(&buffer[0], bytes_read);
+  }
+
+  hasher->Finish(actual_hash, sizeof(actual_hash));
+
+  return base::HexEncode(actual_hash, sizeof(actual_hash));
+}
+
 }  // namespace updater
 }  // namespace cobalt
diff --git a/cobalt/updater/utils.h b/cobalt/updater/utils.h
index 3ca7793..a0b5008 100644
--- a/cobalt/updater/utils.h
+++ b/cobalt/updater/utils.h
@@ -1,4 +1,4 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2021 The Cobalt Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -29,6 +29,10 @@
 // Read the Evergreen version of the installation dir.
 base::Version ReadEvergreenVersion(base::FilePath installation_dir);
 
+// Returns the hash of the libcobalt.so binary for the installation
+// at slot |index|.
+std::string GetLibrarySha256(int index);
+
 }  // namespace updater
 }  // namespace cobalt
 
diff --git a/codereview.settings b/codereview.settings
deleted file mode 100644
index 1950c32..0000000
--- a/codereview.settings
+++ /dev/null
@@ -1,3 +0,0 @@
-GERRIT_HOST: cobalt-review.googlesource.com
-GERRIT_AUTODETECT_BRANCH: true
-CODE_REVIEW_SERVER: cobalt-review.googlesource.com
diff --git a/docker-compose.yml b/docker-compose.yml
index 7e2364f..b2f6912 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -53,24 +53,6 @@
       FROM_REF: ${FROM_REF:-HEAD^1}
       TO_REF: ${TO_REF:-HEAD}
 
-  docsite:
-    build:
-      context: ./docker/docsite
-      dockerfile: Dockerfile
-    container_name: docsite
-    ports:
-      - "4000:4000"
-    volumes:
-      - ${COBALT_SRC:-.}:/code/
-  docsite-build-only:
-    container_name: docsite-build-only
-    environment:
-      # SITE_DST specifies where the files required to deploy the site should be
-      # placed, and by default this is under the "out" directory.
-      - SITE_DST=${SITE_DST:-/cobalt/out/deploy/www}
-    extends:
-      service: docsite
-
 #### Cobalt build containers
   base:
     build:
@@ -173,6 +155,23 @@
       - build-base-bionic
     scale: 0
 
+  linux-x64x11-gcc-6-3:
+    <<: *common-definitions
+    <<: *build-volumes
+    build:
+      context: ./docker/linux
+      dockerfile: gcc-6-3/Dockerfile
+      args:
+        - FROM_IMAGE=build-base-bionic
+    image: linux-x64x11-gcc-6-3
+    environment:
+      <<: *shared-build-env
+      PLATFORM: linux-x64x11-gcc-6-3
+      CONFIG: ${CONFIG:-debug}
+    depends_on:
+      - build-base-bionic
+    scale: 0
+
   linux-x64x11-clang-3-9:
     <<: *common-definitions
     <<: *build-volumes
diff --git a/docker/docsite/Dockerfile b/docker/docsite/Dockerfile
index f4682a3..b5b4436 100644
--- a/docker/docsite/Dockerfile
+++ b/docker/docsite/Dockerfile
@@ -39,4 +39,4 @@
 
 USER defaultuser
 
-CMD /code/third_party/repo-publishing-toolkit-local/preview-site.sh
+CMD /cobalt/third_party/repo-publishing-toolkit-local/preview-site.sh
diff --git a/docker/docsite/Dockerfile-gke b/docker/docsite/Dockerfile-gke
deleted file mode 100644
index c199810..0000000
--- a/docker/docsite/Dockerfile-gke
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2021 The Cobalt Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM ruby:2.7-buster
-
-RUN apt update -qqy \
-    && apt install -qqy --no-install-recommends bundler doxygen git nodejs \
-        python python-pip python-setuptools python-wheel \
-    && apt-get clean autoclean \
-    && apt-get autoremove -y --purge \
-    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
-    && rm -rf /var/lib/{apt,dpkg,cache,log}
-
-COPY Gemfile /app/Gemfile
-
-RUN bundle install --gemfile=/app/Gemfile
-
-CMD ruby -v
diff --git a/docker/docsite/README.md b/docker/docsite/README.md
index d2e3701..06ea6fc 100644
--- a/docker/docsite/README.md
+++ b/docker/docsite/README.md
@@ -26,14 +26,3 @@
 `preview-site.sh`, which normally installs gems, run with elevated permissions
 the resulting files added or modified would not be accessible to the user who
 ran the Docker container.
-
-# GKE version
-For Buildbot on GKE, we use base images then layer the Buildbot worker image
-atop. This currently requires root to work, so we have a separate simplified
-Dockerfile which only has the necessary ruby and gems installed, plus the
-additional libs required for Buildbot.
-To build and push a new version run:
-
-docker build -t gcr.io/cobalt-buildbot-gcr/docsite-builder -f Dockerfile-gke .
-
-docker push gcr.io/cobalt-buildbot-gcr/docsite-builder
diff --git a/docker/docsite/docker-compose.yml b/docker/docsite/docker-compose.yml
new file mode 100644
index 0000000..bc0b6e0
--- /dev/null
+++ b/docker/docsite/docker-compose.yml
@@ -0,0 +1,36 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+version: '2.4'
+
+services:
+  docsite:
+    build:
+      context: .
+      dockerfile: Dockerfile
+    container_name: docsite
+    ports:
+      - "4000:4000"
+    volumes:
+      # We use ../../ when the environment variable COBALT_SRC is not set since
+      # this file is located two directories under the root of the repository.
+      - ${COBALT_SRC:-../../}:/cobalt/
+  docsite-build-only:
+    container_name: docsite-build-only
+    environment:
+      # SITE_DST specifies where the files required to deploy the site should be
+      # placed, and by default this is under the "out" directory.
+      - SITE_DST=${SITE_DST:-/cobalt/out/deploy/www}
+    extends:
+      service: docsite
diff --git a/docker/linux/gcc-6-3/Dockerfile b/docker/linux/gcc-6-3/Dockerfile
new file mode 100644
index 0000000..702db8d
--- /dev/null
+++ b/docker/linux/gcc-6-3/Dockerfile
@@ -0,0 +1,42 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM linux-x64x11-bionic
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt update -qqy \
+    # Install the |add-apt-repository| command for convenience.
+    && apt install -qqy software-properties-common \
+    # Add zesty archive repository, and remove universe repository.
+    && echo "deb http://old-releases.ubuntu.com/ubuntu zesty main" \
+      | tee /etc/apt/sources.list.d/zesty.list \
+    && apt-add-repository -r universe \
+    # Install gcc 6.3 from zesty repo.
+    && apt update -qqy \
+    && apt install -qqy gcc-6 g++-6 \
+    && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 1 \
+    && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 1 \
+    # Remove zesty repo, and restore universe repo.
+    # Also remove unnecessary software-properties-common.
+    && rm /etc/apt/sources.list.d/zesty.list \
+    && apt-add-repository universe \
+    && apt purge -qqy software-properties-common \
+    && apt autoremove -qqy --purge \
+    && /opt/clean-after-apt.sh
+
+CMD /code/cobalt/build/gyp_cobalt -v -C ${CONFIG} ${PLATFORM} && \
+    ccache -z && \
+    ninja -v -j ${NINJA_PARALLEL} -C ${OUTDIR}/${PLATFORM}_${CONFIG} ${TARGET:-cobalt_deploy} && \
+    ccache -s
diff --git a/docker/linux/raspi/gn/Dockerfile b/docker/linux/raspi/gn/Dockerfile
index 3339455..bb56179 100644
--- a/docker/linux/raspi/gn/Dockerfile
+++ b/docker/linux/raspi/gn/Dockerfile
@@ -14,5 +14,5 @@
 
 FROM cobalt-build-raspi
 
-CMD gn gen ${OUTDIR}/${PLATFORM}_${CONFIG} --args="target_platform=\"${PLATFORM}\" build_type=\"${CONFIG}\" target_cpu=\"arm\" is_clang=false can_build_evergreen_loader_apps=false " && \
+CMD gn gen ${OUTDIR}/${PLATFORM}_${CONFIG} --args="target_platform=\"${PLATFORM}\" build_type=\"${CONFIG}\" target_cpu=\"arm\" is_clang=false" && \
     ninja -j ${NINJA_PARALLEL} -C ${OUTDIR}/${PLATFORM}_${CONFIG}
diff --git a/nb/BUILD.gn b/nb/BUILD.gn
new file mode 100644
index 0000000..2e19f21
--- /dev/null
+++ b/nb/BUILD.gn
@@ -0,0 +1,105 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("nb") {
+  if (is_starboard) {
+    sources = [
+      "allocator.cc",
+      "allocator.h",
+      "analytics/memory_tracker.cc",
+      "analytics/memory_tracker.h",
+      "analytics/memory_tracker_helpers.cc",
+      "analytics/memory_tracker_helpers.h",
+      "analytics/memory_tracker_impl.cc",
+      "analytics/memory_tracker_impl.h",
+      "bidirectional_fit_reuse_allocator.cc",
+      "bidirectional_fit_reuse_allocator.h",
+      "bit_cast.h",
+      "concurrent_map.h",
+      "concurrent_ptr.h",
+      "first_fit_reuse_allocator.cc",
+      "first_fit_reuse_allocator.h",
+      "fixed_no_free_allocator.cc",
+      "fixed_no_free_allocator.h",
+      "hash.cc",
+      "hash.h",
+      "memory_pool.h",
+      "memory_scope.cc",
+      "memory_scope.h",
+      "move.h",
+      "multipart_allocator.cc",
+      "multipart_allocator.h",
+      "pointer_arithmetic.h",
+      "rect.h",
+      "ref_counted.cc",
+      "ref_counted.h",
+      "reuse_allocator_base.cc",
+      "reuse_allocator_base.h",
+      "rewindable_vector.h",
+      "scoped_ptr.h",
+      "simple_profiler.cc",
+      "simple_profiler.h",
+      "simple_thread.cc",
+      "simple_thread.h",
+      "starboard_aligned_memory_deleter.h",
+      "starboard_memory_allocator.h",
+      "std_allocator.h",
+      "string_interner.cc",
+      "string_interner.h",
+      "thread_collision_warner.cc",
+      "thread_collision_warner.h",
+      "thread_local_boolean.h",
+      "thread_local_object.h",
+      "thread_local_pointer.h",
+    ]
+
+    deps = [
+      "//starboard:starboard_headers_only",
+      "//starboard/common",
+    ]
+  }
+}
+
+target(gtest_target_type, "nb_test") {
+  testonly = true
+
+  if (is_starboard) {
+    sources = [
+      "analytics/memory_tracker_helpers_test.cc",
+      "analytics/memory_tracker_impl_test.cc",
+      "analytics/memory_tracker_test.cc",
+      "bidirectional_fit_reuse_allocator_test.cc",
+      "concurrent_map_test.cc",
+      "concurrent_ptr_test.cc",
+      "first_fit_reuse_allocator_test.cc",
+      "fixed_no_free_allocator_test.cc",
+      "memory_scope_test.cc",
+      "multipart_allocator_test.cc",
+      "rewindable_vector_test.cc",
+      "run_all_unittests.cc",
+      "simple_profiler_test.cc",
+      "std_allocator_test.cc",
+      "string_interner_test.cc",
+      "test_thread.h",
+      "thread_local_object_test.cc",
+    ]
+
+    deps = [
+      ":nb",
+      "//starboard",
+      "//testing/gmock:gmock",
+      "//testing/gtest",
+    ]
+  }
+}
diff --git a/starboard/android/shared/BUILD.gn b/starboard/android/shared/BUILD.gn
index a56739f..4ef3355 100644
--- a/starboard/android/shared/BUILD.gn
+++ b/starboard/android/shared/BUILD.gn
@@ -14,6 +14,7 @@
 
 import("//starboard/shared/starboard/media/media_tests.gni")
 import("//starboard/shared/starboard/player/buildfiles.gni")
+import("//starboard/shared/starboard/player/player_tests.gni")
 
 config("starboard_platform_config") {
   include_dirs = [ "bionic" ]
@@ -477,7 +478,7 @@
 target(gtest_target_type, "starboard_platform_tests") {
   testonly = true
 
-  sources = media_tests_sources + [
+  sources = media_tests_sources + player_tests_sources + [
               "//starboard/common/test_main.cc",
               "jni_env_ext_test.cc",
               "model_year_test.cc",
diff --git a/starboard/android/shared/application_android.cc b/starboard/android/shared/application_android.cc
index 9c171b1..45a57af 100644
--- a/starboard/android/shared/application_android.cc
+++ b/starboard/android/shared/application_android.cc
@@ -264,13 +264,6 @@
 #else   // SB_API_VERSION >= 13
         DispatchStart();
 #endif  // SB_API_VERSION >= 13
-      } else if (state() == kStateConcealed || state() == kStateFrozen) {
-#if SB_API_VERSION >= 13
-        DispatchAndDelete(
-            new Event(kSbEventTypeReveal, SbTimeGetMonotonicNow(), NULL, NULL));
-#else   // SB_API_VERSION >= 13
-        DispatchAndDelete(new Event(kSbEventTypeReveal, NULL, NULL));
-#endif  // SB_API_VERSION >= 13
       } else {
         // Now that we got a window back, change the command for the switch
         // below to sync up with the current activity lifecycle.
diff --git a/starboard/android/shared/platform_configuration/BUILD.gn b/starboard/android/shared/platform_configuration/BUILD.gn
index 75b13be..c8da86a 100644
--- a/starboard/android/shared/platform_configuration/BUILD.gn
+++ b/starboard/android/shared/platform_configuration/BUILD.gn
@@ -31,20 +31,13 @@
     cflags += [ "-O2" ]
   }
   if (is_debug) {
-    cflags += [
-      "-frtti",
-      "-O0",
-    ]
+    cflags += [ "-O0" ]
+    configs += [ "//build/config/compiler:rtti" ]
   } else if (is_devel) {
-    cflags += [
-      "-frtti",
-      "-O2",
-    ]
+    cflags += [ "-O2" ]
+    configs += [ "//build/config/compiler:rtti" ]
   } else {
-    cflags += [
-      "-fno-rtti",
-      "-gline-tables-only",
-    ]
+    cflags += [ "-gline-tables-only" ]
   }
 
   libs = [
diff --git a/starboard/android/shared/player_create.cc b/starboard/android/shared/player_create.cc
index f4c4083..e9e1041 100644
--- a/starboard/android/shared/player_create.cc
+++ b/starboard/android/shared/player_create.cc
@@ -17,6 +17,8 @@
 #include "starboard/android/shared/video_decoder.h"
 #include "starboard/android/shared/video_window.h"
 #include "starboard/common/log.h"
+#include "starboard/common/media.h"
+#include "starboard/common/string.h"
 #include "starboard/configuration.h"
 #include "starboard/decode_target.h"
 #include "starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h"
@@ -37,8 +39,15 @@
                         SbPlayerErrorFunc player_error_func,
                         void* context,
                         SbDecodeTargetGraphicsContextProvider* provider) {
+  if (!player_error_func) {
+    SB_LOG(ERROR) << "|player_error_func| cannot be null.";
+    return kSbPlayerInvalid;
+  }
+
   if (!creation_param) {
     SB_LOG(ERROR) << "CreationParam cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "CreationParam cannot be null");
     return kSbPlayerInvalid;
   }
 
@@ -56,15 +65,22 @@
 
   if (!audio_mime) {
     SB_LOG(ERROR) << "creation_param->audio_sample_info.mime cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "creation_param->audio_sample_info.mime cannot be null");
     return kSbPlayerInvalid;
   }
   if (!video_mime) {
     SB_LOG(ERROR) << "creation_param->video_sample_info.mime cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "creation_param->video_sample_info.mime cannot be null");
     return kSbPlayerInvalid;
   }
   if (!max_video_capabilities) {
     SB_LOG(ERROR) << "creation_param->video_sample_info.max_video_capabilities"
                   << " cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "creation_param->video_sample_info.max_video_"
+                      "capabilities cannot be null");
     return kSbPlayerInvalid;
   }
 
@@ -73,8 +89,24 @@
                << "\", and max video capabilities \"" << max_video_capabilities
                << "\".";
 
-  if (!sample_deallocate_func || !decoder_status_func || !player_status_func ||
-      !player_error_func) {
+  if (!sample_deallocate_func) {
+    SB_LOG(ERROR) << "|sample_deallocate_func| cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "|sample_deallocate_func| cannot be null.");
+    return kSbPlayerInvalid;
+  }
+
+  if (!decoder_status_func) {
+    SB_LOG(ERROR) << "|decoder_status_func| cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "|decoder_status_func| cannot be null.");
+    return kSbPlayerInvalid;
+  }
+
+  if (!player_status_func) {
+    SB_LOG(ERROR) << "|player_status_func| cannot be null.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "|player_status_func| cannot be null.");
     return kSbPlayerInvalid;
   }
 
@@ -86,7 +118,13 @@
       audio_codec != kSbMediaAudioCodecAc3 &&
       audio_codec != kSbMediaAudioCodecEac3 &&
       audio_codec != kSbMediaAudioCodecOpus) {
-    SB_LOG(ERROR) << "Unsupported audio codec " << audio_codec;
+    SB_LOG(ERROR) << "Unsupported audio codec: "
+                  << starboard::GetMediaAudioCodecName(audio_codec) << ".";
+    player_error_func(
+        kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+        starboard::FormatString("Unsupported audio codec: %s",
+                                starboard::GetMediaAudioCodecName(audio_codec))
+            .c_str());
     return kSbPlayerInvalid;
   }
 
@@ -95,7 +133,13 @@
       video_codec != kSbMediaVideoCodecH265 &&
       video_codec != kSbMediaVideoCodecVp9 &&
       video_codec != kSbMediaVideoCodecAv1) {
-    SB_LOG(ERROR) << "Unsupported video codec " << video_codec;
+    SB_LOG(ERROR) << "Unsupported video codec: "
+                  << starboard::GetMediaVideoCodecName(video_codec) << ".";
+    player_error_func(
+        kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+        starboard::FormatString("Unsupported video codec: %s",
+                                starboard::GetMediaVideoCodecName(video_codec))
+            .c_str());
     return kSbPlayerInvalid;
   }
 
@@ -103,20 +147,33 @@
       video_codec == kSbMediaVideoCodecNone) {
     SB_LOG(ERROR) << "SbPlayerCreate() requires at least one audio track or"
                   << " one video track.";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      "SbPlayerCreate() requires at least one audio track or  "
+                      "one video track");
     return kSbPlayerInvalid;
   }
 
+  std::string error_message;
   if (has_audio && creation_param->audio_sample_info.number_of_channels >
                        SbAudioSinkGetMaxChannels()) {
-    SB_LOG(ERROR) << "creation_param->audio_sample_info.number_of_channels"
-                  << " exceeds the maximum number of audio channels supported"
-                  << " by this platform.";
+    error_message = starboard::FormatString(
+        "Number of audio channels (%d) exceeds the maximum number of audio "
+        "channels supported by this platform (%d)",
+        creation_param->audio_sample_info.number_of_channels,
+        SbAudioSinkGetMaxChannels());
+    SB_LOG(ERROR) << error_message << ".";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      error_message.c_str());
     return kSbPlayerInvalid;
   }
 
   auto output_mode = creation_param->output_mode;
   if (SbPlayerGetPreferredOutputMode(creation_param) != output_mode) {
-    SB_LOG(ERROR) << "Unsupported player output mode " << output_mode;
+    error_message = starboard::FormatString(
+        "Unsupported player output mode: %d", output_mode);
+    SB_LOG(ERROR) << error_message << ".";
+    player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                      error_message.c_str());
     return kSbPlayerInvalid;
   }
 
@@ -127,8 +184,16 @@
     // support one main player on Android, which can be either in punch out mode
     // or decode to target mode.
     const int kMaxNumberOfHardwareDecoders = 1;
-    if (VideoDecoder::number_of_hardware_decoders() >=
-        kMaxNumberOfHardwareDecoders) {
+    auto number_of_hardware_decoders =
+        VideoDecoder::number_of_hardware_decoders();
+    if (number_of_hardware_decoders >= kMaxNumberOfHardwareDecoders) {
+      error_message = starboard::FormatString(
+          "Number of hardware decoders (%d) is equal to or exceeds the max "
+          "number of hardware decoders supported by this platform (%d)",
+          number_of_hardware_decoders, kMaxNumberOfHardwareDecoders);
+      SB_LOG(ERROR) << error_message << ".";
+      player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                        error_message.c_str());
       return kSbPlayerInvalid;
     }
   }
@@ -143,6 +208,8 @@
     if (!starboard::android::shared::VideoSurfaceHolder::
             IsVideoSurfaceAvailable()) {
       SB_LOG(ERROR) << "Video surface is not available now.";
+      player_error_func(kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+                        "Video surface is not available now");
       return kSbPlayerInvalid;
     }
   }
@@ -161,5 +228,12 @@
     SbPlayerSetBounds(player, 0, 0, 0, 0, 0);
   }
 
+  if (!SbPlayerIsValid(player)) {
+    SB_LOG(ERROR)
+        << "Invalid player returned by SbPlayerPrivate::CreateInstance().";
+    player_error_func(
+        kSbPlayerInvalid, context, kSbPlayerErrorDecode,
+        "Invalid player returned by SbPlayerPrivate::CreateInstance()");
+  }
   return player;
 }
diff --git a/starboard/android/shared/starboard_platform_tests.gypi b/starboard/android/shared/starboard_platform_tests.gypi
index 0c34f23..0b44440 100644
--- a/starboard/android/shared/starboard_platform_tests.gypi
+++ b/starboard/android/shared/starboard_platform_tests.gypi
@@ -18,6 +18,7 @@
       'type': '<(gtest_target_type)',
       'includes': [
         '<(DEPTH)/starboard/shared/starboard/media/media_tests.gypi',
+        '<(DEPTH)/starboard/shared/starboard/player/player_tests.gypi',
       ],
       'sources': [
         '<(DEPTH)/starboard/common/test_main.cc',
diff --git a/starboard/build/config/BUILDCONFIG.gn b/starboard/build/config/BUILDCONFIG.gn
index b3356ca..52910cb 100644
--- a/starboard/build/config/BUILDCONFIG.gn
+++ b/starboard/build/config/BUILDCONFIG.gn
@@ -26,9 +26,6 @@
   cobalt_fastbuild = getenv("IS_CI") == 1
 
   is_internal_build = false
-
-  # TODO: Remove this flag when the affected targets can be built.
-  can_build_evergreen_loader_apps = true
 }
 
 is_debug = build_type == "debug"
@@ -104,39 +101,89 @@
 default_compiler_configs = [
   "//build/config/compiler:default_include_dirs",
   "//build/config/compiler:no_exceptions",
-  "//$starboard_path/platform_configuration",
+  "//build/config/compiler:thin_archive",
   "//starboard/build/config:base",
   "//starboard/build/config:host",
   "//starboard/build/config:size",
   "//starboard/build/config:target",
-  "//starboard/build/config:no_pedantic_warnings",
 ]
 
 if (is_starboard) {
   default_compiler_configs += [ "//starboard/build/config:starboard" ]
 }
 
+if (is_qa || is_gold) {
+  default_compiler_configs += [ "//build/config/compiler:no_rtti" ]
+}
+
 set_defaults("static_library") {
   configs = default_compiler_configs + static_library_configs
+  has_pedantic_warnings = false
 }
 set_defaults("source_set") {
   configs = default_compiler_configs + source_set_configs
+  has_pedantic_warnings = false
 }
 set_defaults("loadable_module") {
   configs = default_compiler_configs + loadable_module_configs
+  has_pedantic_warnings = false
 }
 set_defaults("executable") {
   configs = default_compiler_configs + executable_configs
+  has_pedantic_warnings = false
 }
 set_defaults("shared_library") {
   configs = default_compiler_configs + shared_library_configs
+  has_pedantic_warnings = false
+}
+
+# We make sure to change the pedantic_warnings configs in a particular order to
+# ensure -Wno-foo compiler flags (usually set in no_pedantic_warnings and some
+# of the platform_configuration) come after -Wfoo flags (including -Wall and
+# -Wextra which are set in pedantic_warnings). It is only certain the the "foo"
+# error will be ignored if -Wfoo precedes -Wno-foo in the compilation line.
+template("target_with_platform_configs") {
+  target(invoker.target_type, target_name) {
+    forward_variables_from(invoker, "*", [ "target_type" ])
+
+    if (has_pedantic_warnings) {
+      configs += [ "//starboard/build/config:pedantic_warnings" ]
+    }
+    configs += [ "//$starboard_path/platform_configuration" ]
+    if (!has_pedantic_warnings) {
+      configs += [ "//starboard/build/config:no_pedantic_warnings" ]
+    }
+  }
+}
+
+# Ensure the platform_configuration config is the last one included.
+template("static_library") {
+  target_with_platform_configs(target_name) {
+    target_type = "static_library"
+    forward_variables_from(invoker, "*")
+  }
+}
+
+template("source_set") {
+  target_with_platform_configs(target_name) {
+    target_type = "source_set"
+    forward_variables_from(invoker, "*")
+  }
+}
+
+template("loadable_module") {
+  target_with_platform_configs(target_name) {
+    target_type = "loadable_module"
+    forward_variables_from(invoker, "*")
+  }
 }
 
 # Set up the method of generating the install targets as defined by the
 # platform.
 import("$install_target_path")
 template("executable") {
-  executable(target_name) {
+  target_with_platform_configs(target_name) {
+    target_type = "executable"
     forward_variables_from(invoker, "*", [ "install_target" ])
   }
 
@@ -155,7 +202,8 @@
 }
 
 template("shared_library") {
-  shared_library(target_name) {
+  target_with_platform_configs(target_name) {
+    target_type = "shared_library"
     forward_variables_from(invoker, "*", [ "install_target" ])
   }
 
diff --git a/starboard/build/doc/gn_migrate_stub_to_platform.md b/starboard/build/doc/gn_migrate_stub_to_platform.md
index f07e338..a2468f2 100644
--- a/starboard/build/doc/gn_migrate_stub_to_platform.md
+++ b/starboard/build/doc/gn_migrate_stub_to_platform.md
@@ -13,14 +13,14 @@
 Here are the steps to do your migration:
 
 1.  [Copy stub files over to your platform and build them](#copy-stub-files-over-to-your-platform-and-build-them).
-2.  [Replace stub toolchain with your platform's toolchain](#replace-stub-toolchain-with-your-platforms-toolchain).
-3.  [Replace stub configuration with your platform's configuration](#replace-stub-configuration-with-your-platforms-configuration).
-4.  [Replace stubbed starboard_platform target sources with your platform's
-    sources](#replace-stubbed-starboardplatform-sources-with-your-platforms-sources).
+2.  [Replace stub toolchain with toolchain for your platform](#replace-stub-toolchain-with-toolchain-for-your-platform).
+3.  [Replace stub configuration with configuration for your platform](#replace-stub-configuration-with-configuration-for-your-platform).
+4.  [Replace stubbed starboard_platform sources with sources for your platform](#replace-stubbed-starboard_platform-sources-with-sources-for-your-platform).
 
-After each step, you should be able to build the starboard_platform target.
-For example, you would build raspi2 starboard_platform target with the following
+After each step, you should be able to build the starboard_platform target. For
+example, you would build raspi2 starboard_platform target with the following
 commands:
+
 ```
 $gn gen out/raspi-2gn_devel --args='target_platform="raspi-2" build_type="devel"'
 $ninja -C out/raspi-2gn_devel/ starboard
@@ -43,41 +43,43 @@
     *   starboard/stub/toolchain/BUILD.gn >
         starboard/YOUR_PLATFORM/toolchain/BUILD.gn
 2.  Add your platform path to starboard/build/platforms.gni as referenced
-    [here](../migrating_gyp_to_gn.md#adding-your-platform-to-starboard)
+    [here](./migrating_gyp_to_gn.md#adding-your-platform-to-starboard)
 3.  Resolve any errors which come up for missing/incorrect file paths. Then, you
     should be able to build your platform target with the stubbed out files
     suggested in the above section.
 
-### Replace Stub Toolchain with Your Platform's Toolchain
+### Replace Stub Toolchain with Toolchain for Your Platform
 
-Follow instructions [here](../migrating_gyp_to_gn.md#migrating-a-toolchain) for
+Follow instructions [here](./migrating_gyp_to_gn.md#migrating-a-toolchain) for
 migrating the toolchain. Resolve errors and build the starboard_platform target
 with the stubbed files.
 
-### Replace Stub Configuration with Your Platform's Configuration
+### Replace Stub Configuration with Configuration for Your Platform
 
 This involves migrating the compiler flags and build variables as referenced
-[here](../migrating_gyp_to_gn.md#migrating-a-platform).
+[here](./migrating_gyp_to_gn.md#migrating-a-platform).
 
 > **Highly recommended** \
-> It’s good to turn off the `treat_warnings_as_errors flag` until you can compile
-> the starboard_platform target with the platform files.
-> If this flag is not disabled you might run into a lot of
-> warnings turned errors and it might take time to solve all those errors.
-> Meanwhile you won't be in a buildable state which might make it uncertain as to
-> how much progress you are actually making.
-> For disabling the flag you can pass that as an argument to gn.
-> Here's an example for disabling the flag for raspi2:
+> It’s good to turn off the `treat_warnings_as_errors flag` until you can
+> compile the starboard_platform target with the platform files. If this flag is
+> not disabled you might run into a lot of warnings turned errors and it might
+> take time to solve all those errors. Meanwhile you won't be in a buildable
+> state which might make it uncertain as to how much progress you are actually
+> making. For disabling the flag you can pass that as an argument to gn. Here's
+> an example for disabling the flag for raspi2:
+>
 > ```
-> $gn gen out/raspi-2gn_devel --args='target_platform="raspi-2" build_type="devel" treat_warnings_as_errors=false'
+> $gn gen out/raspi-2gn_devel
+> --args='target_platform="raspi-2" build_type="devel"
+> treat_warnings_as_errors=false'
 > ```
 
 Resolve errors and build the starboard_platform target with the stubbed files.
 
-### Replace Stubbed starboard_platform Sources with Your Platform's Sources
+### Replace Stubbed starboard_platform Sources with Sources for Your Platform
 
 This involves adding files for the starboard_platform target as suggested
-[here](../migrating_gyp_to_gn.md#migrating-a-platform).
+[here](./migrating_gyp_to_gn.md#migrating-a-platform).
 
 While building any target, follow the recommendation above of building the
 target with `treat_warnings_as_errors=false`.
@@ -114,15 +116,16 @@
     *   Are the compiler flags for this file the same as in GYP ?
 
         > To compare flags for GYP vs GN refer
-        > [section](../migrating_gyp_to_gn.md#validating-a-target). To check if
+        > [section](./migrating_gyp_to_gn.md#validating-a-target). To check if
         > the variables/flags you are compiling have changed since GYP, refer
-        > [page](../migration_changes.md).
+        > [page](./migration_changes.md).
 
     *   Have you passed in the default arguments for your platform correctly?
 
         > Default variables such as `target_cpu`, `target_os` and others can be
         > overridden by passing arguments to gn while building. Here's an
         > example of passing the default argument `target_cpu` for raspi2:
+        >
         > ```
         > $gn gen out/raspi-2gn_devel --args='target_platform="raspi-2" build_type="devel" target_cpu="arm"'
         > ```
diff --git a/starboard/build/doc/migrating_gyp_to_gn.md b/starboard/build/doc/migrating_gyp_to_gn.md
index c6d06b6..5834300 100644
--- a/starboard/build/doc/migrating_gyp_to_gn.md
+++ b/starboard/build/doc/migrating_gyp_to_gn.md
@@ -79,7 +79,8 @@
 ```
 
 You also may need to remove default configs. The default configs are listed in
-[BUILDCONFIG.gn](../config/BUILDCONFIG.gn). You remove a config like so:
+[BUILDCONFIG.gn](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/starboard/build/config/BUILDCONFIG.gn).
+You remove a config like so:
 
 ```
 static_library("foo") {
@@ -144,8 +145,9 @@
 
 Instead of implicitly searching directories for certain files like GYP did, we
 explicitly enumerate our ports and their locations.
-[platforms.gni](../platforms.gni) contains all of this information, and you'll
-need to add your platform to that list following the same format.
+[platforms.gni](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/starboard/build/platforms.gni)
+contains all of this information, and you'll need to add your platform to that
+list following the same format.
 
 ### Migrating a Family of Platforms
 
@@ -171,10 +173,10 @@
 
 You may define a toolchain from scratch following the [reference][gn_toolchain],
 or you can use the
-[gcc/clang templates](../../../build/toolchain/gcc_toolchain.gni) provided.
-Almost all of the reference platforms use these templates, so look to those as
-examples for how to use it correctly. Here's the linux-x64x11
-[toolchain/BUILD.gn file](../../linux/x64x11/toolchain/BUILD.gn).
+[gcc/clang templates](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/build/toolchain/gcc_toolchain.gni)
+provided. Almost all of the reference platforms use these templates, so look to
+those as examples for how to use it correctly. Here's the linux-x64x11
+[toolchain/BUILD.gn file](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/starboard/linux/x64x11/toolchain/BUILD.gn).
 
 ## Checking Your Migration
 
@@ -199,29 +201,36 @@
 ```
 
 If this was equivalent to a GYP target, you can compare the ninja compilation
-databases by using [format_ninja.py](../../../tools/format_ninja.py) and a
-comparison tool, i.e. [meld](https://meldmerge.org/). This will allow you to see
-any changes in commands, i.e. with flags or otherwise.
+databases by using
+[format_ninja.py](https://cobalt.googlesource.com/cobalt/+/refs/heads/master/src/tools/format_ninja.py)
+and a comparison tool, i.e. [meld](https://meldmerge.org/). This will allow you
+to see any changes in commands, i.e. with flags or otherwise.
 
 The following differences for ninja flags between GYP and GN don't cause any
 issues:
 
-1. The name of the intermediate .o, .d files is different in both cases: Here is
-   an example while compiling the same source file
-   ```
-   starboard/common/new.cc
-   ```
-   GYP generates:
-   ```
-   obj/starboard/common/common.new.cc.o
-   ```
-   GN generates:
-   ```
-   obj/starboard/common/common/new.o
-   ```
-2. The `-x` flag for specifying language is not present in GN migration.
-   For example GYP specifies `-x c` flag while building c language files for
-   certain targets. This flag is not specified while building any GN targets.
+1.  The name of the intermediate .o, .d files is different in both cases: Here
+    is an example while compiling the same source file
+
+    ```
+    starboard/common/new.cc
+    ```
+
+    GYP generates:
+
+    ```
+    obj/starboard/common/common.new.cc.o
+    ```
+
+    GN generates:
+
+    ```
+    obj/starboard/common/common/new.o
+    ```
+
+1.  The `-x` flag for specifying language is not present in GN migration. For
+    example GYP specifies `-x c` flag while building c language files for
+    certain targets. This flag is not specified while building any GN targets.
 
 ### Validating a Platform
 
@@ -236,7 +245,7 @@
 
 ### Step by Step Stub to Your Platform Migration Guide
 
-This [document](../gn_migrate_stub_to_platform.md) outlines a step by step
+This [document](./gn_migrate_stub_to_platform.md) outlines a step by step
 process for converting the stub platform's GN files to GN files that will be
 able to be built for your platform.
 
diff --git a/starboard/build/doc/migration_changes.md b/starboard/build/doc/migration_changes.md
index 433d1a3..650d107 100644
--- a/starboard/build/doc/migration_changes.md
+++ b/starboard/build/doc/migration_changes.md
@@ -15,6 +15,7 @@
 `has_drm_system_extension`                | `is_internal_build` (true/false)                     | (global)
 `has_cdm`                                 | `is_internal_build` (true/false)                     | (global)
 `has_private_system_properties`           | `is_internal_build` (true/false)                     | (global)
+`sb_pedantic_warnings` (0/1)              | `has_pedantic_warnings` (true/false)                 | (global, see "Compiler Options" note)
 `sb_deploy_output_dir`                    | `sb_install_output_dir`                              | `//starboard/build/config/base_configuration.gni`
 `sb_evergreen` (0/1)                      | `sb_is_evergreen` (true/false)                       | `//starboard/build/config/base_configuration.gni`
 `sb_evergreen_compatible` (0/1)           | `sb_is_evergreen_compatible` (true/false)            | `//starboard/build/config/base_configuration.gni`
@@ -38,10 +39,8 @@
 `optimize_target_for_speed` (1) | `"//starboard/build/config:speed"`                    | Optimizations
 `compiler_flags_*_speed`        | `speed_config_path`                                   | Optimizations
 `compiler_flags_*_size`         | `size_config_path`                                    | Optimizations
-`sb_pedantic_warnings`          | `pedantic_warnings_config_path`                       | Compiler Options
-`sb_pedantic_warnings`          | `no_pedantic_warnings_config_path`                    | Compiler Options
 
-Notes:
+## Notes:
 
 *   *Starboard Implementation:* If your platform defined
     `STARBOARD_IMPLENTATION` in its implementation, you would now add the above
@@ -56,13 +55,12 @@
     correct ones for `speed_config_path` and `size_config_path` in your
     platform's `platform_configuration/configuration.gni` file.
 
-*   *Compiler Options:* Cobalt compiles some targets with stricter settings
-    than others, depending on the platform. Before these targets would opt into
-    the stricter settings by settings `sb_pedantic_warnings: 1` in their
-    `variables` section. Now they will add the appropriate config like so:
-    `configs += [ "//starboard/build/config:pedantic_warnings" ]` and remove
-    the default: `configs -= [ "//starboard/build/config:no_pedantic_warnings"
-    ]`. The additional config that is used to compile these targets is
-    specified with the `pedantic_warnings_config_path` and
-    `no_pedantic_warnings_config_path` variables in your platform's
-    `platform_configuration/configuration.gni` file.
+*   *Compiler Options:* Cobalt compiles some targets with stricter,
+    platform-dependent settings than others. Before these targets would opt into
+    the stricter settings by setting `sb_pedantic_warnings: 1` in their
+    `variables` section. Now targets will be compiled with pedantic warnings if
+    the target sets `has_pedantic_warnings=true`. The additional config that is
+    used to compile these targets is specified with the
+    `pedantic_warnings_config_path` and `no_pedantic_warnings_config_path`
+    variables in your platform's `platform_configuration/configuration.gni`
+    file.
diff --git a/starboard/doc/c99.md b/starboard/doc/c99.md
index b23ef3b..769ad3e 100644
--- a/starboard/doc/c99.md
+++ b/starboard/doc/c99.md
@@ -31,13 +31,63 @@
 * tolower
 * toupper
 ### <math.h>
+* acos
+* acosf
+* asin
+* asinf
+* atan
+* atan2
+* atan2f
+* atanf
+* cbrt
+* cbrtf
+* ceil
+* ceilf
+* cos
+* cosf
+* div
+* erf
+* erff
+* exp
+* expf
+* exp2f
 * fabs
 * floor
+* floorf
+* fmod
+* fmodf
+* frexp
 * isfinite
 * isnan
+* labs
+* llround
+* llroundf
+* log
+* log10
+* log10f
+* log2
+* log2f
+* ldexp
+* lrint
+* lrintf
+* modf
+* nearbyint
+* nearbyintf
+* nextafter
+* nextafterf
 * pow
+* powf
+* round
+* roundf
+* scalbn
+* sin
+* sinf
 * sqrt
 * sqrtf
+* tan
+* tanf
+* trunc
+* truncf
 ### <stdlib.h>
 * abs
 * atoi
@@ -68,6 +118,9 @@
 * strrchr
 * strstr
 * strspn
+### <tgmath.h>
+* ceill
+* logl
 ### <wchar.h>
 * wcscat
 * wcschr
diff --git a/starboard/elf_loader/BUILD.gn b/starboard/elf_loader/BUILD.gn
index eff2b9e..9ce393b 100644
--- a/starboard/elf_loader/BUILD.gn
+++ b/starboard/elf_loader/BUILD.gn
@@ -97,33 +97,31 @@
   ]
 }
 
-if (can_build_evergreen_loader_apps) {
-  target(final_executable_type, "elf_loader_sys_sandbox") {
-    # To properly function the system loader requires the starboard
-    # symbols to be exported from the binary.
-    # To allow symbols to be exported remove the '-fvisibility=hidden' flag
-    # from your compiler_flags.gypi. For Linux this would be:
-    #   starboard/linux/shared/compiler_flags.gypi
-    # Example run:
-    # export LD_LIBRARY_PATH=.
-    # ./elf_loader_sys_sandbox --evergreen_library=app/cobalt/lib/libcobalt.so --evergreen_content=app/cobalt/content
-    sources = [ "sandbox.cc" ]
-    configs += [ ":elf_loader_config" ]
+target(final_executable_type, "elf_loader_sys_sandbox") {
+  # To properly function the system loader requires the starboard
+  # symbols to be exported from the binary.
+  # To allow symbols to be exported remove the '-fvisibility=hidden' flag
+  # from your compiler_flags.gypi. For Linux this would be:
+  #   starboard/linux/shared/compiler_flags.gypi
+  # Example run:
+  # export LD_LIBRARY_PATH=.
+  # ./elf_loader_sys_sandbox --evergreen_library=app/cobalt/lib/libcobalt.so --evergreen_content=app/cobalt/content
+  sources = [ "sandbox.cc" ]
+  configs += [ ":elf_loader_config" ]
 
-    starboard_syms_path =
-        rebase_path("//starboard/starboard.syms", root_build_dir)
-    ldflags = [
-      "-Wl,--dynamic-list=$starboard_syms_path",
-      "-ldl",
-    ]
+  starboard_syms_path =
+      rebase_path("//starboard/starboard.syms", root_build_dir)
+  ldflags = [
+    "-Wl,--dynamic-list=$starboard_syms_path",
+    "-ldl",
+  ]
 
-    deps = [
-      ":elf_loader_sys",
-      ":evergreen_info",
-      ":sabi_string",
-      "//starboard",
-    ]
-  }
+  deps = [
+    ":elf_loader_sys",
+    ":evergreen_info",
+    ":sabi_string",
+    "//starboard",
+  ]
 }
 
 target(gtest_target_type, "elf_loader_test") {
diff --git a/starboard/linux/shared/BUILD.gn b/starboard/linux/shared/BUILD.gn
index 7fe8d4a..ea46558 100644
--- a/starboard/linux/shared/BUILD.gn
+++ b/starboard/linux/shared/BUILD.gn
@@ -14,6 +14,7 @@
 
 import("//starboard/shared/starboard/media/media_tests.gni")
 import("//starboard/shared/starboard/player/buildfiles.gni")
+import("//starboard/shared/starboard/player/player_tests.gni")
 
 group("starboard_platform") {
   public_deps = [
@@ -455,7 +456,8 @@
 target(gtest_target_type, "starboard_platform_tests") {
   testonly = true
 
-  sources = media_tests_sources + [ "//starboard/common/test_main.cc" ]
+  sources = media_tests_sources + player_tests_sources +
+            [ "//starboard/common/test_main.cc" ]
 
   configs += [ "//starboard/build/config:starboard_implementation" ]
 
diff --git a/starboard/linux/shared/configuration_public.h b/starboard/linux/shared/configuration_public.h
index 81fb6b6..98a1ccc 100644
--- a/starboard/linux/shared/configuration_public.h
+++ b/starboard/linux/shared/configuration_public.h
@@ -271,12 +271,6 @@
 #define SB_CAN_MAP_EXECUTABLE_MEMORY 1
 
 #if SB_API_VERSION < 12
-// Whether this platform has and should use an growable heap (e.g. with sbrk())
-// to map physical memory to the virtual address space.
-#define SB_HAS_VIRTUAL_REGIONS 0
-#endif  // SB_API_VERSION < 12
-
-#if SB_API_VERSION < 12
 // Specifies the alignment for IO Buffers, in bytes. Some low-level network APIs
 // may require buffers to have a specific alignment, and this is the place to
 // specify that.
@@ -289,7 +283,7 @@
 #endif  // SB_API_VERSION < 12
 
 #if SB_API_VERSION < 12
-// Determines the threshhold of allocation size that should be done with mmap
+// Determines the threshold of allocation size that should be done with mmap
 // (if available), rather than allocated within the core heap.
 #define SB_DEFAULT_MMAP_THRESHOLD ((size_t)(256 * 1024U))
 #endif  // SB_API_VERSION < 12
diff --git a/starboard/linux/shared/platform_configuration/BUILD.gn b/starboard/linux/shared/platform_configuration/BUILD.gn
index 9920863..7d23495 100644
--- a/starboard/linux/shared/platform_configuration/BUILD.gn
+++ b/starboard/linux/shared/platform_configuration/BUILD.gn
@@ -20,20 +20,11 @@
   ldflags = []
 
   if (is_debug) {
-    cflags += [
-      "-frtti",
-      "-O0",
-    ]
+    cflags += [ "-O0" ]
   } else if (is_devel) {
-    cflags += [
-      "-frtti",
-      "-O2",
-    ]
+    cflags += [ "-O2" ]
   } else {
-    cflags += [
-      "-fno-rtti",
-      "-gline-tables-only",
-    ]
+    cflags += [ "-gline-tables-only" ]
   }
 
   if (is_clang) {
@@ -149,11 +140,13 @@
       "_GLIBCXX_DEBUG",
       "_LIBCPP_DEBUG=1",
     ]
+    configs = [ "//build/config/compiler:rtti" ]
   } else if (is_devel) {
     defines += [
       "_GLIBCXX_DEBUG",
       "_LIBCPP_DEBUG=0",
     ]
+    configs = [ "//build/config/compiler:rtti" ]
   }
 }
 
diff --git a/starboard/linux/shared/starboard_platform_tests.gypi b/starboard/linux/shared/starboard_platform_tests.gypi
index 45a0d30..53e9370 100644
--- a/starboard/linux/shared/starboard_platform_tests.gypi
+++ b/starboard/linux/shared/starboard_platform_tests.gypi
@@ -18,10 +18,12 @@
       'type': '<(gtest_target_type)',
       'includes': [
         '<(DEPTH)/starboard/shared/starboard/media/media_tests.gypi',
+        '<(DEPTH)/starboard/shared/starboard/player/player_tests.gypi',
       ],
       'sources': [
         '<(DEPTH)/starboard/common/test_main.cc',
         '<@(media_tests_sources)',
+        '<@(player_tests_sources)',
       ],
       'defines': [
         # This allows the tests to include internal only header files.
diff --git a/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py b/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py
index df1a163..80e976f 100644
--- a/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py
+++ b/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py
@@ -14,10 +14,8 @@
 """Starboard Linux X64 X11 gcc 6.3 platform configuration for gyp_cobalt."""
 
 import os
-import subprocess
 
 from starboard.linux.shared import gyp_configuration as shared_configuration
-from starboard.tools import build
 from starboard.tools.toolchain import ar
 from starboard.tools.toolchain import bash
 from starboard.tools.toolchain import clang
@@ -25,6 +23,10 @@
 from starboard.tools.toolchain import cp
 from starboard.tools.toolchain import touch
 
+# Directory for GCC 6.3 if it is installed as a system dependency.
+_DEFAULT_GCC_6_3_BIN_DIR = '/usr/bin'
+_DEFAULT_GCC_6_3_LIB_DIR = '/usr/lib/gcc/x86_64-linux-gnu/6.3.0'
+
 
 class LinuxX64X11Gcc63Configuration(shared_configuration.LinuxConfiguration):
   """Starboard Linux platform configuration."""
@@ -33,48 +35,45 @@
                platform='linux-x64x11-gcc-6-3',
                asan_enabled_by_default=False,
                sabi_json_path='starboard/sabi/default/sabi.json'):
-    super(LinuxX64X11Gcc63Configuration, self).__init__(
-        platform,
-        asan_enabled_by_default,
-        sabi_json_path)
+    super(LinuxX64X11Gcc63Configuration,
+          self).__init__(platform, asan_enabled_by_default, sabi_json_path)
+    self.toolchain_bin_dir = _DEFAULT_GCC_6_3_BIN_DIR
+    self.toolchain_lib_dir = _DEFAULT_GCC_6_3_LIB_DIR
 
-    self.toolchain_dir = os.path.join(build.GetToolchainsDir(),
-                                      'x86_64-linux-gnu-gcc-6.3.0', 'gcc')
+  def SetupPlatformTools(self, build_number):  # pylint: disable=unused-argument
+    if not (os.path.exists(os.path.join(self.toolchain_bin_dir, 'g++')) and
+            os.path.exists(os.path.join(self.toolchain_bin_dir, 'gcc'))):
+      raise RuntimeError('GCC 6.3 dependency is not present on this system.')
 
-  def SetupPlatformTools(self, build_number):
-    # Run the script that ensures gcc 6.3.0 is installed.
-    script_path = os.path.dirname(os.path.realpath(__file__))
-    subprocess.call(
-        os.path.join(script_path, 'download_gcc.sh'), cwd=script_path)
-
-  def GetVariables(self, configuration):
+  def GetVariables(self, config_name):
     variables = super(LinuxX64X11Gcc63Configuration,
-                      self).GetVariables(configuration)
+                      self).GetVariables(config_name)
     variables.update({
         'clang': 0,
     })
-    toolchain_lib_path = os.path.join(self.toolchain_dir, 'lib64')
     variables.update({
-        'toolchain_lib_path': toolchain_lib_path,
+        'toolchain_lib_path': self.toolchain_lib_dir,
     })
     return variables
 
   def GetEnvironmentVariables(self):
-    toolchain_bin_dir = os.path.join(self.toolchain_dir, 'bin')
-
     env_variables = {
-        'CC': self.build_accelerator + ' ' + os.path.join(toolchain_bin_dir,
-                                                          'gcc'),
-        'CXX': self.build_accelerator + ' ' + os.path.join(toolchain_bin_dir,
-                                                           'g++'),
-        'CC_HOST': self.build_accelerator + ' ' + os.path.join(
-            toolchain_bin_dir, 'gcc'),
-        'CXX_HOST': self.build_accelerator + ' ' + os.path.join(
-            toolchain_bin_dir, 'g++'),
+        'CC':
+            self.build_accelerator + ' ' +
+            os.path.join(self.toolchain_bin_dir, 'gcc'),
+        'CXX':
+            self.build_accelerator + ' ' +
+            os.path.join(self.toolchain_bin_dir, 'g++'),
+        'CC_HOST':
+            self.build_accelerator + ' ' +
+            os.path.join(self.toolchain_bin_dir, 'gcc'),
+        'CXX_HOST':
+            self.build_accelerator + ' ' +
+            os.path.join(self.toolchain_bin_dir, 'g++'),
     }
     return env_variables
 
-  def GetTargetToolchain(self, **kwargs):
+  def GetTargetToolchain(self, **kwargs):  # pylint: disable=unused-argument
     environment_variables = self.GetEnvironmentVariables()
     cc_path = environment_variables['CC']
     cxx_path = environment_variables['CXX']
@@ -92,7 +91,7 @@
         bash.Shell(),
     ]
 
-  def GetHostToolchain(self, **kwargs):
+  def GetHostToolchain(self, **kwargs):  # pylint: disable=unused-argument
     environment_variables = self.GetEnvironmentVariables()
     cc_path = environment_variables['CC_HOST']
     cxx_path = environment_variables['CXX_HOST']
diff --git a/starboard/loader_app/BUILD.gn b/starboard/loader_app/BUILD.gn
index cc35c66..481ccc8 100644
--- a/starboard/loader_app/BUILD.gn
+++ b/starboard/loader_app/BUILD.gn
@@ -42,24 +42,22 @@
   }
 }
 
-if (can_build_evergreen_loader_apps) {
-  target(final_executable_type, "loader_app_sys") {
-    if (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" ||
-        target_cpu == "arm64") {
-      sources = _common_loader_app_sources
+target(final_executable_type, "loader_app_sys") {
+  if (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" ||
+      target_cpu == "arm64") {
+    sources = _common_loader_app_sources
 
-      starboard_syms_path =
-          rebase_path("//starboard/starboard.syms", root_build_dir)
-      ldflags = [
-        "-Wl,--dynamic-list=$starboard_syms_path",
-        "-ldl",
-      ]
-      deps = [
-        ":common_loader_app_dependencies",
-        "//cobalt/content/fonts:copy_font_data",
-        "//starboard/elf_loader:elf_loader_sys",
-      ]
-    }
+    starboard_syms_path =
+        rebase_path("//starboard/starboard.syms", root_build_dir)
+    ldflags = [
+      "-Wl,--dynamic-list=$starboard_syms_path",
+      "-ldl",
+    ]
+    deps = [
+      ":common_loader_app_dependencies",
+      "//cobalt/content/fonts:copy_font_data",
+      "//starboard/elf_loader:elf_loader_sys",
+    ]
   }
 }
 
diff --git a/starboard/nplb/media_buffer_test.cc b/starboard/nplb/media_buffer_test.cc
index 66640dd..10599ce 100644
--- a/starboard/nplb/media_buffer_test.cc
+++ b/starboard/nplb/media_buffer_test.cc
@@ -12,7 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include <cmath>
+#include <random>
+#include <vector>
+
 #include "starboard/media.h"
+#include "starboard/memory.h"
 #include "starboard/nplb/performance_helpers.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -38,8 +43,7 @@
     kSbMediaVideoCodecNone,
 
     kSbMediaVideoCodecH264,   kSbMediaVideoCodecH265, kSbMediaVideoCodecMpeg2,
-    kSbMediaVideoCodecTheora, kSbMediaVideoCodecVc1,
-    kSbMediaVideoCodecAv1,
+    kSbMediaVideoCodecTheora, kSbMediaVideoCodecVc1,  kSbMediaVideoCodecAv1,
     kSbMediaVideoCodecVp8,    kSbMediaVideoCodecVp9,
 };
 
@@ -47,6 +51,37 @@
     kSbMediaTypeAudio, kSbMediaTypeVideo,
 };
 
+// Minimum audio and video budgets required by the 2020 Youtube Software
+// Requirements.
+constexpr int kMinAudioBudget = 5 * 1024 * 1024;
+constexpr int kMinVideoBudget = 30 * 1024 * 1024;
+
+std::vector<void*> TryToAllocateMemory(int size,
+                                       int allocation_unit,
+                                       int alignment) {
+  int total_allocated = 0;
+  std::vector<void*> allocated_ptrs;
+  if (allocation_unit != 0) {
+    allocated_ptrs.reserve(std::ceil(size / allocation_unit));
+  }
+  while (total_allocated < size) {
+    // When |allocation_unit| == 0, randomly allocate a size between 100k -
+    // 500k.
+    int allocation_increment = allocation_unit != 0
+                                   ? allocation_unit
+                                   : (std::rand() % 500 + 100) * 1024;
+    void* allocated_memory =
+        SbMemoryAllocateAligned(alignment, allocation_increment);
+    EXPECT_NE(allocated_memory, nullptr);
+    if (!allocated_memory) {
+      return allocated_ptrs;
+    }
+    allocated_ptrs.push_back(allocated_memory);
+    total_allocated += allocation_increment;
+  }
+  return allocated_ptrs;
+}
+
 }  // namespace
 
 TEST(SbMediaBufferTest, VideoCodecs) {
@@ -83,28 +118,60 @@
 TEST(SbMediaBufferTest, Alignment) {
   for (auto type : kMediaTypes) {
     int alignment = SbMediaGetBufferAlignment(type);
-    // TODO: This currently accepts 0 or a power of 2. We should disallow 0 here
-    // when we change the default value to be 1 instead of 0.
-    EXPECT_GE(alignment, 0);
+    EXPECT_GE(alignment, 1);
     EXPECT_EQ(alignment & (alignment - 1), 0)
         << "Alignment must always be a power of 2";
   }
 }
 
 TEST(SbMediaBufferTest, AllocationUnit) {
-  // TODO: impose more bounds.
   EXPECT_GE(SbMediaGetBufferAllocationUnit(), 0);
+
+  if (SbMediaGetBufferAllocationUnit() != 0) {
+    EXPECT_GE(SbMediaGetBufferAllocationUnit(), 64 * 1024);
+  }
+
+  int allocation_unit = SbMediaGetBufferAllocationUnit();
+  std::vector<void*> allocated_ptrs;
+  int initial_buffer_capacity = SbMediaGetInitialBufferCapacity();
+  if (initial_buffer_capacity > 0) {
+    allocated_ptrs =
+        TryToAllocateMemory(initial_buffer_capacity, allocation_unit, 1);
+  }
+
+  if (!HasNonfatalFailure()) {
+    for (SbMediaType type : kMediaTypes) {
+      int alignment = SbMediaGetBufferAlignment(type);
+      EXPECT_EQ(alignment & (alignment - 1), 0)
+          << "Alignment must always be a power of 2";
+      if (HasNonfatalFailure()) {
+        break;
+      }
+      int media_budget = type == SbMediaType::kSbMediaTypeAudio
+                             ? kMinAudioBudget
+                             : kMinVideoBudget;
+      std::vector<void*> media_buffer_allocated_memory =
+          TryToAllocateMemory(media_budget, allocation_unit, alignment);
+      allocated_ptrs.insert(allocated_ptrs.end(),
+                            media_buffer_allocated_memory.begin(),
+                            media_buffer_allocated_memory.end());
+      if (HasNonfatalFailure()) {
+        break;
+      }
+    }
+  }
+
+  for (void* ptr : allocated_ptrs) {
+    SbMemoryFreeAligned(ptr);
+  }
 }
 
 TEST(SbMediaBufferTest, AudioBudget) {
-  // TODO: refine this lower bound.
-  const int kMinAudioBudget = 1 * 1024 * 1024;
-  EXPECT_GT(SbMediaGetAudioBufferBudget(), kMinAudioBudget);
+  EXPECT_GE(SbMediaGetAudioBufferBudget(), kMinAudioBudget);
 }
 
 TEST(SbMediaBufferTest, GarbageCollectionDurationThreshold) {
-  // TODO: impose reasonable bounds here.
-  int kMinGarbageCollectionDurationThreshold = 10 * kSbTimeSecond;
+  int kMinGarbageCollectionDurationThreshold = 30 * kSbTimeSecond;
   int kMaxGarbageCollectionDurationThreshold = 240 * kSbTimeSecond;
   int threshold = SbMediaGetBufferGarbageCollectionDurationThreshold();
   EXPECT_GE(threshold, kMinGarbageCollectionDurationThreshold);
@@ -116,7 +183,9 @@
 }
 
 TEST(SbMediaBufferTest, MaxCapacity) {
-  // TODO: set a reasonable upper bound.
+  // TODO: Limit EXPECT statements to only codecs and resolutions that are
+  // supported by the platform. If unsupported, still call
+  // SbMediaGetMaxBufferCapacity() to ensure there isn't a crash.
   for (auto resolution : kVideoResolutions) {
     for (auto bits_per_pixel : kBitsPerPixelValues) {
       for (auto codec : kVideoCodecs) {
@@ -178,12 +247,10 @@
 }
 
 TEST(SbMediaBufferTest, VideoBudget) {
-  // TODO: refine this lower bound.
-  const int kMinVideoBudget = 1 * 1024 * 1024;
   for (auto codec : kVideoCodecs) {
     for (auto resolution : kVideoResolutions) {
       for (auto bits_per_pixel : kBitsPerPixelValues) {
-        EXPECT_GT(SbMediaGetVideoBufferBudget(codec, resolution[0],
+        EXPECT_GE(SbMediaGetVideoBufferBudget(codec, resolution[0],
                                               resolution[1], bits_per_pixel),
                   kMinVideoBudget);
       }
diff --git a/starboard/nplb/player_create_test.cc b/starboard/nplb/player_create_test.cc
index 535d4b9..29d8355 100644
--- a/starboard/nplb/player_create_test.cc
+++ b/starboard/nplb/player_create_test.cc
@@ -78,9 +78,9 @@
 TEST_P(SbPlayerTest, SunnyDay) {
   SbMediaAudioSampleInfo audio_sample_info =
       CreateAudioSampleInfo(kSbMediaAudioCodecAac);
-  SbMediaVideoCodec kVideoCodec = kSbMediaVideoCodecH264;
 
-  if (!IsOutputModeSupported(output_mode_, kVideoCodec)) {
+  if (!IsOutputModeSupported(output_mode_, kSbMediaAudioCodecAac,
+                             kSbMediaVideoCodecH264)) {
     return;
   }
 
@@ -101,9 +101,9 @@
 TEST_P(SbPlayerTest, NullCallbacks) {
   SbMediaAudioSampleInfo audio_sample_info =
       CreateAudioSampleInfo(kSbMediaAudioCodecAac);
-  SbMediaVideoCodec kVideoCodec = kSbMediaVideoCodecH264;
 
-  if (!IsOutputModeSupported(output_mode_, kVideoCodec)) {
+  if (!IsOutputModeSupported(output_mode_, kSbMediaAudioCodecAac,
+                             kSbMediaVideoCodecH264)) {
     return;
   }
 
@@ -160,14 +160,13 @@
 }
 
 TEST_P(SbPlayerTest, Audioless) {
-  SbMediaVideoCodec kVideoCodec = kSbMediaVideoCodecH264;
-
-  if (!IsOutputModeSupported(output_mode_, kVideoCodec)) {
+  if (!IsOutputModeSupported(output_mode_, kSbMediaAudioCodecNone,
+                             kSbMediaVideoCodecH264)) {
     return;
   }
 
   SbPlayer player = CallSbPlayerCreate(
-      fake_graphics_context_provider_.window(), kVideoCodec,
+      fake_graphics_context_provider_.window(), kSbMediaVideoCodecH264,
       kSbMediaAudioCodecNone, kSbDrmSystemInvalid, NULL /* audio_sample_info */,
       "" /* max_video_capabilities */, DummyDeallocateSampleFunc,
       DummyDecoderStatusFunc, DummyStatusFunc, DummyErrorFunc,
@@ -183,16 +182,15 @@
 TEST_P(SbPlayerTest, AudioOnly) {
   SbMediaAudioSampleInfo audio_sample_info =
       CreateAudioSampleInfo(kSbMediaAudioCodecAac);
-  SbMediaAudioCodec kAudioCodec = kSbMediaAudioCodecAac;
-  SbMediaVideoCodec kVideoCodec = kSbMediaVideoCodecH264;
 
-  if (!IsOutputModeSupported(output_mode_, kVideoCodec)) {
+  if (!IsOutputModeSupported(output_mode_, kSbMediaAudioCodecAac,
+                             kSbMediaVideoCodecH264)) {
     return;
   }
 
   SbPlayer player = CallSbPlayerCreate(
       fake_graphics_context_provider_.window(), kSbMediaVideoCodecNone,
-      kAudioCodec, kSbDrmSystemInvalid, &audio_sample_info,
+      kSbMediaAudioCodecAac, kSbDrmSystemInvalid, &audio_sample_info,
       "" /* max_video_capabilities */, DummyDeallocateSampleFunc,
       DummyDecoderStatusFunc, DummyStatusFunc, DummyErrorFunc,
       NULL /* context */, output_mode_,
@@ -213,13 +211,10 @@
       kSbPlayerOutputModeDecodeToTexture, kSbPlayerOutputModePunchOut};
 
   constexpr SbMediaAudioCodec kAudioCodecs[] = {
-    kSbMediaAudioCodecNone,
+      kSbMediaAudioCodecNone,
 
-    kSbMediaAudioCodecAac,
-    kSbMediaAudioCodecAc3,
-    kSbMediaAudioCodecEac3,
-    kSbMediaAudioCodecOpus,
-    kSbMediaAudioCodecVorbis,
+      kSbMediaAudioCodecAac,  kSbMediaAudioCodecAc3,    kSbMediaAudioCodecEac3,
+      kSbMediaAudioCodecOpus, kSbMediaAudioCodecVorbis,
   };
 
   // TODO: turn this into a macro.
@@ -238,16 +233,11 @@
   }
 
   constexpr SbMediaVideoCodec kVideoCodecs[] = {
-    kSbMediaVideoCodecNone,
+      kSbMediaVideoCodecNone,
 
-    kSbMediaVideoCodecH264,
-    kSbMediaVideoCodecH265,
-    kSbMediaVideoCodecMpeg2,
-    kSbMediaVideoCodecTheora,
-    kSbMediaVideoCodecVc1,
-    kSbMediaVideoCodecAv1,
-    kSbMediaVideoCodecVp8,
-    kSbMediaVideoCodecVp9,
+      kSbMediaVideoCodecH264,   kSbMediaVideoCodecH265, kSbMediaVideoCodecMpeg2,
+      kSbMediaVideoCodecTheora, kSbMediaVideoCodecVc1,  kSbMediaVideoCodecAv1,
+      kSbMediaVideoCodecVp8,    kSbMediaVideoCodecVp9,
   };
 
   // TODO: turn this into a macro.
diff --git a/starboard/nplb/player_test_util.cc b/starboard/nplb/player_test_util.cc
index e4d6afd..ddcacf1 100644
--- a/starboard/nplb/player_test_util.cc
+++ b/starboard/nplb/player_test_util.cc
@@ -74,7 +74,8 @@
     if (SbMediaCanPlayMimeAndKeySystem(dmp_reader.audio_mime_type().c_str(),
                                        "")) {
       for (auto output_mode : kOutputModes) {
-        if (IsOutputModeSupported(output_mode, kSbMediaVideoCodecNone)) {
+        if (IsOutputModeSupported(output_mode, dmp_reader.audio_codec(),
+                                  kSbMediaVideoCodecNone)) {
           test_configs.push_back(
               std::make_tuple(audio_filename, kEmptyName, output_mode));
         }
@@ -90,7 +91,8 @@
       continue;
     }
     for (auto output_mode : kOutputModes) {
-      if (IsOutputModeSupported(output_mode, dmp_reader.video_codec())) {
+      if (IsOutputModeSupported(output_mode, kSbMediaAudioCodecNone,
+                                dmp_reader.video_codec())) {
         test_configs.push_back(
             std::make_tuple(kEmptyName, video_filename, output_mode));
       }
@@ -173,24 +175,26 @@
 
 #else  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
 
-  return SbPlayerCreate(
-      window, video_codec, audio_codec, kSbDrmSystemInvalid, audio_sample_info,
-      max_video_capabilities,
-      sample_deallocate_func, decoder_status_func, player_status_func,
-      player_error_func, context, output_mode, context_provider);
+  return SbPlayerCreate(window, video_codec, audio_codec, kSbDrmSystemInvalid,
+                        audio_sample_info, max_video_capabilities,
+                        sample_deallocate_func, decoder_status_func,
+                        player_status_func, player_error_func, context,
+                        output_mode, context_provider);
 
 #endif  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
 }
 
 bool IsOutputModeSupported(SbPlayerOutputMode output_mode,
-                           SbMediaVideoCodec codec) {
+                           SbMediaAudioCodec audio_codec,
+                           SbMediaVideoCodec video_codec) {
 #if SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
   SbPlayerCreationParam creation_param =
-      CreatePlayerCreationParam(kSbMediaAudioCodecNone, codec);
+      CreatePlayerCreationParam(audio_codec, video_codec);
   creation_param.output_mode = output_mode;
   return SbPlayerGetPreferredOutputMode(&creation_param) == output_mode;
 #else   // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
-  return SbPlayerOutputModeSupported(output_mode, codec, kSbDrmSystemInvalid);
+  return SbPlayerOutputModeSupported(output_mode, video_codec,
+                                     kSbDrmSystemInvalid);
 #endif  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
 }
 
diff --git a/starboard/nplb/player_test_util.h b/starboard/nplb/player_test_util.h
index dfb8f11..53503ee 100644
--- a/starboard/nplb/player_test_util.h
+++ b/starboard/nplb/player_test_util.h
@@ -70,7 +70,8 @@
     SbDecodeTargetGraphicsContextProvider* context_provider);
 
 bool IsOutputModeSupported(SbPlayerOutputMode output_mode,
-                           SbMediaVideoCodec codec);
+                           SbMediaAudioCodec audio_codec,
+                           SbMediaVideoCodec video_codec);
 
 }  // namespace nplb
 }  // namespace starboard
diff --git a/starboard/nplb/player_write_sample_test.cc b/starboard/nplb/player_write_sample_test.cc
index 13977ee..0a5d6fd 100644
--- a/starboard/nplb/player_write_sample_test.cc
+++ b/starboard/nplb/player_write_sample_test.cc
@@ -220,7 +220,9 @@
 }
 
 void SbPlayerWriteSampleTest::TearDown() {
-  SB_DCHECK(SbPlayerIsValid(player_));
+  if (!SbPlayerIsValid(player_)) {
+    return;
+  }
 
   ASSERT_FALSE(destroy_player_called_);
   destroy_player_called_ = true;
diff --git a/docker/precommit_hooks/docker-compose.yml b/starboard/raspi/2/starboard_platform_tests.gyp
similarity index 69%
copy from docker/precommit_hooks/docker-compose.yml
copy to starboard/raspi/2/starboard_platform_tests.gyp
index 6106d19..f01ba52 100644
--- a/docker/precommit_hooks/docker-compose.yml
+++ b/starboard/raspi/2/starboard_platform_tests.gyp
@@ -11,17 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
-version: '2.4'
-
-services:
-  pre-commit:
-    build:
-      context: .
-      dockerfile: Dockerfile
-    image: pre-commit
-    volumes:
-      - ${COBALT_SRC:-../../}:/code/
-    environment:
-      FROM_REF: ${FROM_REF:-HEAD^1}
-      TO_REF: ${TO_REF:-HEAD}
+{
+  'includes': [
+    '<(DEPTH)/starboard/raspi/shared/starboard_platform_tests.gypi',
+  ],
+}
diff --git a/starboard/raspi/shared/BUILD.gn b/starboard/raspi/shared/BUILD.gn
index 2cc3d1c..d224eda 100644
--- a/starboard/raspi/shared/BUILD.gn
+++ b/starboard/raspi/shared/BUILD.gn
@@ -11,7 +11,9 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 import("//starboard/shared/starboard/player/buildfiles.gni")
+import("//starboard/shared/starboard/player/player_tests.gni")
 
 group("starboard_platform") {
   public_deps = [ ":starboard_platform_sources" ]
@@ -20,6 +22,8 @@
 static_library("starboard_platform_sources") {
   check_includes = false
 
+  has_pedantic_warnings = true
+
   sources = [
     "//starboard/linux/shared/atomic_public.h",
     "//starboard/linux/shared/configuration_constants.cc",
@@ -386,11 +390,7 @@
     ]
   }
 
-  configs += [
-    "//starboard/build/config:pedantic_warnings",
-    "//starboard/build/config:starboard_implementation",
-  ]
-  configs -= [ "//starboard/build/config:no_pedantic_warnings" ]
+  configs += [ "//starboard/build/config:starboard_implementation" ]
 
   public_deps = [
     ":starboard_base_symbolize",
@@ -430,3 +430,18 @@
 
   public_deps = [ "//starboard/elf_loader:evergreen_info" ]
 }
+
+target(gtest_target_type, "starboard_platform_tests") {
+  testonly = true
+
+  sources = player_tests_sources + [ "//starboard/common/test_main.cc" ]
+
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+
+  deps = [
+    "//starboard",
+    "//starboard/shared/starboard/player/filter/testing:test_util",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/starboard/raspi/shared/platform_configuration/BUILD.gn b/starboard/raspi/shared/platform_configuration/BUILD.gn
index fe181d1..b1b060c 100644
--- a/starboard/raspi/shared/platform_configuration/BUILD.gn
+++ b/starboard/raspi/shared/platform_configuration/BUILD.gn
@@ -36,13 +36,10 @@
 
   if (is_debug) {
     cflags += [ "-O0" ]
-    cflags_cc += [ "-frtti" ]
   } else if (is_devel) {
     cflags += [ "-O2" ]
-    cflags_cc += [ "-frtti" ]
   } else {
     cflags += [ "-Wno-unused-but-set-variable" ]
-    cflags_cc += [ "-fno-rtti" ]
   }
 
   ldflags += [
@@ -149,6 +146,10 @@
   ]
 
   configs = [ "//starboard/raspi/shared/platform_configuration:compiler_flags" ]
+
+  if (is_debug || is_devel) {
+    configs += [ "//build/config/compiler:rtti" ]
+  }
 }
 
 config("speed") {
diff --git a/starboard/raspi/shared/platform_configuration/configuration.gni b/starboard/raspi/shared/platform_configuration/configuration.gni
index 4ceaa77..dfa14b8 100644
--- a/starboard/raspi/shared/platform_configuration/configuration.gni
+++ b/starboard/raspi/shared/platform_configuration/configuration.gni
@@ -24,3 +24,5 @@
 pedantic_warnings_config_path =
     "//starboard/raspi/shared/platform_configuration:pedantic_warnings"
 sabi_path = "//starboard/sabi/arm/hardfp/sabi-v$sb_api_version.json"
+
+platform_tests_path = "//starboard/raspi/shared:starboard_platform_tests"
diff --git a/starboard/raspi/shared/starboard_platform_tests.gypi b/starboard/raspi/shared/starboard_platform_tests.gypi
new file mode 100644
index 0000000..782c7cf
--- /dev/null
+++ b/starboard/raspi/shared/starboard_platform_tests.gypi
@@ -0,0 +1,48 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+{
+  'targets': [
+    {
+      'target_name': 'starboard_platform_tests',
+      'type': '<(gtest_target_type)',
+      'includes': [
+        '<(DEPTH)/starboard/shared/starboard/player/player_tests.gypi',
+      ],
+      'sources': [
+        '<(DEPTH)/starboard/common/test_main.cc',
+        '<@(player_tests_sources)',
+      ],
+      'defines': [
+        # This allows the tests to include internal only header files.
+        'STARBOARD_IMPLEMENTATION',
+      ],
+      'dependencies': [
+        '<(DEPTH)/starboard/starboard.gyp:starboard',
+        '<(DEPTH)/testing/gmock.gyp:gmock',
+        '<(DEPTH)/testing/gtest.gyp:gtest',
+      ],
+    },
+    {
+      'target_name': 'starboard_platform_tests_deploy',
+      'type': 'none',
+      'dependencies': [
+        '<(DEPTH)/<(starboard_path)/starboard_platform_tests.gyp:starboard_platform_tests',
+      ],
+      'variables': {
+        'executable_name': 'starboard_platform_tests',
+      },
+      'includes': [ '<(DEPTH)/starboard/build/deploy.gypi' ],
+    },
+  ],
+}
diff --git a/starboard/shared/dlmalloc/page_internal.h b/starboard/shared/dlmalloc/page_internal.h
index e72fd75..e26d509 100644
--- a/starboard/shared/dlmalloc/page_internal.h
+++ b/starboard/shared/dlmalloc/page_internal.h
@@ -27,83 +27,6 @@
 extern "C" {
 #endif
 
-// A virtual memory address.
-typedef void* SbPageVirtualMemory;
-
-// Internal Virtual memory API
-//
-// This was designed to provide common wrappers around OS functions relied upon
-// by dlmalloc. However the APIs can also be used for other custom allocators,
-// but, due to platform restrictions, this is not completely generic.
-//
-// When dlmalloc requires memory from the system, it uses two different
-// approaches to get it. It either extends a growing heap, or it uses mmap() to
-// request a bunch of pages from the system.
-//
-// Its default behavior is to place small allocations into a contiguous heap,
-// and allocate large (256K+) blocks with mmap. Separating large blocks from the
-// main heap has advantages for reducing fragmentation.
-//
-// In dlmalloc, extending the heap is called "MORECORE" and, by default on POSIX
-// systems, uses sbrk().
-//
-// Since almost none of our platforms support sbrk(), we implement MORECORE by
-// reserving a large virtual region and giving that to dlmalloc. This region
-// starts off unmapped, i.e. there are no physical pages backing it, so reading
-// or writing from that region is invalid.  As dlmalloc requests memory, we
-// allocate physical pages from the OS and map them to the top of the heap,
-// thereby growing the usable heap area. When the heap shrinks, we can unmap
-// those pages and free them back to the OS.
-//
-// mmap(), by contrast, allocates N pages from the OS, and the OS then maps them
-// into some arbitrary virtual address space. There is no guarantee that two
-// consecutive mmap() calls will return a contiguous block.
-//
-// SbMap() is our implementation of mmap(). On platforms such as Linux that
-// actually have mmap(), we call that directly. Otherwise we use
-// platform-specific system allocators.
-//
-// Platforms that support SbMap() must be at least starboard version 12 or
-// enable SB_HAS_MMAP in their configuration_public.h file. dlmalloc is very
-// flexible and if a platform can't implement virtual regions, it will use
-// Map() for all allocations, merging adjacent allocations when it can.
-//
-// If a platform can't use Map(), it will just use MORECORE for everything.
-// Currently we believe a mixture of both provides best behavior, but more
-// testing would be useful.
-//
-// See also dlmalloc_config.h which controls some dlmalloc behavior.
-
-#if SB_API_VERSION < 12 && SB_HAS(VIRTUAL_REGIONS)
-// Reserves a virtual address space |size_bytes| big, without mapping any
-// physical pages to that range, returning a pointer to the beginning of the
-// reserved virtual address range. To get memory that is actually usable and
-// backed by physical memory, a reserved virtual address needs to passed into
-// AllocateAndMap().
-// [Presumably size_bytes should be a multiple of a physical page size? -DG]
-SbPageVirtualMemory SbPageReserveVirtualRegion(size_t size_bytes);
-
-// Releases a virtual address space reserved with ReserveVirtualRegion().
-// [What happens if that address space is wholly or partially mapped? -DG]
-void SbPageReleaseVirtualRegion(SbPageVirtualMemory range_start);
-
-// Allocate |size_bytes| of physical memory and map it to a virtual address
-// range starting at |virtual_address|. |virtual_address| should be a pointer
-// into the range returned by ReserveVirtualRegion().
-int SbPageAllocatePhysicalAndMap(SbPageVirtualMemory virtual_address,
-                                 size_t size_bytes);
-
-// Frees |size_bytes| of physical memory that had been mapped to
-// |virtual_address| and return them to the system. After this,
-// [virtual_address, virtual_address + size_bytes) will not be read/writable.
-int SbPageUnmapAndFreePhysical(SbPageVirtualMemory virtual_address,
-                               size_t size_bytes);
-
-// How big of a virtual region dlmalloc should allocate.
-size_t SbPageGetVirtualRegionSize();
-#endif  // SB_API_VERSION < 12 &&
-        // SB_HAS(VIRTUAL_REGIONS)
-
 #if SB_API_VERSION >= 12 || SB_HAS(MMAP)
 // Allocates |size_bytes| worth of physical memory pages and maps them into an
 // available virtual region. On some platforms, |name| appears in the debugger
@@ -157,26 +80,6 @@
 // always be a multiple of kSbMemoryPageSize.
 size_t SbPageGetMappedBytes();
 
-// Declaration of the allocator API.
-
-#if defined(ADDRESS_SANITIZER)
-#define SB_ALLOCATOR_PREFIX
-#include <stdlib.h>
-#else
-#define SB_ALLOCATOR_PREFIX dl
-#endif
-
-#define SB_ALLOCATOR_MANGLER_2(prefix, fn) prefix##fn
-#define SB_ALLOCATOR_MANGLER(prefix, fn) SB_ALLOCATOR_MANGLER_2(prefix, fn)
-#define SB_ALLOCATOR(fn) SB_ALLOCATOR_MANGLER(SB_ALLOCATOR_PREFIX, fn)
-
-void SB_ALLOCATOR(_malloc_init)();
-void SB_ALLOCATOR(_malloc_finalize)();
-void* SB_ALLOCATOR(malloc)(size_t size);
-void* SB_ALLOCATOR(memalign)(size_t align, size_t size);
-void* SB_ALLOCATOR(realloc)(void* ptr, size_t size);
-void SB_ALLOCATOR(free)(void* ptr);
-
 #ifdef __cplusplus
 }  // extern "C"
 #endif
diff --git a/starboard/shared/dlmalloc/system_get_used_cpu_memory.cc b/starboard/shared/dlmalloc/system_get_used_cpu_memory.cc
deleted file mode 100644
index 2e9a4d3..0000000
--- a/starboard/shared/dlmalloc/system_get_used_cpu_memory.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "starboard/memory.h"
-
-#include "starboard/shared/dlmalloc/page_internal.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// Returns the number of bytes obtained from the system.  The total
-// number of bytes allocated by malloc, realloc etc., is less than this
-// value. Unlike mallinfo, this function returns only a precomputed
-// result, so can be called frequently to monitor memory consumption.
-// Even if locks are otherwise defined, this function does not use them,
-// so results might not be up to date.
-//
-// See http://gee.cs.oswego.edu/pub/misc/malloc.h for more details.
-size_t SB_ALLOCATOR(malloc_footprint)();
-
-#ifdef __cplusplus
-}  // extern "C"
-#endif
-
-int64_t SbSystemGetUsedCPUMemory() {
-  return static_cast<int64_t>(SB_ALLOCATOR(malloc_footprint)());
-}
diff --git a/starboard/shared/starboard/application.cc b/starboard/shared/starboard/application.cc
index c54fa31..2d34e10 100644
--- a/starboard/shared/starboard/application.cc
+++ b/starboard/shared/starboard/application.cc
@@ -239,7 +239,7 @@
   SB_DCHECK(state_ == kStateUnstarted);
   DispatchAndDelete(CreateInitialEvent(kSbEventTypeStart, timestamp));
 }
-#else  // SB_API_VERSION >= 13
+#else   // SB_API_VERSION >= 13
 void Application::DispatchStart() {
   SB_DCHECK(IsCurrentThread());
   SB_DCHECK(state_ == kStateUnstarted || state_ == kStatePreloading);
@@ -253,7 +253,7 @@
   SB_DCHECK(state_ == kStateUnstarted);
   DispatchAndDelete(CreateInitialEvent(kSbEventTypePreload, timestamp));
 }
-#else  // SB_API_VERSION >= 13
+#else   // SB_API_VERSION >= 13
 void Application::DispatchPreload() {
   SB_DCHECK(IsCurrentThread());
   SB_DCHECK(state_ == kStateUnstarted);
@@ -334,7 +334,6 @@
         case kStateStopped:
           return true;
         case kStateFrozen:
-          OnResume();
           Inject(new Event(kSbEventTypeUnfreeze, timestamp, NULL, NULL));
           Inject(scoped_event.release());
           return true;
@@ -370,6 +369,7 @@
         case kStateStopped:
           return true;
         case kStateFrozen:
+          OnResume();
           break;
         case kStateConcealed:
         case kStateBlurred:
@@ -585,7 +585,7 @@
 #if SB_API_VERSION >= 13
 Application::Event* Application::CreateInitialEvent(SbEventType type,
                                                     SbTimeMonotonic timestamp) {
-#else  // SB_API_VERSION >= 13
+#else   // SB_API_VERSION >= 13
 Application::Event* Application::CreateInitialEvent(SbEventType type) {
 #endif  // SB_API_VERSION >= 13
   SB_DCHECK(type == kSbEventTypePreload || type == kSbEventTypeStart);
@@ -615,8 +615,8 @@
   } else if (IsStartImmediate()) {
     DispatchStart(SbTimeGetMonotonicNow());
   }
-#else  // SB_API_VERSION >= 13
- if (IsPreloadImmediate()) {
+#else   // SB_API_VERSION >= 13
+  if (IsPreloadImmediate()) {
     DispatchPreload();
   } else if (IsStartImmediate()) {
     DispatchStart();
diff --git a/starboard/shared/starboard/media/avc_util.cc b/starboard/shared/starboard/media/avc_util.cc
index aaa677e..81e196b 100644
--- a/starboard/shared/starboard/media/avc_util.cc
+++ b/starboard/shared/starboard/media/avc_util.cc
@@ -38,8 +38,7 @@
   if (annex_b_data_size < sizeof(kAnnexBHeader)) {
     return false;
   }
-  return memcmp(annex_b_data, kAnnexBHeader, sizeof(kAnnexBHeader)) ==
-         0;
+  return memcmp(annex_b_data, kAnnexBHeader, sizeof(kAnnexBHeader)) == 0;
 }
 
 // UInt8Type can be "uint8_t", or "const uint8_t".
@@ -125,6 +124,26 @@
       << "AVC parameter set NALUs not found.";
 }
 
+std::vector<uint8_t> AvcParameterSets::GetAllSpses() const {
+  std::vector<uint8_t> result;
+  for (const auto& parameter_set : parameter_sets_) {
+    if (parameter_set[4] == kSpsStartCode) {
+      result.insert(result.end(), parameter_set.begin(), parameter_set.end());
+    }
+  }
+  return result;
+}
+
+std::vector<uint8_t> AvcParameterSets::GetAllPpses() const {
+  std::vector<uint8_t> result;
+  for (const auto& parameter_set : parameter_sets_) {
+    if (parameter_set[4] == kPpsStartCode) {
+      result.insert(result.end(), parameter_set.begin(), parameter_set.end());
+    }
+  }
+  return result;
+}
+
 AvcParameterSets AvcParameterSets::ConvertTo(Format new_format) const {
   if (format_ == new_format) {
     return *this;
@@ -204,7 +223,7 @@
     avcc_destination[2] = static_cast<uint8_t>((payload_size & 0xff00) >> 8);
     avcc_destination[3] = static_cast<uint8_t>(payload_size & 0xff);
     memcpy(avcc_destination + kAvccLengthInBytes,
-                 last_source + kAnnexBHeaderSizeInBytes, payload_size);
+           last_source + kAnnexBHeaderSizeInBytes, payload_size);
     avcc_destination += annex_b_source - last_source;
     last_source = annex_b_source;
   }
diff --git a/starboard/shared/starboard/media/avc_util.h b/starboard/shared/starboard/media/avc_util.h
index c9d7931..7def624 100644
--- a/starboard/shared/starboard/media/avc_util.h
+++ b/starboard/shared/starboard/media/avc_util.h
@@ -83,6 +83,9 @@
   }
   size_t combined_size_in_bytes() const { return combined_size_in_bytes_; }
 
+  std::vector<uint8_t> GetAllSpses() const;
+  std::vector<uint8_t> GetAllPpses() const;
+
   AvcParameterSets ConvertTo(Format new_format) const;
 
   bool operator==(const AvcParameterSets& that) const;
diff --git a/starboard/shared/starboard/media/media_util.cc b/starboard/shared/starboard/media/media_util.cc
index ab3db04..786e284 100644
--- a/starboard/shared/starboard/media/media_util.cc
+++ b/starboard/shared/starboard/media/media_util.cc
@@ -221,7 +221,7 @@
   if (audio_specific_config_size > 0) {
     audio_specific_config_storage.resize(audio_specific_config_size);
     memcpy(audio_specific_config_storage.data(), audio_specific_config,
-                 audio_specific_config_size);
+           audio_specific_config_size);
     audio_specific_config = audio_specific_config_storage.data();
   }
 #if SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
@@ -310,6 +310,51 @@
   return true;
 }
 
+bool IsSDRVideo(const char* mime) {
+  SB_DCHECK(mime);
+
+  if (!mime) {
+    SB_LOG(WARNING) << mime << " is empty, assuming sdr video.";
+    return true;
+  }
+
+  MimeType mime_type(mime);
+  if (!mime_type.is_valid()) {
+    SB_LOG(WARNING) << mime << " is not a valid mime type, assuming sdr video.";
+    return true;
+  }
+  const std::vector<std::string> codecs = mime_type.GetCodecs();
+  if (codecs.empty()) {
+    SB_LOG(WARNING) << mime << " contains no codecs, assuming sdr video.";
+    return true;
+  }
+  if (codecs.size() > 1) {
+    SB_LOG(WARNING) << mime
+                    << " contains more than one codecs, assuming sdr video.";
+    return true;
+  }
+
+  SbMediaVideoCodec video_codec;
+  int profile = -1;
+  int level = -1;
+  int bit_depth = 8;
+  SbMediaPrimaryId primary_id = kSbMediaPrimaryIdUnspecified;
+  SbMediaTransferId transfer_id = kSbMediaTransferIdUnspecified;
+  SbMediaMatrixId matrix_id = kSbMediaMatrixIdUnspecified;
+
+  if (!ParseVideoCodec(codecs[0].c_str(), &video_codec, &profile, &level,
+                       &bit_depth, &primary_id, &transfer_id, &matrix_id)) {
+    SB_LOG(WARNING) << "ParseVideoCodec() failed on mime: " << mime
+                    << ", assuming sdr video.";
+    return true;
+  }
+
+  SB_DCHECK(video_codec != kSbMediaVideoCodecNone);
+  // TODO: Consider to consolidate the two IsSDRVideo() implementations by
+  //       calling IsSDRVideo(bit_depth, primary_id, transfer_id, matrix_id).
+  return bit_depth == 8;
+}
+
 SbMediaTransferId GetTransferIdFromString(const std::string& transfer_id) {
   if (transfer_id == "bt709") {
     return kSbMediaTransferIdBt709;
@@ -459,8 +504,7 @@
          left.samples_per_second != right.samples_per_second ||
          left.number_of_channels != right.number_of_channels ||
          left.audio_specific_config_size != right.audio_specific_config_size ||
-         memcmp(left.audio_specific_config,
-                right.audio_specific_config,
+         memcmp(left.audio_specific_config, right.audio_specific_config,
                 left.audio_specific_config_size) != 0;
 }
 
@@ -471,8 +515,7 @@
 
 bool operator==(const SbMediaColorMetadata& metadata_1,
                 const SbMediaColorMetadata& metadata_2) {
-  return memcmp(&metadata_1, &metadata_2,
-                sizeof(SbMediaColorMetadata)) == 0;
+  return memcmp(&metadata_1, &metadata_2, sizeof(SbMediaColorMetadata)) == 0;
 }
 
 bool operator==(const SbMediaVideoSampleInfo& sample_info_1,
@@ -489,7 +532,7 @@
     return false;
   }
   if (strcmp(sample_info_1.max_video_capabilities,
-                         sample_info_2.max_video_capabilities) != 0) {
+             sample_info_2.max_video_capabilities) != 0) {
     return false;
   }
 #endif  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
diff --git a/starboard/shared/starboard/media/media_util.h b/starboard/shared/starboard/media/media_util.h
index 3f43cd5..a0ee728 100644
--- a/starboard/shared/starboard/media/media_util.h
+++ b/starboard/shared/starboard/media/media_util.h
@@ -58,6 +58,7 @@
                 SbMediaPrimaryId primary_id,
                 SbMediaTransferId transfer_id,
                 SbMediaMatrixId matrix_id);
+bool IsSDRVideo(const char* mime);
 
 // Turns |eotf| into value of SbMediaTransferId.  If |eotf| isn't recognized the
 // function returns kSbMediaTransferIdReserved0.
diff --git a/starboard/shared/starboard/player/job_queue.cc b/starboard/shared/starboard/player/job_queue.cc
index 614535e..82c5ebe 100644
--- a/starboard/shared/starboard/player/job_queue.cc
+++ b/starboard/shared/starboard/player/job_queue.cc
@@ -96,11 +96,11 @@
 
   bool job_finished = false;
 
-  Schedule(std::bind([&]() {
+  Schedule([&]() {
     ScopedLock lock(mutex_);
     job_finished = true;
     condition_.Broadcast();
-  }));
+  });
 
   ScopedLock lock(mutex_);
   while (!job_finished && !stopped_) {
@@ -197,7 +197,7 @@
   bool is_first_job = time_to_job_record_map_.empty() ||
                       time_to_run_job < time_to_job_record_map_.begin()->first;
 
-  time_to_job_record_map_.insert(std::make_pair(time_to_run_job, job_record));
+  time_to_job_record_map_.insert({time_to_run_job, std::move(job_record)});
   if (is_first_job) {
     condition_.Broadcast();
   }
@@ -262,7 +262,7 @@
     if (delay > 0) {
       return false;
     }
-    job_record = first_delayed_job->second;
+    job_record = std::move(first_delayed_job->second);
     time_to_job_record_map_.erase(first_delayed_job);
   }
 
diff --git a/starboard/shared/starboard/player/job_queue.h b/starboard/shared/starboard/player/job_queue.h
index 1494872..f45949f 100644
--- a/starboard/shared/starboard/player/job_queue.h
+++ b/starboard/shared/starboard/player/job_queue.h
@@ -15,8 +15,6 @@
 #ifndef STARBOARD_SHARED_STARBOARD_PLAYER_JOB_QUEUE_H_
 #define STARBOARD_SHARED_STARBOARD_PLAYER_JOB_QUEUE_H_
 
-// TODO: We need unit tests for JobQueue and JobThread.
-
 #include <functional>
 #include <map>
 #include <utility>
@@ -72,11 +70,7 @@
       SB_DCHECK(job_queue);
     }
     JobOwner(const JobOwner&) = delete;
-    ~JobOwner() {
-      if (job_queue_) {
-        CancelPendingJobs();
-      }
-    }
+    ~JobOwner() { CancelPendingJobs(); }
 
     bool BelongsToCurrentThread() const {
       return job_queue_->BelongsToCurrentThread();
@@ -92,12 +86,16 @@
     void RemoveJobByToken(JobToken job_token) {
       return job_queue_->RemoveJobByToken(job_token);
     }
-    void CancelPendingJobs() { job_queue_->RemoveJobsByOwner(this); }
+    void CancelPendingJobs() {
+      if (job_queue_) {
+        job_queue_->RemoveJobsByOwner(this);
+      }
+    }
 
    protected:
     enum DetachedState { kDetached };
 
-    explicit JobOwner(DetachedState detached_state) : job_queue_(NULL) {
+    explicit JobOwner(DetachedState detached_state) : job_queue_(nullptr) {
       SB_DCHECK(detached_state == kDetached);
     }
 
@@ -106,10 +104,21 @@
     // Note that this operation is not thread safe.  It is the caller's
     // responsibility to ensure that concurrency hasn't happened yet.
     void AttachToCurrentThread() {
-      SB_DCHECK(job_queue_ == NULL);
+      SB_DCHECK(job_queue_ == nullptr);
       job_queue_ = JobQueue::current();
     }
 
+    // If a class implementing JobOwner also holds the current thread JobQueue,
+    // that JobQueue will get deleted before the JobOwner dtor runs, which
+    // accesses job_queue_. To avoid making calls on a destroyed object
+    // job_queue_ must be detached before the subclass is destroyed.
+    void DetachFromCurrentThread() {
+      SB_DCHECK(job_queue_ != nullptr);
+      SB_DCHECK(BelongsToCurrentThread());
+      CancelPendingJobs();
+      job_queue_ = nullptr;
+    }
+
    private:
     JobQueue* job_queue_;
   };
diff --git a/starboard/shared/starboard/player/job_queue_test.cc b/starboard/shared/starboard/player/job_queue_test.cc
new file mode 100644
index 0000000..53578cf
--- /dev/null
+++ b/starboard/shared/starboard/player/job_queue_test.cc
@@ -0,0 +1,182 @@
+// Copyright 2021 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/shared/starboard/player/job_queue.h"
+
+#include <atomic>
+#include <vector>
+
+#include "starboard/thread.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace starboard {
+namespace shared {
+namespace starboard {
+namespace player {
+
+namespace {
+
+using ::testing::ElementsAre;
+
+// Require at least millisecond-level precision.
+const SbTime kPrecision = kSbTimeMillisecond;
+
+class JobQueueTest
+    : public ::testing::Test,
+      protected ::starboard::shared::starboard::player::JobQueue::JobOwner {
+ public:
+  JobQueueTest() : JobOwner(kDetached) {}
+  ~JobQueueTest() {}
+  // Create a JobQueue for use on the current thread.
+  JobQueue job_queue_;
+};
+
+TEST_F(JobQueueTest, OwnedScheduledJobsAreExecutedInOrder) {
+  AttachToCurrentThread();
+
+  std::vector<int> values;
+  Schedule([&]() { values.push_back(1); });
+  Schedule([&]() { values.push_back(2); });
+  Schedule([&]() { values.push_back(3); });
+  Schedule([&]() { values.push_back(4); }, 1 * kPrecision);
+  Schedule([&]() { values.push_back(5); }, 1 * kPrecision);
+  Schedule([&]() { values.push_back(6); }, 1 * kPrecision);
+  Schedule([&]() { values.push_back(7); }, 2 * kPrecision);
+  Schedule([&]() { values.push_back(8); }, 3 * kPrecision);
+
+  // Sleep past the last scheduled job.
+  SbThreadSleep(4 * kPrecision);
+  job_queue_.RunUntilIdle();
+
+  EXPECT_THAT(values, ElementsAre(1, 2, 3, 4, 5, 6, 7, 8));
+  DetachFromCurrentThread();
+}
+
+TEST_F(JobQueueTest, OwnedJobsAreRemovedWhenOwnerGoesOutOfScope) {
+  std::atomic_bool job_1 = {false}, job_2 = {false};
+  {
+    JobQueue::JobOwner job_owner(&job_queue_);
+    job_owner.Schedule([&]() { job_1 = true; });
+    job_queue_.Schedule([&]() { job_2 = true; });
+  }
+  // Execute pending jobs.
+  job_queue_.RunUntilIdle();
+
+  // Job 1 was canceled due to job_owner going out of scope.
+  EXPECT_FALSE(job_1);
+  // Job 2 should have run as it was not owned by job_owner.
+  EXPECT_TRUE(job_2);
+}
+
+TEST_F(JobQueueTest, CancelPendingJobsCancelsPendingJobs) {
+  AttachToCurrentThread();
+  std::atomic_bool job_1 = {false}, job_2 = {false};
+
+  Schedule([&]() { job_1 = true; });
+  job_queue_.Schedule([&]() { job_2 = true; });
+
+  // Cancel the pending owned job (job 1).
+  CancelPendingJobs();
+
+  // Execute any remaining pending jobs.
+  job_queue_.RunUntilIdle();
+
+  // Job 1 was owned by |this| and should have been canceled.
+  EXPECT_FALSE(job_1);
+  // Job 2 should have run.
+  EXPECT_TRUE(job_2);
+  DetachFromCurrentThread();
+}
+
+TEST_F(JobQueueTest, RemovedJobsAreRemoved) {
+  std::atomic_bool job_1 = {false}, job_2 = {false};
+  auto job_token_1 = job_queue_.Schedule([&]() { job_1 = true; });
+  auto job_token_2 = job_queue_.Schedule([&]() { job_2 = true; });
+
+  // Cancel job 1.
+  job_queue_.RemoveJobByToken(job_token_1);
+
+  job_queue_.RunUntilIdle();
+
+  // Job 1 should have been canceled.
+  EXPECT_FALSE(job_1);
+  EXPECT_TRUE(job_2);
+
+  // Should be a no-op since job 2 already ran.
+  job_queue_.RemoveJobByToken(job_token_2);
+}
+
+TEST_F(JobQueueTest, RunUntilStoppedExecutesAllRemainingJobs) {
+  SbTimeMonotonic start = SbTimeGetMonotonicNow();
+  std::atomic_bool job_1 = {false}, job_2 = {false}, job_3 = {false};
+  job_queue_.Schedule([&job_1]() { job_1 = true; });
+  job_queue_.Schedule([&job_2]() { job_2 = true; }, 1 * kPrecision);
+  job_queue_.Schedule([&job_3]() { job_3 = true; }, 2 * kPrecision);
+  job_queue_.Schedule([&]() { job_queue_.StopSoon(); }, 3 * kPrecision);
+
+  job_queue_.RunUntilIdle();
+  // Job 1 should have been executed.
+  EXPECT_TRUE(job_1);
+
+  job_queue_.RunUntilStopped();
+
+  // All other pending jobs should have run.
+  EXPECT_TRUE(job_2);
+  EXPECT_TRUE(job_3);
+
+  // Time passed should at least be as long as the delay of the last job.
+  EXPECT_GE(SbTimeGetMonotonicNow() - start, 3 * kPrecision);
+}
+
+TEST_F(JobQueueTest, JobsAreMovedAndNotCopied) {
+  struct MoveMe {
+   public:
+    MoveMe() {}
+    MoveMe(MoveMe const& other) {
+      copied = true;
+      moved = other.moved;
+    }
+    MoveMe(MoveMe&& other) {
+      copied = other.copied;
+      moved = true;
+    }
+
+    bool copied = false;
+    bool moved = false;
+  };
+
+  std::atomic_bool moved = {false}, copied = {false};
+  MoveMe move_me;
+  auto job = [ move_me = std::move(move_me), &moved, &copied ]() {
+    moved = move_me.moved;
+    copied = move_me.copied;
+  };
+  job_queue_.Schedule(std::move(job));
+  job_queue_.RunUntilIdle();
+
+  EXPECT_FALSE(copied);
+  EXPECT_TRUE(moved);
+}
+
+TEST_F(JobQueueTest, QueueBelongsToCorrectThread) {
+  EXPECT_EQ(&job_queue_, JobQueue::current());
+  EXPECT_TRUE(job_queue_.BelongsToCurrentThread());
+}
+
+}  // namespace
+}  // namespace player
+}  // namespace starboard
+}  // namespace shared
+}  // namespace starboard
diff --git a/starboard/shared/starboard/player/job_thread.cc b/starboard/shared/starboard/player/job_thread.cc
index bf22fcf..b4828e1 100644
--- a/starboard/shared/starboard/player/job_thread.cc
+++ b/starboard/shared/starboard/player/job_thread.cc
@@ -49,14 +49,19 @@
 }
 
 JobThread::~JobThread() {
-  job_queue_->Schedule(std::bind(&JobQueue::StopSoon, job_queue_.get()));
-  SbThreadJoin(thread_, NULL);
+  // TODO: There is a potential race condition here since job_queue_ can get
+  // reset if it's is stopped while this dtor is running. Thus, avoid stopping
+  // job_queue_ before JobThread is destructed.
+  if (job_queue_) {
+    job_queue_->Schedule(std::bind(&JobQueue::StopSoon, job_queue_.get()));
+  }
+  SbThreadJoin(thread_, nullptr);
 }
 
 // static
 void* JobThread::ThreadEntryPoint(void* context) {
   ThreadParam* param = static_cast<ThreadParam*>(context);
-  SB_DCHECK(param != NULL);
+  SB_DCHECK(param != nullptr);
   JobThread* job_thread = param->job_thread;
   {
     ScopedLock scoped_lock(param->mutex);
@@ -64,13 +69,15 @@
     param->condition_variable.Signal();
   }
   job_thread->RunLoop();
-  return NULL;
+  return nullptr;
 }
 
 void JobThread::RunLoop() {
   SB_DCHECK(job_queue_->BelongsToCurrentThread());
 
   job_queue_->RunUntilStopped();
+  // TODO: Investigate removing this line to avoid the race condition in the
+  // dtor.
   job_queue_.reset();
 }
 
diff --git a/starboard/shared/starboard/player/job_thread.h b/starboard/shared/starboard/player/job_thread.h
index 4c9b66f..c6ae99c 100644
--- a/starboard/shared/starboard/player/job_thread.h
+++ b/starboard/shared/starboard/player/job_thread.h
@@ -55,16 +55,22 @@
 
     return job_queue_->Schedule(job, delay);
   }
+
   JobQueue::JobToken Schedule(JobQueue::Job&& job, SbTimeMonotonic delay = 0) {
     SB_DCHECK(job_queue_);
 
     return job_queue_->Schedule(std::move(job), delay);
   }
+
   void ScheduleAndWait(const JobQueue::Job& job) {
     SB_DCHECK(job_queue_);
 
     job_queue_->ScheduleAndWait(job);
   }
+
+  // TODO: Calling ScheduleAndWait with a call to JobQueue::StopSoon will cause
+  // heap-use-after-free errors in ScheduleAndWait due to JobQueue dtor
+  // occasionally running before ScheduleAndWait has finished.
   void ScheduleAndWait(JobQueue::Job&& job) {
     SB_DCHECK(job_queue_);
 
diff --git a/starboard/shared/starboard/player/job_thread_test.cc b/starboard/shared/starboard/player/job_thread_test.cc
new file mode 100644
index 0000000..961b070
--- /dev/null
+++ b/starboard/shared/starboard/player/job_thread_test.cc
@@ -0,0 +1,170 @@
+// Copyright 2021 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/shared/starboard/player/job_thread.h"
+
+#include <atomic>
+#include <vector>
+
+#include "starboard/shared/starboard/player/job_queue.h"
+#include "starboard/thread.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace starboard {
+namespace shared {
+namespace starboard {
+namespace player {
+
+namespace {
+
+using ::testing::ElementsAre;
+
+// Require at least millisecond-level precision.
+constexpr SbTime kPrecision = kSbTimeMillisecond;
+
+void ExecutePendingJobs(JobThread* job_thread) {
+  job_thread->ScheduleAndWait([]() {});
+}
+
+TEST(JobThreadTest, ScheduledJobsAreExecutedInOrder) {
+  std::vector<int> values;
+  JobThread job_thread{"JobThreadTests"};
+  job_thread.Schedule([&]() { values.push_back(1); });
+  job_thread.Schedule([&]() { values.push_back(2); });
+  job_thread.Schedule([&]() { values.push_back(3); });
+  job_thread.Schedule([&]() { values.push_back(4); }, 1 * kPrecision);
+  job_thread.Schedule([&]() { values.push_back(5); }, 1 * kPrecision);
+  job_thread.Schedule([&]() { values.push_back(6); }, 1 * kPrecision);
+  job_thread.Schedule([&]() { values.push_back(7); }, 2 * kPrecision);
+  job_thread.Schedule([&]() { values.push_back(8); }, 3 * kPrecision);
+
+  // Sleep past the last scheduled job.
+  SbThreadSleep(4 * kPrecision);
+
+  ExecutePendingJobs(&job_thread);
+
+  EXPECT_THAT(values, ElementsAre(1, 2, 3, 4, 5, 6, 7, 8));
+}
+
+TEST(JobThreadTest, ScheduleAndWaitWaits) {
+  SbTimeMonotonic start = SbTimeGetMonotonicNow();
+  std::atomic_bool job_1 = {false};
+  JobThread job_thread{"JobThreadTests"};
+  job_thread.ScheduleAndWait([&]() {
+    SbThreadSleep(1 * kPrecision);
+    job_1 = true;
+  });
+  // Verify that the job ran and that it took at least as long as it slept.
+  EXPECT_TRUE(job_1);
+  EXPECT_GE(SbTimeGetMonotonicNow() - start, 1 * kPrecision);
+}
+
+TEST(JobThreadTest, ScheduledJobsShouldNotExecuteAfterGoingOutOfScope) {
+  std::atomic_int counter = {0};
+  {
+    JobThread job_thread{"JobThreadTests"};
+    std::function<void()> job = [&]() {
+      counter++;
+      job_thread.Schedule(job, 2 * kPrecision);
+    };
+    job_thread.Schedule(job);
+
+    // Wait for the job to run at least once and reschedule itself.
+    SbThreadSleep(1 * kPrecision);
+    ExecutePendingJobs(&job_thread);
+  }
+  int end_value = counter;
+  EXPECT_GE(counter, 1);
+
+  // Sleep past two more (potential) executions and verify there were none.
+  SbThreadSleep(4 * kPrecision);
+  EXPECT_EQ(counter, end_value);
+}
+
+TEST(JobThreadTest, CanceledJobsAreCanceled) {
+  std::atomic_int counter_1 = {0}, counter_2 = {0};
+  JobQueue::JobToken job_token_1, job_token_2;
+
+  JobThread job_thread{"JobThreadTests"};
+  std::function<void()> job_1 = [&]() {
+    counter_1++;
+    job_token_1 = job_thread.Schedule(job_1);
+  };
+  std::function<void()> job_2 = [&]() {
+    counter_2++;
+    job_token_2 = job_thread.Schedule(job_2);
+  };
+
+  job_token_1 = job_thread.Schedule(job_1);
+  job_token_2 = job_thread.Schedule(job_2);
+
+  // Wait for the scheduled jobs to at least run once.
+  ExecutePendingJobs(&job_thread);
+
+  // Cancel job 1 and grab the current counter values.
+  job_thread.ScheduleAndWait(
+      [&]() { job_thread.RemoveJobByToken(job_token_1); });
+  int checkpoint_1 = counter_1;
+  int checkpoint_2 = counter_2;
+
+  // Sleep and wait for pending jobs to run.
+  SbThreadSleep(1 * kPrecision);
+  ExecutePendingJobs(&job_thread);
+
+  // Job 1 should not have run again.
+  EXPECT_EQ(counter_1, checkpoint_1);
+
+  // Job 2 should have continued running.
+  EXPECT_GT(counter_2, checkpoint_2);
+
+  // Cancel job 2 to avoid it scheduling itself during destruction.
+  job_thread.ScheduleAndWait(
+      [&]() { job_thread.RemoveJobByToken(job_token_2); });
+}
+
+TEST(JobThreadTest, QueueBelongsToCorrectThread) {
+  JobThread job_thread{"JobThreadTests"};
+  JobQueue job_queue;
+
+  bool belongs_to_job_thread = false;
+  bool belongs_to_main_thread = false;
+
+  // Schedule in JobQueue owned by job thread.
+  job_thread.ScheduleAndWait([&]() {
+    belongs_to_job_thread = job_thread.BelongsToCurrentThread();
+    belongs_to_main_thread = job_queue.BelongsToCurrentThread();
+  });
+
+  EXPECT_TRUE(belongs_to_job_thread);
+  EXPECT_FALSE(belongs_to_main_thread);
+
+  belongs_to_job_thread = belongs_to_main_thread = false;
+
+  // Schedule in JobQueue owned by main thread.
+  job_queue.Schedule([&]() {
+    belongs_to_job_thread = job_thread.BelongsToCurrentThread();
+    belongs_to_main_thread = job_queue.BelongsToCurrentThread();
+  });
+
+  job_queue.RunUntilIdle();
+  EXPECT_FALSE(belongs_to_job_thread);
+  EXPECT_TRUE(belongs_to_main_thread);
+}
+
+}  // namespace
+}  // namespace player
+}  // namespace starboard
+}  // namespace shared
+}  // namespace starboard
diff --git a/docker/precommit_hooks/docker-compose.yml b/starboard/shared/starboard/player/player_tests.gni
similarity index 69%
copy from docker/precommit_hooks/docker-compose.yml
copy to starboard/shared/starboard/player/player_tests.gni
index 6106d19..e9ea0ac 100644
--- a/docker/precommit_hooks/docker-compose.yml
+++ b/starboard/shared/starboard/player/player_tests.gni
@@ -12,16 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: '2.4'
-
-services:
-  pre-commit:
-    build:
-      context: .
-      dockerfile: Dockerfile
-    image: pre-commit
-    volumes:
-      - ${COBALT_SRC:-../../}:/code/
-    environment:
-      FROM_REF: ${FROM_REF:-HEAD^1}
-      TO_REF: ${TO_REF:-HEAD}
+player_tests_sources = [
+  "//starboard/shared/starboard/player/job_queue_test.cc",
+  "//starboard/shared/starboard/player/job_thread_test.cc",
+]
diff --git a/docker/precommit_hooks/docker-compose.yml b/starboard/shared/starboard/player/player_tests.gypi
similarity index 65%
copy from docker/precommit_hooks/docker-compose.yml
copy to starboard/shared/starboard/player/player_tests.gypi
index 6106d19..1ad36ff 100644
--- a/docker/precommit_hooks/docker-compose.yml
+++ b/starboard/shared/starboard/player/player_tests.gypi
@@ -12,16 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: '2.4'
-
-services:
-  pre-commit:
-    build:
-      context: .
-      dockerfile: Dockerfile
-    image: pre-commit
-    volumes:
-      - ${COBALT_SRC:-../../}:/code/
-    environment:
-      FROM_REF: ${FROM_REF:-HEAD^1}
-      TO_REF: ${TO_REF:-HEAD}
+{
+  'variables': {
+    # This will be included by 'starboard_platform_tests.gyp' so full path names
+    # have to be used here.
+    'player_tests_sources': [
+      '<(DEPTH)/starboard/shared/starboard/player/job_queue_test.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/job_thread_test.cc',
+    ],
+  },
+}
diff --git a/starboard/stub/platform_configuration/BUILD.gn b/starboard/stub/platform_configuration/BUILD.gn
index a5bdb8f..e75f459 100644
--- a/starboard/stub/platform_configuration/BUILD.gn
+++ b/starboard/stub/platform_configuration/BUILD.gn
@@ -25,18 +25,13 @@
   }
 
   if (is_debug) {
-    cflags += [
-      "-frtti",
-      "-O0",
-    ]
+    cflags += [ "-O0" ]
+    configs += [ "//build/config/compiler:rtti" ]
   } else if (is_devel) {
-    cflags += [
-      "-frtti",
-      "-O2",
-    ]
+    cflags += [ "-O2" ]
+    configs += [ "//build/config/compiler:rtti" ]
   } else {
     cflags += [
-      "-fno-rtti",
       "-O2",
       "-gline-tables-only",
     ]
diff --git a/starboard/tools/app_launcher_packager.py b/starboard/tools/app_launcher_packager.py
index 37a1e80..0420583 100644
--- a/starboard/tools/app_launcher_packager.py
+++ b/starboard/tools/app_launcher_packager.py
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-"""Extracts python files and writes platforms information.
+"""Extracts files and writes platforms information.
 
 This script extracts the app launcher scripts (and all their dependencies) from
 the Cobalt source tree, and then packages them into a user-specified location so
@@ -39,10 +39,16 @@
 from starboard.tools import port_symlink
 import starboard.tools.platform
 
-# Default python directories to app launcher resources.
-_INCLUDE_FILE_PATTERNS = [('cobalt', '*.py'), ('starboard', '*.py'),
-                          ('starboard', '*.pfx'),
-                          ('starboard/tools', 'platform.py.template')]
+# Default directories to app launcher resources.
+_INCLUDE_FILE_PATTERNS = [
+    ('cobalt', '*.py'),
+    ('starboard', '*.py'),
+    ('starboard', '*.pfx'),
+    ('starboard/tools', 'platform.py.template'),
+    # Just match everything since the Evergreen tests are written using shell
+    # scripts and html files.
+    ('starboard/evergreen/testing', '*')
+]
 
 _INCLUDE_BLACK_BOX_TESTS_PATTERNS = [
     # Black box and web platform tests have non-py assets, so everything
diff --git a/third_party/crashpad/third_party/libfuzzer/BUILD.gn b/third_party/crashpad/third_party/libfuzzer/BUILD.gn
deleted file mode 100644
index ac815da..0000000
--- a/third_party/crashpad/third_party/libfuzzer/BUILD.gn
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2018 The Crashpad Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-source_set("libfuzzer") {
-  if (crashpad_use_libfuzzer) {
-    sources = [
-      "src/FuzzerClangCounters.cpp",
-      "src/FuzzerCrossOver.cpp",
-      "src/FuzzerDriver.cpp",
-      "src/FuzzerExtFunctionsDlsym.cpp",
-      "src/FuzzerExtFunctionsDlsymWin.cpp",
-      "src/FuzzerExtFunctionsWeak.cpp",
-      "src/FuzzerExtFunctionsWeakAlias.cpp",
-      "src/FuzzerExtraCounters.cpp",
-      "src/FuzzerIO.cpp",
-      "src/FuzzerIOPosix.cpp",
-      "src/FuzzerIOWindows.cpp",
-      "src/FuzzerLoop.cpp",
-      "src/FuzzerMain.cpp",
-      "src/FuzzerMerge.cpp",
-      "src/FuzzerMutate.cpp",
-      "src/FuzzerSHA1.cpp",
-      "src/FuzzerShmemPosix.cpp",
-      "src/FuzzerShmemWindows.cpp",
-      "src/FuzzerTracePC.cpp",
-      "src/FuzzerUtil.cpp",
-      "src/FuzzerUtilDarwin.cpp",
-      "src/FuzzerUtilLinux.cpp",
-      "src/FuzzerUtilPosix.cpp",
-      "src/FuzzerUtilWindows.cpp",
-    ]
-
-    configs -= [
-      "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
-      "//build:crashpad_fuzzer_flags",
-    ]
-  }
-}
diff --git a/third_party/freetype2/docs/reference/README b/third_party/freetype2/docs/reference/README
deleted file mode 100644
index 3ffcfc0..0000000
--- a/third_party/freetype2/docs/reference/README
+++ /dev/null
@@ -1,35 +0,0 @@
-After saying `make refdoc' or `make refdoc-venv' the `site/' directory
-contains the FreeType API reference.  You need python and pip to make this
-target.
-
-There are two ways to generate the documentation:
-
-1. Using `make refdoc':
-
-    - Ensure `python' and `pip' are available.
-    - Install pip package `docwriter' with `pip install --user docwriter'.
-    - Make target with `make refdoc'.
-    - This target can be run offline once required packages are installed.
-
-2. Using `make refdoc-venv' (requires internet access):
-
-    - Ensure `python', `pip' and python package `virtualenv' are available.
-    - Make target with `make refdoc-venv'.
-    - This may or may not require internet access every time depending on
-    pip and system caching.
-
-This also works with Jam: Just type `jam refdoc' in the main directory.
-
-Some troubleshooting tips:
-
-* Regularly run `pip install --upgrade docwriter' to check for updates which
-may include bug fixes.
-
-* Ensure that `docwriter' is installed in the same python target that
-`make refdoc' uses (python3/python2/python).
-
-* `pip' and `python' may point to different versions of Python.  Check using
-`python --version' and `pip --version'.
-
-* If none of this works, send a mail to `freetype-devel@nongnu.org' or file
-an issue at `https://github.com/freetype/docwriter/issues'.
diff --git a/third_party/freetype2/docs/reference/markdown/images/favico.ico b/third_party/freetype2/docs/reference/markdown/images/favico.ico
deleted file mode 100644
index a1a22ed..0000000
--- a/third_party/freetype2/docs/reference/markdown/images/favico.ico
+++ /dev/null
Binary files differ
diff --git a/third_party/freetype2/docs/reference/markdown/javascripts/extra.js b/third_party/freetype2/docs/reference/markdown/javascripts/extra.js
deleted file mode 100644
index 00f1670..0000000
--- a/third_party/freetype2/docs/reference/markdown/javascripts/extra.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-Internal link topbar offest adjust Javascript
-Code provided by @makshh on GitHub
-
-Bug report on material-mkdocs
-  https://github.com/squidfunk/mkdocs-material/issues/791
-*/
-
-// Offset top helper
-function offsetY(elem) {
-    if(!elem) elem = this;
-    var y = elem.offsetTop;
-    while (elem = elem.offsetParent) {
-        y += elem.offsetTop;
-    }
-    return y;
-}
-
-// If a link on the same page is clicked, calculate the
-// correct offset and scroll to that part of the page.
-//
-var links = document.getElementsByTagName('a');
-for(var i = 0; i < links.length; i++) {
-    links[i].onclick = function (event) {
-        if (this.pathname == window.location.pathname &&
-            this.protocol == window.location.protocol &&
-            this.host == window.location.host) {
-                event.preventDefault();
-                if(this.hash.substr(1)){
-                    var o = document.getElementById(this.hash.substr(1));
-                    var sT = offsetY(o) - document.getElementsByClassName('md-header')[0].clientHeight;
-                    window.location.hash = this.hash;
-                    window.scrollTo(0, sT);
-                }
-        }
-    }
-}
-
-// Slugify supplied text
-function slugify(text){
-    text = text.toLowerCase();
-    text = text.replace(" ", "-");
-    return text;
-}
-
-// If there is a hash in the url, slugify it
-// and replace
-if(window.location.hash) {
-    // Fragment exists
-    slug = slugify(window.location.hash);
-    history.replaceState(undefined, undefined, slug)
-    //window.location.hash = slug;
-    document.location.replace(window.location.href);
-}
diff --git a/third_party/freetype2/docs/reference/markdown/stylesheets/extra.css b/third_party/freetype2/docs/reference/markdown/stylesheets/extra.css
deleted file mode 100644
index cd6a1ee..0000000
--- a/third_party/freetype2/docs/reference/markdown/stylesheets/extra.css
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Body and page */
-.wy-nav-content {
-    max-width: 90%;
-}
-.md-grid {
-    max-width: 90%;
-}
-.md-sidebar--secondary {
-    margin-left: 90%;
-}
-p {
-    text-align: justify;
-   /* margin: 1.5ex 0 1.5ex 0;
-    */
-}
-/* .md-typeset p{
-    margin: 1em 1em 0 1em;
-}
-*/
-/* code blocks */
-pre.colored {
-    color: blue;
-}
-pre {
-    font-family: monospace;
-    background-color: #D6E8FF;
-    padding: 2ex 0 2ex 1%;
-    overflow-x:auto;
-}
-span.keyword {
-    font-family: monospace;
-    text-align: left;
-    white-space: pre;
-    color: #d73a49;
-}
-.md-typeset code {
-    white-space: pre;
-}
-/* H4 Heading */
-h4 {
-    background-color: #EEEEFF;
-    font-size: medium;
-    font-style: oblique;
-    font-weight: bold;
-   /* margin: 3ex 0 1.5ex 9%;
-    */
-    padding: 0.3em 0 0.3em 1%;
-}
-/* Fields table */
-table.fields {
-    width: 90%;
-    margin: 1.5ex 0 1.5ex 10%;
-}
-table.fields td.val {
-    font-weight: bold;
-    text-align: right;
-    width: 30%;
-    vertical-align: baseline;
-    padding: 1em 1em 0 0;
-}
-table.fields td.desc {
-    vertical-align: baseline;
-    padding: 1ex 0 0 1em;
-}
-table.fields td.desc p:first-child {
-    margin: 0;
-}
-
-table.fields td.desc p {
-    margin: 1.5ex 0 0 0;
-}
-
-/* START EXPERIMENTAL CODE */
-table.long {
-    display: block;
-    width: 93%;
-}
-table.long thead,
-table.long tbody,
-table.long th,
-table.long td,
-table.long tr {
-    display: block;
-}
-/* Hide table headers (but not display: none;
-, for accessibility) */
-table.long thead tr {
-    position: absolute;
-    top: -9999px;
-    left: -9999px;
-}
-table.long tr {
-    border: 0;
-}
-table.long {
-    margin: 1.5ex 3% 1.5ex 3%;
-}
-table.long td.val {
-    text-align: left;
-}
-table.long td {
-   /* Behave like a "row" */
-    border: none;
-    border-bottom: 0;
-    position: relative;
-    padding-left: 50%;
-}
-table.long td:before {
-   /* Now like a table header */
-    position: absolute;
-   /* Top/left values mimic padding */
-    top: 6px;
-    left: 6px;
-    width: 45%;
-    padding-right: 10px;
-    white-space: nowrap;
-}
-/* END EXPERIMENTAL CODE */
-
-/* Index table */
-table.index {
-    width: 100%;
-    border-collapse: collapse;
-    border: 0;
-    border-spacing: 1em 0.3ex;
-}
-table.index tr {
-    padding: 0;
-}
-table.index td {
-    padding: 0;
-}
-table.index-toc-link {
-    width: 100%;
-    border: 0;
-    border-spacing: 0;
-    margin: 1ex 0 1ex 0;
-}
-table.index-toc-link td.left {
-    padding: 0 0.5em 0 0.5em;
-    font-size: 83%;
-    text-align: left;
-}
-table.index-toc-link td.middle {
-    padding: 0 0.5em 0 0.5em;
-    font-size: 83%;
-    text-align: center;
-}
-table.index-toc-link td.right {
-    padding: 0 0.5em 0 0.5em;
-    font-size: 83%;
-    text-align: right;
-}
-/* toc table */
-table.toc {
-    width: 95%;
-    margin: 1.5ex 0 1.5ex 5%;
-}
-table.toc td.link {
-    width: 30%;
-    text-align: right;
-    vertical-align: baseline;
-    padding: 1ex 1em 1ex 0;
-}
-table.toc td.desc {
-    vertical-align: baseline;
-    padding: 1ex 0 1ex 1em;
-    text-align: left;
-}
-table.toc td.desc p:first-child {
-    margin: 0;
-    text-align: left;
-}
-table.toc td.desc p {
-    margin: 1.5ex 0 0 0;
-    text-align: left;
-}
-div.timestamp {
-    font-size: small;
-}
-/* Max width before this PARTICULAR table gets nasty This query will take effect for any screen smaller than 760px and also iPads specifically. */
-@media only screen and (max-width: 760px), (min-device-width: 768px) and (max-device-width: 1024px) {
-   /* Force table to not be like tables anymore */
-    table, thead, tbody, th, td, tr {
-        display: block;
-   }
-   /* Hide table headers (but not display: none;
-    , for accessibility) */
-    thead tr {
-        position: absolute;
-        top: -9999px;
-        left: -9999px;
-   }
-    tr {
-        border: 0;
-   }
-    table.fields {
-        width: 93%;
-        margin: 1.5ex 3% 1.5ex 3%;
-   }
-    table.fields td.val {
-        text-align: left;
-   }
-    td {
-       /* Behave like a "row" */
-        border: none;
-        border-bottom: 0;
-        position: relative;
-        padding-left: 50%;
-   }
-    td:before {
-       /* Now like a table header */
-        position: absolute;
-       /* Top/left values mimic padding */
-        top: 6px;
-        left: 6px;
-        width: 45%;
-        padding-right: 10px;
-        white-space: nowrap;
-   }
-}
diff --git a/third_party/glm/cmake/CMakePackageConfigHelpers.cmake b/third_party/glm/cmake/CMakePackageConfigHelpers.cmake
deleted file mode 100644
index d5bf4a2..0000000
--- a/third_party/glm/cmake/CMakePackageConfigHelpers.cmake
+++ /dev/null
@@ -1,227 +0,0 @@
-# - CONFIGURE_PACKAGE_CONFIG_FILE(), WRITE_BASIC_PACKAGE_VERSION_FILE()
-#
-#    CONFIGURE_PACKAGE_CONFIG_FILE(<input> <output> INSTALL_DESTINATION <path>
-#                                                   [PATH_VARS <var1> <var2> ... <varN>]
-#                                                   [NO_SET_AND_CHECK_MACRO]
-#                                                   [NO_CHECK_REQUIRED_COMPONENTS_MACRO])
-#
-# CONFIGURE_PACKAGE_CONFIG_FILE() should be used instead of the plain
-# CONFIGURE_FILE() command when creating the <Name>Config.cmake or <Name>-config.cmake
-# file for installing a project or library. It helps making the resulting package
-# relocatable by avoiding hardcoded paths in the installed Config.cmake file.
-#
-# In a FooConfig.cmake file there may be code like this to make the
-# install destinations know to the using project:
-#   set(FOO_INCLUDE_DIR   "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
-#   set(FOO_DATA_DIR   "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
-#   set(FOO_ICONS_DIR   "@CMAKE_INSTALL_PREFIX@/share/icons" )
-#   ...logic to determine installedPrefix from the own location...
-#   set(FOO_CONFIG_DIR  "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
-# All 4 options shown above are not sufficient, since the first 3 hardcode
-# the absolute directory locations, and the 4th case works only if the logic
-# to determine the installedPrefix is correct, and if CONFIG_INSTALL_DIR contains
-# a relative path, which in general cannot be guaranteed.
-# This has the effect that the resulting FooConfig.cmake file would work poorly
-# under Windows and OSX, where users are used to choose the install location
-# of a binary package at install time, independent from how CMAKE_INSTALL_PREFIX
-# was set at build/cmake time.
-#
-# Using CONFIGURE_PACKAGE_CONFIG_FILE() helps. If used correctly, it makes the
-# resulting FooConfig.cmake file relocatable.
-# Usage:
-#   1. write a FooConfig.cmake.in file as you are used to
-#   2. insert a line containing only the string "@PACKAGE_INIT@"
-#   3. instead of SET(FOO_DIR "@SOME_INSTALL_DIR@"), use SET(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")
-#      (this must be after the @PACKAGE_INIT@ line)
-#   4. instead of using the normal CONFIGURE_FILE(), use CONFIGURE_PACKAGE_CONFIG_FILE()
-#
-# The <input> and <output> arguments are the input and output file, the same way
-# as in CONFIGURE_FILE().
-#
-# The <path> given to INSTALL_DESTINATION must be the destination where the FooConfig.cmake
-# file will be installed to. This can either be a relative or absolute path, both work.
-#
-# The variables <var1> to <varN> given as PATH_VARS are the variables which contain
-# install destinations. For each of them the macro will create a helper variable
-# PACKAGE_<var...>. These helper variables must be used
-# in the FooConfig.cmake.in file for setting the installed location. They are calculated
-# by CONFIGURE_PACKAGE_CONFIG_FILE() so that they are always relative to the
-# installed location of the package. This works both for relative and also for absolute locations.
-# For absolute locations it works only if the absolute location is a subdirectory
-# of CMAKE_INSTALL_PREFIX.
-#
-# By default configure_package_config_file() also generates two helper macros,
-# set_and_check() and check_required_components() into the FooConfig.cmake file.
-#
-# set_and_check() should be used instead of the normal set()
-# command for setting directories and file locations. Additionally to setting the
-# variable it also checks that the referenced file or directory actually exists
-# and fails with a FATAL_ERROR otherwise. This makes sure that the created
-# FooConfig.cmake file does not contain wrong references.
-# When using the NO_SET_AND_CHECK_MACRO, this macro is not generated into the
-# FooConfig.cmake file.
-#
-# check_required_components(<package_name>) should be called at the end of the
-# FooConfig.cmake file if the package supports components.
-# This macro checks whether all requested, non-optional components have been found,
-# and if this is not the case, sets the Foo_FOUND variable to FALSE, so that the package
-# is considered to be not found.
-# It does that by testing the Foo_<Component>_FOUND variables for all requested
-# required components.
-# When using the NO_CHECK_REQUIRED_COMPONENTS option, this macro is not generated
-# into the FooConfig.cmake file.
-#
-# For an example see below the documentation for WRITE_BASIC_PACKAGE_VERSION_FILE().
-#
-#
-#  WRITE_BASIC_PACKAGE_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion|ExactVersion) )
-#
-# Writes a file for use as <package>ConfigVersion.cmake file to <filename>.
-# See the documentation of FIND_PACKAGE() for details on this.
-#    filename is the output filename, it should be in the build tree.
-#    major.minor.patch is the version number of the project to be installed
-# The COMPATIBILITY mode AnyNewerVersion means that the installed package version
-# will be considered compatible if it is newer or exactly the same as the requested version.
-# This mode should be used for packages which are fully backward compatible,
-# also across major versions.
-# If SameMajorVersion is used instead, then the behaviour differs from AnyNewerVersion
-# in that the major version number must be the same as requested, e.g. version 2.0 will
-# not be considered compatible if 1.0 is requested.
-# This mode should be used for packages which guarantee backward compatibility within the
-# same major version.
-# If ExactVersion is used, then the package is only considered compatible if the requested
-# version matches exactly its own version number (not considering the tweak version).
-# For example, version 1.2.3 of a package is only considered compatible to requested version 1.2.3.
-# This mode is for packages without compatibility guarantees.
-# If your project has more elaborated version matching rules, you will need to write your
-# own custom ConfigVersion.cmake file instead of using this macro.
-#
-# Internally, this macro executes configure_file() to create the resulting
-# version file. Depending on the COMPATIBILITY, either the file
-# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
-# is used. Please note that these two files are internal to CMake and you should
-# not call configure_file() on them yourself, but they can be used as starting
-# point to create more sophisticted custom ConfigVersion.cmake files.
-#
-#
-# Example using both configure_package_config_file() and write_basic_package_version_file():
-# CMakeLists.txt:
-#   set(INCLUDE_INSTALL_DIR include/ ... CACHE )
-#   set(LIB_INSTALL_DIR lib/ ... CACHE )
-#   set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
-#   ...
-#   include(CMakePackageConfigHelpers)
-#   configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
-#                                 INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
-#                                 PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
-#   write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
-#                                    VERSION 1.2.3
-#                                    COMPATIBILITY SameMajorVersion )
-#   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
-#           DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
-#
-# With a FooConfig.cmake.in:
-#   set(FOO_VERSION x.y.z)
-#   ...
-#   @PACKAGE_INIT@
-#   ...
-#   set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
-#   set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@")
-#
-#   check_required_components(Foo)
-
-
-#=============================================================================
-# Copyright 2012 Alexander Neundorf <neundorf@kde.org>
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-include(CMakeParseArguments)
-
-include(WriteBasicConfigVersionFile)
-
-macro(WRITE_BASIC_PACKAGE_VERSION_FILE)
-  write_basic_config_version_file(${ARGN})
-endmacro()
-
-
-function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile)
-  set(options NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO)
-  set(oneValueArgs INSTALL_DESTINATION )
-  set(multiValueArgs PATH_VARS )
-
-  cmake_parse_arguments(CCF "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${ARGN})
-
-  if(CCF_UNPARSED_ARGUMENTS)
-    message(FATAL_ERROR "Unknown keywords given to CONFIGURE_PACKAGE_CONFIG_FILE(): \"${CCF_UNPARSED_ARGUMENTS}\"")
-  endif()
-
-  if(NOT CCF_INSTALL_DESTINATION)
-    message(FATAL_ERROR "No INSTALL_DESTINATION given to CONFIGURE_PACKAGE_CONFIG_FILE()")
-  endif()
-
-  if(IS_ABSOLUTE "${CCF_INSTALL_DESTINATION}")
-    set(absInstallDir "${CCF_INSTALL_DESTINATION}")
-  else()
-    set(absInstallDir "${CMAKE_INSTALL_PREFIX}/${CCF_INSTALL_DESTINATION}")
-  endif()
-  file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${absInstallDir}" "${CMAKE_INSTALL_PREFIX}" )
-
-  foreach(var ${CCF_PATH_VARS})
-    if(NOT DEFINED ${var})
-      message(FATAL_ERROR "Variable ${var} does not exist")
-    else()
-      if(IS_ABSOLUTE "${${var}}")
-        string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${PACKAGE_PREFIX_DIR}"
-                        PACKAGE_${var} "${${var}}")
-      else()
-        set(PACKAGE_${var} "\${PACKAGE_PREFIX_DIR}/${${var}}")
-      endif()
-    endif()
-  endforeach()
-
-  set(PACKAGE_INIT "
-####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
-get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/${PACKAGE_RELATIVE_PATH}\" ABSOLUTE)
-")
-
-  if(NOT CCF_NO_SET_AND_CHECK_MACRO)
-    set(PACKAGE_INIT "${PACKAGE_INIT}
-macro(set_and_check _var _file)
-  set(\${_var} \"\${_file}\")
-  if(NOT EXISTS \"\${_file}\")
-    message(FATAL_ERROR \"File or directory \${_file} referenced by variable \${_var} does not exist !\")
-  endif()
-endmacro()
-")
-  endif()
-
-
-  if(NOT CCF_NO_CHECK_REQUIRED_COMPONENTS_MACRO)
-    set(PACKAGE_INIT "${PACKAGE_INIT}
-macro(check_required_components _NAME)
-  foreach(comp \${\${_NAME}_FIND_COMPONENTS})
-    if(NOT \${_NAME}_\${comp}_FOUND)
-      if(\${_NAME}_FIND_REQUIRED_\${comp})
-        set(\${_NAME}_FOUND FALSE)
-      endif()
-    endif()
-  endforeach(comp)
-endmacro()
-")
-  endif()
-
-  set(PACKAGE_INIT "${PACKAGE_INIT}
-####################################################################################")
-
-  configure_file("${_inputFile}" "${_outputFile}" @ONLY)
-
-endfunction()
diff --git a/third_party/glm/cmake/GNUInstallDirs.cmake b/third_party/glm/cmake/GNUInstallDirs.cmake
deleted file mode 100644
index 4dc2d68..0000000
--- a/third_party/glm/cmake/GNUInstallDirs.cmake
+++ /dev/null
@@ -1,188 +0,0 @@
-# - Define GNU standard installation directories
-# Provides install directory variables as defined for GNU software:
-#  http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
-# Inclusion of this module defines the following variables:
-#  CMAKE_INSTALL_<dir>      - destination for files of a given type
-#  CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
-# where <dir> is one of:
-#  BINDIR           - user executables (bin)
-#  SBINDIR          - system admin executables (sbin)
-#  LIBEXECDIR       - program executables (libexec)
-#  SYSCONFDIR       - read-only single-machine data (etc)
-#  SHAREDSTATEDIR   - modifiable architecture-independent data (com)
-#  LOCALSTATEDIR    - modifiable single-machine data (var)
-#  LIBDIR           - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
-#  INCLUDEDIR       - C header files (include)
-#  OLDINCLUDEDIR    - C header files for non-gcc (/usr/include)
-#  DATAROOTDIR      - read-only architecture-independent data root (share)
-#  DATADIR          - read-only architecture-independent data (DATAROOTDIR)
-#  INFODIR          - info documentation (DATAROOTDIR/info)
-#  LOCALEDIR        - locale-dependent data (DATAROOTDIR/locale)
-#  MANDIR           - man documentation (DATAROOTDIR/man)
-#  DOCDIR           - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
-# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
-# install() commands for the corresponding file type.  If the includer does
-# not define a value the above-shown default will be used and the value will
-# appear in the cache for editing by the user.
-# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
-# from the corresponding destination by prepending (if necessary) the value
-# of CMAKE_INSTALL_PREFIX.
-
-#=============================================================================
-# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
-# Copyright 2011 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-# Installation directories
-#
-if(NOT DEFINED CMAKE_INSTALL_BINDIR)
-  set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
-  set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
-  set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
-  set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
-  set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
-  set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
-  set(_LIBDIR_DEFAULT "lib")
-  # Override this default 'lib' with 'lib64' iff:
-  #  - we are on Linux system but NOT cross-compiling
-  #  - we are NOT on debian
-  #  - we are on a 64 bits system
-  # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
-  # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
-  # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
-  # See http://wiki.debian.org/Multiarch
-  if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
-      AND NOT CMAKE_CROSSCOMPILING)
-    if (EXISTS "/etc/debian_version") # is this a debian system ?
-       if(CMAKE_LIBRARY_ARCHITECTURE)
-         set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
-       endif()
-    else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
-      if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
-        message(AUTHOR_WARNING
-          "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
-          "Please enable at least one language before including GNUInstallDirs.")
-      else()
-        if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
-          set(_LIBDIR_DEFAULT "lib64")
-        endif()
-      endif()
-    endif()
-  endif()
-  set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
-  set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
-  set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
-endif()
-
-if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
-  set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
-endif()
-
-#-----------------------------------------------------------------------------
-# Values whose defaults are relative to DATAROOTDIR.  Store empty values in
-# the cache and store the defaults in local variables if the cache values are
-# not set explicitly.  This auto-updates the defaults as DATAROOTDIR changes.
-
-if(NOT CMAKE_INSTALL_DATADIR)
-  set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
-  set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
-endif()
-
-if(NOT CMAKE_INSTALL_INFODIR)
-  set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
-  set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
-endif()
-
-if(NOT CMAKE_INSTALL_LOCALEDIR)
-  set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
-  set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
-endif()
-
-if(NOT CMAKE_INSTALL_MANDIR)
-  set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
-  set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
-endif()
-
-if(NOT CMAKE_INSTALL_DOCDIR)
-  set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
-  set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
-endif()
-
-#-----------------------------------------------------------------------------
-
-mark_as_advanced(
-  CMAKE_INSTALL_BINDIR
-  CMAKE_INSTALL_SBINDIR
-  CMAKE_INSTALL_LIBEXECDIR
-  CMAKE_INSTALL_SYSCONFDIR
-  CMAKE_INSTALL_SHAREDSTATEDIR
-  CMAKE_INSTALL_LOCALSTATEDIR
-  CMAKE_INSTALL_LIBDIR
-  CMAKE_INSTALL_INCLUDEDIR
-  CMAKE_INSTALL_OLDINCLUDEDIR
-  CMAKE_INSTALL_DATAROOTDIR
-  CMAKE_INSTALL_DATADIR
-  CMAKE_INSTALL_INFODIR
-  CMAKE_INSTALL_LOCALEDIR
-  CMAKE_INSTALL_MANDIR
-  CMAKE_INSTALL_DOCDIR
-  )
-
-# Result directories
-#
-foreach(dir
-    BINDIR
-    SBINDIR
-    LIBEXECDIR
-    SYSCONFDIR
-    SHAREDSTATEDIR
-    LOCALSTATEDIR
-    LIBDIR
-    INCLUDEDIR
-    OLDINCLUDEDIR
-    DATAROOTDIR
-    DATADIR
-    INFODIR
-    LOCALEDIR
-    MANDIR
-    DOCDIR
-    )
-  if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
-    set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
-  else()
-    set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
-  endif()
-endforeach()
diff --git a/third_party/google_benchmark/cmake/Modules/FindLLVMAr.cmake b/third_party/google_benchmark/cmake/Modules/FindLLVMAr.cmake
deleted file mode 100644
index 2346981..0000000
--- a/third_party/google_benchmark/cmake/Modules/FindLLVMAr.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-include(FeatureSummary)
-
-find_program(LLVMAR_EXECUTABLE
-  NAMES llvm-ar
-  DOC "The llvm-ar executable"
-  )
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(LLVMAr
-  DEFAULT_MSG
-  LLVMAR_EXECUTABLE)
-
-SET_PACKAGE_PROPERTIES(LLVMAr PROPERTIES
-  URL https://llvm.org/docs/CommandGuide/llvm-ar.html
-  DESCRIPTION "create, modify, and extract from archives"
-)
diff --git a/third_party/google_benchmark/cmake/Modules/FindLLVMNm.cmake b/third_party/google_benchmark/cmake/Modules/FindLLVMNm.cmake
deleted file mode 100644
index e56430a..0000000
--- a/third_party/google_benchmark/cmake/Modules/FindLLVMNm.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-include(FeatureSummary)
-
-find_program(LLVMNM_EXECUTABLE
-  NAMES llvm-nm
-  DOC "The llvm-nm executable"
-  )
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(LLVMNm
-  DEFAULT_MSG
-  LLVMNM_EXECUTABLE)
-
-SET_PACKAGE_PROPERTIES(LLVMNm PROPERTIES
-  URL https://llvm.org/docs/CommandGuide/llvm-nm.html
-  DESCRIPTION "list LLVM bitcode and object file’s symbol table"
-)
diff --git a/third_party/google_benchmark/cmake/Modules/FindLLVMRanLib.cmake b/third_party/google_benchmark/cmake/Modules/FindLLVMRanLib.cmake
deleted file mode 100644
index 7b53e1a..0000000
--- a/third_party/google_benchmark/cmake/Modules/FindLLVMRanLib.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-include(FeatureSummary)
-
-find_program(LLVMRANLIB_EXECUTABLE
-  NAMES llvm-ranlib
-  DOC "The llvm-ranlib executable"
-  )
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(LLVMRanLib
-  DEFAULT_MSG
-  LLVMRANLIB_EXECUTABLE)
-
-SET_PACKAGE_PROPERTIES(LLVMRanLib PROPERTIES
-  DESCRIPTION "generate index for LLVM archive"
-)
diff --git a/third_party/libdav1d/platforms/linux-x64/libdav1d.a b/third_party/libdav1d/platforms/linux-x64/libdav1d.a
index bb3473f..5189375 100644
--- a/third_party/libdav1d/platforms/linux-x64/libdav1d.a
+++ b/third_party/libdav1d/platforms/linux-x64/libdav1d.a
Binary files differ
diff --git a/third_party/libvpx/platforms/linux-x64/libvpx.a b/third_party/libvpx/platforms/linux-x64/libvpx.a
deleted file mode 100644
index c8f685f..0000000
--- a/third_party/libvpx/platforms/linux-x64/libvpx.a
+++ /dev/null
Binary files differ
diff --git a/third_party/libwebp/BUILD.gn b/third_party/libwebp/BUILD.gn
new file mode 100644
index 0000000..94c0d14
--- /dev/null
+++ b/third_party/libwebp/BUILD.gn
@@ -0,0 +1,103 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//third_party/libwebp/libwebp.gni")
+
+template("libwebp_lib") {
+  static_library(target_name) {
+    forward_variables_from(invoker, "*")
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [
+      "//starboard/build/config:speed",
+      ":libwebp_direct_config",
+    ]
+  }
+}
+
+libwebp_lib("libwebp_dec") {
+  sources = libwebp_dec_sources
+}
+
+libwebp_lib("libwebp_demux") {
+  sources = libwebp_demux_sources
+}
+
+libwebp_lib("libwebp_dsp_dec_common") {
+  sources = libwebp_dsp_dec_common_sources
+  deps = [
+    ":libwebp_dsp_dec_mips32",
+    ":libwebp_dsp_dec_mips_dsp_r2",
+    ":libwebp_dsp_dec_msa",
+    ":libwebp_dsp_dec_neon",
+    ":libwebp_dsp_dec_sse2",
+    ":libwebp_dsp_dec_sse41",
+  ]
+}
+
+libwebp_lib("libwebp_dsp_dec_msa") {
+  sources = libwebp_dsp_dec_msa_sources
+}
+
+libwebp_lib("libwebp_dsp_dec_neon") {
+  sources = libwebp_dsp_dec_neon_sources
+}
+
+libwebp_lib("libwebp_dsp_dec_sse2") {
+  sources = libwebp_dsp_dec_sse2_sources
+}
+
+libwebp_lib("libwebp_dsp_dec_sse41") {
+  sources = libwebp_dsp_dec_sse41_sources
+}
+
+libwebp_lib("libwebp_dsp_dec_mips32") {
+  sources = libwebp_dsp_dec_mips32_sources
+}
+
+libwebp_lib("libwebp_dsp_dec_mips_dsp_r2") {
+  sources = libwebp_dsp_dec_mips_dsp_r2_sources
+}
+
+libwebp_lib("libwebp_utils_dec") {
+  sources = libwebp_utils_dec_sources
+}
+
+libwebp_lib("libwebp_enc") {
+  sources = libwebp_enc_sources
+}
+
+libwebp_lib("libwebp_dsp_enc") {
+  sources = libwebp_dsp_enc_sources
+}
+
+libwebp_lib("libwebp_utils_enc") {
+  sources = libwebp_utils_enc_sources
+}
+
+config("libwebp_direct_config") {
+  include_dirs = [ "." ]
+}
+
+group("libwebp") {
+  public_configs = [ ":libwebp_direct_config" ]
+  deps = [
+    ":libwebp_dec",
+    ":libwebp_demux",
+    ":libwebp_dsp_dec_common",
+    ":libwebp_dsp_enc",
+    ":libwebp_enc",
+    ":libwebp_utils_dec",
+    ":libwebp_utils_enc",
+  ]
+}
diff --git a/third_party/libwebp/libwebp.gni b/third_party/libwebp/libwebp.gni
new file mode 100644
index 0000000..cba22f5
--- /dev/null
+++ b/third_party/libwebp/libwebp.gni
@@ -0,0 +1,190 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+libwebp_dec_sources = [
+  "src/dec/alpha_dec.c",
+  "src/dec/buffer_dec.c",
+  "src/dec/frame_dec.c",
+  "src/dec/idec_dec.c",
+  "src/dec/io_dec.c",
+  "src/dec/quant_dec.c",
+  "src/dec/tree_dec.c",
+  "src/dec/vp8_dec.c",
+  "src/dec/vp8l_dec.c",
+  "src/dec/webp_dec.c",
+]
+
+libwebp_demux_sources = [
+  "src/demux/anim_decode.c",
+  "src/demux/demux.c",
+]
+
+libwebp_dsp_dec_common_sources = [
+  "src/dsp/alpha_processing.c",
+  "src/dsp/cpu.c",
+  "src/dsp/dec.c",
+  "src/dsp/dec_clip_tables.c",
+  "src/dsp/filters.c",
+  "src/dsp/lossless.c",
+  "src/dsp/rescaler.c",
+  "src/dsp/upsampling.c",
+  "src/dsp/yuv.c",
+]
+
+libwebp_dsp_dec_sse41_sources = [
+  "src/dsp/alpha_processing_sse41.c",
+  "src/dsp/dec_sse41.c",
+  "src/dsp/upsampling_sse41.c",
+  "src/dsp/yuv_sse41.c",
+]
+
+libwebp_dsp_dec_sse2_sources = [
+  "src/dsp/alpha_processing_sse2.c",
+  "src/dsp/dec_sse2.c",
+  "src/dsp/filters_sse2.c",
+  "src/dsp/lossless_sse2.c",
+  "src/dsp/rescaler_sse2.c",
+  "src/dsp/upsampling_sse2.c",
+  "src/dsp/yuv_sse2.c",
+]
+
+libwebp_dsp_dec_neon_sources = [
+  "src/dsp/alpha_processing_neon.c",
+  "src/dsp/dec_neon.c",
+  "src/dsp/filters_neon.c",
+  "src/dsp/lossless_neon.c",
+  "src/dsp/rescaler_neon.c",
+  "src/dsp/upsampling_neon.c",
+  "src/dsp/yuv_neon.c",
+]
+
+libwebp_dsp_dec_mips_dsp_r2_sources = [
+  "src/dsp/alpha_processing_mips_dsp_r2.c",
+  "src/dsp/dec_mips_dsp_r2.c",
+  "src/dsp/filters_mips_dsp_r2.c",
+  "src/dsp/lossless_mips_dsp_r2.c",
+  "src/dsp/rescaler_mips_dsp_r2.c",
+  "src/dsp/upsampling_mips_dsp_r2.c",
+  "src/dsp/yuv_mips_dsp_r2.c",
+]
+
+libwebp_dsp_dec_mips32_sources = [
+  "src/dsp/dec_mips32.c",
+  "src/dsp/rescaler_mips32.c",
+  "src/dsp/yuv_mips32.c",
+]
+
+libwebp_dsp_dec_msa_sources = [
+  "src/dsp/dec_msa.c",
+  "src/dsp/filters_msa.c",
+  "src/dsp/lossless_msa.c",
+  "src/dsp/rescaler_msa.c",
+  "src/dsp/upsampling_msa.c",
+]
+
+libwebp_dsp_enc_sources = [
+  "src/dsp/cost.c",
+  "src/dsp/cost_mips32.c",
+  "src/dsp/cost_mips_dsp_r2.c",
+  "src/dsp/cost_sse2.c",
+  "src/dsp/enc.c",
+  "src/dsp/enc_avx2.c",
+  "src/dsp/enc_mips32.c",
+  "src/dsp/enc_mips_dsp_r2.c",
+  "src/dsp/enc_msa.c",
+  "src/dsp/enc_neon.c",
+  "src/dsp/enc_sse2.c",
+  "src/dsp/enc_sse41.c",
+  "src/dsp/lossless_enc.c",
+  "src/dsp/lossless_enc_mips32.c",
+  "src/dsp/lossless_enc_mips_dsp_r2.c",
+  "src/dsp/lossless_enc_msa.c",
+  "src/dsp/lossless_enc_neon.c",
+  "src/dsp/lossless_enc_sse2.c",
+  "src/dsp/lossless_enc_sse41.c",
+  "src/dsp/ssim.c",
+  "src/dsp/ssim_sse2.c",
+]
+
+libwebp_enc_sources = [
+  "src/enc/alpha_enc.c",
+  "src/enc/analysis_enc.c",
+  "src/enc/backward_references_cost_enc.c",
+  "src/enc/backward_references_enc.c",
+  "src/enc/config_enc.c",
+  "src/enc/cost_enc.c",
+  "src/enc/filter_enc.c",
+  "src/enc/frame_enc.c",
+  "src/enc/histogram_enc.c",
+  "src/enc/iterator_enc.c",
+  "src/enc/near_lossless_enc.c",
+  "src/enc/picture_csp_enc.c",
+  "src/enc/picture_enc.c",
+  "src/enc/picture_psnr_enc.c",
+  "src/enc/picture_rescale_enc.c",
+  "src/enc/picture_tools_enc.c",
+  "src/enc/predictor_enc.c",
+  "src/enc/quant_enc.c",
+  "src/enc/syntax_enc.c",
+  "src/enc/token_enc.c",
+  "src/enc/tree_enc.c",
+  "src/enc/vp8l_enc.c",
+  "src/enc/webp_enc.c",
+]
+
+libwebp_format_dec_sources = [
+  "imageio/image_dec.c",
+  "imageio/jpegdec.c",
+  "imageio/metadata.c",
+  "imageio/pngdec.c",
+  "imageio/pnmdec.c",
+  "imageio/tiffdec.c",
+  "imageio/webpdec.c",
+]
+
+libwebp_format_enc_sources = [ "imageio/image_enc.c" ]
+
+libwebp_util_sources = [ "examples/example_util.c" ]
+
+libwebp_image_util_sources = [ "imageio/imageio_util.c" ]
+
+libwebp_mux_sources = [
+  "src/mux/anim_encode.c",
+  "src/mux/muxedit.c",
+  "src/mux/muxinternal.c",
+  "src/mux/muxread.c",
+]
+
+libwebp_utils_dec_sources = [
+  "src/utils/bit_reader_utils.c",
+  "src/utils/color_cache_utils.c",
+  "src/utils/filters_utils.c",
+  "src/utils/huffman_utils.c",
+  "src/utils/quant_levels_dec_utils.c",
+  "src/utils/random_utils.c",
+  "src/utils/rescaler_utils.c",
+  "src/utils/thread_utils.c",
+  "src/utils/utils.c",
+]
+
+libwebp_utils_enc_sources = [
+  "src/utils/bit_writer_utils.c",
+  "src/utils/huffman_encode_utils.c",
+  "src/utils/quant_levels_utils.c",
+]
+
+libwebp_extra_sources = [
+  "extras/extras.c",
+  "extras/quality_estimate.c",
+]
diff --git a/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/launch.json b/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/launch.json
deleted file mode 100644
index cd6b87b..0000000
--- a/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/launch.json
+++ /dev/null
@@ -1,28 +0,0 @@
-// A launch configuration that compiles the extension and then opens it inside a new window
-{
-    "version": "0.1.0",
-    "configurations": [
-        {
-            "name": "Launch Extension",
-            "type": "extensionHost",
-            "request": "launch",
-            "runtimeExecutable": "${execPath}",
-            "args": ["--extensionDevelopmentPath=${workspaceRoot}" ],
-            "stopOnEntry": false,
-            "sourceMaps": true,
-            "outFiles": [ "${workspaceRoot}/out/src/**/*.js" ],
-            "preLaunchTask": "npm"
-        },
-        {
-            "name": "Launch Tests",
-            "type": "extensionHost",
-            "request": "launch",
-            "runtimeExecutable": "${execPath}",
-            "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
-            "stopOnEntry": false,
-            "sourceMaps": true,
-            "outFiles": [ "${workspaceRoot}/out/test/**/*.js" ],
-            "preLaunchTask": "npm"
-        }
-    ]
-}
diff --git a/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/settings.json b/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/settings.json
deleted file mode 100644
index d137133..0000000
--- a/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/settings.json
+++ /dev/null
@@ -1,9 +0,0 @@
-// Place your settings in this file to overwrite default and user settings.
-{
-    "files.exclude": {
-        "out": false // set this to true to hide the "out" folder with the compiled JS files
-    },
-    "search.exclude": {
-        "out": true // set this to false to include "out" folder in search results
-    }
-}
\ No newline at end of file
diff --git a/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/tasks.json b/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/tasks.json
deleted file mode 100644
index fb7f662..0000000
--- a/third_party/llvm-project/clang-tools-extra/clangd/clients/clangd-vscode/.vscode/tasks.json
+++ /dev/null
@@ -1,30 +0,0 @@
-// Available variables which can be used inside of strings.
-// ${workspaceRoot}: the root folder of the team
-// ${file}: the current opened file
-// ${fileBasename}: the current opened file's basename
-// ${fileDirname}: the current opened file's dirname
-// ${fileExtname}: the current opened file's extension
-// ${cwd}: the current working directory of the spawned process
-
-// A task runner that calls a custom npm script that compiles the extension.
-{
-    "version": "0.1.0",
-
-    // we want to run npm
-    "command": "npm",
-
-    // the command is a shell script
-    "isShellCommand": true,
-
-    // show the output window only if unrecognized errors occur.
-    "showOutput": "silent",
-
-    // we run the custom script "compile" as defined in package.json
-    "args": ["run", "compile", "--loglevel", "silent"],
-
-    // The tsc compiler is started in watching mode
-    "isWatching": true,
-
-    // use the standard tsc in watch mode problem matcher to find compile problems in the output.
-    "problemMatcher": "$tsc-watch"
-}
\ No newline at end of file
diff --git a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp b/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
deleted file mode 100644
index 9f01fed..0000000
--- a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator>
-//     bool operator==(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-//     bool operator!=(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <cassert>
-
-#include "test_macros.h"
-#include "min_allocator.h"
-
-template <class C>
-void test(int N, int M)
-{
-    C c1;
-    for (int i = 0; i < N; ++i)
-        c1.push_front(i);
-    C c2;
-    for (int i = 0; i < M; ++i)
-        c2.push_front(i);
-    if (N == M)
-        assert(c1 == c2);
-    else
-        assert(c1 != c2);
-    c2 = c1;
-    assert(c1 == c2);
-    if (N > 0)
-    {
-        c2.front() = N+1;
-        assert(c1 != c2);
-    }
-}
-
-int main()
-{
-    for (int i = 0; i < 10; ++i)
-        for (int j = 0; j < 10; ++j)
-            test<std::forward_list<int> >(i, j);
-#if TEST_STD_VER >= 11
-    for (int i = 0; i < 10; ++i)
-        for (int j = 0; j < 10; ++j)
-            test<std::forward_list<int, min_allocator<int>> >(i, j);
-#endif
-}
diff --git a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp b/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
deleted file mode 100644
index 242a00b..0000000
--- a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// void swap(forward_list& x);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1, 1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(1, 2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1, 1));
-        C c2(A(1, 2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1, 1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(1, 2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1, 1));
-        C c2(A(1, 2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A(1));
-    }
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1));
-        C c2(A(2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A(1));
-    }
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A(1));
-    }
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1));
-        C c2(A(2));
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A(1));
-    }
-#if TEST_STD_VER >= 11
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A());
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A());
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A());
-    }
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A());
-        C c2(A{});
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A());
-    }
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A{});
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A());
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A());
-    }
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A{});
-        C c2(A{});
-        c1.swap(c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A());
-    }
-#endif
-}
diff --git a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp b/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
deleted file mode 100644
index 44820d9..0000000
--- a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator>
-//     void swap(forward_list<T, Allocator>& x, forward_list<T, Allocator>& y);
-
-#include <forward_list>
-#include <cassert>
-
-#include "test_allocator.h"
-#include "min_allocator.h"
-
-int main()
-{
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1, 1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(1, 2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1, 1));
-        C c2(A(1, 2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1, 1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(1, 2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-    {
-        typedef int T;
-        typedef test_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1, 1));
-        C c2(A(1, 2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator().get_id() == 1);
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator().get_id() == 2);
-    }
-
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A(1));
-    }
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A(1));
-        C c2(A(2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A(1));
-    }
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1));
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A(2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A(1));
-    }
-    {
-        typedef int T;
-        typedef other_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A(1));
-        C c2(A(2));
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A(2));
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A(1));
-    }
-#if TEST_STD_VER >= 11
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A());
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A());
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A());
-    }
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        const T t1[] = {0, 1, 2, 3, 4, 5};
-        C c1(std::begin(t1), std::end(t1), A());
-        C c2(A{});
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 6);
-        assert(*next(c2.begin(), 0) == 0);
-        assert(*next(c2.begin(), 1) == 1);
-        assert(*next(c2.begin(), 2) == 2);
-        assert(*next(c2.begin(), 3) == 3);
-        assert(*next(c2.begin(), 4) == 4);
-        assert(*next(c2.begin(), 5) == 5);
-        assert(c2.get_allocator() == A());
-    }
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A{});
-        const T t2[] = {10, 11, 12};
-        C c2(std::begin(t2), std::end(t2), A());
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 3);
-        assert(*next(c1.begin(), 0) == 10);
-        assert(*next(c1.begin(), 1) == 11);
-        assert(*next(c1.begin(), 2) == 12);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A());
-    }
-    {
-        typedef int T;
-        typedef min_allocator<T> A;
-        typedef std::forward_list<T, A> C;
-        C c1(A{});
-        C c2(A{});
-        swap(c1, c2);
-
-        assert(distance(c1.begin(), c1.end()) == 0);
-        assert(c1.get_allocator() == A());
-
-        assert(distance(c2.begin(), c2.end()) == 0);
-        assert(c2.get_allocator() == A());
-    }
-#endif
-}
diff --git a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp b/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
deleted file mode 100644
index e65e064..0000000
--- a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <forward_list>
-
-// template <class T, class Allocator>
-//     bool operator< (const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-//     bool operator> (const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-//     bool operator>=(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
-//
-// template <class T, class Allocator>
-//     bool operator<=(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
-
-#include <forward_list>
-#include <iterator>
-#include <algorithm>
-#include <cassert>
-
-#include "test_macros.h"
-#include "min_allocator.h"
-
-template <class C>
-void test(int N, int M)
-{
-    C c1;
-    for (int i = 0; i < N; ++i)
-        c1.push_front(i);
-    C c2;
-    for (int i = 0; i < M; ++i)
-        c2.push_front(i);
-    if (N < M)
-        assert(c1 < c2);
-    if (N <= M)
-        assert(c1 <= c2);
-    if (N >= M)
-        assert(c1 >= c2);
-    if (N > M)
-        assert(c1 > c2);
-}
-
-int main()
-{
-    for (int i = 0; i < 10; ++i)
-        for (int j = 0; j < 10; ++j)
-            test<std::forward_list<int> >(i, j);
-#if TEST_STD_VER >= 11
-    for (int i = 0; i < 10; ++i)
-        for (int j = 0; j < 10; ++j)
-            test<std::forward_list<int, min_allocator<int>> >(i, j);
-#endif
-}
diff --git a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp b/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
deleted file mode 100644
index ae48d1a..0000000
--- a/third_party/llvm-project/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++98, c++03
-
-// <forward_list>
-
-// void swap(forward_list& c)
-//     noexcept(!allocator_type::propagate_on_container_swap::value ||
-//              __is_nothrow_swappable<allocator_type>::value);
-//
-//  In C++17, the standard says that swap shall have:
-//     noexcept(is_always_equal<allocator_type>::value);
-
-// This tests a conforming extension
-
-#include <forward_list>
-#include <utility>
-#include <cassert>
-
-#include "test_macros.h"
-#include "MoveOnly.h"
-#include "test_allocator.h"
-
-template <class T>
-struct some_alloc
-{
-    typedef T value_type;
-
-    some_alloc() {}
-    some_alloc(const some_alloc&);
-    void deallocate(void*, unsigned) {}
-
-    typedef std::true_type propagate_on_container_swap;
-};
-
-template <class T>
-struct some_alloc2
-{
-    typedef T value_type;
-
-    some_alloc2() {}
-    some_alloc2(const some_alloc2&);
-    void deallocate(void*, unsigned) {}
-
-    typedef std::false_type propagate_on_container_swap;
-    typedef std::true_type is_always_equal;
-};
-
-int main()
-{
-    {
-        typedef std::forward_list<MoveOnly> C;
-        static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
-    }
-#if defined(_LIBCPP_VERSION)
-    {
-        typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C;
-        static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
-    }
-    {
-        typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C;
-        static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
-    }
-#endif // _LIBCPP_VERSION
-    {
-        typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C;
-#if TEST_STD_VER >= 14
-    //  In C++14, if POCS is set, swapping the allocator is required not to throw
-        static_assert( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
-#else
-        static_assert(!noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
-#endif
-    }
-#if TEST_STD_VER >= 14
-    {
-        typedef std::forward_list<MoveOnly, some_alloc2<MoveOnly>> C;
-    //  if the allocators are always equal, then the swap can be noexcept
-        static_assert( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
-    }
-#endif
-}
diff --git a/third_party/llvm-project/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.spec/swap.pass.cpp b/third_party/llvm-project/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.spec/swap.pass.cpp
deleted file mode 100644
index b40e470..0000000
--- a/third_party/llvm-project/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.spec/swap.pass.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <memory>
-
-// shared_ptr
-
-// template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b);
-
-#include <memory>
-#include <cassert>
-
-struct A
-{
-    static int count;
-
-    A() {++count;}
-    A(const A&) {++count;}
-    ~A() {--count;}
-};
-
-int A::count = 0;
-
-int main()
-{
-    {
-        A* ptr1 = new A;
-        A* ptr2 = new A;
-        std::shared_ptr<A> p1(ptr1);
-        {
-            std::shared_ptr<A> p2(ptr2);
-            swap(p1, p2);
-            assert(p1.use_count() == 1);
-            assert(p1.get() == ptr2);
-            assert(p2.use_count() == 1);
-            assert(p2.get() == ptr1);
-            assert(A::count == 2);
-        }
-        assert(p1.use_count() == 1);
-        assert(p1.get() == ptr2);
-        assert(A::count == 1);
-    }
-    assert(A::count == 0);
-    {
-        A* ptr1 = new A;
-        A* ptr2 = 0;
-        std::shared_ptr<A> p1(ptr1);
-        {
-            std::shared_ptr<A> p2;
-            swap(p1, p2);
-            assert(p1.use_count() == 0);
-            assert(p1.get() == ptr2);
-            assert(p2.use_count() == 1);
-            assert(p2.get() == ptr1);
-            assert(A::count == 1);
-        }
-        assert(p1.use_count() == 0);
-        assert(p1.get() == ptr2);
-        assert(A::count == 0);
-    }
-    assert(A::count == 0);
-    {
-        A* ptr1 = 0;
-        A* ptr2 = new A;
-        std::shared_ptr<A> p1;
-        {
-            std::shared_ptr<A> p2(ptr2);
-            swap(p1, p2);
-            assert(p1.use_count() == 1);
-            assert(p1.get() == ptr2);
-            assert(p2.use_count() == 0);
-            assert(p2.get() == ptr1);
-            assert(A::count == 1);
-        }
-        assert(p1.use_count() == 1);
-        assert(p1.get() == ptr2);
-        assert(A::count == 1);
-    }
-    assert(A::count == 0);
-    {
-        A* ptr1 = 0;
-        A* ptr2 = 0;
-        std::shared_ptr<A> p1;
-        {
-            std::shared_ptr<A> p2;
-            swap(p1, p2);
-            assert(p1.use_count() == 0);
-            assert(p1.get() == ptr2);
-            assert(p2.use_count() == 0);
-            assert(p2.get() == ptr1);
-            assert(A::count == 0);
-        }
-        assert(p1.use_count() == 0);
-        assert(p1.get() == ptr2);
-        assert(A::count == 0);
-    }
-    assert(A::count == 0);
-}
diff --git a/third_party/llvm-project/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.spec/swap.pass.cpp b/third_party/llvm-project/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.spec/swap.pass.cpp
deleted file mode 100644
index e13d5ae..0000000
--- a/third_party/llvm-project/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.spec/swap.pass.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <memory>
-
-// weak_ptr
-
-// template<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b)
-
-#include <memory>
-#include <cassert>
-
-struct A
-{
-    static int count;
-
-    A() {++count;}
-    A(const A&) {++count;}
-    ~A() {--count;}
-};
-
-int A::count = 0;
-
-int main()
-{
-    {
-        A* ptr1 = new A;
-        A* ptr2 = new A;
-        std::shared_ptr<A> p1(ptr1);
-        std::weak_ptr<A> w1(p1);
-        {
-            std::shared_ptr<A> p2(ptr2);
-            std::weak_ptr<A> w2(p2);
-            swap(w1, w2);
-            assert(w1.use_count() == 1);
-            assert(w1.lock().get() == ptr2);
-            assert(w2.use_count() == 1);
-            assert(w2.lock().get() == ptr1);
-            assert(A::count == 2);
-        }
-    }
-    assert(A::count == 0);
-}
diff --git a/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/comparison.pass.cpp b/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/comparison.pass.cpp
deleted file mode 100644
index 3b994df..0000000
--- a/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/comparison.pass.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <utility>
-
-// template <class T1, class T2> struct pair
-
-// template <class T1, class T2> bool operator==(const pair<T1,T2>&, const pair<T1,T2>&);
-// template <class T1, class T2> bool operator!=(const pair<T1,T2>&, const pair<T1,T2>&);
-// template <class T1, class T2> bool operator< (const pair<T1,T2>&, const pair<T1,T2>&);
-// template <class T1, class T2> bool operator> (const pair<T1,T2>&, const pair<T1,T2>&);
-// template <class T1, class T2> bool operator>=(const pair<T1,T2>&, const pair<T1,T2>&);
-// template <class T1, class T2> bool operator<=(const pair<T1,T2>&, const pair<T1,T2>&);
-
-#include <utility>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main()
-{
-    {
-        typedef std::pair<int, short> P;
-        P p1(3, static_cast<short>(4));
-        P p2(3, static_cast<short>(4));
-        assert( (p1 == p2));
-        assert(!(p1 != p2));
-        assert(!(p1 <  p2));
-        assert( (p1 <= p2));
-        assert(!(p1 >  p2));
-        assert( (p1 >= p2));
-    }
-    {
-        typedef std::pair<int, short> P;
-        P p1(2, static_cast<short>(4));
-        P p2(3, static_cast<short>(4));
-        assert(!(p1 == p2));
-        assert( (p1 != p2));
-        assert( (p1 <  p2));
-        assert( (p1 <= p2));
-        assert(!(p1 >  p2));
-        assert(!(p1 >= p2));
-    }
-    {
-        typedef std::pair<int, short> P;
-        P p1(3, static_cast<short>(2));
-        P p2(3, static_cast<short>(4));
-        assert(!(p1 == p2));
-        assert( (p1 != p2));
-        assert( (p1 <  p2));
-        assert( (p1 <= p2));
-        assert(!(p1 >  p2));
-        assert(!(p1 >= p2));
-    }
-    {
-        typedef std::pair<int, short> P;
-        P p1(3, static_cast<short>(4));
-        P p2(2, static_cast<short>(4));
-        assert(!(p1 == p2));
-        assert( (p1 != p2));
-        assert(!(p1 <  p2));
-        assert(!(p1 <= p2));
-        assert( (p1 >  p2));
-        assert( (p1 >= p2));
-    }
-    {
-        typedef std::pair<int, short> P;
-        P p1(3, static_cast<short>(4));
-        P p2(3, static_cast<short>(2));
-        assert(!(p1 == p2));
-        assert( (p1 != p2));
-        assert(!(p1 <  p2));
-        assert(!(p1 <= p2));
-        assert( (p1 >  p2));
-        assert( (p1 >= p2));
-    }
-
-#if TEST_STD_VER > 11
-    {
-        typedef std::pair<int, short> P;
-        constexpr P p1(3, static_cast<short>(4));
-        constexpr P p2(3, static_cast<short>(2));
-        static_assert(!(p1 == p2), "");
-        static_assert( (p1 != p2), "");
-        static_assert(!(p1 <  p2), "");
-        static_assert(!(p1 <= p2), "");
-        static_assert( (p1 >  p2), "");
-        static_assert( (p1 >= p2), "");
-    }
-#endif
-}
diff --git a/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/make_pair.pass.cpp b/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/make_pair.pass.cpp
deleted file mode 100644
index 3586243..0000000
--- a/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/make_pair.pass.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <utility>
-
-// template <class T1, class T2> pair<V1, V2> make_pair(T1&&, T2&&);
-
-#include <utility>
-#include <memory>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main()
-{
-    {
-        typedef std::pair<int, short> P1;
-        P1 p1 = std::make_pair(3, static_cast<short>(4));
-        assert(p1.first == 3);
-        assert(p1.second == 4);
-    }
-
-#if TEST_STD_VER >= 11
-    {
-        typedef std::pair<std::unique_ptr<int>, short> P1;
-        P1 p1 = std::make_pair(std::unique_ptr<int>(new int(3)), static_cast<short>(4));
-        assert(*p1.first == 3);
-        assert(p1.second == 4);
-    }
-    {
-        typedef std::pair<std::unique_ptr<int>, short> P1;
-        P1 p1 = std::make_pair(nullptr, static_cast<short>(4));
-        assert(p1.first == nullptr);
-        assert(p1.second == 4);
-    }
-#endif
-#if TEST_STD_VER >= 14
-    {
-        typedef std::pair<int, short> P1;
-        constexpr P1 p1 = std::make_pair(3, static_cast<short>(4));
-        static_assert(p1.first == 3, "");
-        static_assert(p1.second == 4, "");
-    }
-#endif
-
-}
diff --git a/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/non_member_swap.pass.cpp b/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/non_member_swap.pass.cpp
deleted file mode 100644
index 62fa942..0000000
--- a/third_party/llvm-project/libcxx/test/std/utilities/utility/pairs/pairs.spec/non_member_swap.pass.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <utility>
-
-// template <class T1, class T2> struct pair
-
-// template <class T1, class T2> void swap(pair<T1, T2>& x, pair<T1, T2>& y);
-
-#include <utility>
-#include <cassert>
-
-int main()
-{
-    {
-        typedef std::pair<int, short> P1;
-        P1 p1(3, static_cast<short>(4));
-        P1 p2(5, static_cast<short>(6));
-        swap(p1, p2);
-        assert(p1.first == 5);
-        assert(p1.second == 6);
-        assert(p2.first == 3);
-        assert(p2.second == 4);
-    }
-}
diff --git a/third_party/llvm-project/llvm/utils/vscode/tablegen/.vscode/launch.json b/third_party/llvm-project/llvm/utils/vscode/tablegen/.vscode/launch.json
deleted file mode 100644
index 8384213..0000000
--- a/third_party/llvm-project/llvm/utils/vscode/tablegen/.vscode/launch.json
+++ /dev/null
@@ -1,13 +0,0 @@
-// A launch configuration that launches the extension inside a new window
-{
-    "version": "0.1.0",
-    "configurations": [
-        {
-            "name": "Launch Extension",
-            "type": "extensionHost",
-            "request": "launch",
-            "runtimeExecutable": "${execPath}",
-            "args": ["--extensionDevelopmentPath=${workspaceRoot}" ]
-        }
-    ]
-}
\ No newline at end of file
diff --git a/third_party/musl/dist/config.mak b/third_party/musl/dist/config.mak
deleted file mode 100644
index 1fc4369..0000000
--- a/third_party/musl/dist/config.mak
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# musl config.mak template (original in dist/config.mak)
-#
-
-# Target CPU architecture. Supported values: i386, x86_64
-ARCH = i386
-
-# Installation prefix. DO NOT use /, /usr, or /usr/local !
-prefix = /usr/local/musl
-
-# Installation prefix for musl-gcc compiler wrapper.
-exec_prefix = /usr/local
-
-# Location for the dynamic linker ld-musl-$(ARCH).so.1
-syslibdir = /lib
-
-# Uncomment if you want to build i386 musl on a 64-bit host
-#CFLAGS += -m32
-
-# Uncomment to fix broken distro-patched toolchains where hash-style=gnu(only)
-#LDFLAGS += -Wl,--hash-style,both
-
-# Uncomment to fix broken distro-patched toolchains where stack-protector=on
-#CFLAGS += -fno-stack-protector
-
-# Uncomment for smaller code size.
-#CFLAGS += -fomit-frame-pointer -mno-accumulate-outgoing-args
-
-# Uncomment to omit massive GCC4 DWARF2 bloat (only useful for debugging)
-#CFLAGS += -fno-asynchronous-unwind-tables
-
-# Uncomment for warnings (as errors). Might need tuning to your gcc version.
-#CFLAGS += -Werror -Wall -Wpointer-arith -Wcast-align -Wno-parentheses -Wno-char-subscripts -Wno-uninitialized -Wno-sequence-point -Wno-missing-braces -Wno-unused-value -Wno-overflow -Wno-int-to-pointer-cast
-
-# Uncomment if you want to disable building the shared library.
-#SHARED_LIBS = 
diff --git a/third_party/opus/celt/dump_modes/Makefile b/third_party/opus/celt/dump_modes/Makefile
deleted file mode 100644
index 93f599f..0000000
--- a/third_party/opus/celt/dump_modes/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-
-CFLAGS=-O2 -Wall -Wextra -DHAVE_CONFIG_H
-INCLUDES=-I. -I../ -I../.. -I../../include
-
-SOURCES = dump_modes.c \
-          ../modes.c \
-          ../cwrs.c \
-          ../rate.c \
-          ../entcode.c \
-          ../entenc.c \
-          ../entdec.c \
-          ../mathops.c \
-          ../mdct.c \
-          ../kiss_fft.c
-
-ifdef HAVE_ARM_NE10
-CC = gcc
-CFLAGS += -mfpu=neon
-INCLUDES += -I$(NE10_INCDIR) -DHAVE_ARM_NE10 -DOPUS_ARM_PRESUME_NEON_INTR
-LIBS = -L$(NE10_LIBDIR) -lNE10
-SOURCES += ../arm/celt_ne10_fft.c \
-           dump_modes_arm_ne10.c \
-           ../arm/armcpu.c
-endif
-
-all: dump_modes
-
-dump_modes:
-	$(PREFIX)$(CC) $(CFLAGS) $(INCLUDES) -DCUSTOM_MODES_ONLY -DCUSTOM_MODES $(SOURCES) -o $@ $(LIBS) -lm
-
-clean:
-	rm -f dump_modes
diff --git a/third_party/opus/starboard/config.h b/third_party/opus/starboard/config.h
deleted file mode 100644
index 7c67f29..0000000
--- a/third_party/opus/starboard/config.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/***********************************************************************
-Copyright (c) 2011, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Internet Society, IETF or IETF Trust, nor the
-names of specific contributors, may be used to endorse or promote
-products derived from this software without specific prior written
-permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-***********************************************************************/
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#define USE_ALLOCA            0
-
-/* Comment out the next line for floating-point code */
-/*#define FIXED_POINT           1 */
-
-#define OPUS_BUILD            1
-
-#if defined(_M_IX86) || defined(_M_X64)
-/* Can always compile SSE intrinsics (no special compiler flags necessary) */
-#define OPUS_X86_MAY_HAVE_SSE
-#define OPUS_X86_MAY_HAVE_SSE2
-#define OPUS_X86_MAY_HAVE_SSE4_1
-
-/* Presume SSE functions, if compiled to use SSE/SSE2/AVX (note that AMD64 implies SSE2, and AVX
-   implies SSE4.1) */
-#if defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) || defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE 1
-#endif
-#if defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE2 1
-#endif
-#if defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE4_1 1
-#endif
-
-#if !defined(OPUS_X86_PRESUME_SSE4_1) || !defined(OPUS_X86_PRESUME_SSE2) || !defined(OPUS_X86_PRESUME_SSE)
-#define OPUS_HAVE_RTCD 1
-#endif
-
-#endif
-
-#include "version.h"
-
-#endif /* CONFIG_H */
diff --git a/third_party/opus/starboard/version.h b/third_party/opus/starboard/version.h
deleted file mode 100644
index d95510d..0000000
--- a/third_party/opus/starboard/version.h
+++ /dev/null
@@ -1 +0,0 @@
-#define OPUS_VERSION "1.3-rc-2-gc1c247d-dirty"

diff --git a/third_party/opus/win32/config.h b/third_party/opus/win32/config.h
deleted file mode 100644
index 3e54bcb..0000000
--- a/third_party/opus/win32/config.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/***********************************************************************
-Copyright (c) 2011, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Internet Society, IETF or IETF Trust, nor the
-names of specific contributors, may be used to endorse or promote
-products derived from this software without specific prior written
-permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-***********************************************************************/
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#define USE_ALLOCA            1
-
-/* Comment out the next line for floating-point code */
-/*#define FIXED_POINT           1 */
-
-#define OPUS_BUILD            1
-
-#if defined(_M_IX86) || defined(_M_X64)
-/* Can always compile SSE intrinsics (no special compiler flags necessary) */
-#define OPUS_X86_MAY_HAVE_SSE
-#define OPUS_X86_MAY_HAVE_SSE2
-#define OPUS_X86_MAY_HAVE_SSE4_1
-
-/* Presume SSE functions, if compiled to use SSE/SSE2/AVX (note that AMD64 implies SSE2, and AVX
-   implies SSE4.1) */
-#if defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) || defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE 1
-#endif
-#if defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE2 1
-#endif
-#if defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE4_1 1
-#endif
-
-#if !defined(OPUS_X86_PRESUME_SSE4_1) || !defined(OPUS_X86_PRESUME_SSE2) || !defined(OPUS_X86_PRESUME_SSE)
-#define OPUS_HAVE_RTCD 1
-#endif
-
-#endif
-
-#include "version.h"
-
-#endif /* CONFIG_H */
diff --git a/third_party/opus/win32/version.h b/third_party/opus/win32/version.h
deleted file mode 100644
index d95510d..0000000
--- a/third_party/opus/win32/version.h
+++ /dev/null
@@ -1 +0,0 @@
-#define OPUS_VERSION "1.3-rc-2-gc1c247d-dirty"

diff --git a/third_party/web_platform_tests/testharness_runner.html b/third_party/web_platform_tests/testharness_runner.html
deleted file mode 100644
index 1cc80a2..0000000
--- a/third_party/web_platform_tests/testharness_runner.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!doctype html>
-<title></title>
-<script>
-var timeout_multiplier = 1;
-var win = null;
-</script>
diff --git a/third_party/web_platform_tests/tools/.coveragerc b/third_party/web_platform_tests/tools/.coveragerc
deleted file mode 100644
index 6c49e51..0000000
--- a/third_party/web_platform_tests/tools/.coveragerc
+++ /dev/null
@@ -1,26 +0,0 @@
-[run]
-branch = True
-parallel = True
-omit =
-  html5lib/*
-  py/*
-  pytest/*
-  pywebsocket/*
-  six/*
-  webdriver/*
-  wptserve/*
-  */site-packages/*
-  */lib_pypy/*
-
-[paths]
-html5lib =
-  html5lib/html5lib
-  .tox/**/site-packages/html5lib
-
-pytest =
-  pytest/_pytest
-  .tox/**/site-packages/_pytest
-
-py =
-  py/py
-  .tox/**/site-packages/py
diff --git a/third_party/web_platform_tests/tools/pytest/.coveragerc b/third_party/web_platform_tests/tools/pytest/.coveragerc
deleted file mode 100644
index 27db64e..0000000
--- a/third_party/web_platform_tests/tools/pytest/.coveragerc
+++ /dev/null
@@ -1,7 +0,0 @@
-[run]
-omit = 
-    # standlonetemplate is read dynamically and tested by test_genscript
-    *standalonetemplate.py
-    # oldinterpret could be removed, as it is no longer used in py26+
-    *oldinterpret.py
-    vendored_packages
diff --git a/third_party/web_platform_tests/tools/wptrunner/wptrunner/config.json b/third_party/web_platform_tests/tools/wptrunner/wptrunner/config.json
deleted file mode 100644
index d146424..0000000
--- a/third_party/web_platform_tests/tools/wptrunner/wptrunner/config.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{"host": "%(host)s",
- "ports":{"http":[8000, 8001],
-          "https":[8443],
-          "ws":[8888]},
- "check_subdomains":false,
- "bind_hostname":%(bind_hostname)s,
- "ssl":{}}
diff --git a/third_party/web_platform_tests/tools/wptrunner/wptrunner/testharness_runner.html b/third_party/web_platform_tests/tools/wptrunner/wptrunner/testharness_runner.html
deleted file mode 100644
index 1cc80a2..0000000
--- a/third_party/web_platform_tests/tools/wptrunner/wptrunner/testharness_runner.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!doctype html>
-<title></title>
-<script>
-var timeout_multiplier = 1;
-var win = null;
-</script>
diff --git a/third_party/web_platform_tests/tools/wptserve/.coveragerc b/third_party/web_platform_tests/tools/wptserve/.coveragerc
deleted file mode 100644
index 0e00c07..0000000
--- a/third_party/web_platform_tests/tools/wptserve/.coveragerc
+++ /dev/null
@@ -1,11 +0,0 @@
-[run]
-branch = True
-parallel = True
-omit =
-  */site-packages/*
-  */lib_pypy/*
-
-[paths]
-wptserve =
-  wptserve
-  .tox/**/site-packages/wptserve