This is an automated email from the ASF dual-hosted git repository.

Yilialinn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
     new c2b3238b365 feat(website): real logos on the Plugin Hub & homepage 
layout polish (#2061)
c2b3238b365 is described below

commit c2b3238b36583c2d1711b7c46f2e41c919d4bb93
Author: Ming Wen <[email protected]>
AuthorDate: Thu Jun 25 11:06:28 2026 +0800

    feat(website): real logos on the Plugin Hub & homepage layout polish (#2061)
---
 website/src/components/sections/Integrations.tsx   |   13 +-
 .../src/components/sections/OpensourcePromo.tsx    |    1 +
 website/src/css/customTheme.scss                   |    3 -
 website/src/css/landing-sections/architecture.scss |    4 -
 website/src/css/landing-sections/comparison.scss   |    3 +-
 .../src/css/landing-sections/features.module.scss  |    4 +-
 website/src/css/landing-sections/integrations.scss |   16 +-
 .../src/css/landing-sections/os-promo.module.scss  |    6 +-
 website/src/pages/plugins.tsx                      |   49 +-
 website/static/data/plugins.json                   |  244 +--
 website/static/img/integrations/alibabacloud.svg   |    1 +
 website/static/img/integrations/aws.svg            |    7 +
 website/static/img/integrations/awslambda.svg      |   14 +
 website/static/img/integrations/azurefunctions.svg |    1 +
 website/static/img/integrations/brotli.svg         |    9 +
 website/static/img/integrations/dubbo.svg          |    7 +
 website/static/img/integrations/graphql.svg        |    1 +
 website/static/img/integrations/grpc.svg           |    1 +
 website/static/img/integrations/kafka.svg          |    1 +
 website/static/img/integrations/mqtt.svg           |    1 +
 website/static/img/integrations/opa.svg            |    1 +
 website/static/img/integrations/openapi.svg        |    1 +
 website/static/img/integrations/openfunction.svg   |    4 +
 website/static/img/integrations/openwhisk.svg      | 1832 ++++++++++++++++++++
 website/static/img/integrations/rocketmq.svg       |    1 +
 website/static/img/integrations/safeline.svg       |   45 +
 website/static/img/integrations/skywalking.svg     |   18 +
 website/static/img/integrations/splunk.svg         |    1 +
 website/static/img/plugin/ai.svg                   |   10 +
 website/static/img/plugin/apisix.svg               |   15 +
 30 files changed, 2148 insertions(+), 166 deletions(-)

diff --git a/website/src/components/sections/Integrations.tsx 
b/website/src/components/sections/Integrations.tsx
index 4dc51911595..707498c99d9 100644
--- a/website/src/components/sections/Integrations.tsx
+++ b/website/src/components/sections/Integrations.tsx
@@ -112,16 +112,9 @@ const Integrations: FC = () => (
         Connect APISIX to your observability, security, service discovery, and 
AI tools through 100+ plugins.
       </Translate>
     </p>
-    <div className="integrations__groups">
-      {GROUPS.map((group) => (
-        <div className="integrations__group" key={group.title}>
-          <div className="integrations__group-title">{group.title}</div>
-          <div className="integrations__tiles">
-            {group.items.map((item) => (
-              <IntegrationTile item={item} key={item.name} />
-            ))}
-          </div>
-        </div>
+    <div className="integrations__tiles">
+      {GROUPS.flatMap((group) => group.items).map((item) => (
+        <IntegrationTile item={item} key={item.name} />
       ))}
     </div>
     <Link className="integrations__cta" to="/plugins/">
diff --git a/website/src/components/sections/OpensourcePromo.tsx 
b/website/src/components/sections/OpensourcePromo.tsx
index f0431025204..5b46c5ff6e6 100644
--- a/website/src/components/sections/OpensourcePromo.tsx
+++ b/website/src/components/sections/OpensourcePromo.tsx
@@ -28,6 +28,7 @@ const VideoChannel: FC = () => {
 
 const videoOptions: VideoProps['options'] = {
   controls: true,
+  fluid: true,
   preload: 'none',
   poster: 'https://static.apiseven.com/202202/apisix-video-poster.jpeg',
   sources: [
diff --git a/website/src/css/customTheme.scss b/website/src/css/customTheme.scss
index 425a6b720cf..92518ac000f 100644
--- a/website/src/css/customTheme.scss
+++ b/website/src/css/customTheme.scss
@@ -256,7 +256,6 @@ a:hover {
 }
 
 .arch-head,
-.compare-head,
 .testimonials-head,
 .docs-promo-head {
   font-size: 2.4rem;
@@ -266,7 +265,6 @@ a:hover {
 }
 
 .arch-subtitle,
-.compare-subtitle,
 .testimonials-subtitle,
 .docs-promo-subtitle {
   font-size: 1.13rem;
@@ -452,7 +450,6 @@ a:hover {
   }
 
   .arch-head,
-  .compare-head,
   .testimonials-head,
   .docs-promo-head,
   .oss-promo-head {
diff --git a/website/src/css/landing-sections/architecture.scss 
b/website/src/css/landing-sections/architecture.scss
index b860c54ca76..51bc3642e4e 100644
--- a/website/src/css/landing-sections/architecture.scss
+++ b/website/src/css/landing-sections/architecture.scss
@@ -55,7 +55,6 @@
 }
 
 .arch-head,
-.compare-head,
 .testimonials-head,
 .docs-promo-head {
   font-size: 2.4rem;
@@ -65,7 +64,6 @@
 }
 
 .arch-subtitle,
-.compare-subtitle,
 .testimonials-subtitle,
 .docs-promo-subtitle {
   font-size: 1.13rem;
@@ -99,7 +97,6 @@
   }
 
   .arch-head,
-  .compare-head,
   .testimonials-head,
   .docs-promo-head,
   .oss-promo-head {
@@ -108,7 +105,6 @@
   }
 
   .arch-subtitle,
-  .compare-subtitle,
   .testimonials-subtitle,
   .docs-promo-subtitle,
   .oss-promo-subtitle {
diff --git a/website/src/css/landing-sections/comparison.scss 
b/website/src/css/landing-sections/comparison.scss
index 566f8f84293..9131ed9ffb8 100644
--- a/website/src/css/landing-sections/comparison.scss
+++ b/website/src/css/landing-sections/comparison.scss
@@ -8,7 +8,8 @@
 .compare-head {
   font-size: clamp(1.6rem, 1rem + 2vw, 2.25rem);
   font-weight: 700;
-  margin-bottom: 0.5rem;
+  max-width: 760px;
+  margin: 0 auto 0.5rem;
 }
 
 .compare-subtitle {
diff --git a/website/src/css/landing-sections/features.module.scss 
b/website/src/css/landing-sections/features.module.scss
index e2cd0e5da2c..9694c585167 100644
--- a/website/src/css/landing-sections/features.module.scss
+++ b/website/src/css/landing-sections/features.module.scss
@@ -163,13 +163,13 @@
 
 .features {
   width: 100%;
-  margin: 10rem 0;
+  margin: 6rem 0 2rem;
   hyphens: auto;
   position: relative;
 
   & .head {
     padding: 0 10%;
-    margin-bottom: 8rem;
+    margin-bottom: 0;
 
     h2 {
       background-color: rgb(232 67 62);
diff --git a/website/src/css/landing-sections/integrations.scss 
b/website/src/css/landing-sections/integrations.scss
index b0c79358050..1d1cfb64469 100644
--- a/website/src/css/landing-sections/integrations.scss
+++ b/website/src/css/landing-sections/integrations.scss
@@ -19,25 +19,13 @@
   line-height: 1.6;
 }
 
-.integrations__groups {
-  display: flex;
-  flex-direction: column;
-  gap: 1.75rem;
-}
-
-.integrations__group-title {
-  font-size: 0.78rem;
-  letter-spacing: 0.07em;
-  text-transform: uppercase;
-  color: #9a9a9a;
-  margin-bottom: 0.85rem;
-}
-
 .integrations__tiles {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0.75rem;
+  max-width: 860px;
+  margin: 0 auto;
 }
 
 .integrations__tile {
diff --git a/website/src/css/landing-sections/os-promo.module.scss 
b/website/src/css/landing-sections/os-promo.module.scss
index 21212cd3891..7c15bdf3d75 100644
--- a/website/src/css/landing-sections/os-promo.module.scss
+++ b/website/src/css/landing-sections/os-promo.module.scss
@@ -55,7 +55,8 @@
   & .docsPromo {
     box-sizing: border-box;
     display: flex;
-    justify-content: center;
+    flex-direction: column;
+    flex: 1;
     background-color: #f8f8f8;
     padding: 80px 40px 50px;
     margin-left: 25px;
@@ -64,7 +65,8 @@
     & .docsPromoHead {
       display: flex;
       flex-flow: column;
-      margin-right: 25px;
+      margin-right: 0;
+      margin-bottom: 1.5rem;
 
       h3 {
         font-size: 2.4rem;
diff --git a/website/src/pages/plugins.tsx b/website/src/pages/plugins.tsx
index 594d1a51f66..7c9941cb202 100644
--- a/website/src/pages/plugins.tsx
+++ b/website/src/pages/plugins.tsx
@@ -191,9 +191,48 @@ const SBeta = styled.div`
   }
 `;
 
+interface PluginEntry {
+  name: string;
+  description?: string;
+  logo?: string;
+  useDefaultIcon?: boolean;
+  beta?: boolean;
+}
+
+interface PluginGroup {
+  groupName: string;
+  plugins: PluginEntry[];
+}
+
+const renderPluginIcon = (plugin: PluginEntry): JSX.Element => {
+  if (plugin.logo) {
+    return (
+      <img
+        className="plugin-logo shadow"
+        src={plugin.logo}
+        alt={plugin.name}
+        loading="lazy"
+        onError={(e) => {
+          e.currentTarget.onerror = null;
+          e.currentTarget.src = '/img/plugin/default-icon.png';
+          e.currentTarget.classList.add('default');
+        }}
+      />
+    );
+  }
+  if (plugin.useDefaultIcon) {
+    return <img className="plugin-logo shadow" src="/img/plugin/apisix.svg" 
alt={plugin.name} loading="lazy" />;
+  }
+  return (
+    <svg className="plugin-logo shadow" aria-hidden="true">
+      <use xlinkHref={`#icon${plugin.name}`} />
+    </svg>
+  );
+};
+
 const Plugins: FC = () => {
   const { siteConfig } = useDocusaurusContext();
-  const { plugins = [] } = siteConfig.customFields as { plugins: any[] };
+  const { plugins = [] } = siteConfig.customFields as { plugins: PluginGroup[] 
};
   const sidebar = plugins.map((section) => (
     <SidebarItem key={section.groupName}><a className="sidebar-link" 
href={`#${section.groupName}`}>{section.groupName}</a></SidebarItem>
   ));
@@ -205,13 +244,7 @@ const Plugins: FC = () => {
         <div key={plugin.name}>
           <PluginCard href={plugin.beta ? 
`/docs/apisix/next/plugins/${pluginUrl}` : `/docs/apisix/plugins/${pluginUrl}`} 
target="_blank">
             <PluginIcon>
-              {plugin.useDefaultIcon
-                ? <img className="plugin-logo shadow default" 
src="/img/plugin/default-icon.png" alt={plugin.name} />
-                : (
-                  <svg className="plugin-logo shadow" aria-hidden="true">
-                    <use xlinkHref={`#icon${plugin.name}`} />
-                  </svg>
-                )}
+              {renderPluginIcon(plugin)}
             </PluginIcon>
             <PluginName>
               {plugin.name}
diff --git a/website/static/data/plugins.json b/website/static/data/plugins.json
index 9bbf985b7d8..f07a72d080f 100644
--- a/website/static/data/plugins.json
+++ b/website/static/data/plugins.json
@@ -1,64 +1,61 @@
 [
   {
-    "groupName": "General",
+    "groupName": "Traffic",
     "plugins": [
       {
-        "name": "batch-requests",
-        "description": "The batch-requests plugin accepts multiple requests, 
sends them from APISIX via HTTP pipelining, and returns an aggregated response 
to the client"
+        "name": "limit-req",
+        "description": "The plugin limits request rate using the leaky bucket 
method"
       },
       {
-        "name": "redirect",
-        "description": "The redirect Plugin can be used to configure 
redirects",
-        "useDefaultIcon": true
+        "name": "limit-conn",
+        "description": "The plugin limits request concurrency"
       },
       {
-        "name": "echo",
-        "description": "The echo Plugin is to help users understand how they 
can develop an APISIX Plugin",
-        "useDefaultIcon": true
+        "name": "limit-count",
+        "description": "The plugin Limits request rate by a fixed number of 
requests in a given time window"
       },
       {
-        "name": "gzip",
-        "description": "The gzip Plugin dynamically sets the behavior of gzip 
in Nginx",
-        "useDefaultIcon": true
+        "name": "proxy-cache",
+        "description": "The proxy-cache Plugin can be used to cache the 
response from the Upstream"
       },
       {
-        "name": "brotli",
-        "description": "The brotli Plugin dynamically configures Brotli 
compression in NGINX",
-        "useDefaultIcon": true
+        "name": "request-validation",
+        "description": "The request-validation Plugin can be used to validate 
the requests before forwarding them to an Upstream service"
       },
       {
-        "name": "real-ip",
-        "description": "The real-ip Plugin is used to dynamically change the 
client's IP address and port as seen by APISIX",
-        "useDefaultIcon": true
+        "name": "proxy-mirror",
+        "description": "The proxy-mirror Plugin can be used to mirror client 
requests"
       },
       {
-        "name": "server-info",
-        "description": "The server-info Plugin periodically reports basic 
server information to etcd",
-        "useDefaultIcon": true
+        "name": "api-breaker",
+        "description": "The api-breaker Plugin implements circuit breaker 
functionality to protect Upstream services"
       },
       {
-        "name": "inspect",
-        "description": "The inspect Plugin exposes runtime inspection 
information for APISIX",
-        "useDefaultIcon": true
+        "name": "traffic-split",
+        "description": "The traffic split plugin allows users to incrementally 
direct percentages of traffic between various upstreams"
       },
       {
-        "name": "lago",
-        "description": "The lago Plugin reports usage and billing events to 
Lago",
+        "name": "request-id",
+        "description": "The request-id Plugin adds a unique ID to each request 
proxied through APISIX"
+      },
+      {
+        "name": "attach-consumer-label",
+        "description": "The attach-consumer-label Plugin injects labels from 
the authenticated consumer into the request context",
         "useDefaultIcon": true
       },
       {
-        "name": "ext-plugin-pre-req",
-        "description": "The ext-plugin-pre-req Plugin is for running specific 
external Plugins in the Plugin Runner before executing the built-in Lua 
Plugins",
+        "name": "proxy-control",
+        "description": "The proxy-control Plugin dynamically controls the 
behavior of the NGINX proxy",
         "useDefaultIcon": true
       },
       {
-        "name": "ext-plugin-post-req",
-        "description": "ext-plugin-post-req differs from the 
ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua 
Plugins and before proxying to the Upstream",
+        "name": "client-control",
+        "description": "The client-control Plugin can be used to dynamically 
control the behavior of NGINX to handle a client request, by setting the max 
size of the request body",
         "useDefaultIcon": true
       },
       {
-        "name": "ext-plugin-post-resp",
-        "description": "The ext-plugin-post-resp Plugin is for running 
specific external Plugins in the Plugin Runner before executing the built-in 
Lua Plugins",
+        "name": "traffic-label",
+        "description": "The traffic-label Plugin evaluates labels on requests 
for traffic governance and routing",
         "useDefaultIcon": true
       }
     ]
@@ -81,7 +78,7 @@
       {
         "name": "grpc-web",
         "description": "The grpc-web Plugin is a proxy Plugin that can process 
gRPC Web requests from JavaScript clients to a gRPC service",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/grpc.svg"
       },
       {
         "name": "body-transformer",
@@ -91,7 +88,7 @@
       {
         "name": "degraphql",
         "description": "The degraphql Plugin translates GraphQL queries into 
upstream REST requests",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/graphql.svg"
       },
       {
         "name": "exit-transformer",
@@ -177,7 +174,7 @@
       {
         "name": "opa",
         "description": "An authorization plugin can be used to integrate with 
Open Policy Agent",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/opa.svg"
       },
       {
         "name": "forward-auth",
@@ -222,12 +219,12 @@
       {
         "name": "chaitin-waf",
         "description": "The chaitin-waf Plugin integrates Chaitin SafeLine WAF 
inspection with APISIX",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/safeline.svg"
       },
       {
         "name": "oas-validator",
         "description": "The oas-validator Plugin validates requests against an 
OpenAPI specification",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/openapi.svg"
       },
       {
         "name": "ocsp-stapling",
@@ -241,119 +238,58 @@
       }
     ]
   },
-  {
-    "groupName": "Traffic",
-    "plugins": [
-      {
-        "name": "limit-req",
-        "description": "The plugin limits request rate using the leaky bucket 
method"
-      },
-      {
-        "name": "limit-conn",
-        "description": "The plugin limits request concurrency"
-      },
-      {
-        "name": "limit-count",
-        "description": "The plugin Limits request rate by a fixed number of 
requests in a given time window"
-      },
-      {
-        "name": "proxy-cache",
-        "description": "The proxy-cache Plugin can be used to cache the 
response from the Upstream"
-      },
-      {
-        "name": "request-validation",
-        "description": "The request-validation Plugin can be used to validate 
the requests before forwarding them to an Upstream service"
-      },
-      {
-        "name": "proxy-mirror",
-        "description": "The proxy-mirror Plugin can be used to mirror client 
requests"
-      },
-      {
-        "name": "api-breaker",
-        "description": "The api-breaker Plugin implements circuit breaker 
functionality to protect Upstream services"
-      },
-      {
-        "name": "traffic-split",
-        "description": "The traffic split plugin allows users to incrementally 
direct percentages of traffic between various upstreams"
-      },
-      {
-        "name": "request-id",
-        "description": "The request-id Plugin adds a unique ID to each request 
proxied through APISIX"
-      },
-      {
-        "name": "attach-consumer-label",
-        "description": "The attach-consumer-label Plugin injects labels from 
the authenticated consumer into the request context",
-        "useDefaultIcon": true
-      },
-      {
-        "name": "proxy-control",
-        "description": "The proxy-control Plugin dynamically controls the 
behavior of the NGINX proxy",
-        "useDefaultIcon": true
-      },
-      {
-        "name": "client-control",
-        "description": "The client-control Plugin can be used to dynamically 
control the behavior of NGINX to handle a client request, by setting the max 
size of the request body",
-        "useDefaultIcon": true
-      },
-      {
-        "name": "traffic-label",
-        "description": "The traffic-label Plugin evaluates labels on requests 
for traffic governance and routing",
-        "useDefaultIcon": true
-      }
-    ]
-  },
   {
     "groupName": "AI",
     "plugins": [
       {
         "name": "ai-proxy",
         "description": "The ai-proxy Plugin simplifies proxying requests to 
LLM providers compatible with the OpenAI API format",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-proxy-multi",
         "description": "The ai-proxy-multi Plugin extends ai-proxy with load 
balancing, retries, fallbacks, and health checks for LLM providers",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-request-rewrite",
         "description": "The ai-request-rewrite Plugin rewrites client requests 
with LLM-generated content before proxying upstream",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-rate-limiting",
         "description": "The ai-rate-limiting Plugin limits LLM usage by 
tracking and throttling token consumption",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-prompt-decorator",
         "description": "The ai-prompt-decorator Plugin prepends and appends 
predefined prompts to user input",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-prompt-template",
         "description": "The ai-prompt-template Plugin applies predefined 
prompt templates and accepts values for declared variables",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-prompt-guard",
         "description": "The ai-prompt-guard Plugin validates prompts against 
allow and deny patterns before forwarding them to LLM services",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-aws-content-moderation",
         "description": "The ai-aws-content-moderation Plugin uses AWS 
Comprehend to detect and block toxic request content",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/aws.svg"
       },
       {
         "name": "ai-aliyun-content-moderation",
         "description": "The ai-aliyun-content-moderation Plugin uses Alibaba 
Cloud content moderation to inspect and block unsafe requests",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/alibabacloud.svg"
       },
       {
         "name": "ai-rag",
         "description": "The ai-rag Plugin adds retrieval-augmented generation 
by fetching relevant context from external data sources",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       }
     ]
   },
@@ -371,7 +307,7 @@
       {
         "name": "opentelemetry",
         "description": "The opentelemetry Plugin can be used to report tracing 
data according to the OpenTelemetry specification",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/opentelemetry.svg"
       },
       {
         "name": "prometheus",
@@ -393,7 +329,7 @@
       {
         "name": "skywalking-logger",
         "description": "The skywalking-logger Plugin can be used to push 
access log data to SkyWalking OAP server of HTTP",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/skywalking.svg"
       },
       {
         "name": "tcp-logger",
@@ -406,7 +342,7 @@
       {
         "name": "rocketmq-logger",
         "description": "The rocketmq-logger Plugin provides the ability to 
push logs as JSON objects to your RocketMQ clusters",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/rocketmq.svg"
       },
       {
         "name": "udp-logger",
@@ -415,7 +351,7 @@
       {
         "name": "clickhouse-logger",
         "description": "The clickhouse-logger Plugin is used to push logs to 
ClickHouse database",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/clickhouse.svg"
       },
       {
         "name": "syslog",
@@ -441,7 +377,7 @@
       {
         "name": "splunk-hec-logging",
         "description": "The splunk-hec-logging Plugin is used to forward logs 
to Splunk HTTP Event Collector (HEC) for analysis and storage",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/splunk.svg"
       },
       {
         "name": "file-logger",
@@ -456,12 +392,12 @@
       {
         "name": "loki-logger",
         "description": "The loki-logger Plugin pushes access logs to Grafana 
Loki",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/grafana.svg"
       },
       {
         "name": "elasticsearch-logger",
         "description": "The elasticsearch-logger Plugin is used to forward 
logs to Elasticsearch for analysis and storage",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/elasticsearch.svg"
       },
       {
         "name": "tencent-cloud-cls",
@@ -481,17 +417,17 @@
       {
         "name": "azure-functions",
         "description": "The azure-functions Plugin is used to integrate APISIX 
with Azure Serverless Function as a dynamic upstream to proxy all requests for 
a particular URI to the Microsoft Azure Cloud",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/azurefunctions.svg"
       },
       {
         "name": "openwhisk",
         "description": "The openwhisk Plugin is used to integrate APISIX with 
the Apache OpenWhisk serverless platform",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/openwhisk.svg"
       },
       {
         "name": "aws-lambda",
         "description": "The aws-lambda Plugin is used for integrating APISIX 
with AWS Lambda as a dynamic upstream to proxy all requests for a particular 
URI to the AWS Cloud",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/awslambda.svg"
       },
       {
         "name": "workflow",
@@ -501,7 +437,7 @@
       {
         "name": "openfunction",
         "description": "The openfunction Plugin is used to integrate APISIX 
with CNCF OpenFunction serverless platform",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/openfunction.svg"
       }
     ]
   },
@@ -511,21 +447,85 @@
       {
         "name": "dubbo-proxy",
         "description": "The dubbo-proxy Plugin allows you to proxy HTTP 
requests to Apache Dubbo",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/dubbo.svg"
       },
       {
         "name": "http-dubbo",
         "description": "The http-dubbo Plugin proxies HTTP requests to Apache 
Dubbo services",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/dubbo.svg"
       },
       {
         "name": "mqtt-proxy",
         "description": "The mqtt-proxy Plugin is used for dynamic load 
balancing with client_id of MQTT. It only works in stream mode",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/mqtt.svg"
       },
       {
         "name": "kafka-proxy",
         "description": "The kafka-proxy plugin can be used to configure 
advanced parameters for the kafka upstream of Apache APISIX, such as SASL 
authentication",
+        "logo": "/img/integrations/kafka.svg"
+      }
+    ]
+  },
+  {
+    "groupName": "General",
+    "plugins": [
+      {
+        "name": "batch-requests",
+        "description": "The batch-requests plugin accepts multiple requests, 
sends them from APISIX via HTTP pipelining, and returns an aggregated response 
to the client"
+      },
+      {
+        "name": "redirect",
+        "description": "The redirect Plugin can be used to configure 
redirects",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "echo",
+        "description": "The echo Plugin is to help users understand how they 
can develop an APISIX Plugin",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "gzip",
+        "description": "The gzip Plugin dynamically sets the behavior of gzip 
in Nginx",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "brotli",
+        "description": "The brotli Plugin dynamically configures Brotli 
compression in NGINX",
+        "logo": "/img/integrations/brotli.svg"
+      },
+      {
+        "name": "real-ip",
+        "description": "The real-ip Plugin is used to dynamically change the 
client's IP address and port as seen by APISIX",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "server-info",
+        "description": "The server-info Plugin periodically reports basic 
server information to etcd",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "inspect",
+        "description": "The inspect Plugin exposes runtime inspection 
information for APISIX",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "lago",
+        "description": "The lago Plugin reports usage and billing events to 
Lago",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "ext-plugin-pre-req",
+        "description": "The ext-plugin-pre-req Plugin is for running specific 
external Plugins in the Plugin Runner before executing the built-in Lua 
Plugins",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "ext-plugin-post-req",
+        "description": "ext-plugin-post-req differs from the 
ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua 
Plugins and before proxying to the Upstream",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "ext-plugin-post-resp",
+        "description": "The ext-plugin-post-resp Plugin is for running 
specific external Plugins in the Plugin Runner before executing the built-in 
Lua Plugins",
         "useDefaultIcon": true
       }
     ]
diff --git a/website/static/img/integrations/alibabacloud.svg 
b/website/static/img/integrations/alibabacloud.svg
new file mode 100644
index 00000000000..e0a1e9d1f9a
--- /dev/null
+++ b/website/static/img/integrations/alibabacloud.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>Alibaba Cloud</title><path d="M3.996 
4.517h5.291L8.01 6.324 4.153 7.506a1.668 1.668 0 0 0-1.165 1.601v5.786a1.668 
1.668 0 0 0 1.165 1.6l3.857 1.183 1.277 1.807H3.996A3.996 3.996 0 0 1 0 
15.487V8.513a3.996 3.996 0 0 1 3.996-3.996m16.008 0h-5.291l1.277 1.807 3.857 
1.182c.715.227 1.17.889 1.165 1.601v5.786a1.668 1.668 0 0 1-1.165 1.6l-3.857 
1.183-1.277 1.807h5.291A3.996 3.996 0 0 0 24 15.487V8.513a3.996 3.996 0 0  [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/aws.svg 
b/website/static/img/integrations/aws.svg
new file mode 100644
index 00000000000..de4948d7459
--- /dev/null
+++ b/website/static/img/integrations/aws.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="153px" viewBox="0 0 256 153" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
preserveAspectRatio="xMidYMid">
+               <g>
+                               <path d="M72.392053,55.4384106 
C72.392053,58.5748344 72.7311258,61.1178808 73.3245033,62.9827815 
C74.002649,64.8476821 74.8503311,66.8821192 76.0370861,69.0860927 
C76.4609272,69.7642384 76.6304636,70.4423841 76.6304636,71.0357616 
C76.6304636,71.8834437 76.1218543,72.7311258 75.0198675,73.5788079 
L69.6794702,77.1390728 C68.9165563,77.6476821 68.1536424,77.9019868 
67.4754967,77.9019868 C66.6278146,77.9019868 65.7801325,77.4781457 
64.9324503,76.7152318 C63.7456954,75.4437086 62.7284768, [...]
+                               <path d="M230.993377,120.964238 
C203.104636,141.562914 162.58543,152.498013 127.745695,152.498013 
C78.9192053,152.498013 34.9245033,134.442384 1.69536424,104.434437 
C-0.932450331,102.060927 1.4410596,98.8397351 4.57748344,100.704636 
C40.5192053,121.557616 84.8529801,134.188079 130.712583,134.188079 
C161.65298,134.188079 195.645033,127.745695 226.924503,114.521854 
C231.586755,112.402649 235.570861,117.57351 230.993377,120.964238 Z 
M242.606623,107.740397 C239.046358,103.162914 219.0410 [...]
+               </g>
+</svg>
diff --git a/website/static/img/integrations/awslambda.svg 
b/website/static/img/integrations/awslambda.svg
new file mode 100644
index 00000000000..c7407489abd
--- /dev/null
+++ b/website/static/img/integrations/awslambda.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
preserveAspectRatio="xMidYMid">
+    <title>AWS Lambda</title>
+    <defs>
+        <linearGradient x1="0%" y1="100%" x2="100%" y2="0%" 
id="linearGradient-1">
+            <stop stop-color="#C8511B" offset="0%"></stop>
+            <stop stop-color="#FF9900" offset="100%"></stop>
+        </linearGradient>
+    </defs>
+    <g>
+        <rect fill="url(#linearGradient-1)" x="0" y="0" width="256" 
height="256"></rect>
+        <path d="M89.6241126,211.2 L49.8903277,211.2 L93.8354832,119.3472 
L113.74728,160.3392 L89.6241126,211.2 Z M96.7029357,110.5696 
C96.1640858,109.4656 95.0414813,108.7648 93.8162384,108.7648 
L93.8066163,108.7648 C92.5717514,108.768 91.4491466,109.4752 
90.9199187,110.5856 L41.9134208,213.0208 C41.4387197,214.0128 
41.5060758,215.1776 42.0962451,216.1088 C42.6799994,217.0368 43.7063805,217.6 
44.8065331,217.6 L91.654423,217.6 C92.8957027,217.6 94.0215149,216.8864 
94.5539501,215.7696 L12 [...]
+    </g>
+</svg>
\ No newline at end of file
diff --git a/website/static/img/integrations/azurefunctions.svg 
b/website/static/img/integrations/azurefunctions.svg
new file mode 100644
index 00000000000..6c0d5a7a1cb
--- /dev/null
+++ b/website/static/img/integrations/azurefunctions.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" 
xmlns="http://www.w3.org/2000/svg";><defs><linearGradient id="azure-original-a" 
x1="60.919" y1="9.602" x2="18.667" y2="134.423" 
gradientUnits="userSpaceOnUse"><stop stop-color="#114A8B"/><stop offset="1" 
stop-color="#0669BC"/></linearGradient><linearGradient id="azure-original-b" 
x1="74.117" y1="67.772" x2="64.344" y2="71.076" 
gradientUnits="userSpaceOnUse"><stop stop-opacity=".3"/><stop offset=".071" 
stop-opacity=".2"/><stop offset=".321" stop-opacity=".1"/><st [...]
diff --git a/website/static/img/integrations/brotli.svg 
b/website/static/img/integrations/brotli.svg
new file mode 100644
index 00000000000..ed5241f8ba5
--- /dev/null
+++ b/website/static/img/integrations/brotli.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
preserveAspectRatio="xMidYMid">
+               <g>
+                               <path d="M94.8793826,251.607827 
C26.6126647,233.315815 -13.899839,163.1461 4.39217292,94.8793826 
C22.6841848,26.6126647 92.8538996,-13.899839 161.120617,4.39217292 
C229.387335,22.6841848 269.899839,92.8538996 251.607827,161.120617 
C233.315815,229.387335 163.1461,269.899839 94.8793826,251.607827 Z" 
fill="#EEAA33"></path>
+                               <path d="M101.606901,226.500386 
C88.0068357,222.85626 88.7983974,175.801986 103.374903,121.401725 
C117.951409,67.001464 140.793034,25.8554871 154.393099,29.4996137 
C167.993164,33.1437402 167.201603,80.1980135 152.625097,134.598275 
C138.048591,188.998536 115.206966,230.144513 101.606901,226.500386 Z" 
fill="#FFFFFF"></path>
+                               <path d="M176.366192,193.74588 
C169.566159,191.923817 169.96194,168.39668 177.250193,141.196549 
C184.538446,113.996419 195.959258,93.4234304 202.759291,95.2454937 
C209.559324,97.0675569 209.163543,120.594694 201.87529,147.794824 
C194.587037,174.994955 183.166225,195.567943 176.366192,193.74588 Z" 
fill="#FFFFFF"></path>
+                               <path d="M53.2407091,160.754506 
C46.4406764,158.932443 46.8364572,135.405306 54.1247102,108.205176 
C61.4129633,81.0050452 72.8337754,60.4320567 79.633808,62.25412 
C86.4338407,64.0761832 86.0380599,87.6033199 78.7498068,114.803451 
C71.4615538,142.003581 60.0407417,162.57657 53.2407091,160.754506 Z" 
fill="#FFFFFF"></path>
+               </g>
+</svg>
diff --git a/website/static/img/integrations/dubbo.svg 
b/website/static/img/integrations/dubbo.svg
new file mode 100644
index 00000000000..4b107e0ffee
--- /dev/null
+++ b/website/static/img/integrations/dubbo.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 321.39 78.54" 
version="1.1">
+    <title id="title19">DUBBO LOGO</title>
+    <path class="cls-1"
+          
d="M68.46,50.38c0,14.06,11.39,22.11,25.45,22.11s25.45-8.05,25.45-22.11V7.25H68.46Zm21.24-28h8.6V31H89.7Zm0,22.25h8.6v8.6H89.7ZM33.24,7.25H4.06v64H33.24c10.95,0,19.3-7.18,23.29-17.15a45.12,45.12,0,0,0,2.38-14.87A45.12,45.12,0,0,0,56.53,24.4C52.84,14.62,44.19,7.25,33.24,7.25Zm.43,14.63H30.34a3.44,3.44,0,0,0-3.44,3.44V53.23a3.44,3.44,0,0,0,3.44,3.44h3.33v4.63h-8.3a6.87,6.87,0,0,1-6.87-6.87V24.12a6.87,6.87,0,0,1,6.87-6.87h8.3ZM285.51,6.06c-17.05,0-30.88,10.28-30.88,33.21s13.83,33.2
 [...]
+          style="fill:#2C3E50;fill-opacity:1"/>
+</svg>
diff --git a/website/static/img/integrations/graphql.svg 
b/website/static/img/integrations/graphql.svg
new file mode 100644
index 00000000000..3265b71859a
--- /dev/null
+++ b/website/static/img/integrations/graphql.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 128 128"><g 
fill="#E434AA"><path d="M18.39 96.852l-4.6-2.657L65.04 5.434l4.597 2.656zm0 
0"/><path d="M12.734 87.105H115.23v5.31H12.734zm0 0"/><path d="M66.031 
119.688L14.766 90.09l2.656-4.602 51.266 29.602zm0 0M110.566 42.543L59.301 
12.941l2.656-4.597 51.266 29.597zm0 0"/><path d="M17.434 42.523l-2.657-4.601 
51.27-29.598 2.656 4.598zm0 0"/><path d="M109.621 96.852L58.375 
8.09l4.598-2.656 51.25 88.761zm0 0M16.8 34.398h5.313v59.204h-5.31 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/grpc.svg 
b/website/static/img/integrations/grpc.svg
new file mode 100644
index 00000000000..02448e678a8
--- /dev/null
+++ b/website/static/img/integrations/grpc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"; role="img" viewBox="-3.78 101.47 
365.56 156.81"><defs><clipPath id="clip-path"><path d="M10.448 
115.797h34.468v34.468H10.448z" class="cls-1" transform="rotate(-45.213 27.682 
133.032)"/></clipPath><clipPath id="clip-path-2"><path d="M84.176 
122.635h20.218v20.218H84.176z" class="cls-1" transform="rotate(-45.213 94.285 
132.743)"/></clipPath><style>.cls-1{fill:none}.cls-2{fill:#244b5a}.cls-4{fill:#75caca}.cls-5{fill:#74cbca}.cls-6{fill:#73cbca}.cls-7{f
 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/kafka.svg 
b/website/static/img/integrations/kafka.svg
new file mode 100644
index 00000000000..29836cf0fcc
--- /dev/null
+++ b/website/static/img/integrations/kafka.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 128 128"><path d="M86.758 
70.89c-4.992 0-9.465 2.208-12.528 5.68l-7.851-5.547a21.275 21.275 0 
001.312-7.32c0-2.531-.46-4.95-1.27-7.203l7.837-5.488c3.062 3.457 7.523 5.652 
12.5 5.652 9.207 0 16.703-7.48 16.703-16.672 
0-9.195-7.496-16.672-16.703-16.672-9.211 0-16.707 7.477-16.707 16.672 0 
1.645.25 3.23.699 4.735l-7.84 5.488a21.578 21.578 0 
00-13.36-7.746v-9.43c7.567-1.586 13.27-8.293 13.27-16.312C62.82 7.53 55.324.055 
46.117.055c-9.21 0- [...]
diff --git a/website/static/img/integrations/mqtt.svg 
b/website/static/img/integrations/mqtt.svg
new file mode 100644
index 00000000000..7180c4d5c88
--- /dev/null
+++ b/website/static/img/integrations/mqtt.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>MQTT</title><path d="M10.657 
23.994h-9.45A1.212 1.212 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 
10.386Zm7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 
18.121 8.044 18.192 17.956Zm4.53 0h-.97C21.754 12.071 11.995 2.407 0 
2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 
14.508v8.291c0 .663-.544 1.195-1.207 1.195ZM16.713.006h6.092A1.19 1.19 0 0 1 24 
1.2v5.914c-.9 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/opa.svg 
b/website/static/img/integrations/opa.svg
new file mode 100644
index 00000000000..73f873b41e3
--- /dev/null
+++ b/website/static/img/integrations/opa.svg
@@ -0,0 +1 @@
+<svg width="56" height="56" viewBox="0 0 56 56" fill="none" 
xmlns="http://www.w3.org/2000/svg";><path d="M52.5 
16.917c0-4.667-8.75-15.167-9.333-15.75 2.098 9.444 1.837 8.034 2.188 
11.05.093.795.132 1.62-.186 2.355-1.457 3.365-6.67 5.26-6.67 5.26l8.166 7S52.5 
21 52.5 16.918zm-49 0c0-4.667 8.75-15.167 9.333-15.75-2.098 9.444-1.838 
8.034-2.188 11.05-.093.795-.132 1.62.186 2.355 1.457 3.365 6.67 5.26 6.67 
5.26l-8.166 7S3.5 21 3.5 16.918z" fill="#BFBFBF"/><path d="M28 12.25c9.144 0 
15.784 6.42 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/openapi.svg 
b/website/static/img/integrations/openapi.svg
new file mode 100644
index 00000000000..8920671852f
--- /dev/null
+++ b/website/static/img/integrations/openapi.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>OpenAPI Initiative</title><path 
d="M21.039 0a2.959 2.959 0 00-2.65 4.274l-6.447 6.447a2.96 2.96 0 101.335 
1.336l6.447-6.447A2.959 2.959 0 1021.04 0zM10.628 2.745c-.072 
0-.143.003-.214.004-.072.002-.143.002-.215.005-.447.018-.893.064-1.335.138l-.03.005-.185.033-.105.02a7.718
 7.718 0 00-.289.062l-.032.008a10.69 10.69 0 
00-2.55.95l-.155.089c-.063.034-.125.07-.187.105-.046.027-.093.051-.14.079H5.19l-.01.005-.036.02
 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/openfunction.svg 
b/website/static/img/integrations/openfunction.svg
new file mode 100644
index 00000000000..af744252131
--- /dev/null
+++ b/website/static/img/integrations/openfunction.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
+<svg enable-background="new 0 0 512 512" version="1.1" viewBox="0 0 512 512" 
xml:space="preserve" xmlns="http://www.w3.org/2000/svg";>  <image width="512" 
height="512" 
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAIGNIUk0AAHomAACAhAAA+gAAAIDo
 AAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfmBQILIhNBef3b 
AAAAXnRFWHRSYXcgcHJvZmlsZSB0eXBlIGlwdGMACmlwdGMKICAgICAgMjgKMzg0MjQ5NGQwNDA0 
MDAwMDAwMDAwMDBmMWMwMjZlMDAwMzUyNDY0NzFjMDIwMDAwMDIwMDA0MDAKYJo9ng [...]
+</svg>
diff --git a/website/static/img/integrations/openwhisk.svg 
b/website/static/img/integrations/openwhisk.svg
new file mode 100644
index 00000000000..08abfd945cc
--- /dev/null
+++ b/website/static/img/integrations/openwhisk.svg
@@ -0,0 +1,1832 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb";
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="2.4221382in"
+   height="1.5887017in"
+   viewBox="0 0 465.05054 305.03073"
+   version="1.1"
+   id="svg4829"
+   sodipodi:docname="apache-openwhisk-logo-only.svg"
+   inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+   
inkscape:export-filename="/Users/Matt/openwhisk/release/openwhisk-website/images/logo/apache-openwhisk-logo-only.png"
+   inkscape:export-xdpi="154.69"
+   inkscape:export-ydpi="154.69">
+  <metadata
+     id="metadata4833">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title>logo/apache-openwhisk</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1571"
+     inkscape:window-height="896"
+     id="namedview4831"
+     showgrid="false"
+     showguides="true"
+     inkscape:zoom="4.4782375"
+     inkscape:cx="116.26263"
+     inkscape:cy="85.189766"
+     inkscape:window-x="51"
+     inkscape:window-y="53"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg4829"
+     inkscape:pagecheckerboard="true"
+     borderlayer="false"
+     viewbox-width="116.3"
+     viewbox-height="21"
+     scale-x="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     units="in">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4835"
+       originx="77.361511"
+       originy="-10.216809" />
+  </sodipodi:namedview>
+  <!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch 
-->
+  <title
+     id="title4812">logo/apache-openwhisk</title>
+  <desc
+     id="desc4814">Created with Sketch.</desc>
+  <defs
+     id="defs4816">
+    <linearGradient
+       id="linearGradient2544"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2542" />
+    </linearGradient>
+    <color-profile
+       name="Adobe-RGB--1998-"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       id="color-profile3144" />
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter4902">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood4892" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite4894" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="2"
+         result="blur"
+         id="feGaussianBlur4896" />
+      <feOffset
+         dx="6"
+         dy="6"
+         result="offset"
+         id="feOffset4898" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="fbSourceGraphic"
+         id="feComposite4900" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix4988" />
+      <feFlood
+         id="feFlood4990"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite4992"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur4994"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset4996"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite4998"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5000" />
+      <feFlood
+         id="feFlood5002"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5004"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5006"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5008"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5010"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5012" />
+      <feFlood
+         id="feFlood5014"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5016"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5018"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5020"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5022"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5024" />
+      <feFlood
+         id="feFlood5026"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5028"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5030"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5032"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5034"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5036" />
+      <feFlood
+         id="feFlood5038"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5040"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5042"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5044"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5046"
+         in="fbSourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter569">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood559" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite561" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur563" />
+      <feOffset
+         dx="0.2"
+         dy="0.2"
+         result="offset"
+         id="feOffset565" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite567" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter895">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood885" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite887" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur889" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset891" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite893" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter946">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood936" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite938" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur940" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset942" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite944" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1214">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood1204" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1206" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1208" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1210" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1212" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1437">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood1427" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1429" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1431" />
+      <feOffset
+         dx="0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1433" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1435" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2252">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2254"
+         width="15.335663"
+         height="17.757502"
+         x="15.284907"
+         y="-0.22932915"
+         ry="0.37528363" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2270">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2272"
+         width="11.395495"
+         height="9.0284157"
+         x="9.1991491"
+         y="-0.064093582"
+         ry="0.35968757" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2408">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood2398" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2400" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2402" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset2404" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2406" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2418">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2420"
+         width="11.568389"
+         height="8.9488811"
+         x="10.364887"
+         y="-0.055517841"
+         ry="0.37048745" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2530">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood2520" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2522" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2524" />
+      <feOffset
+         dx="-0.1"
+         dy="0"
+         result="offset"
+         id="feOffset2526" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2528" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2538">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2540"
+         width="14.630958"
+         height="17.226913"
+         x="-0.16488507"
+         y="2.4576325"
+         ry="0.37048745" />
+    </clipPath>
+    <color-profile
+       id="color-profile4516"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       name="Adobe-RGB--1998-" />
+    <filter
+       id="filter4902-83"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood4892-9"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite4894-0"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur4896-5"
+         result="blur"
+         stdDeviation="2"
+         in="composite1" />
+      <feOffset
+         id="feOffset4898-2"
+         result="offset"
+         dy="6"
+         dx="6" />
+      <feComposite
+         id="feComposite4900-27"
+         result="fbSourceGraphic"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix4988-3"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood4990-79" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite4992-0"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur4994-2" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset4996-3" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite4998-9"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5000-9"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5002-7" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5004-0"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5006-3" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5008-9" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5010-8"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5012-6"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5014-5" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5016-7"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5018-62" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5020-7" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5022-0"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5024-3"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5026-9" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5028-9"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5030-9" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5032-1" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5034-7"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5036-2"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5038-3" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5040-6"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5042-5" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5044-5" />
+      <feComposite
+         result="composite2"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5046-8"
+         in2="offset" />
+    </filter>
+    <filter
+       id="filter4342"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood4332"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.933333" />
+      <feComposite
+         id="feComposite4334"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur4336"
+         result="blur"
+         stdDeviation="0.2"
+         in="composite1" />
+      <feOffset
+         id="feOffset4338"
+         result="offset"
+         dy="1.38778e-16"
+         dx="1.38778e-16" />
+      <feComposite
+         id="feComposite4340"
+         result="fbSourceGraphic"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix4344"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.933333"
+         id="feFlood4346" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite4348"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="0.2"
+         in="composite1"
+         id="feGaussianBlur4350" />
+      <feOffset
+         result="offset"
+         dy="1.38778e-16"
+         dx="1.38778e-16"
+         id="feOffset4352" />
+      <feComposite
+         result="composite2"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite4354"
+         in2="offset" />
+    </filter>
+    <color-profile
+       name="Adobe-RGB--1998-"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       id="color-profile4566" />
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter4902-8">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood4892-3" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite4894-9" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="2"
+         result="blur"
+         id="feGaussianBlur4896-0" />
+      <feOffset
+         dx="6"
+         dy="6"
+         result="offset"
+         id="feOffset4898-5" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="fbSourceGraphic"
+         id="feComposite4900-2" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix4988-2" />
+      <feFlood
+         id="feFlood4990-7"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite4992-3"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur4994-7"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset4996-9"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite4998-0"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5000-2" />
+      <feFlood
+         id="feFlood5002-3"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5004-9"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5006-9"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5008-7"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5010-0"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5012-3" />
+      <feFlood
+         id="feFlood5014-9"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5016-8"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5018-6"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5020-5"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5022-7"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5024-6" />
+      <feFlood
+         id="feFlood5026-2"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5028-7"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5030-0"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5032-3"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5034-9"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5036-9" />
+      <feFlood
+         id="feFlood5038-9"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5040-1"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5042-7"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5044-2"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5046-3"
+         in="fbSourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter569-4">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood559-7" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite561-1" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur563-3" />
+      <feOffset
+         dx="0.2"
+         dy="0.2"
+         result="offset"
+         id="feOffset565-8" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite567-4" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter895-8">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood885-0" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite887-4" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur889-6" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset891-0" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite893-3" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter946-2">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood936-6" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite938-9" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur940-4" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset942-1" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite944-3" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1214-7">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood1204-8" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1206-8" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1208-3" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1210-8" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1212-1" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1437-5">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood1427-3" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1429-5" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1431-4" />
+      <feOffset
+         dx="0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1433-3" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1435-6" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2252-5">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2254-9"
+         width="15.335663"
+         height="17.757502"
+         x="15.284907"
+         y="-0.22932915"
+         ry="0.37528363" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2270-5">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2272-4"
+         width="11.395495"
+         height="9.0284157"
+         x="9.1991491"
+         y="-0.064093582"
+         ry="0.35968757" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2408-9">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood2398-1" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2400-7" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2402-5" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset2404-5" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2406-4" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2418-1">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2420-8"
+         width="11.568389"
+         height="8.9488811"
+         x="10.364887"
+         y="-0.055517841"
+         ry="0.37048745" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2530-8">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood2520-3" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2522-5" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2524-2" />
+      <feOffset
+         dx="-0.1"
+         dy="0"
+         result="offset"
+         id="feOffset2526-2" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2528-6" />
+    </filter>
+    <color-profile
+       id="color-profile4940"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       name="Adobe-RGB--1998-" />
+    <filter
+       id="filter4902-9"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood4892-1"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite4894-5"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur4896-55"
+         result="blur"
+         stdDeviation="2"
+         in="composite1" />
+      <feOffset
+         id="feOffset4898-8"
+         result="offset"
+         dy="6"
+         dx="6" />
+      <feComposite
+         id="feComposite4900-29"
+         result="fbSourceGraphic"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix4988-8"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood4990-2" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite4992-07"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur4994-4" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset4996-8" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite4998-5"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5000-8"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5002-30" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5004-6"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5006-2" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5008-2" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5010-5"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5012-2"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5014-2" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5016-71"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5018-5" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5020-2" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5022-1"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5024-1"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5026-0" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5028-1"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5030-8" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5032-7" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5034-6"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5036-0"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5038-0" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5040-9"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5042-56" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5044-28" />
+      <feComposite
+         result="composite2"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5046-5"
+         in2="offset" />
+    </filter>
+    <filter
+       id="filter569-9"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood559-4"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite561-3"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur563-9"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset565-0"
+         result="offset"
+         dy="0.2"
+         dx="0.2" />
+      <feComposite
+         id="feComposite567-5"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter895-6"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood885-3"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite887-6"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur889-3"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset891-08"
+         result="offset"
+         dy="-2.77556e-17"
+         dx="-0.2" />
+      <feComposite
+         id="feComposite893-4"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter946-0"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood936-4"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite938-6"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur940-46"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset942-4"
+         result="offset"
+         dy="-2.77556e-17"
+         dx="-0.2" />
+      <feComposite
+         id="feComposite944-38"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter1214-4"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood1204-0"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite1206-0"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur1208-9"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset1210-3"
+         result="offset"
+         dy="0.1"
+         dx="-0.1" />
+      <feComposite
+         id="feComposite1212-7"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter1437-57"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood1427-2"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite1429-9"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur1431-7"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset1433-5"
+         result="offset"
+         dy="0.1"
+         dx="0.1" />
+      <feComposite
+         id="feComposite1435-65"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipPath2252-3"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.37528363"
+         y="-0.22932915"
+         x="15.284907"
+         height="17.757502"
+         width="15.335663"
+         id="rect2254-0"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+    <clipPath
+       id="clipPath2270-4"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.35968757"
+         y="-0.064093582"
+         x="9.1991491"
+         height="9.0284157"
+         width="11.395495"
+         id="rect2272-8"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+    <filter
+       id="filter2408-5"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood2398-5"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite2400-5"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur2402-4"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset2404-2"
+         result="offset"
+         dy="0.1"
+         dx="-0.1" />
+      <feComposite
+         id="feComposite2406-1"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipPath2418-9"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.37048745"
+         y="-0.055517841"
+         x="10.364887"
+         height="8.9488811"
+         width="11.568389"
+         id="rect2420-2"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+    <filter
+       id="filter2530-4"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood2520-5"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite2522-8"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur2524-6"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset2526-25"
+         result="offset"
+         dy="0"
+         dx="-0.1" />
+      <feComposite
+         id="feComposite2528-1"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipPath2538-3"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.37048745"
+         y="2.4576325"
+         x="-0.16488507"
+         height="17.226913"
+         width="14.630958"
+         id="rect2540-9"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+  </defs>
+  <rect
+     inkscape:export-ydpi="72"
+     inkscape:export-xdpi="72"
+     inkscape:label="Website Header background - #27558f"
+     y="-4.6110868"
+     x="-3.0287452"
+     height="312.74371"
+     width="472.01105"
+     id="rect316"
+     
style="display:none;fill:#27558f;fill-opacity:0.94117647;stroke:none;stroke-width:1;stroke-opacity:1"
+     sodipodi:insensitive="true" />
+  <text
+     inkscape:label="TM"
+     id="text133"
+     y="18.152016"
+     x="437.64542"
+     
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.0028801px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif,
 
Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:none;fill:#325c80;fill-opacity:1;stroke:none;stroke-width:1.59402001"
+     xml:space="preserve"><tspan
+       
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.0028801px;font-family:sans-serif;-inkscape-font-specification:'sans-serif,
 
Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#325c80;fill-opacity:1;stroke-width:1.59402001"
+       y="18.152016"
+       x="437.64542"
+       id="tspan131"
+       sodipodi:role="line">TM</tspan></text>
+  <g
+     style="display:none;stroke-width:0.24340019"
+     inkscape:label="Logo Dark Background Shadow"
+     id="g2552-6"
+     transform="matrix(15.428316,0,0,15.493285,-1.5873152,-18.212558)"
+     sodipodi:insensitive="true">
+    <path
+       transform="translate(0.1028831,1.175636)"
+       
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24340019;stroke-opacity:1"
+       clip-path="none"
+       d="M 14.672649,19.788911 4.8204578,2.219221 -0.12607805,11.075757 
4.7386969,19.788911 Z"
+       id="polygon2422-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc"
+       inkscape:label="Dark blue Shadow" />
+  </g>
+  <g
+     style="display:inline;stroke-width:0.27429447"
+     transform="matrix(6.3071665,0,0,5.3545025,-49.879637,-62.863546)"
+     id="g2788"
+     inkscape:label="Logo"
+     sodipodi:insensitive="true">
+    <polygon
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)"
+       style="display:inline;fill:#008571;stroke-width:0.24340019"
+       points="15.537455,0.002953125 25.270444,17.22644 30.142665,8.6119277 
25.27587,-0.00012304688 "
+       id="polygon99-8"
+       inkscape:label="Dark aquamarine" />
+    <polygon
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)"
+       style="display:inline;fill:#6eedd8;stroke-width:0.24340019"
+       points="10.758253,8.6133428 20.405514,8.608776 15.537636,0.0031376953 "
+       id="polygon101-4"
+       inkscape:label="Light aquamarine"
+       clip-path="none"
+       mask="none" />
+    <polygon
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)"
+       style="display:inline;fill:#325c80;stroke-width:0.24340019"
+       points="0,11.075757 4.8203765,19.687808 14.465952,19.684116 
4.8258021,2.4612451 "
+       id="polygon103-1"
+       inkscape:label="Dark blue" />
+    <polygon
+       inkscape:label="Medium blue"
+       id="polygon233-7"
+       points="14.466073,19.684547 19.291272,11.074342 9.6456963,11.077418 "
+       style="display:inline;fill:#5aaafa;stroke-width:0.24340019"
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)" />
+  </g>
+</svg>
diff --git a/website/static/img/integrations/rocketmq.svg 
b/website/static/img/integrations/rocketmq.svg
new file mode 100644
index 00000000000..d25ef2384e2
--- /dev/null
+++ b/website/static/img/integrations/rocketmq.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>Apache RocketMQ</title><path 
d="M11.438 23.467c-.517-.638-1.106-1.89-1.217-2.587l-.082-.511h1.835c1.435 0 
1.835.036 1.835.165 0 .352-.412 1.553-.709 2.066-.333.577-1.021 1.41-1.155 
1.4-.043-.004-.272-.244-.507-.533zm-4.532-4.193c-1.251-3.005-1.231-6.784.056-10.63.786-2.35
 2.652-5.689 4.413-7.9L11.967 0l.422.493c.763.893 2.612 3.731 3.28 5.036 1.32 
2.578 2.055 4.993 2.264 7.438.197 2.302-.176 4.837-.962 6.533l-. [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/safeline.svg 
b/website/static/img/integrations/safeline.svg
new file mode 100644
index 00000000000..c7c293593e6
--- /dev/null
+++ b/website/static/img/integrations/safeline.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="396px" height="407px" viewBox="0 0 396 407" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <title>编组 12</title>
+    <defs>
+        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" 
id="linearGradient-1">
+            <stop stop-color="#4B4B4B" offset="0%"></stop>
+            <stop stop-color="#000000" offset="100%"></stop>
+        </linearGradient>
+        <filter x="-3.0%" y="-2.8%" width="106.1%" height="105.6%" 
filterUnits="objectBoundingBox" id="filter-2">
+            <feGaussianBlur stdDeviation="3" 
in="SourceGraphic"></feGaussianBlur>
+        </filter>
+        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" 
id="linearGradient-3">
+            <stop stop-color="#24BC43" stop-opacity="0.8" offset="0%"></stop>
+            <stop stop-color="#3ACBAB" stop-opacity="0.7" offset="100%"></stop>
+        </linearGradient>
+        <path d="M110.049657,49.667649 C110.049657,49.667649 
81.1358702,46.2263115 76.8,26.7636364 C72.4880848,46.2263115 
43.5503431,49.667649 43.5503431,49.667649 C14.2053649,53.3001718 0,36.4567369 
0,36.4567369 C13.941859,65.8036979 38.4,64.7712967 38.4,64.7712967 
L115.2,64.7712967 C115.2,64.7712967 139.634186,65.8036979 153.6,36.4567369 
C153.6,36.4567369 139.394635,53.3192904 110.049657,49.667649 Z" 
id="path-4"></path>
+        <filter x="-16.9%" y="-57.9%" width="133.9%" height="236.8%" 
filterUnits="objectBoundingBox" id="filter-5">
+            <feOffset dx="0" dy="4" in="SourceAlpha" 
result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="8" in="shadowOffsetOuter1" 
result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.490319293   0 0 0 0 
0.292243323  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+    </defs>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" 
fill-rule="evenodd">
+        <g id="编组-12" transform="translate(49.000000, 38.000000)">
+            <path d="M292.40836,59.04 C290.927217,51.9634286 
285.002646,46.6971429 277.761503,46.368 C222.13636,44.8868571 
176.385503,16.5805714 157.953503,3.08571429 C152.358074,-1.02857143 
144.95236,-1.02857143 139.356931,3.08571429 C120.431217,16.5805714 
75.1740742,44.8868571 19.5489314,46.368 C12.4723599,46.6971429 
6.21864565,51.9634286 4.90207422,59.04 C-3.98478292,103.474286 
-19.2899258,254.057143 148.902074,324 C316.60036,253.892571 
300.966074,103.474286 292.40836,59.04 Z" id="路径" [...]
+            <path d="M292.40836,59.04 C290.927217,51.9634286 
285.002646,46.6971429 277.761503,46.368 C222.13636,44.8868571 
176.385503,16.5805714 157.953503,3.08571429 C152.358074,-1.02857143 
144.95236,-1.02857143 139.356931,3.08571429 C120.431217,16.5805714 
75.1740742,44.8868571 19.5489314,46.368 C12.4723599,46.6971429 
6.21864565,51.9634286 4.90207422,59.04 C-3.98478292,103.474286 
-19.2899258,254.057143 148.902074,324 C316.60036,253.892571 
300.966074,103.474286 292.40836,59.04 Z" id="路径" [...]
+            <path d="M149,261.4 C205.553958,261.4 251.4,215.553958 251.4,159 
C251.4,131.275004 240.381593,106.123494 222.484813,87.6855068 
C209.900749,96.0964568 185.81512,106.024178 175.564259,100.853688 
C166.334879,96.1984273 157.476591,88.4505652 148.989396,77.610101 
C142.047769,88.5334102 134.670586,95.5517221 126.857848,98.6650367 
C120.689419,101.123107 98.2592604,102.915695 75.4419467,87.761039 
C57.5883513,106.192154 46.6,131.312844 46.6,159 C46.6,215.553958 
92.4460416,261.4 149,26 [...]
+            <g id="编组-5备份-6" transform="translate(91.771423, 102.101722)" 
fill="#FFFFFF">
+                <polygon id="路径-130备份-29" transform="translate(57.217971, 
95.920999) rotate(-180.000000) translate(-57.217971, -95.920999) " 
points="56.6651511 64.9496372 -7.57241738e-17 97.1108413 50.6084036 126.892361 
68.8016729 117.264704 34.3433228 97.1108413 56.6651511 84.5503086 96.9001091 
107.376711 96.9001091 114.88399 114.435942 125.435553 114.435942 
97.1108413"></polygon>
+                <polygon id="路径-130备份-30" transform="translate(57.217971, 
30.971362) rotate(-360.000000) translate(-57.217971, -30.971362) " 
points="56.6651511 2.84217094e-14 -7.57241738e-17 32.1612041 50.6084036 
61.9427239 68.8016729 52.3150668 34.3433228 32.1612041 56.6651511 19.6006714 
96.9001091 42.4270741 96.9001091 49.9343528 114.435942 60.4859155 114.435942 
32.1612041"></polygon>
+                <polygon id="路径-130备份-29" opacity="0.40499442" 
transform="translate(57.217971, 95.920999) rotate(-180.000000) 
translate(-57.217971, -95.920999) " points="56.6651511 64.9496372 
-7.57241738e-17 97.1108413 50.6084036 126.892361 68.8016729 117.264704 
34.3433228 97.1108413 56.6651511 84.5503086 96.9001091 107.376711 96.9001091 
114.88399 114.435942 125.435553 114.435942 97.1108413"></polygon>
+                <polygon id="路径-130备份-30" opacity="0.40499442" 
transform="translate(57.217971, 30.971362) rotate(-360.000000) 
translate(-57.217971, -30.971362) " points="56.6651511 4.8316906e-13 
-7.57241738e-17 32.1612041 50.6084036 61.9427239 68.8016729 52.3150668 
34.3433228 32.1612041 56.6651511 19.6006714 96.9001091 42.4270741 96.9001091 
49.9343528 114.435942 60.4859155 114.435942 32.1612041"></polygon>
+            </g>
+            <g id="长亭logo备份-18" transform="translate(72.200000, 45.222222)" 
fill-rule="nonzero">
+                <g id="编组-7">
+                    <path d="M96.7632666,18.0061837 C96.7632666,18.0061837 
79.3862969,15.2966085 76.7907961,0 C74.1952953,15.2966085 56.8183256,18.0061837 
56.8183256,18.0061837 C39.1836466,20.8694936 30.6424242,7.60987058 
30.6424242,7.60987058 C39.0363842,30.6893013 53.7258141,29.862977 
53.7258141,29.862977 L99.8741859,29.862977 C99.8741859,29.862977 
114.563616,30.6700845 122.957576,7.60987058 C122.957576,7.60987058 
114.416353,20.8694936 96.7816744,18.0061837 L96.7632666,18.0061837 Z" id [...]
+                    <g id="路径">
+                        <use fill="black" fill-opacity="1" 
filter="url(#filter-5)" xlink:href="#path-4"></use>
+                        <use fill="#27B876" xlink:href="#path-4"></use>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/website/static/img/integrations/skywalking.svg 
b/website/static/img/integrations/skywalking.svg
new file mode 100644
index 00000000000..005956317e1
--- /dev/null
+++ b/website/static/img/integrations/skywalking.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="3584px" height="848px" viewBox="0 0 3584 848" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch 
-->
+    <title>Group</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" 
fill-rule="evenodd">
+        <g id="Group" transform="translate(0.000000, -16.000000)">
+            <g id="Group-2" transform="translate(0.000000, 157.599119)" 
fill="#1890FF">
+                <path d="M1440.61949,224.405286 L1440.61949,226.338106 
L1381.99064,522.703744 C1374.25936,561.360132 1363.95099,576.822687 
1324.65033,576.822687 L1307.25496,576.822687 C1272.46421,576.822687 
1254.42456,560.071586 1246.04901,526.569383 L1195.15143,329.421806 
C1194.50716,326.844714 1194.50716,326.200441 1193.21861,326.200441 
C1191.93007,326.200441 1191.93007,326.844714 1191.28579,329.421806 
L1140.38822,526.569383 C1132.01267,560.071586 1113.97302,576.822687 
1079.18227,576.8 [...]
+                <path d="M309.821035,361.139868 C309.821035,426.211454 
269.231828,495.792952 140.377203,495.792952 C92.0567181,495.792952 
57.2659692,491.28304 26.340859,484.196035 C19.8981278,482.907489 
14.0996696,478.397577 14.0996696,471.310573 L14.0996696,424.922907 
C14.0996696,417.835903 19.8981278,412.681718 26.340859,412.681718 
L27.6294053,412.681718 C53.4003304,415.903084 117.827643,419.124449 
141.665749,419.124449 C199.006057,419.124449 216.401432,398.507709 
216.401432,361.139868 [...]
+            </g>
+            <g id="moon-o" transform="translate(3304.973950, 323.548473) 
rotate(-183.000000) translate(-3304.973950, -323.548473) translate(3026.449721, 
14.297372)" fill="#D8D8D8" fill-rule="nonzero">
+                <path d="M556.201759,503.069627 C538.560505,506.036844 
520.385618,507.520453 502.242121,507.520453 C320.273523,507.520453 
172.645729,359.064881 172.645729,176.075948 C172.645729,113.448719 
190.789226,52.2735334 223.654695,0 C93.1973036,38.9526209 0,159.314326 
0,302.340521 C0,476.459368 140.753354,618.001955 313.901326,618.001955 
C408.573966,618.001955 497.345261,574.598507 556.201759,503.069627 Z" 
id="Shape"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/website/static/img/integrations/splunk.svg 
b/website/static/img/integrations/splunk.svg
new file mode 100644
index 00000000000..fde4ffb96a5
--- /dev/null
+++ b/website/static/img/integrations/splunk.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>Splunk</title><path d="M23.348 
11.911l-2.241-1.091v-.65L24 11.621v.593l-2.893 1.438v-.636zm-5.397 
1.841h-.961v-5.31h.961v3.116h.102l1.28-1.481.723.31-1.23 1.316 1.453 
1.809-.888.311-1.44-1.996zm-2.577-.002v-2.068a2.685 2.685 0 0 
0-.026-.42.791.791 0 0 0-.09-.26c-.113-.202-.308-.304-.59-.304a.888.888 0 0 
0-.461.113.673.673 0 0 0-.286.33 1.012 1.012 0 0 
0-.07.263c-.012.13-.019.262-.017.395v1.95h-.961v-3.614h.961l [...]
\ No newline at end of file
diff --git a/website/static/img/plugin/ai.svg b/website/static/img/plugin/ai.svg
new file mode 100644
index 00000000000..9ee514a61ee
--- /dev/null
+++ b/website/static/img/plugin/ai.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 128 128">
+  <defs>
+    <linearGradient id="apisixAiRed" x1="8" y1="8" x2="118" y2="118" 
gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#F8553F"/>
+      <stop offset="1" stop-color="#C4292E"/>
+    </linearGradient>
+  </defs>
+  <path d="M58 8 Q70 46 108 58 Q70 70 58 108 Q46 70 8 58 Q46 46 58 8 Z" 
fill="url(#apisixAiRed)"/>
+  <path d="M102 14 Q106 26 118 30 Q106 34 102 46 Q98 34 86 30 Q98 26 102 14 Z" 
fill="url(#apisixAiRed)"/>
+</svg>
diff --git a/website/static/img/plugin/apisix.svg 
b/website/static/img/plugin/apisix.svg
new file mode 100644
index 00000000000..8e99cc539b4
--- /dev/null
+++ b/website/static/img/plugin/apisix.svg
@@ -0,0 +1,15 @@
+<svg width="185" height="156" viewBox="0 0 185 156" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path d="M0 155.5L94 0L185 155.5H140L94 83L42.5 155.5H0Z" fill="#F8423F"/>
+<path d="M94 82.5L42.5 155H0L76.5 57L94 82.5Z" fill="url(#paint0_linear)"/>
+<path d="M140 155.5H185L94 0L140 155.5Z" fill="url(#paint1_linear)"/>
+<defs>
+<linearGradient id="paint0_linear" x1="222.5" y1="50" x2="85" y2="223.5" 
gradientUnits="userSpaceOnUse">
+<stop offset="0.536111" stop-color="#FC0A04"/>
+<stop offset="1" stop-color="#CF0500" stop-opacity="0.77"/>
+</linearGradient>
+<linearGradient id="paint1_linear" x1="139.5" y1="1.50861e-06" x2="226" 
y2="136" gradientUnits="userSpaceOnUse">
+<stop offset="0.473466" stop-color="#E2423E"/>
+<stop offset="1" stop-color="#E2423E" stop-opacity="0.77"/>
+</linearGradient>
+</defs>
+</svg>

Reply via email to