You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampark.apache.org by gi...@apache.org on 2024/06/30 15:00:39 UTC

(incubator-streampark-website) branch asf-site updated (22e73bb3 -> b9fb9efd)

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

github-bot pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-streampark-website.git


 discard 22e73bb3 deploy: cb75755a0eda95c9cda698e3570566ae0cb502f5
     new b9fb9efd deploy: 5c93bc28455493fb55e156305399d61e43558e17

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (22e73bb3)
            \
             N -- N -- N   refs/heads/asf-site (b9fb9efd)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 404.html                                           |  6 ++---
 .../{0ceb223b.743bcbb6.js => 0ceb223b.ea5810ec.js} |  2 +-
 .../{0e6d842f.bd9a5c8a.js => 0e6d842f.5125494e.js} |  2 +-
 .../{1508e8d4.7404b2a5.js => 1508e8d4.c6ac604d.js} |  2 +-
 .../{16ae2a96.81181708.js => 16ae2a96.8757a7a6.js} |  2 +-
 .../{1db0feda.2df681c0.js => 1db0feda.255126f9.js} |  2 +-
 .../{25003e4f.67652151.js => 25003e4f.76c64407.js} |  2 +-
 .../{290c2510.ca3ea639.js => 290c2510.67e5948d.js} |  2 +-
 .../{33a894b3.edf3be74.js => 33a894b3.40b342e0.js} |  2 +-
 .../{594ae476.315d25f6.js => 594ae476.41388fc4.js} |  2 +-
 .../{5b140940.78a04902.js => 5b140940.70757eed.js} |  2 +-
 .../{6cc0f99e.d147e8f6.js => 6cc0f99e.e281e257.js} |  2 +-
 .../{80de6c06.beaee3ce.js => 80de6c06.0d99baeb.js} |  2 +-
 .../{8c7e3f1f.6f9b5cca.js => 8c7e3f1f.e915ace7.js} |  2 +-
 .../{8d63fd51.eb43ebb0.js => 8d63fd51.4bc35693.js} |  2 +-
 .../{936e7356.074f7622.js => 936e7356.897df22a.js} |  2 +-
 .../{97b764ab.a3d63618.js => 97b764ab.ac7baca5.js} |  2 +-
 .../{a54c9970.16be1ef8.js => a54c9970.76460b10.js} |  2 +-
 .../{a9032c8b.70e8178c.js => a9032c8b.75497a10.js} |  2 +-
 .../{af7dd721.d9f05ddc.js => af7dd721.783dca7e.js} |  2 +-
 .../{c48f23e0.f6b2e894.js => c48f23e0.b59bc956.js} |  2 +-
 .../{dd5e028d.19e472ef.js => dd5e028d.03e76ea7.js} |  2 +-
 .../{df891701.50b278f9.js => df891701.361bee86.js} |  2 +-
 .../{e17a8e6e.3298b024.js => e17a8e6e.818a0308.js} |  2 +-
 .../{f4473dc1.bc87cf29.js => f4473dc1.b68e0a90.js} |  2 +-
 .../{f71b5567.e10c91ff.js => f71b5567.20b68054.js} |  2 +-
 assets/js/main.2e3dadaf.js                         |  2 ++
 ...js.LICENSE.txt => main.2e3dadaf.js.LICENSE.txt} |  0
 assets/js/main.98f4520c.js                         |  2 --
 ...e~main.6a44adf6.js => runtime~main.de93b3db.js} |  2 +-
 blog/archive/index.html                            |  6 ++---
 blog/atom.xml                                      | 26 +++++++++++-----------
 .../index.html                                     |  8 +++----
 blog/index.html                                    |  6 ++---
 blog/page/2/index.html                             |  6 ++---
 blog/rss.xml                                       | 26 +++++++++++-----------
 blog/streampark-flink-on-k8s/index.html            |  8 +++----
 .../index.html                                     |  8 +++----
 .../index.html                                     |  8 +++----
 blog/streampark-usercase-changan/index.html        |  8 +++----
 blog/streampark-usercase-chinaunion/index.html     |  8 +++----
 blog/streampark-usercase-dustess/index.html        |  8 +++----
 blog/streampark-usercase-haibo/index.html          |  8 +++----
 blog/streampark-usercase-joyme/index.html          |  8 +++----
 blog/streampark-usercase-shunwang/index.html       |  8 +++----
 blog/streampark-usercase-tianyancha/index.html     |  8 +++----
 blog/streampark-usercase-ziru/index.html           |  8 +++----
 blog/tags/data-stream/index.html                   |  6 ++---
 blog/tags/flink-sql/index.html                     |  6 ++---
 blog/tags/flink-sql/page/2/index.html              |  6 ++---
 blog/tags/index.html                               |  6 ++---
 blog/tags/kubernetes/index.html                    |  6 ++---
 blog/tags/paimon/index.html                        |  6 ++---
 blog/tags/production-practice/index.html           |  6 ++---
 blog/tags/production-practice/page/2/index.html    |  6 ++---
 blog/tags/stream-park/index.html                   |  6 ++---
 blog/tags/stream-park/page/2/index.html            |  6 ++---
 blog/tags/streaming-warehouse/index.html           |  6 ++---
 .../contribution_guide/become_committer/index.html |  6 ++---
 .../become_pmc_member/index.html                   |  6 ++---
 .../contribution_guide/mailing_lists/index.html    |  6 ++---
 .../new_committer_process/index.html               |  6 ++---
 .../new_pmc_ember_process/index.html               |  6 ++---
 community/release/how_to_release/index.html        |  8 +++----
 community/release/how_to_verify_release/index.html |  6 ++---
 .../code_style_and_quality_guide/index.html        |  6 ++---
 community/submit_guide/document/index.html         |  6 ++---
 .../documentation_style_guide/index.html           |  6 ++---
 community/submit_guide/submit_code/index.html      |  6 ++---
 docs/development/development/index.html            |  6 ++---
 docs/framework/config/index.html                   |  6 ++---
 docs/framework/connector/clickhouse/index.html     |  6 ++---
 docs/framework/connector/doris/index.html          |  6 ++---
 docs/framework/connector/es/index.html             |  6 ++---
 docs/framework/connector/hbase/index.html          |  6 ++---
 docs/framework/connector/http/index.html           |  6 ++---
 docs/framework/connector/jdbc/index.html           |  6 ++---
 docs/framework/connector/kafka/index.html          |  6 ++---
 docs/framework/connector/redis/index.html          |  6 ++---
 docs/framework/dev-model/index.html                |  6 ++---
 docs/framework/quick-start/index.html              |  6 ++---
 docs/get-started/deployment/index.html             |  6 ++---
 docs/get-started/docker-deployment/index.html      |  6 ++---
 docs/get-started/how-to-use/index.html             |  6 ++---
 docs/get-started/intro/index.html                  |  6 ++---
 docs/platform/alert/index.html                     |  6 ++---
 docs/platform/ext-link/index.html                  |  6 ++---
 docs/platform/k8s/flink-on-k8s/index.html          |  6 ++---
 .../k8s/hadoop-resource-integration/index.html     |  6 ++---
 docs/platform/k8s/k8s-pvc-integration/index.html   |  6 ++---
 docs/platform/ldap/index.html                      |  6 ++---
 docs/platform/platform-build/index.html            |  6 ++---
 docs/platform/sso/index.html                       |  6 ++---
 docs/platform/team/index.html                      |  6 ++---
 docs/platform/variable/index.html                  |  6 ++---
 docs/platform/version-upgrade/index.html           |  6 ++---
 docs/platform/yarn-queue/index.html                |  6 ++---
 download/index.html                                |  6 ++---
 download/release-card/mobile/index.html            |  4 ++--
 download/release-card/pc/index.html                |  4 ++--
 download/release-note/2.0.0/index.html             |  6 ++---
 download/release-note/2.1.0/index.html             |  6 ++---
 download/release-note/2.1.1/index.html             |  6 ++---
 download/release-note/2.1.2/index.html             |  6 ++---
 download/release-note/2.1.3/index.html             |  6 ++---
 download/release-note/2.1.4/index.html             |  6 ++---
 download/table/index.html                          |  4 ++--
 home/feature/index.html                            |  4 ++--
 home/hero/index.html                               |  4 ++--
 home/index.html                                    |  4 ++--
 home/performance/index.html                        |  4 ++--
 home/screenshot/index.html                         |  4 ++--
 home/users/index.html                              |  4 ++--
 index.html                                         |  6 ++---
 search-index.json                                  |  2 +-
 search/index.html                                  |  6 ++---
 team/index.html                                    |  6 ++---
 user/index.html                                    |  6 ++---
 zh-CN/404.html                                     |  6 ++---
 .../{04b66cf6.a2ba1172.js => 04b66cf6.9463962c.js} |  2 +-
 .../{09df2efc.dda8596d.js => 09df2efc.2da3c0c2.js} |  2 +-
 .../{19318848.b9ab22c7.js => 19318848.919d2fc0.js} |  2 +-
 .../{25d6b952.b851dfb3.js => 25d6b952.c122818e.js} |  2 +-
 .../{2a0e8467.548a1585.js => 2a0e8467.dac48ead.js} |  2 +-
 .../{2a28eb89.86e6b80b.js => 2a28eb89.a999d4bc.js} |  2 +-
 .../{3e22f455.2ec9d6c2.js => 3e22f455.d3a6c8a0.js} |  2 +-
 .../{43a997bb.fe059625.js => 43a997bb.acbce27e.js} |  2 +-
 .../{45dbebef.cf9a61ef.js => 45dbebef.0a2367f1.js} |  2 +-
 .../{4ac8765b.f03a0379.js => 4ac8765b.6123a147.js} |  2 +-
 .../{671bbfe3.ab15a11e.js => 671bbfe3.551bf261.js} |  2 +-
 .../{83940afa.563d6d65.js => 83940afa.622216de.js} |  2 +-
 .../{8d37854c.d2507fcc.js => 8d37854c.35084147.js} |  2 +-
 .../{9cee7b09.475eead7.js => 9cee7b09.c278eeae.js} |  2 +-
 zh-CN/assets/js/bc37b46f.243f46a7.js               |  1 -
 zh-CN/assets/js/bc37b46f.6f26c549.js               |  1 +
 .../{c4e7c4ba.78e64286.js => c4e7c4ba.df68d084.js} |  2 +-
 .../{c8e6c20d.9bdd5929.js => c8e6c20d.b06e0a48.js} |  2 +-
 .../{d8340e3c.1bb82dbe.js => d8340e3c.62d4afc7.js} |  2 +-
 .../{dcaea5b7.fc5398ac.js => dcaea5b7.373ba0a6.js} |  2 +-
 .../{dfacc132.c9c4906f.js => dfacc132.d321563c.js} |  2 +-
 .../{e4613c78.a2987f76.js => e4613c78.9228e65f.js} |  2 +-
 .../{e5b5497a.0a0825dd.js => e5b5497a.7324cf21.js} |  2 +-
 .../{e98e7c58.19d7bc43.js => e98e7c58.9dd4a793.js} |  2 +-
 .../{eaa9482d.889f7e70.js => eaa9482d.9a3e483e.js} |  2 +-
 .../{ec0307bd.b90cd030.js => ec0307bd.8bc0be7f.js} |  2 +-
 .../{f980d281.7b520760.js => f980d281.afc8327b.js} |  2 +-
 zh-CN/assets/js/main.18c98162.js                   |  2 ++
 ...js.LICENSE.txt => main.18c98162.js.LICENSE.txt} |  0
 zh-CN/assets/js/main.c02e2af2.js                   |  2 --
 ...e~main.efa381aa.js => runtime~main.5aac20ac.js} |  2 +-
 zh-CN/blog/archive/index.html                      |  6 ++---
 zh-CN/blog/atom.xml                                | 26 +++++++++++-----------
 .../index.html                                     | 16 ++++++-------
 zh-CN/blog/index.html                              |  6 ++---
 zh-CN/blog/page/2/index.html                       |  8 +++----
 zh-CN/blog/rss.xml                                 | 26 +++++++++++-----------
 zh-CN/blog/streampark-flink-on-k8s/index.html      |  8 +++----
 .../index.html                                     | 10 ++++-----
 .../index.html                                     |  8 +++----
 zh-CN/blog/streampark-usercase-changan/index.html  | 10 ++++-----
 .../blog/streampark-usercase-chinaunion/index.html | 10 ++++-----
 zh-CN/blog/streampark-usercase-dustess/index.html  |  8 +++----
 zh-CN/blog/streampark-usercase-haibo/index.html    |  8 +++----
 zh-CN/blog/streampark-usercase-joyme/index.html    | 10 ++++-----
 zh-CN/blog/streampark-usercase-shunwang/index.html | 10 ++++-----
 .../blog/streampark-usercase-tianyancha/index.html |  8 +++----
 zh-CN/blog/streampark-usercase-ziru/index.html     | 10 ++++-----
 zh-CN/blog/tags/data-stream/index.html             |  6 ++---
 zh-CN/blog/tags/flink-sql/index.html               |  6 ++---
 zh-CN/blog/tags/flink-sql/page/2/index.html        |  8 +++----
 zh-CN/blog/tags/index.html                         |  6 ++---
 zh-CN/blog/tags/kubernetes/index.html              |  6 ++---
 zh-CN/blog/tags/paimon/index.html                  |  8 +++----
 zh-CN/blog/tags/stream-park/index.html             |  6 ++---
 zh-CN/blog/tags/stream-park/page/2/index.html      |  8 +++----
 zh-CN/blog/tags/streaming-warehouse/index.html     |  6 ++---
 .../index.html"                                    |  8 +++----
 .../page/2/index.html"                             | 12 +++++-----
 .../contribution_guide/become_committer/index.html |  8 +++----
 .../become_pmc_member/index.html                   |  8 +++----
 .../contribution_guide/mailing_lists/index.html    | 10 ++++-----
 .../new_committer_process/index.html               |  8 +++----
 .../new_pmc_ember_process/index.html               |  6 ++---
 zh-CN/community/release/how_to_release/index.html  | 14 ++++++------
 .../release/how_to_verify_release/index.html       | 10 ++++-----
 .../code_style_and_quality_guide/index.html        | 14 ++++++------
 zh-CN/community/submit_guide/document/index.html   |  6 ++---
 .../documentation_style_guide/index.html           | 14 ++++++------
 .../community/submit_guide/submit_code/index.html  |  6 ++---
 zh-CN/docs/development/development/index.html      |  8 +++----
 zh-CN/docs/framework/config/index.html             |  8 +++----
 .../docs/framework/connector/clickhouse/index.html | 10 ++++-----
 zh-CN/docs/framework/connector/doris/index.html    |  6 ++---
 zh-CN/docs/framework/connector/es/index.html       |  8 +++----
 zh-CN/docs/framework/connector/hbase/index.html    |  8 +++----
 zh-CN/docs/framework/connector/http/index.html     |  6 ++---
 zh-CN/docs/framework/connector/jdbc/index.html     |  8 +++----
 zh-CN/docs/framework/connector/kafka/index.html    | 18 +++++++--------
 zh-CN/docs/framework/connector/redis/index.html    |  8 +++----
 zh-CN/docs/framework/dev-model/index.html          | 16 ++++++-------
 zh-CN/docs/framework/quick-start/index.html        |  6 ++---
 zh-CN/docs/get-started/deployment/index.html       |  8 +++----
 .../docs/get-started/docker-deployment/index.html  |  8 +++----
 zh-CN/docs/get-started/how-to-use/index.html       |  6 ++---
 zh-CN/docs/get-started/intro/index.html            | 12 +++++-----
 zh-CN/docs/platform/alert/index.html               |  8 +++----
 zh-CN/docs/platform/ext-link/index.html            |  6 ++---
 zh-CN/docs/platform/k8s/flink-on-k8s/index.html    |  8 +++----
 .../k8s/hadoop-resource-integration/index.html     |  8 +++----
 .../platform/k8s/k8s-pvc-integration/index.html    |  6 ++---
 zh-CN/docs/platform/ldap/index.html                |  8 +++----
 zh-CN/docs/platform/platform-install/index.html    |  8 +++----
 zh-CN/docs/platform/sso/index.html                 |  6 ++---
 zh-CN/docs/platform/team/index.html                |  8 +++----
 zh-CN/docs/platform/variable/index.html            |  6 ++---
 zh-CN/docs/platform/version-upgrade/index.html     |  8 +++----
 zh-CN/docs/platform/yarn-queue/index.html          |  8 +++----
 zh-CN/download/index.html                          |  6 ++---
 zh-CN/download/release-card/mobile/index.html      |  4 ++--
 zh-CN/download/release-card/pc/index.html          |  4 ++--
 zh-CN/download/release-note/2.0.0/index.html       |  6 ++---
 zh-CN/download/release-note/2.1.0/index.html       |  6 ++---
 zh-CN/download/release-note/2.1.1/index.html       |  6 ++---
 zh-CN/download/release-note/2.1.2/index.html       |  6 ++---
 zh-CN/download/release-note/2.1.3/index.html       |  6 ++---
 zh-CN/download/release-note/2.1.4/index.html       |  6 ++---
 zh-CN/download/table/index.html                    |  4 ++--
 zh-CN/home/feature/index.html                      |  4 ++--
 zh-CN/home/hero/index.html                         |  4 ++--
 zh-CN/home/index.html                              |  4 ++--
 zh-CN/home/performance/index.html                  |  4 ++--
 zh-CN/home/screenshot/index.html                   |  4 ++--
 zh-CN/home/users/index.html                        |  4 ++--
 zh-CN/index.html                                   |  6 ++---
 zh-CN/search-index.json                            |  2 +-
 zh-CN/search/index.html                            |  6 ++---
 zh-CN/team/index.html                              |  6 ++---
 zh-CN/user/index.html                              |  6 ++---
 238 files changed, 703 insertions(+), 703 deletions(-)
 rename assets/js/{0ceb223b.743bcbb6.js => 0ceb223b.ea5810ec.js} (97%)
 rename assets/js/{0e6d842f.bd9a5c8a.js => 0e6d842f.5125494e.js} (96%)
 rename assets/js/{1508e8d4.7404b2a5.js => 1508e8d4.c6ac604d.js} (99%)
 rename assets/js/{16ae2a96.81181708.js => 16ae2a96.8757a7a6.js} (99%)
 rename assets/js/{1db0feda.2df681c0.js => 1db0feda.255126f9.js} (97%)
 rename assets/js/{25003e4f.67652151.js => 25003e4f.76c64407.js} (99%)
 rename assets/js/{290c2510.ca3ea639.js => 290c2510.67e5948d.js} (99%)
 rename assets/js/{33a894b3.edf3be74.js => 33a894b3.40b342e0.js} (99%)
 rename assets/js/{594ae476.315d25f6.js => 594ae476.41388fc4.js} (98%)
 rename assets/js/{5b140940.78a04902.js => 5b140940.70757eed.js} (97%)
 rename assets/js/{6cc0f99e.d147e8f6.js => 6cc0f99e.e281e257.js} (99%)
 rename assets/js/{80de6c06.beaee3ce.js => 80de6c06.0d99baeb.js} (96%)
 rename assets/js/{8c7e3f1f.6f9b5cca.js => 8c7e3f1f.e915ace7.js} (98%)
 rename assets/js/{8d63fd51.eb43ebb0.js => 8d63fd51.4bc35693.js} (99%)
 rename assets/js/{936e7356.074f7622.js => 936e7356.897df22a.js} (97%)
 rename assets/js/{97b764ab.a3d63618.js => 97b764ab.ac7baca5.js} (99%)
 rename assets/js/{a54c9970.16be1ef8.js => a54c9970.76460b10.js} (97%)
 rename assets/js/{a9032c8b.70e8178c.js => a9032c8b.75497a10.js} (99%)
 rename assets/js/{af7dd721.d9f05ddc.js => af7dd721.783dca7e.js} (96%)
 rename assets/js/{c48f23e0.f6b2e894.js => c48f23e0.b59bc956.js} (99%)
 rename assets/js/{dd5e028d.19e472ef.js => dd5e028d.03e76ea7.js} (99%)
 rename assets/js/{df891701.50b278f9.js => df891701.361bee86.js} (99%)
 rename assets/js/{e17a8e6e.3298b024.js => e17a8e6e.818a0308.js} (96%)
 rename assets/js/{f4473dc1.bc87cf29.js => f4473dc1.b68e0a90.js} (99%)
 rename assets/js/{f71b5567.e10c91ff.js => f71b5567.20b68054.js} (98%)
 create mode 100644 assets/js/main.2e3dadaf.js
 rename assets/js/{main.98f4520c.js.LICENSE.txt => main.2e3dadaf.js.LICENSE.txt} (100%)
 delete mode 100644 assets/js/main.98f4520c.js
 rename assets/js/{runtime~main.6a44adf6.js => runtime~main.de93b3db.js} (84%)
 rename zh-CN/assets/js/{04b66cf6.a2ba1172.js => 04b66cf6.9463962c.js} (98%)
 rename zh-CN/assets/js/{09df2efc.dda8596d.js => 09df2efc.2da3c0c2.js} (98%)
 rename zh-CN/assets/js/{19318848.b9ab22c7.js => 19318848.919d2fc0.js} (99%)
 rename zh-CN/assets/js/{25d6b952.b851dfb3.js => 25d6b952.c122818e.js} (99%)
 rename zh-CN/assets/js/{2a0e8467.548a1585.js => 2a0e8467.dac48ead.js} (99%)
 rename zh-CN/assets/js/{2a28eb89.86e6b80b.js => 2a28eb89.a999d4bc.js} (96%)
 rename zh-CN/assets/js/{3e22f455.2ec9d6c2.js => 3e22f455.d3a6c8a0.js} (95%)
 rename zh-CN/assets/js/{43a997bb.fe059625.js => 43a997bb.acbce27e.js} (96%)
 rename zh-CN/assets/js/{45dbebef.cf9a61ef.js => 45dbebef.0a2367f1.js} (99%)
 rename zh-CN/assets/js/{4ac8765b.f03a0379.js => 4ac8765b.6123a147.js} (99%)
 rename zh-CN/assets/js/{671bbfe3.ab15a11e.js => 671bbfe3.551bf261.js} (97%)
 rename zh-CN/assets/js/{83940afa.563d6d65.js => 83940afa.622216de.js} (99%)
 rename zh-CN/assets/js/{8d37854c.d2507fcc.js => 8d37854c.35084147.js} (97%)
 rename zh-CN/assets/js/{9cee7b09.475eead7.js => 9cee7b09.c278eeae.js} (99%)
 delete mode 100644 zh-CN/assets/js/bc37b46f.243f46a7.js
 create mode 100644 zh-CN/assets/js/bc37b46f.6f26c549.js
 rename zh-CN/assets/js/{c4e7c4ba.78e64286.js => c4e7c4ba.df68d084.js} (99%)
 rename zh-CN/assets/js/{c8e6c20d.9bdd5929.js => c8e6c20d.b06e0a48.js} (99%)
 rename zh-CN/assets/js/{d8340e3c.1bb82dbe.js => d8340e3c.62d4afc7.js} (97%)
 rename zh-CN/assets/js/{dcaea5b7.fc5398ac.js => dcaea5b7.373ba0a6.js} (97%)
 rename zh-CN/assets/js/{dfacc132.c9c4906f.js => dfacc132.d321563c.js} (97%)
 rename zh-CN/assets/js/{e4613c78.a2987f76.js => e4613c78.9228e65f.js} (99%)
 rename zh-CN/assets/js/{e5b5497a.0a0825dd.js => e5b5497a.7324cf21.js} (99%)
 rename zh-CN/assets/js/{e98e7c58.19d7bc43.js => e98e7c58.9dd4a793.js} (99%)
 rename zh-CN/assets/js/{eaa9482d.889f7e70.js => eaa9482d.9a3e483e.js} (96%)
 rename zh-CN/assets/js/{ec0307bd.b90cd030.js => ec0307bd.8bc0be7f.js} (99%)
 rename zh-CN/assets/js/{f980d281.7b520760.js => f980d281.afc8327b.js} (97%)
 create mode 100644 zh-CN/assets/js/main.18c98162.js
 rename zh-CN/assets/js/{main.c02e2af2.js.LICENSE.txt => main.18c98162.js.LICENSE.txt} (100%)
 delete mode 100644 zh-CN/assets/js/main.c02e2af2.js
 rename zh-CN/assets/js/{runtime~main.efa381aa.js => runtime~main.5aac20ac.js} (85%)


(incubator-streampark-website) 01/01: deploy: 5c93bc28455493fb55e156305399d61e43558e17

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-streampark-website.git

commit b9fb9efd562bba13d288847f65517e66eb9a56ba
Author: wolfboys <wo...@users.noreply.github.com>
AuthorDate: Sun Jun 30 15:00:27 2024 +0000

    deploy: 5c93bc28455493fb55e156305399d61e43558e17
---
 .asf.yaml                                          |   39 +
 .nojekyll                                          |    0
 404.html                                           |   43 +
 assets/css/styles.8c72ea81.css                     |    1 +
 ...ons-y2l643-6ac9873828472f7a88703893f3de50c7.eot |  Bin 0 -> 147388 bytes
 ...ns-y2l643-c2f4b7610f34f5843a72d44f5c4ae9d2.woff |  Bin 0 -> 147292 bytes
 ...ons-y2l643-fb16b8b0de9e73ca9b2d7bb18c4e7108.ttf |  Bin 0 -> 147216 bytes
 ...nagari-1-64d5f06ee726edd58ca33456c8ead0cb.woff2 |  Bin 0 -> 39564 bytes
 ...nagari-2-f43b6ebf46ee6fba05559f09fd680c90.woff2 |  Bin 0 -> 39136 bytes
 ...nagari-3-349ed9fa39221b45ae9a033c0c3de0e2.woff2 |  Bin 0 -> 39148 bytes
 ...me-webfont-1e59d2330b4c6deb84b340635ed36249.ttf |  Bin 0 -> 165548 bytes
 ...-webfont-20fd1704ea223900efa9fd4e869efb08.woff2 |  Bin 0 -> 77160 bytes
 ...me-webfont-8b43027f47b20503057dfbbaa9401fef.eot |  Bin 0 -> 165742 bytes
 ...e-webfont-f691f37e57f04c152e2315ab7dbad881.woff |  Bin 0 -> 98024 bytes
 ...uster_list-f3bf4ea6dd3331d4a33b34e363bf200e.png |  Bin 0 -> 368607 bytes
 ..._data_file-f34042180339f5bf7a8b69dea1a61daa.png |  Bin 0 -> 53447 bytes
 ...k_job_menu-655020740842addde3a077799bcf45e9.png |  Bin 0 -> 486292 bytes
 ...k_database-8c45ff59e4d800c31971c686b714c2e2.png |  Bin 0 -> 14952 bytes
 ...ob_param_1-9fc8141a1b1bdcc08f72a2d942a0851e.png |  Bin 0 -> 550579 bytes
 ...ob_param_2-9ce486607a0337a5d82b042a3e916a58.png |  Bin 0 -> 505766 bytes
 ..._db_tables-5b3fdd325d69ff0eafaa6132b8eec00d.png |  Bin 0 -> 16510 bytes
 ...ob_param_3-782062a69f1e90109c4c46cc3a118e64.png |  Bin 0 -> 661873 bytes
 ...conf_files-407bdde31edce6c38235378f25371a9f.png |  Bin 0 -> 41533 bytes
 ...erver_port-cd566ef989ade5bbf4a803f0fc89709f.png |  Bin 0 -> 10641 bytes
 ..._flink_job-cff0a1c78d69e80ea24604e77e3aca71.png |  Bin 0 -> 603495 bytes
 ...ile_active-e89c957320198b6792fb5e1e001d332b.png |  Bin 0 -> 129894 bytes
 ...k_job_list-a4f258aee00dbc0651200a4bd4799fe8.png |  Bin 0 -> 474615 bytes
 ..._workspace-5b725aaf096a721b5a8598683e12bc2d.png |  Bin 0 -> 78209 bytes
 ..._flink_job-b455de447c56928fc7275a21ea2d2508.png |  Bin 0 -> 466805 bytes
 ...n_yml_ldap-8f16d0558d4dcef86c8060e6cfd20608.png |  Bin 0 -> 38050 bytes
 ...ccessfully-f0e41d98d78e47a0aec79db0231a1142.png |  Bin 0 -> 473090 bytes
 ...yml_config-3b48e035ede7c69fdaba5411126f1ecd.png |  Bin 0 -> 14479 bytes
 ..._flink_job-acf6aa098463b632f338ef9b8cb940c3.png |  Bin 0 -> 464540 bytes
 ...flink_home-246fb02bb92fe8d5109d2eb3da01dea5.png |  Bin 0 -> 218571 bytes
 ...equirement-92b8570a4b7602f7fe42f1dd52f5b57a.png |  Bin 0 -> 15221 bytes
 ...ampark_dir-23fe0cd7289a39bf670e9206a5f99826.png |  Bin 0 -> 58828 bytes
 ..._flink_job-140fad79ad2243bb07c2b57961a73c6f.png |  Bin 0 -> 469647 bytes
 ...rk_service-6fd3adcc3dae4e921381d4becc0bccb9.png |  Bin 0 -> 71345 bytes
 ...link_job_1-dc9d4c29102fb2bdf4242d9a5cff4de1.png |  Bin 0 -> 429497 bytes
 ...arting_log-1121349a6e965af339b2a297adf1c43e.png |  Bin 0 -> 61565 bytes
 ...link_job_2-10686fdc4d0383edc432123c11356334.png |  Bin 0 -> 446340 bytes
 ..._dashboard-a0e5574779839abebb989b279a7d6a98.png |  Bin 0 -> 524960 bytes
 ...ampark_web-24675f279e919a73cd6792d99c4647e7.png |  Bin 0 -> 153245 bytes
 ...ob_details-31b5337f36eacab688c54fc76377feae.png |  Bin 0 -> 495542 bytes
 ...index_page-ca827d0b22ea67ee53f1fb0448121685.png |  Bin 0 -> 108162 bytes
 ...tails_page-41a7c0501bdf2ce4ec5f16473143ec43.png |  Bin 0 -> 439064 bytes
 ...driver_err-1345c2e03b78b4b752749279b48824e3.png |  Bin 0 -> 71859 bytes
 ...job_web_ui-ce8bab69c0d932e35f431f80fe7052fd.png |  Bin 0 -> 452501 bytes
 ...s_workflow-7fd6a79c2e020b9ea257022a2ed61a57.png |  Bin 0 -> 26745 bytes
 ...ystem_menu-9fd0ca98887efb7cf31bd251a7503741.png |  Bin 0 -> 507096 bytes
 ..._home_info-64de4968630bd8b307d36a620b9cec9c.png |  Bin 0 -> 491301 bytes
 ...onents_dep-a127a4c83490f8bd370bf2d24db64366.png |  Bin 0 -> 87310 bytes
 ...ement_menu-492dfc52980c62a99f2a8b6ee746f923.png |  Bin 0 -> 508547 bytes
 ...ement_menu-eb14faf845ab86acbee0d31417c9c321.png |  Bin 0 -> 394553 bytes
 ...menu_usage-cafe14fbd9f24364b3795651a72d2f3a.png |  Bin 0 -> 516102 bytes
 ..._role_menu-ab1e7a0172c324af7da49a112c50106b.png |  Bin 0 -> 441875 bytes
 ..._team_menu-c965a23a07e6eba715cd00ba3d59450a.png |  Bin 0 -> 447372 bytes
 ...ember_menu-98cb402419a52f4deb1dcdb937a0c81c.png |  Bin 0 -> 463782 bytes
 ...management-8d5d7913f5e4b87c931588e3fc291d66.png |  Bin 0 -> 750457 bytes
 ...oject_menu-05040f758eab8ef9a6b9d8cfa945585a.png |  Bin 0 -> 399367 bytes
 ...nu_usage_1-d27732ec9c1f92c8fe953614e234dd8b.png |  Bin 0 -> 517796 bytes
 ...nu_usage_2-29a21c3cf1f35949b98a3fec192418a6.png |  Bin 0 -> 421709 bytes
 ...ome_config-4ab8b2b0418e178cc6f0b444828f1341.png |  Bin 0 -> 261417 bytes
 ...flink_home-5fd5e4a0debd18df18921a47a1619330.png |  Bin 0 -> 46534 bytes
 ...ation_menu-8d9525e6d86e32f0cf585bdbde5b5883.png |  Bin 0 -> 90632 bytes
 ...nu_usage_1-33b3f127e94eb19d053201d994166f9f.png |  Bin 0 -> 437920 bytes
 ...nu_usage_2-8d039a764acf8ff3025cc5dc33f2106c.png |  Bin 0 -> 547434 bytes
 ...nu_usage_3-793db12d13e687be94e01a087723b6e7.png |  Bin 0 -> 541419 bytes
 ...tem_menu_1-c581b1adbe9416649eccd38a52db6750.png |  Bin 0 -> 608165 bytes
 ...tem_menu_2-42596e5f6171e4813f78b23c1527e82a.png |  Bin 0 -> 598292 bytes
 ...tem_menu_3-ca90698bed0553f6577bbbb4f1723467.png |  Bin 0 -> 635027 bytes
 ...tem_menu_4-688d00e1798dad39cc32679ebc8a1365.png |  Bin 0 -> 499077 bytes
 ...tting_menu-a037245184bf609af36463fa946f0929.png |  Bin 0 -> 481981 bytes
 ..._home_list-bdd106e9bdd2ffca109ccca61fd20adb.png |  Bin 0 -> 472231 bytes
 ...cute_model-8d8236126fff0455e8f6d319ac8ee0bd.png |  Bin 0 -> 13506 bytes
 ..._mysql_dep-63b6cf7ffb182a69d0f917810b7db78e.png |  Bin 0 -> 15811 bytes
 ...home_usage-380c085a7ed7e77c927b41e3fd4dfe4e.png |  Bin 0 -> 677004 bytes
 ...me_usage_2-3d75e34d881c22ccc188b37f02a08387.png |  Bin 0 -> 678028 bytes
 ...uster_info-27a925745999ed17a4bbced55ccd1d3c.png |  Bin 0 -> 873052 bytes
 ...uster_list-a2dea9c5b00ee90cc941b4ab8e6ce9a3.png |  Bin 0 -> 532312 bytes
 ...ter_web_ui-cd7de25c4e43195916f032fc7e226135.png |  Bin 0 -> 619456 bytes
 ...on_service-8f808dec058b639fd6792f67b52b480d.png |  Bin 0 -> 10842 bytes
 ...nstall_pkg-44b644c3b659b59ade8f75b2fbe77e06.png |  Bin 0 -> 55901 bytes
 ...er_usage_1-c0eaf08dc4c9dbd8dd7d7127e479c219.png |  Bin 0 -> 537797 bytes
 ...er_usage_2-0b0d90394a6f29afde37039ba190ee4d.png |  Bin 0 -> 675239 bytes
 ...el_usage_1-e304961086f64945a5eae939dc8fef19.png |  Bin 0 -> 843242 bytes
 ...el_usage_2-ff0c09c7bde6c7d1e9654aff084f5f40.png |  Bin 0 -> 694493 bytes
 ...el_usage_3-62ef8a576d861e999e5f18bca1320886.png |  Bin 0 -> 351471 bytes
 ...el_usage_4-497406736296d1f8eb37d23f68710a5c.png |  Bin 0 -> 2075777 bytes
 ...rams_usage-c8bcc3e941044d808bf3d89398b06897.png |  Bin 0 -> 853148 bytes
 ...t_strategy-afe159cfde1938f73301f5d2f5d8e0ec.png |  Bin 0 -> 33953 bytes
 ...settings_1-faec89fe7f8ce829685c28d4387274c4.png |  Bin 0 -> 407769 bytes
 ...ion_web_ui-c5f73ccb60329b89b1d4882e1c4f8d45.png |  Bin 0 -> 404983 bytes
 .../6_unpkg-db24dd2ca6d16e779cf5a8ccce6e3700.png   |  Bin 0 -> 16409 bytes
 ...settings_2-521de9ad9a66bfed906063b1596e8119.png |  Bin 0 -> 357055 bytes
 ...lert_usage-a3b0338077095a944670b53584e0a0b3.png |  Bin 0 -> 736247 bytes
 ...int_gramma-2a15a651ae450499783a35cff9fd9c9a.png |  Bin 0 -> 21216 bytes
 ...checkpoint-932e42066f6140bf66a412c2f192d0c1.png |  Bin 0 -> 107963 bytes
 ...t_location-2ca7e8a34023b235f04e9ea012187bb5.png |  Bin 0 -> 110078 bytes
 ...kpoint_log-5e06a0db9e648eef893aad9f1ec5f222.png |  Bin 0 -> 18758 bytes
 ..._file_name-9848305b415c965dfcab0c53b04a400e.png |  Bin 0 -> 14106 bytes
 ...ile_name_2-a322ac7cc9031bc7971b373849d87861.png |  Bin 0 -> 46683 bytes
 ...streampark-cee144525153fdfff4680f9fd45bbe72.png |  Bin 0 -> 105680 bytes
 ...uster_menu-90b43c74c75774d1ea610ac8e5003188.png |  Bin 0 -> 436937 bytes
 ...chema_file-3c3aac38387df5ad02c7a1cbf4f0b728.png |  Bin 0 -> 16822 bytes
 ...tails_page-40a268af87d494532c22fb6b7e1e08d9.png |  Bin 0 -> 584250 bytes
 ...tails_page-f5013d80700f0db63376ff2c9ed03ff8.png |  Bin 0 -> 731237 bytes
 ...g_log_info-bb5b893073b64ccd49327b6d7273be9b.png |  Bin 0 -> 75808 bytes
 ...tful_api_1-0636c29af897df6645fd485298db10fe.png |  Bin 0 -> 554762 bytes
 ...tful_api_2-64c75d2b90d0a1285f84a92f13c25972.png |  Bin 0 -> 779772 bytes
 ...uster_info-02cff13f55de89ee1bd6a34dc557c5dd.png |  Bin 0 -> 366548 bytes
 ..._data_file-1350e4eee605d252348c15c2a96f5ec6.png |  Bin 0 -> 15282 bytes
 ...ccessfully-c2eb59b780fc3f27e70c3911b5c81301.png |  Bin 0 -> 342532 bytes
 ...chema_file-a5b469564c012625644c74136c8257a7.png |  Bin 0 -> 24394 bytes
 .../Bondex-b9280a2451e6984d91f7747acaa10b97.png    |  Bin 0 -> 398441 bytes
 ...ons-y2l643-e76a21f07f1a3949a21170b145337735.svg |  492 ++++
 ...ievements1-9eb1dec5b2fa480e897cf1c12d1425d8.png |  Bin 0 -> 205363 bytes
 ...ievements2-5aa9b3c14892f9b1d8b054e82f3b4ad3.png |  Bin 0 -> 149014 bytes
 ...dependency-281888d96a8f3ce6e9af01efef9de643.png |  Bin 0 -> 66431 bytes
 ...figuration-26b97212de577a0cbc46b59f1eceea0b.png |  Bin 0 -> 52897 bytes
 .../advanced-e5c462ae9a888deddb5939a7c8065732.png  |  Bin 0 -> 52909 bytes
 ...sformation-8b3717c58b603d12e8e87c8267068672.png |  Bin 0 -> 107092 bytes
 .../alarm-609ca86190f86b8ad9a8c4d212705add.png     |  Bin 0 -> 341152 bytes
 .../alarm-8fa330c6a2d27cfd62878dcd20cd524c.png     |  Bin 0 -> 90036 bytes
 .../alarm-c2104c1839a1b4bb668d48f092f25faa.png     |  Bin 0 -> 50633 bytes
 ...larm_eamil-29b2875dbfcbeb071fef815ab751786a.png |  Bin 0 -> 237201 bytes
 ...larm_email-fd4c9ba1995ec69b7557bd1378dce737.png |  Bin 0 -> 193949 bytes
 ...nformation-b67199a66276ada93c1dba47a7581dc9.png |  Bin 0 -> 73267 bytes
 ..._ding_talk-b3caec1ffb7d3d854b81ae1cb2b03240.png |  Bin 0 -> 72561 bytes
 ..._add_email-ce05ec3b962e3da8715421bd4ba067b6.png |  Bin 0 -> 49526 bytes
 ...dd_example-cff0970a99cd0619307c145f53b97489.png |  Bin 0 -> 89944 bytes
 ...t_add_lark-d2ab4845e83ef632194e1f742891f5e9.png |  Bin 0 -> 67167 bytes
 ...dd_setting-cf588ab5ece868ab22b6e1e6e4ba261f.png |  Bin 0 -> 40086 bytes
 ..._add_wecom-63b035f6ca0c4399c8e3546b8d87834d.png |  Bin 0 -> 58015 bytes
 ...on_example-c31cb94e6de97e1a980100e28ef1dfb4.png |  Bin 0 -> 26699 bytes
 ...onf_delete-4de431dcb0c2771fa0f982f9f5400303.png |  Bin 0 -> 62691 bytes
 ...ail_sender-817f2078cfe746f369903506b4e21c67.png |  Bin 0 -> 76848 bytes
 ...te_success-2bbd348dbe458d95b505211eedb1ef2e.png |  Bin 0 -> 16491 bytes
 ...alert_edit-9362d5ea6791b866c0fcdb106b04fda5.png |  Bin 0 -> 67537 bytes
 ..._send_test-7cd2e3cce6cfc5a7949bc382c82bddde.png |  Bin 0 -> 62465 bytes
 ...st_success-3394a1b85454dd88f5504e2cb2e7772b.png |  Bin 0 -> 16022 bytes
 ..._ding_talk-00a51843a9faf5a5dc793a12580db8af.png |  Bin 0 -> 47527 bytes
 ...test_email-2c342e2867b99c5bb4b60796aab9a203.png |  Bin 0 -> 58553 bytes
 ..._test_lark-8786b1c7559ecd42b93f95a74662b9af.png |  Bin 0 -> 54892 bytes
 ...est_wechat-2cc8875b55d42a6ad43b5094c38394ac.png |  Bin 0 -> 46513 bytes
 .../aliyun-43dec052b5792743675fb5a0e5980ebc.png    |  Bin 0 -> 44327 bytes
 ...datastream-f095c45ce30fe21e178eac323c6a7a37.jpg |  Bin 0 -> 29584 bytes
 .../api_copy-ceff34954a24abe2b3e04bc6d10d4f26.png  |  Bin 0 -> 37419 bytes
 ...pplication-b12eb5d36d548a02e52ec12a28ddcec0.png |  Bin 0 -> 200570 bytes
 ...pplication-c99d4b0512fdb7d214e5429769629930.png |  Bin 0 -> 183363 bytes
 ..._interface-51c8f96e343842f32b56c3c889064cba.png |  Bin 0 -> 157426 bytes
 ...cation_job-5518b58af2b481d7bdb36a7bae252c41.png |  Bin 0 -> 135003 bytes
 ...on_setting-48542837b22debfeca15eddaf6ea93a0.png |  Bin 0 -> 104525 bytes
 .../arthas-31f8df2a167d53420d2b4a828003a449.png    |  Bin 0 -> 161985 bytes
 ...arthas_log-fbc7dc0891690e569c6ad63359fc52fd.png |  Bin 0 -> 327895 bytes
 .../author-487ad3c1ad9a397cd4c2614f54976368.png    |  Bin 0 -> 124901 bytes
 .../author-c3dabbb31d7cea1b5164a75a94ca3008.png    |  Bin 0 -> 134606 bytes
 .../autor-4fee09aa3abf8842dcdbb7ada1aa9409.png     |  Bin 0 -> 235078 bytes
 .../call_link-da9d24e3a1993590cf25da174d5fb676.png |  Bin 0 -> 110985 bytes
 .../canal_job-fbfcee343ac2473e1b22d199da463ad4.png |  Bin 0 -> 49764 bytes
 ...capability-2f9e6fd6a844689944e87e108221d5d9.png |  Bin 0 -> 54673 bytes
 ...ertificate-2f5b95ebb0816ead327ec169c12996b6.png |  Bin 0 -> 134883 bytes
 ...challenges-2c1babbcd18fc83fb47c4447fa413a95.png |  Bin 0 -> 282076 bytes
 ...checkpoint-acf7379b24a3bac6695a517b425f466b.png |  Bin 0 -> 128004 bytes
 ...checkpoint-e9edd22da076247770a0b40595626fb7.png |  Bin 0 -> 101130 bytes
 ...figuration-861a4f0439b1a0f8aade35e10e6b60c5.png |  Bin 0 -> 163592 bytes
 .../cluster-96bd791c1c4f3d6144fbd1d134d89cd6.png   |  Bin 0 -> 151238 bytes
 .../code1-1a9d0a485d9f0939bcd7732fd87bf103.png     |  Bin 0 -> 77516 bytes
 .../code2-648eebe0861d540b9c3781536bdd1704.png     |  Bin 0 -> 76698 bytes
 ...e_notebook-542046feb8a312b5f6c057af551421c6.png |  Bin 0 -> 202937 bytes
 .../coder1-3782709e13fa240eb6c400a7faa1e905.png    |  Bin 0 -> 103243 bytes
 .../coder2-134fadb297b49b5f597b40d7a12ecfbf.png    |  Bin 0 -> 101206 bytes
 .../conf-42f135b00a0b3048efb6aa939efd30ac.png      |  Bin 0 -> 118443 bytes
 .../conf-ff77bc47a1f6af137a3326cc05cfdfee.png      |  Bin 0 -> 210078 bytes
 ...connectors-399832ebea5ac259c19088bb4290efc2.png |  Bin 0 -> 50741 bytes
 ...connectors-d405c391d0cfdd753e7b329433275117.png |  Bin 0 -> 129074 bytes
 ...ncement_en-2d749c52f2c4255dff234b275433f25c.png |  Bin 0 -> 860484 bytes
 .../cover-87ff8832da8f5d9398ed5a1e2f283d0d.png     |  Bin 0 -> 275990 bytes
 .../cover-cfb54d18805b5d425d6bbd2659db2533.png     |  Bin 0 -> 501047 bytes
 ...adge_label-a6542822bd5a1e9274ca0017d25a9ccd.png |  Bin 0 -> 72641 bytes
 .../dashboard-78745d8d3ebe422b166a17631bfbe622.png |  Bin 0 -> 79576 bytes
 ...s_platform-a2d62b477382c15128b76c60e9c6be53.png |  Bin 0 -> 44163 bytes
 ...ggregation-e5caba8eee38a8444df6cb3382a1d978.png |  Bin 0 -> 404143 bytes
 ...ta_merging-b8ac385c5de9f96c13163aa65e382496.png |  Bin 0 -> 108710 bytes
 ...ocesses_en-8cfb9567159e06c1ffd041785a699342.png |  Bin 0 -> 933928 bytes
 ...ata_source-5f9b710b4186a08571192ae81ab350d1.png |  Bin 0 -> 107083 bytes
 ...dependency-172169d43c50f455fb7e2c7e08de32a2.png |  Bin 0 -> 25085 bytes
 ...dependency-a3b9ff29795acb8a1fd4ed6bb773d53e.png |  Bin 0 -> 98231 bytes
 .../deploy-d486a5c0eb238a9f2a6ce5f2b3013500.png    |  Bin 0 -> 122424 bytes
 .../detail-e9ee4c14e45068bea5e1edabec596bee.png    |  Bin 0 -> 127902 bytes
 ...iciency_en-5beb07a0a515b5b2f304a6f8099096cc.png |  Bin 0 -> 1069644 bytes
 ...nt_process-476918cfd29159983fe26b36ef487895.png |  Bin 0 -> 60969 bytes
 ...latform_en-02d9f0b165baf303a20d7c9a8eb091c6.png |  Bin 0 -> 870991 bytes
 ...culties_en-51da13514ddd61386799291d4c9d85d1.png |  Bin 0 -> 1047547 bytes
 ...er_setting-55ff0f03235a1708b428b016d8ccc8a2.png |  Bin 0 -> 342113 bytes
 ...er_setting-80acf43cf64fd390e4d50da8830671c0.png |  Bin 0 -> 76829 bytes
 ...em_setting-60d5b7d9e930185cf1a9a404beab9dc0.png |  Bin 0 -> 39868 bytes
 .../doris-4baaea78343b928b0a798ae9238c489f.png     |  Bin 0 -> 132409 bytes
 ...ness_order-a017b7fa6dac855794cf9720a0421090.png |  Bin 0 -> 70001 bytes
 ...dwd_orders-8343ec8277c69354f8ee7cac0c4c9f91.png |  Bin 0 -> 100067 bytes
 ...rder_count-1abbcf7d6b31f15e49f2e035ecfdb8d7.png |  Bin 0 -> 19097 bytes
 ...r_count_op-72bb62943dcef89451b47db142cfe689.png |  Bin 0 -> 19358 bytes
 ...properties-33cd67364d80285f0e480974a60d52ff.jpg |  Bin 0 -> 18723 bytes
 .../earnings-40d9739c55527d669e4f90c739571049.png  |  Bin 0 -> 578133 bytes
 ...il_setting-7b8ddba6688c75cfad32f5d16e93354f.png |  Bin 0 -> 44536 bytes
 ...enterprise-c8641726b9205b14e3e330d10e73bb68.png |  Bin 0 -> 213773 bytes
 ...ution_mode-1182aeb8efe9572ec98c2a2b95293dc1.png |  Bin 0 -> 64693 bytes
 ...parameters-75c3f87809d0675c2fc82bc8d2ec096e.jpg |  Bin 0 -> 162669 bytes
 ...sitization-3005c6f1d9c2f7ad0530d09a5a9aecea.png |  Bin 0 -> 58271 bytes
 ...tion_table-e200cbbf0081e2d416411659a188bb90.png |  Bin 0 -> 25780 bytes
 ...ialization-f270b827e85b0ff840bf3db25686349c.png |  Bin 0 -> 277666 bytes
 .../flink_cdc-318444c917eb66f591a5c75db9662e78.png |  Bin 0 -> 40876 bytes
 ...flink_conf-1c8b9773c6678621a140320ae2a8525f.jpg |  Bin 0 -> 23226 bytes
 ...flink_conf-db4fdbcbac08f9e19eaf550c1332de25.png |  Bin 0 -> 71926 bytes
 ..._dashboard-4bcca1ae4f103249bd7c6c48625a4959.png |  Bin 0 -> 72311 bytes
 ...flink_home-0a6f4f2014cc87b074ef259088af2b98.png |  Bin 0 -> 34874 bytes
 ...flink_home-effa79b6d882bdee8a3963543b193a0b.png |  Bin 0 -> 90462 bytes
 .../flink_job-2769695ec6b0a9446b8d5f4828976b7d.png |  Bin 0 -> 35931 bytes
 ...parameters-ff7790882a753bd88fbf5db9b775a0e3.png |  Bin 0 -> 213172 bytes
 ...ink_shaded-f21909c81059b2ea4ebd8307998cbc26.png |  Bin 0 -> 173825 bytes
 .../flink_sql-13f6952f92585140c5fc640b490918b0.png |  Bin 0 -> 143648 bytes
 .../flink_sql-a8811954a9f765640bb08ad9cd139a15.png |  Bin 0 -> 56199 bytes
 ...ql_version-a02b0f0eac9c5d6c0281b7471e438b78.png |  Bin 0 -> 243524 bytes
 ...ink_system-02dee8b704254087aae900731ae47076.png |  Bin 0 -> 54347 bytes
 .../flink_ui-1a5557a19b30e92802eab1b75cc4a574.png  |  Bin 0 -> 124061 bytes
 ...link_webui-ca719f066a60a19004af7d6761eae27d.png |  Bin 0 -> 88111 bytes
 .../flinksql-13b242feb3803b15e6698635a79065b4.png  |  Bin 0 -> 122976 bytes
 ...on_setting-b170a43882590683ea0c7f109f909396.png |  Bin 0 -> 55668 bytes
 .../flow-c2227ba0cc1f59f78e2164fdb3657223.png      |  Bin 0 -> 380020 bytes
 ...me-webfont-c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg | 2671 ++++++++++++++++++++
 .../function-c2d3ad419e1676a0253d933935921a71.png  |  Bin 0 -> 146677 bytes
 .../git-90b5c4fc3c5c732e3e2757fc83ecb1d4.png       |  Bin 0 -> 180339 bytes
 .../hadoop-1c0b84f088853fdc601244e8fad4abdf.png    |  Bin 0 -> 14324 bytes
 .../hdfs_conf-8af6d1660d09b58fc28a6fec1bff604b.png |  Bin 0 -> 14950 bytes
 ...rical_logs-815b75ba2fe1a1d1d90c284999e35f3d.png |  Bin 0 -> 192580 bytes
 ...ery_paimon-9203a5f6debb35ce41f9f51be06e1446.png |  Bin 0 -> 570715 bytes
 .../homework-96030dec4ea9db88b42668873f5a176d.png  |  Bin 0 -> 135558 bytes
 ...rk_manager-96dc37860dd87f12ed55311b38116931.png |  Bin 0 -> 155211 bytes
 ...ork_submit-1f05dacf0fedfd1423f89ca2dec28437.png |  Bin 0 -> 97046 bytes
 ...scheduling-267e8ae0aa04d5901cd98bea50370d69.png |  Bin 0 -> 142224 bytes
 .../idea-d654040d5fad6fefd756ede9a9ac8a4b.png      |  Bin 0 -> 238741 bytes
 ...ss_setting-2b8e1403aae4ff708a05f61f87d34733.png |  Bin 0 -> 67162 bytes
 .../job-767d96706631b95dadf7638c142a0adc.png       |  Bin 0 -> 323214 bytes
 ...oes_online-ae38a4f939687b0e80e8e5677885fe0d.png |  Bin 0 -> 77184 bytes
 ...management-ccb5b6adb51dd3dc263c4511360a4291.png |  Bin 0 -> 89720 bytes
 ...agement_en-4c44c79f18f1fd4e478ed5905a58db25.png |  Bin 0 -> 845008 bytes
 ..._mirroring-8cbc7decc438aa15ca8166ba9a0bd7c1.png |  Bin 0 -> 42630 bytes
 .../k8s-9a28cd8f0e9c996501193f591ebe22b0.png       |  Bin 0 -> 95234 bytes
 ...app_detail-5ee71eb0d0e20f2c6e3009e98b3d63db.png |  Bin 0 -> 391958 bytes
 ...ion_submit-7d2a3d17220cc3048b6d5b22184f9afc.png |  Bin 0 -> 422783 bytes
 .../k8s_job-1759da059df126162f2b7e0c7b9b121a.png   |  Bin 0 -> 109596 bytes
 .../k8s_log-aafb7f2dff97d584b187ab4a22de9eaf.png   |  Bin 0 -> 351069 bytes
 .../k8s_pvc-cdeee4dafe036102e017aad3b6c13f5d.png   |  Bin 0 -> 298852 bytes
 .../kappa-924eb8691ece5d996d9aa740e5b79230.png     |  Bin 0 -> 71378 bytes
 ...parameters-1a28fec8d9d3dc57744324db4ef58551.png |  Bin 0 -> 155544 bytes
 .../lambda-e357a7e34ced4e82971d4b86acc790b4.png    |  Bin 0 -> 168925 bytes
 .../launcher-766611cb0dddb99d8437ead44d0665d4.png  |  Bin 0 -> 89504 bytes
 .../ldap-39a8f66b7bba105117ecbfc54551dc95.png      |  Bin 0 -> 225948 bytes
 .../lib-681f949f839a87303f598e2e7b907e24.png       |  Bin 0 -> 99474 bytes
 .../lib-faa76eddded5bdcb4228bf65c2d3122d.png       |  Bin 0 -> 63873 bytes
 .../link_jump-f353a479fac3e5576056edcaab705dda.png |  Bin 0 -> 115677 bytes
 .../log-42ef92b8036ed3698fb0fbb1abdaecab.png       |  Bin 0 -> 107457 bytes
 .../logs-e4e9f2084f1fbcf0a4afe079433cef0a.png      |  Bin 0 -> 104856 bytes
 .../loki-372203296a8af19f7a32fcd2162fdc29.png      |  Bin 0 -> 92851 bytes
 ...management-9eb1dec5b2fa480e897cf1c12d1425d8.png |  Bin 0 -> 205363 bytes
 .../manager-07ba2a4bc979cd2dd86fc9e07384ec61.png   |  Bin 0 -> 67613 bytes
 ...support_en-f7f607d42182ae6e2c41f706e0c0a743.png |  Bin 0 -> 933424 bytes
 ...ponents_en-e4758211d3a79798f5e19aa8e8c03b0e.png |  Bin 0 -> 1018222 bytes
 ...n_modes_en-6c7c16b64108f8485e811833d7282e86.png |  Bin 0 -> 930085 bytes
 ...chitecture-ad376f8ae79ab66d90d95742e8335d53.png |  Bin 0 -> 109019 bytes
 .../new_cover-4883e1aa52dc856ae160abd142daf867.png |  Bin 0 -> 364478 bytes
 .../new_cover-5991f0d6d5ee86bc8716862748caf484.png |  Bin 0 -> 374777 bytes
 .../nocos-382ee7fe44f0199ec2209b703381d6cf.png     |  Bin 0 -> 12154 bytes
 .../ods-bc0d5ecbef808b0ca349311569803f18.png       |  Bin 0 -> 76573 bytes
 ...e_flinksql-ca82a6f42e04e54e9f6da2b1e391b073.png |  Bin 0 -> 38770 bytes
 ...online_jar-48549248f657388c7aebc0c8491660fa.png |  Bin 0 -> 128451 bytes
 .../operation-067a84b9b5b1491206780076f98e6f8d.png |  Bin 0 -> 167437 bytes
 ...kground_en-921078815a2efaf6de311d061ea51c86.png |  Bin 0 -> 908120 bytes
 ...tecture_en-34d3339cff0ab62d179ea3f205e008c9.png |  Bin 0 -> 885988 bytes
 ...paimon-dwd-d3b020d2bd2b78c26944a6928be39e4e.png |  Bin 0 -> 72592 bytes
 ...paimon-dwm-778a748d6b64c9e61d73e6b6da1d625f.png |  Bin 0 -> 11102 bytes
 ...paimon-dws-632e1291e21c4f628f7e87ca03ae5c6f.png |  Bin 0 -> 12942 bytes
 ...paimon-ods-876cf67ff375c0b5cb67d4a0e555b1a3.png |  Bin 0 -> 73353 bytes
 ...og_setting-aa6a826f1cb1a7d9c90fc3fae71a0ef3.png |  Bin 0 -> 37066 bytes
 .../pain-4d2aee42ea7aae80eaeac17a6d51c090.png      |  Bin 0 -> 199614 bytes
 .../parameter-d7feafe0cd25f249bec4b2115d64ec00.png |  Bin 0 -> 106709 bytes
 ...figuration-94fb5d7ee0c9c04ed6d79ddb1cd3c1c7.png |  Bin 0 -> 213812 bytes
 ...permission-affd274acd10773ad4531da9102f3f91.png |  Bin 0 -> 135332 bytes
 ...ermissions-5879a5913ed1c6f93481b0951b139fc3.png |  Bin 0 -> 161960 bytes
 .../pipline-60b68a9487092b6866020ce983a85ac0.png   |  Bin 0 -> 134002 bytes
 ...kground_en-b2f833807aec53e4cd8153ac59766d4e.png |  Bin 0 -> 847610 bytes
 ...nstruction-b73e12b57a4a9f558ada77038496bf50.png |  Bin 0 -> 301572 bytes
 ...olution_en-8accacb1629486423dd06666918a0166.png |  Bin 0 -> 897677 bytes
 ...agement_en-ebe6e86784e9489b29cf9a434b4510db.png |  Bin 0 -> 949047 bytes
 .../pod-d46370aaff2c34c4fe6a584c0524b28e.png       |  Bin 0 -> 141062 bytes
 ...d_template-4a36a24383f78f09d3090e5ddf7fe1fa.png |  Bin 0 -> 120895 bytes
 ...d_template-722285f448ec8adc0fa939d0baea2d10.png |  Bin 0 -> 175911 bytes
 ...d_template-d8a9864bc8486d493025cc5e8b0e6dd1.png |  Bin 0 -> 99549 bytes
 .../pom-949e43be1f8e611776858b7573047de2.jpg       |  Bin 0 -> 29082 bytes
 ...ort_number-e421801c946def0b0e2df3747239fec6.png |  Bin 0 -> 108692 bytes
 ...cess_steps-602d682d0f781a6178e3793ed9e434e7.png |  Bin 0 -> 25288 bytes
 ...nvironment-4f155f3b14a4e95c5367ba99a6c5a6f8.png |  Bin 0 -> 159655 bytes
 ...figuration-add3d079bba91ac4977b830d3c3fe8f7.png |  Bin 0 -> 52385 bytes
 .../queue-83552f1862acff8811b74488e8fe7c05.png     |  Bin 0 -> 37211 bytes
 ..._warehouse-418beb6d713966065d731eb8417b8a6e.png |  Bin 0 -> 94212 bytes
 .../recover-f1de53fdbe66c50b465d58d0a66050de.jpg   |  Bin 0 -> 29790 bytes
 .../relevancy-a1914717d6479d16e07f7f1e6193f409.png |  Bin 0 -> 176912 bytes
 .../remote-c75d520f5a61d9f100c0e1c58d304eb3.png    |  Bin 0 -> 48024 bytes
 ...Submission-390200dc9d1b5a55add19d303add2698.png |  Bin 0 -> 83675 bytes
 ...e_overview-b7f0b5ccafd202f82c515c64e48cd377.png |  Bin 0 -> 107737 bytes
 ...oad_map_en-ea1ba2536fecd2828b882dd40ffe5bf4.png |  Bin 0 -> 874992 bytes
 ...dependency-932be3682bef8d8cd169522c00cfd12b.png |  Bin 0 -> 115324 bytes
 ...ermissions-cd7665f926dd3c92e8479be34f9084d5.png |  Bin 0 -> 104519 bytes
 ...ions_table-780239498d6b6d09c8a5c1ffe4ad44ef.png |  Bin 0 -> 30990 bytes
 ...run_status-5a663d9169c0bce8f4cfb993db77ae59.png |  Bin 0 -> 188753 bytes
 .../savepoint-b0288f5293875d156f20dbe768384076.png |  Bin 0 -> 120087 bytes
 ...screenshot-2906914515b810aadb10db951d4f02bd.png |  Bin 0 -> 192870 bytes
 .../source-afa30e0d3ab0116582cc4bd7831ce2ca.png    |  Bin 0 -> 24125 bytes
 ...sql_client-32fd9eb063198e6f35349187eed61546.png |  Bin 0 -> 243094 bytes
 ...ql_develop-ef85f6a001fb814d494c9b39eb2dfba9.png |  Bin 0 -> 28229 bytes
 .../sql_job-8e9bfa3d04866e5bf5e05103048f0e09.png   |  Bin 0 -> 141054 bytes
 .../sqlverify-7e12cf343c9c81fcbc2e20f8d7588f1b.png |  Bin 0 -> 128683 bytes
 .../start-71fbb288851d022c450a6bd34e8b4dc2.png     |  Bin 0 -> 164457 bytes
 .../start_log-6ce6b3125c8693db96197193241d6807.png |  Bin 0 -> 15848 bytes
 ...rt_the_job-036fdf864d022cf8de2282af72d4b3ca.png |  Bin 0 -> 52460 bytes
 ...ization_en-8a96d3d3392cb7d9b91a9f5b97dacd96.png |  Bin 0 -> 792706 bytes
 ...ecovery_en-9fd0c4443346771b7aafba64da4fb95d.png |  Bin 0 -> 875351 bytes
 ...tleneck_en-652976e1111719f2f1c32ffe44e45a71.png |  Bin 0 -> 812005 bytes
 .../step-d945592bbe32c0e093289c6265472f1c.png      |  Bin 0 -> 33354 bytes
 ...ep_details-301b14f2dbfa9c41f4c0e75a9086f0a4.png |  Bin 0 -> 590212 bytes
 ..._warehouse-ab83b309ef461f3907c2df023143c817.png |  Bin 0 -> 276056 bytes
 ...park_apis-574b985bc649f26aacf875ccd0155793.jpeg |  Bin 0 -> 323045 bytes
 ...rk_archite-ff9eba80347b8b3c47d241007386f7bc.png |  Bin 0 -> 267730 bytes
 ...ebug_build-06cd03c36e5fe03d771f69ebf0edb2fb.png |  Bin 0 -> 184388 bytes
 ..._debugging-8f400df7199ad25248a1268668f96a01.png |  Bin 0 -> 240274 bytes
 ..._ls_hadoop-8e7848bd06b4c193ef02d0f722ad006a.png |  Bin 0 -> 106300 bytes
 ..._docker_ps-c715c198d48a9cffef4731beedef4f94.png |  Bin 0 -> 140437 bytes
 ..._flinkhome-d6e90dd6fa04a003feef2eb6086ca3c3.png |  Bin 0 -> 58419 bytes
 ...nd_running-2cdb3e36175fc1f655b9db0273e1aab2.png |  Bin 0 -> 45565 bytes
 ..._kafkaapi-c3eb75726e1ec7cb8788dea846c54933.jpeg |  Bin 0 -> 253353 bytes
 ...ark_login-c38d72811068f2d3b2bd865ac7cb759b.jpeg |  Bin 0 -> 209275 bytes
 ...figuration-176261306c7c0ef7ca0b8067967d6826.jpg |  Bin 0 -> 243907 bytes
 ...un_config-d518cfc4f960434b126b8376571a04bb.jpeg |  Bin 0 -> 427488 bytes
 ...life_cycle-7bfdf4f1228b36f59fae79943d5c8108.png |  Bin 0 -> 191835 bytes
 ...elect_team-a9cb67779e6ad36c3ccab02a3382acc2.jpg |  Bin 0 -> 69971 bytes
 ...ings_2.0.0-8af18c05b4a169fb3b482186c00dcadf.png |  Bin 0 -> 96220 bytes
 ...tion_image-6022aab5159e058f0cb295ef4f13f508.png |  Bin 0 -> 34225 bytes
 ...process_en-46dc2e25232a2915b2eec367fcd62e08.png |  Bin 0 -> 941018 bytes
 ...successful-5bef1e14d16c3e90b504d99e28e70d2e.png |  Bin 0 -> 42964 bytes
 .../sync_conf-9d2b45b6f42376859fda062127e33d82.png |  Bin 0 -> 208559 bytes
 ...on_process-0fa72272598ce1fbf180e4f859cf59dc.png |  Bin 0 -> 105191 bytes
 ...ystem_list-6e9c13318d5aa2cfa4cdc11ac42c5844.png |  Bin 0 -> 69998 bytes
 ...em_setting-6b5b21f22fc4a32b973ede0a5f21ebc2.png |  Bin 0 -> 47347 bytes
 ...management-d7b65ce685ba87d759bcae290b0cbbe1.png |  Bin 0 -> 257733 bytes
 ..._retrieval-eee86f9c0af117cbf15d2af5d528b2cc.png |  Bin 0 -> 107386 bytes
 .../token-94cb364497fe129fc62be3bbb7193390.png     |  Bin 0 -> 91286 bytes
 ...sioning_en-5b907bf416e5c968917ed091b198bb31.png |  Bin 0 -> 753078 bytes
 .../yarn_log-100e18b484ec81cf3165736de8259365.png  |  Bin 0 -> 25085 bytes
 assets/js/01a85c17.83951d21.js                     |    1 +
 assets/js/02909488.b5ebd18f.js                     |    1 +
 assets/js/034ede56.cfbb9235.js                     |    1 +
 assets/js/035672d3.58cd672b.js                     |    1 +
 assets/js/039942f3.407fabcc.js                     |    1 +
 assets/js/06e7197c.58db4ccc.js                     |    1 +
 assets/js/075ca5bc.c79a463d.js                     |    1 +
 assets/js/0ac53893.c1814748.js                     |    1 +
 assets/js/0ceb223b.ea5810ec.js                     |    1 +
 assets/js/0d357cdf.ed4538b5.js                     |    1 +
 assets/js/0e49e91b.01983af7.js                     |    1 +
 assets/js/0e6d842f.5125494e.js                     |    1 +
 assets/js/0fceeaee.f1cb09f8.js                     |    1 +
 assets/js/10528343.38658f73.js                     |    1 +
 assets/js/138e0e15.849656d0.js                     |    1 +
 assets/js/1508e8d4.c6ac604d.js                     |    1 +
 assets/js/16273241.b462930c.js                     |    1 +
 assets/js/16ae2a96.8757a7a6.js                     |    1 +
 assets/js/17896441.38003341.js                     |    1 +
 assets/js/181d6f49.9cfe3981.js                     |    1 +
 assets/js/18849f3d.eb01b19d.js                     |    1 +
 assets/js/195e3fac.93495b7e.js                     |    1 +
 assets/js/1a4e3797.b0b687eb.js                     |    1 +
 assets/js/1db0feda.255126f9.js                     |    1 +
 assets/js/1df93b7f.56a95d19.js                     |    1 +
 assets/js/1f391b9e.0c1694e7.js                     |    1 +
 assets/js/238ac0eb.44d3c706.js                     |    1 +
 assets/js/2397994d.531cf832.js                     |    1 +
 assets/js/25003e4f.76c64407.js                     |    1 +
 assets/js/2642.c00639e2.js                         |    1 +
 assets/js/271ff943.441fa1cf.js                     |    1 +
 assets/js/290c2510.67e5948d.js                     |    1 +
 assets/js/33a894b3.40b342e0.js                     |    1 +
 assets/js/36994c47.a1ce9430.js                     |    1 +
 assets/js/404e42f6.75613369.js                     |    1 +
 assets/js/41756ce8.2e4304e3.js                     |    1 +
 assets/js/41d0d8de.4e38bcd3.js                     |    1 +
 assets/js/484566b6.46ace977.js                     |    1 +
 assets/js/49aa28ff.042175a2.js                     |    1 +
 assets/js/4e6186df.41f5a540.js                     |    1 +
 assets/js/50297682.e2f40f66.js                     |    1 +
 assets/js/53a3e6dc.127761d3.js                     |    1 +
 assets/js/5581.8533cd94.js                         |    1 +
 assets/js/5731d9fc.073ce9f5.js                     |    1 +
 assets/js/586f532c.0794d51e.js                     |    1 +
 assets/js/594ae476.41388fc4.js                     |    1 +
 assets/js/59a876ee.91f6d70d.js                     |    1 +
 assets/js/5b140940.70757eed.js                     |    1 +
 assets/js/5c513572.6913c5b7.js                     |    1 +
 assets/js/5c977d89.0cd6db33.js                     |    1 +
 assets/js/5e95c892.f48bcd03.js                     |    1 +
 assets/js/63195d0b.3a813cae.js                     |    1 +
 assets/js/6875c492.1b75a995.js                     |    1 +
 assets/js/6cc0f99e.e281e257.js                     |    1 +
 assets/js/772332d5.aecf5fbe.js                     |    1 +
 assets/js/7c110bd0.a0fccb7e.js                     |    1 +
 assets/js/7d302838.e5cfc9f8.js                     |    1 +
 assets/js/7eb40e06.c384edd1.js                     |    1 +
 assets/js/80de6c06.0d99baeb.js                     |    1 +
 assets/js/814f3328.5c2a3e05.js                     |    1 +
 assets/js/82500c57.fa84ed95.js                     |    1 +
 assets/js/8310.437ca112.js                         |    1 +
 assets/js/842cd290.d0b593cc.js                     |    1 +
 assets/js/85d4dd05.dcdd5391.js                     |    1 +
 assets/js/86131026.cdcab1fc.js                     |    1 +
 assets/js/8c7e3f1f.e915ace7.js                     |    1 +
 assets/js/8d63fd51.4bc35693.js                     |    1 +
 assets/js/90483a18.5f805449.js                     |    1 +
 assets/js/9056.00f94733.js                         |    1 +
 assets/js/90b38822.db554b35.js                     |    1 +
 assets/js/93114b5c.ffc5b5b3.js                     |    1 +
 assets/js/936e7356.897df22a.js                     |    1 +
 assets/js/971833f8.eb987fd6.js                     |    1 +
 assets/js/974abdd9.4460c0ed.js                     |    1 +
 assets/js/97b764ab.ac7baca5.js                     |    1 +
 assets/js/9951.375399f0.js                         |    2 +
 assets/js/9951.375399f0.js.LICENSE.txt             |    1 +
 assets/js/9b3c52b8.a1312042.js                     |    1 +
 assets/js/9d628fe9.3e45b6f5.js                     |    1 +
 assets/js/9de3006e.b586b998.js                     |    1 +
 assets/js/9e4087bc.c9d1afd4.js                     |    1 +
 assets/js/9ee02fc6.8f291989.js                     |    1 +
 assets/js/a50a39d4.7334b765.js                     |    1 +
 assets/js/a54c9970.76460b10.js                     |    1 +
 assets/js/a6aa9e1f.99eadeda.js                     |    1 +
 assets/js/a7456010.db527b80.js                     |    1 +
 assets/js/a7bd4aaa.35bdde18.js                     |    1 +
 assets/js/a9032c8b.75497a10.js                     |    1 +
 assets/js/a94703ab.2e82f47a.js                     |    1 +
 assets/js/aba21aa0.e3e72c9e.js                     |    1 +
 assets/js/ac0ab662.5f45fe6c.js                     |    1 +
 assets/js/acecf23e.27beb007.js                     |    1 +
 assets/js/af7dd721.783dca7e.js                     |    1 +
 assets/js/b742dac9.bc964f16.js                     |    1 +
 assets/js/bca7e6d6.c5b58fe1.js                     |    1 +
 assets/js/bde07178.b81800a5.js                     |    1 +
 assets/js/beba1521.10efd66f.js                     |    1 +
 assets/js/c19de9ae.12a48ebb.js                     |    1 +
 assets/js/c2809c3d.1a4e034a.js                     |    1 +
 assets/js/c48f23e0.b59bc956.js                     |    1 +
 assets/js/c5f341e6.cae1b1a5.js                     |    1 +
 assets/js/ccc49370.adebf72b.js                     |    1 +
 assets/js/cf6b75d0.a67fa39a.js                     |    1 +
 assets/js/d03561b7.41ea776d.js                     |    1 +
 assets/js/d1a11acb.9cec19c5.js                     |    1 +
 assets/js/d1edd000.f6aa4224.js                     |    1 +
 assets/js/d717809b.b8ae78be.js                     |    1 +
 assets/js/db7924b3.1ac07b7a.js                     |    1 +
 assets/js/dd5e028d.03e76ea7.js                     |    1 +
 assets/js/de53df2c.907e1308.js                     |    1 +
 assets/js/df891701.361bee86.js                     |    1 +
 assets/js/e0719818.e112f5b9.js                     |    1 +
 assets/js/e17a8e6e.818a0308.js                     |    1 +
 assets/js/e2a3be8e.dd6705c3.js                     |    1 +
 assets/js/ecfd5863.4fed5aac.js                     |    1 +
 assets/js/ede5b729.732c8524.js                     |    1 +
 assets/js/f106860d.d02d9245.js                     |    1 +
 assets/js/f4473dc1.b68e0a90.js                     |    1 +
 assets/js/f608f072.d6a1d9b7.js                     |    1 +
 assets/js/f71b5567.20b68054.js                     |    1 +
 assets/js/f86a0d66.265ccd3c.js                     |    1 +
 assets/js/fd8bb9b8.91169d6c.js                     |    1 +
 assets/js/main.2e3dadaf.js                         |    2 +
 assets/js/main.2e3dadaf.js.LICENSE.txt             |  135 +
 assets/js/runtime~main.de93b3db.js                 |    1 +
 blog/archive/index.html                            |   43 +
 blog/atom.xml                                      | 1746 +++++++++++++
 blog/belle/author.png                              |  Bin 0 -> 134606 bytes
 blog/belle/dashboard.png                           |  Bin 0 -> 79576 bytes
 blog/belle/dependency.png                          |  Bin 0 -> 98231 bytes
 blog/belle/detail.png                              |  Bin 0 -> 127902 bytes
 blog/belle/doris.png                               |  Bin 0 -> 132409 bytes
 blog/belle/flinksql.png                            |  Bin 0 -> 122976 bytes
 blog/belle/flow.png                                |  Bin 0 -> 380020 bytes
 blog/belle/k8s.png                                 |  Bin 0 -> 95234 bytes
 blog/belle/pod.png                                 |  Bin 0 -> 141062 bytes
 blog/belle/sqlverify.png                           |  Bin 0 -> 128683 bytes
 blog/belle/start.png                               |  Bin 0 -> 164457 bytes
 blog/bondex/Bondex.png                             |  Bin 0 -> 398441 bytes
 blog/bondex/aliyun.png                             |  Bin 0 -> 44327 bytes
 blog/bondex/all_datastream.jpg                     |  Bin 0 -> 29584 bytes
 blog/bondex/application_setting.png                |  Bin 0 -> 104525 bytes
 blog/bondex/cp_fail.jpg                            |  Bin 0 -> 58483 bytes
 blog/bondex/dockersystem_setting.png               |  Bin 0 -> 39868 bytes
 blog/bondex/dwd_business_order.png                 |  Bin 0 -> 70001 bytes
 blog/bondex/dwd_orders.png                         |  Bin 0 -> 100067 bytes
 blog/bondex/dwm_business_order_count.png           |  Bin 0 -> 19097 bytes
 blog/bondex/dws_business_order_count_op.png        |  Bin 0 -> 19358 bytes
 blog/bondex/dynamic_properties.jpg                 |  Bin 0 -> 18723 bytes
 blog/bondex/flink_conf.jpg                         |  Bin 0 -> 23226 bytes
 blog/bondex/flink_dashboard.png                    |  Bin 0 -> 72311 bytes
 blog/bondex/kappa.png                              |  Bin 0 -> 71378 bytes
 blog/bondex/lambda.png                             |  Bin 0 -> 168925 bytes
 blog/bondex/log.png                                |  Bin 0 -> 107457 bytes
 blog/bondex/loki.png                               |  Bin 0 -> 92851 bytes
 blog/bondex/ods.png                                |  Bin 0 -> 76573 bytes
 blog/bondex/paimon-dwd.png                         |  Bin 0 -> 72592 bytes
 blog/bondex/paimon-dwm.png                         |  Bin 0 -> 11102 bytes
 blog/bondex/paimon-dws.png                         |  Bin 0 -> 12942 bytes
 blog/bondex/paimon-ods.png                         |  Bin 0 -> 73353 bytes
 blog/bondex/paimon_catalog_setting.png             |  Bin 0 -> 37066 bytes
 blog/bondex/pipline.png                            |  Bin 0 -> 134002 bytes
 blog/bondex/pod_template.png                       |  Bin 0 -> 120895 bytes
 blog/bondex/pom.jpg                                |  Bin 0 -> 29082 bytes
 blog/bondex/realtime_warehouse.png                 |  Bin 0 -> 94212 bytes
 blog/bondex/source.png                             |  Bin 0 -> 24125 bytes
 blog/bondex/status_log.png                         |  Bin 0 -> 67477 bytes
 blog/bondex/streaming_warehouse.png                |  Bin 0 -> 276056 bytes
 blog/changan/alarm_information.png                 |  Bin 0 -> 73267 bytes
 blog/changan/capability.png                        |  Bin 0 -> 54673 bytes
 blog/changan/conf.png                              |  Bin 0 -> 118443 bytes
 blog/changan/connectors.png                        |  Bin 0 -> 50741 bytes
 blog/changan/cover.png                             |  Bin 0 -> 501047 bytes
 blog/changan/flink_home.png                        |  Bin 0 -> 90462 bytes
 blog/changan/hadoop.png                            |  Bin 0 -> 14324 bytes
 blog/changan/job.png                               |  Bin 0 -> 323214 bytes
 blog/changan/job_management.png                    |  Bin 0 -> 89720 bytes
 blog/changan/lib.png                               |  Bin 0 -> 99474 bytes
 blog/changan/nocos.png                             |  Bin 0 -> 12154 bytes
 blog/chinaunion/contribution_and_enhancement.png   |  Bin 0 -> 52061 bytes
 .../chinaunion/contribution_and_enhancement_en.png |  Bin 0 -> 860484 bytes
 blog/chinaunion/data_processing_processes.png      |  Bin 0 -> 68034 bytes
 blog/chinaunion/data_processing_processes_en.png   |  Bin 0 -> 933928 bytes
 blog/chinaunion/development_efficiency.png         |  Bin 0 -> 76160 bytes
 blog/chinaunion/development_efficiency_en.png      |  Bin 0 -> 1069644 bytes
 blog/chinaunion/devops_platform.png                |  Bin 0 -> 64491 bytes
 blog/chinaunion/devops_platform_en.png             |  Bin 0 -> 870991 bytes
 blog/chinaunion/difficulties.png                   |  Bin 0 -> 57748 bytes
 blog/chinaunion/difficulties_en.png                |  Bin 0 -> 1047547 bytes
 blog/chinaunion/job_management.png                 |  Bin 0 -> 59143 bytes
 blog/chinaunion/job_management_en.png              |  Bin 0 -> 845008 bytes
 blog/chinaunion/multi_team_support.png             |  Bin 0 -> 40011 bytes
 blog/chinaunion/multi_team_support_en.png          |  Bin 0 -> 933424 bytes
 .../multiple_environments_and_components.png       |  Bin 0 -> 82910 bytes
 .../multiple_environments_and_components_en.png    |  Bin 0 -> 1018222 bytes
 blog/chinaunion/multiple_execution_modes.png       |  Bin 0 -> 77690 bytes
 blog/chinaunion/multiple_execution_modes_en.png    |  Bin 0 -> 930085 bytes
 blog/chinaunion/operational_background.png         |  Bin 0 -> 58989 bytes
 blog/chinaunion/operational_background_en.png      |  Bin 0 -> 908120 bytes
 blog/chinaunion/overall_architecture.png           |  Bin 0 -> 58965 bytes
 blog/chinaunion/overall_architecture_en.png        |  Bin 0 -> 885988 bytes
 blog/chinaunion/platform_background.png            |  Bin 0 -> 44176 bytes
 blog/chinaunion/platform_background_en.png         |  Bin 0 -> 847610 bytes
 blog/chinaunion/platform_evolution.png             |  Bin 0 -> 42457 bytes
 blog/chinaunion/platform_evolution_en.png          |  Bin 0 -> 897677 bytes
 blog/chinaunion/platformized_management.png        |  Bin 0 -> 77489 bytes
 blog/chinaunion/platformized_management_en.png     |  Bin 0 -> 949047 bytes
 blog/chinaunion/road_map.png                       |  Bin 0 -> 48992 bytes
 blog/chinaunion/road_map_en.png                    |  Bin 0 -> 874992 bytes
 blog/chinaunion/state_optimization.png             |  Bin 0 -> 71677 bytes
 blog/chinaunion/state_optimization_en.png          |  Bin 0 -> 792706 bytes
 blog/chinaunion/state_recovery.png                 |  Bin 0 -> 58358 bytes
 blog/chinaunion/state_recovery_en.png              |  Bin 0 -> 875351 bytes
 blog/chinaunion/status_acquisition_bottleneck.png  |  Bin 0 -> 80424 bytes
 .../status_acquisition_bottleneck_en.png           |  Bin 0 -> 812005 bytes
 blog/chinaunion/submission_process.png             |  Bin 0 -> 66732 bytes
 blog/chinaunion/submission_process_en.png          |  Bin 0 -> 941018 bytes
 blog/chinaunion/versioning.png                     |  Bin 0 -> 32833 bytes
 blog/chinaunion/versioning_en.png                  |  Bin 0 -> 753078 bytes
 blog/dustess/alarm_email.png                       |  Bin 0 -> 193949 bytes
 blog/dustess/author.png                            |  Bin 0 -> 124901 bytes
 blog/dustess/certificate.png                       |  Bin 0 -> 134883 bytes
 blog/dustess/checkpoint.png                        |  Bin 0 -> 101130 bytes
 blog/dustess/code_notebook.png                     |  Bin 0 -> 202937 bytes
 blog/dustess/execution_mode.png                    |  Bin 0 -> 64693 bytes
 blog/dustess/extended_parameters.jpg               |  Bin 0 -> 162669 bytes
 blog/dustess/flink_home.png                        |  Bin 0 -> 34874 bytes
 blog/dustess/flink_sql.png                         |  Bin 0 -> 143648 bytes
 blog/dustess/flink_sql_version.png                 |  Bin 0 -> 243524 bytes
 blog/dustess/manager.png                           |  Bin 0 -> 67613 bytes
 blog/dustess/online_flinksql.png                   |  Bin 0 -> 38770 bytes
 blog/dustess/online_jar.png                        |  Bin 0 -> 128451 bytes
 blog/dustess/parameter_configuration.png           |  Bin 0 -> 213812 bytes
 blog/dustess/recover.jpg                           |  Bin 0 -> 29790 bytes
 blog/dustess/system_list.png                       |  Bin 0 -> 69998 bytes
 blog/dustess/task_retrieval.png                    |  Bin 0 -> 107386 bytes
 .../index.html                                     |  150 ++
 blog/haibo/analysis_models.png                     |  Bin 0 -> 64250 bytes
 blog/haibo/application.png                         |  Bin 0 -> 200570 bytes
 blog/haibo/data_aggregation.png                    |  Bin 0 -> 404143 bytes
 blog/haibo/data_source.png                         |  Bin 0 -> 107083 bytes
 blog/haibo/dependency.png                          |  Bin 0 -> 25085 bytes
 blog/haibo/deploy.png                              |  Bin 0 -> 122424 bytes
 blog/haibo/flink_cdc.png                           |  Bin 0 -> 40876 bytes
 blog/haibo/flink_sql.png                           |  Bin 0 -> 56199 bytes
 blog/index.html                                    |   74 +
 blog/joyme/add_dependency.png                      |  Bin 0 -> 66431 bytes
 blog/joyme/add_projectconfiguration.png            |  Bin 0 -> 52897 bytes
 blog/joyme/alarm_eamil.png                         |  Bin 0 -> 237201 bytes
 blog/joyme/application_interface.png               |  Bin 0 -> 157426 bytes
 blog/joyme/application_job.png                     |  Bin 0 -> 135003 bytes
 blog/joyme/checkpoint_configuration.png            |  Bin 0 -> 163592 bytes
 blog/joyme/email_setting.png                       |  Bin 0 -> 44536 bytes
 blog/joyme/flink_system.png                        |  Bin 0 -> 54347 bytes
 blog/joyme/project_configuration.png               |  Bin 0 -> 52385 bytes
 blog/joyme/start_log.png                           |  Bin 0 -> 15848 bytes
 blog/joyme/system_setting.png                      |  Bin 0 -> 47347 bytes
 blog/joyme/yarn_log.png                            |  Bin 0 -> 25085 bytes
 blog/page/2/index.html                             |   90 +
 blog/relx/alarm.png                                |  Bin 0 -> 50633 bytes
 blog/relx/checkpoint.png                           |  Bin 0 -> 128004 bytes
 blog/relx/development_process.png                  |  Bin 0 -> 60969 bytes
 blog/relx/docker_setting.png                       |  Bin 0 -> 76829 bytes
 blog/relx/flink_parameters.png                     |  Bin 0 -> 213172 bytes
 blog/relx/flinkversion_setting.png                 |  Bin 0 -> 55668 bytes
 blog/relx/homework_submit.png                      |  Bin 0 -> 97046 bytes
 blog/relx/kubernetes_base_parameters.png           |  Bin 0 -> 155544 bytes
 blog/relx/nativekubernetes_architecture.png        |  Bin 0 -> 109019 bytes
 blog/relx/operation.png                            |  Bin 0 -> 167437 bytes
 blog/relx/pod_template.png                         |  Bin 0 -> 175911 bytes
 blog/relx/run_status.png                           |  Bin 0 -> 188753 bytes
 blog/relx/savepoint.png                            |  Bin 0 -> 120087 bytes
 blog/relx/screenshot.png                           |  Bin 0 -> 192870 bytes
 blog/relx/step_details.png                         |  Bin 0 -> 590212 bytes
 blog/rss.xml                                       | 1748 +++++++++++++
 blog/shunwang/achievements1.png                    |  Bin 0 -> 205363 bytes
 blog/shunwang/achievements2.png                    |  Bin 0 -> 149014 bytes
 blog/shunwang/alarm.png                            |  Bin 0 -> 90036 bytes
 blog/shunwang/application.png                      |  Bin 0 -> 183363 bytes
 blog/shunwang/autor.png                            |  Bin 0 -> 235078 bytes
 blog/shunwang/cluster.png                          |  Bin 0 -> 151238 bytes
 blog/shunwang/connectors.png                       |  Bin 0 -> 129074 bytes
 blog/shunwang/function.png                         |  Bin 0 -> 146677 bytes
 blog/shunwang/homework.png                         |  Bin 0 -> 135558 bytes
 blog/shunwang/homework_manager.png                 |  Bin 0 -> 155211 bytes
 blog/shunwang/launcher.png                         |  Bin 0 -> 89504 bytes
 blog/shunwang/logs.png                             |  Bin 0 -> 104856 bytes
 blog/shunwang/management.png                       |  Bin 0 -> 205363 bytes
 blog/shunwang/pain.png                             |  Bin 0 -> 199614 bytes
 blog/shunwang/permission.png                       |  Bin 0 -> 135332 bytes
 blog/shunwang/queue.png                            |  Bin 0 -> 37211 bytes
 blog/shunwang/sql_client.png                       |  Bin 0 -> 243094 bytes
 blog/shunwang/sql_develop.png                      |  Bin 0 -> 28229 bytes
 blog/shunwang/step.png                             |  Bin 0 -> 33354 bytes
 blog/streampark-flink-on-k8s/index.html            |  214 ++
 .../index.html                                     |  197 ++
 .../index.html                                     |  289 +++
 blog/streampark-usercase-changan/index.html        |  111 +
 blog/streampark-usercase-chinaunion/index.html     |  149 ++
 blog/streampark-usercase-dustess/index.html        |  207 ++
 blog/streampark-usercase-haibo/index.html          |   97 +
 blog/streampark-usercase-joyme/index.html          |  114 +
 blog/streampark-usercase-shunwang/index.html       |  138 +
 blog/streampark-usercase-tianyancha/index.html     |  169 ++
 blog/streampark-usercase-ziru/index.html           |  287 +++
 blog/tags/data-stream/index.html                   |   44 +
 blog/tags/flink-sql/index.html                     |   78 +
 blog/tags/flink-sql/page/2/index.html              |   51 +
 blog/tags/index.html                               |   43 +
 blog/tags/kubernetes/index.html                    |   43 +
 blog/tags/paimon/index.html                        |   51 +
 blog/tags/production-practice/index.html           |   82 +
 blog/tags/production-practice/page/2/index.html    |   81 +
 blog/tags/stream-park/index.html                   |   74 +
 blog/tags/stream-park/page/2/index.html            |   90 +
 blog/tags/streaming-warehouse/index.html           |   51 +
 blog/tianyancha/alarm.png                          |  Bin 0 -> 341152 bytes
 blog/tianyancha/challenges.png                     |  Bin 0 -> 282076 bytes
 blog/tianyancha/earnings.png                       |  Bin 0 -> 578133 bytes
 blog/tianyancha/enterprise.png                     |  Bin 0 -> 213773 bytes
 blog/tianyancha/git.png                            |  Bin 0 -> 180339 bytes
 blog/tianyancha/historical_logs.png                |  Bin 0 -> 192580 bytes
 blog/tianyancha/new_cover.png                      |  Bin 0 -> 364478 bytes
 blog/tianyancha/permissions.png                    |  Bin 0 -> 161960 bytes
 blog/tianyancha/sql_job.png                        |  Bin 0 -> 141054 bytes
 blog/tianyancha/successful.png                     |  Bin 0 -> 42964 bytes
 blog/tianyancha/task_management.png                |  Bin 0 -> 257733 bytes
 blog/ziru/advanced.png                             |  Bin 0 -> 52909 bytes
 blog/ziru/after_the_transformation.png             |  Bin 0 -> 107092 bytes
 blog/ziru/api_copy.png                             |  Bin 0 -> 37419 bytes
 blog/ziru/arthas.png                               |  Bin 0 -> 161985 bytes
 blog/ziru/arthas_log.png                           |  Bin 0 -> 327895 bytes
 blog/ziru/call_link.png                            |  Bin 0 -> 110985 bytes
 blog/ziru/canal_job.png                            |  Bin 0 -> 49764 bytes
 blog/ziru/conf.png                                 |  Bin 0 -> 210078 bytes
 blog/ziru/cover.png                                |  Bin 0 -> 275990 bytes
 blog/ziru/create_badge_label.png                   |  Bin 0 -> 72641 bytes
 blog/ziru/data_access_platform.png                 |  Bin 0 -> 44163 bytes
 blog/ziru/data_merging.png                         |  Bin 0 -> 108710 bytes
 blog/ziru/dockerfile.png                           |  Bin 0 -> 7108 bytes
 blog/ziru/field_desensitization.png                |  Bin 0 -> 58271 bytes
 blog/ziru/field_desensitization_table.png          |  Bin 0 -> 25780 bytes
 blog/ziru/first_initialization.png                 |  Bin 0 -> 277666 bytes
 blog/ziru/flink_conf.png                           |  Bin 0 -> 71926 bytes
 blog/ziru/flink_job.png                            |  Bin 0 -> 35931 bytes
 blog/ziru/flink_shaded.png                         |  Bin 0 -> 173825 bytes
 blog/ziru/flink_ui.png                             |  Bin 0 -> 124061 bytes
 blog/ziru/flink_webui.png                          |  Bin 0 -> 88111 bytes
 blog/ziru/hdfs_conf.png                            |  Bin 0 -> 14950 bytes
 blog/ziru/high_freshness.png                       |  Bin 0 -> 3852 bytes
 blog/ziru/hive_query_paimon.png                    |  Bin 0 -> 570715 bytes
 blog/ziru/http_scheduling.png                      |  Bin 0 -> 142224 bytes
 blog/ziru/idea.png                                 |  Bin 0 -> 238741 bytes
 blog/ziru/ingress_setting.png                      |  Bin 0 -> 67162 bytes
 blog/ziru/job_goes_online.png                      |  Bin 0 -> 77184 bytes
 blog/ziru/job_mirroring.png                        |  Bin 0 -> 42630 bytes
 blog/ziru/k8s_job.png                              |  Bin 0 -> 109596 bytes
 blog/ziru/k8s_log.png                              |  Bin 0 -> 351069 bytes
 blog/ziru/ldap.png                                 |  Bin 0 -> 225948 bytes
 blog/ziru/lib.png                                  |  Bin 0 -> 63873 bytes
 blog/ziru/link_jump.png                            |  Bin 0 -> 115677 bytes
 blog/ziru/low_freshness.png                        |  Bin 0 -> 2626 bytes
 blog/ziru/new_cover.png                            |  Bin 0 -> 374777 bytes
 blog/ziru/parameter.png                            |  Bin 0 -> 106709 bytes
 blog/ziru/platform_construction.png                |  Bin 0 -> 301572 bytes
 blog/ziru/pod_template.png                         |  Bin 0 -> 99549 bytes
 blog/ziru/port_number.png                          |  Bin 0 -> 108692 bytes
 blog/ziru/production_environment.png               |  Bin 0 -> 159655 bytes
 blog/ziru/relevancy.png                            |  Bin 0 -> 176912 bytes
 blog/ziru/resource_overview.png                    |  Bin 0 -> 107737 bytes
 blog/ziru/row_level_permissions.png                |  Bin 0 -> 104519 bytes
 blog/ziru/row_level_permissions_table.png          |  Bin 0 -> 30990 bytes
 blog/ziru/start_the_job.png                        |  Bin 0 -> 52460 bytes
 blog/ziru/sync_conf.png                            |  Bin 0 -> 208559 bytes
 blog/ziru/system_interaction_process.png           |  Bin 0 -> 105191 bytes
 blog/ziru/token.png                                |  Bin 0 -> 91286 bytes
 .../contribution_guide/become_committer/index.html |   95 +
 .../become_pmc_member/index.html                   |   95 +
 .../contribution_guide/mailing_lists/index.html    |   70 +
 .../new_committer_process/index.html               |  103 +
 .../new_pmc_ember_process/index.html               |  105 +
 community/release/how_to_release/index.html        |  256 ++
 community/release/how_to_verify_release/index.html |  140 +
 .../code_style_and_quality_guide/index.html        |  670 +++++
 community/submit_guide/document/index.html         |   86 +
 .../documentation_style_guide/index.html           |  139 +
 community/submit_guide/submit_code/index.html      |   95 +
 doc/image/alert/alert_add_ding_talk.png            |  Bin 0 -> 72561 bytes
 doc/image/alert/alert_add_email.png                |  Bin 0 -> 49526 bytes
 doc/image/alert/alert_add_example.png              |  Bin 0 -> 89944 bytes
 doc/image/alert/alert_add_lark.png                 |  Bin 0 -> 67167 bytes
 doc/image/alert/alert_add_setting.png              |  Bin 0 -> 40086 bytes
 doc/image/alert/alert_add_wecom.png                |  Bin 0 -> 58015 bytes
 doc/image/alert/alert_application_example.png      |  Bin 0 -> 26699 bytes
 doc/image/alert/alert_conf_delete.png              |  Bin 0 -> 62691 bytes
 doc/image/alert/alert_conf_mail_sender.png         |  Bin 0 -> 76848 bytes
 doc/image/alert/alert_delete_success.png           |  Bin 0 -> 16491 bytes
 doc/image/alert/alert_edit.png                     |  Bin 0 -> 67537 bytes
 doc/image/alert/alert_send_test.png                |  Bin 0 -> 62465 bytes
 doc/image/alert/alert_send_test_success.png        |  Bin 0 -> 16022 bytes
 doc/image/alert/alert_test_ding_talk.png           |  Bin 0 -> 47527 bytes
 doc/image/alert/alert_test_email.png               |  Bin 0 -> 58553 bytes
 doc/image/alert/alert_test_lark.png                |  Bin 0 -> 54892 bytes
 doc/image/alert/alert_test_wechat.png              |  Bin 0 -> 46513 bytes
 doc/image/console_conf.jpg                         |  Bin 0 -> 563112 bytes
 doc/image/docker_register_setting.png              |  Bin 0 -> 342113 bytes
 doc/image/external-link/badge.png                  |  Bin 0 -> 316841 bytes
 doc/image/external-link/external-link-detail.png   |  Bin 0 -> 66605 bytes
 doc/image/flinksql/aggregate-function.png          |  Bin 0 -> 36831 bytes
 doc/image/flinksql/cumulative-window-diagram.png   |  Bin 0 -> 32568 bytes
 .../hive_to_hive_explode_sink_table_data.png       |  Bin 0 -> 3223 bytes
 .../hive_to_hive_explode_source_table_data.png     |  Bin 0 -> 1960 bytes
 .../example/hive_to_hive_merge_sink_table_data.png |  Bin 0 -> 2728 bytes
 .../hive_to_hive_merge_source_table_data.png       |  Bin 0 -> 3180 bytes
 .../flinksql/example/jdbc-lookup-join-running.png  |  Bin 0 -> 120642 bytes
 doc/image/flinksql/example/jdbc-lookup-join.png    |  Bin 0 -> 118966 bytes
 doc/image/flinksql/example/jdbc-regular-join.png   |  Bin 0 -> 100505 bytes
 .../example/kafka_data_gen_source_data.png         |  Bin 0 -> 47306 bytes
 .../example/kafka_lookup_join_mysql_flink_ui.png   |  Bin 0 -> 69136 bytes
 .../kafka_lookup_join_mysql_mysql_data1.png        |  Bin 0 -> 5770 bytes
 .../kafka_lookup_join_mysql_mysql_data2.png        |  Bin 0 -> 6030 bytes
 .../kafka_lookup_join_mysql_sink_kafka_data1.png   |  Bin 0 -> 52785 bytes
 .../kafka_lookup_join_mysql_sink_kafka_data2.png   |  Bin 0 -> 58067 bytes
 .../kafka_lookup_join_mysql_sink_kafka_data3.png   |  Bin 0 -> 57490 bytes
 .../example/kafka_temporal_join_flink_ui.png       |  Bin 0 -> 70920 bytes
 .../kafka_temporal_join_kafka_dim_data1.png        |  Bin 0 -> 6867 bytes
 .../kafka_temporal_join_kafka_dim_data2.png        |  Bin 0 -> 9280 bytes
 .../kafka_temporal_join_kafka_sink_data1.png       |  Bin 0 -> 53408 bytes
 .../kafka_temporal_join_kafka_sink_data2.png       |  Bin 0 -> 60827 bytes
 .../flinksql/example/kafka_to_hive_flink_ui.png    |  Bin 0 -> 35954 bytes
 .../flinksql/example/kafka_to_hive_hive_data.png   |  Bin 0 -> 39937 bytes
 .../example/kafka_to_hive_hive_table_hdfs_file.png |  Bin 0 -> 87698 bytes
 .../example/kafka_to_hive_partition_table_data.png |  Bin 0 -> 64527 bytes
 .../kafka_to_hive_partition_table_flink_ui.png     |  Bin 0 -> 51560 bytes
 .../kafka_to_hive_partition_table_hdfs_file.png    |  Bin 0 -> 54511 bytes
 .../flinksql/example/kafka_to_kafka_flink_ui.png   |  Bin 0 -> 59925 bytes
 .../flinksql/example/kafka_to_kafka_sink_data.png  |  Bin 0 -> 40350 bytes
 .../example/multy-stream-union-window-result.png   |  Bin 0 -> 64360 bytes
 .../flinksql/example/multy-stream-union-window.png |  Bin 0 -> 117235 bytes
 .../example/multy-stream-window-union-result.png   |  Bin 0 -> 130576 bytes
 .../example/multy-stream-window-union-ui1.png      |  Bin 0 -> 155062 bytes
 .../example/multy-stream-window-union-ui2.png      |  Bin 0 -> 154200 bytes
 doc/image/flinksql/example/one-stream-window.png   |  Bin 0 -> 503633 bytes
 doc/image/flinksql/example/one-stream-window2.png  |  Bin 0 -> 57828 bytes
 doc/image/flinksql/flink-dialect-exception.png     |  Bin 0 -> 54390 bytes
 doc/image/flinksql/hop-window.png                  |  Bin 0 -> 22559 bytes
 doc/image/flinksql/local-global-agg.png            |  Bin 0 -> 133865 bytes
 doc/image/flinksql/mini-batch.png                  |  Bin 0 -> 59050 bytes
 doc/image/flinksql/split-distinct.png              |  Bin 0 -> 174395 bytes
 doc/image/flinksql/table-aggregate-function.png    |  Bin 0 -> 38719 bytes
 doc/image/flinksql/tumble-window.png               |  Bin 0 -> 12024 bytes
 .../install/10_import_streampark_data_file.png     |  Bin 0 -> 53447 bytes
 doc/image/install/11_show_streampark_database.png  |  Bin 0 -> 14952 bytes
 doc/image/install/12_use_streampark_db.png         |  Bin 0 -> 3082 bytes
 doc/image/install/13_show_streampark_db_tables.png |  Bin 0 -> 16510 bytes
 doc/image/install/14_streampark_conf_files.png     |  Bin 0 -> 41533 bytes
 .../install/15_application_yml_server_port.png     |  Bin 0 -> 10641 bytes
 .../16_application_yml_spring_profile_active.png   |  Bin 0 -> 56046 bytes
 .../17_application_yml_streampark_workspace.png    |  Bin 0 -> 69047 bytes
 doc/image/install/18_application_yml_ldap.png      |  Bin 0 -> 31471 bytes
 doc/image/install/19_kerberos_yml_config.png       |  Bin 0 -> 14479 bytes
 doc/image/install/1_hardware_requirement.png       |  Bin 0 -> 15221 bytes
 doc/image/install/20_enter_streampark_dir.png      |  Bin 0 -> 58828 bytes
 doc/image/install/21_start_streampark_service.png  |  Bin 0 -> 71345 bytes
 .../install/22_check_service_starting_log.png      |  Bin 0 -> 61565 bytes
 doc/image/install/23_visit_streampark_web.png      |  Bin 0 -> 153245 bytes
 doc/image/install/24_streampark_web_index_page.png |  Bin 0 -> 108162 bytes
 doc/image/install/25_lack_mysql_driver_err.png     |  Bin 0 -> 71859 bytes
 doc/image/install/2_main_components_dep.png        |  Bin 0 -> 37915 bytes
 doc/image/install/3_flink_home.png                 |  Bin 0 -> 46534 bytes
 doc/image/install/4_mysql_dep.png                  |  Bin 0 -> 15811 bytes
 doc/image/install/5_streampark_install_pkg.png     |  Bin 0 -> 55901 bytes
 doc/image/install/6_unpkg.png                      |  Bin 0 -> 16409 bytes
 doc/image/install/7_mysql_schema_file.png          |  Bin 0 -> 16822 bytes
 doc/image/install/8_mysql_data_file.png            |  Bin 0 -> 15282 bytes
 .../install/9_import_streampark_schema_file.png    |  Bin 0 -> 24394 bytes
 doc/image/k8s_app_detail.png                       |  Bin 0 -> 391958 bytes
 doc/image/k8s_application_submit.png               |  Bin 0 -> 422783 bytes
 doc/image/k8s_pvc.png                              |  Bin 0 -> 298852 bytes
 .../10_display_flink_cluster_list.png              |  Bin 0 -> 75740 bytes
 doc/image/platform-usage/11_add_flink_job_menu.png |  Bin 0 -> 94703 bytes
 .../platform-usage/12_add_flink_job_param_1.png    |  Bin 0 -> 12688 bytes
 .../platform-usage/13_add_flink_job_param_2.png    |  Bin 0 -> 27851 bytes
 .../platform-usage/14_add_flink_job_param_3.png    |  Bin 0 -> 3086 bytes
 doc/image/platform-usage/15_save_flink_job.png     |  Bin 0 -> 73075 bytes
 .../platform-usage/16_display_flink_job_list.png   |  Bin 0 -> 84747 bytes
 doc/image/platform-usage/17_build_flink_job.png    |  Bin 0 -> 94392 bytes
 .../18_build_flink_job_successfully.png            |  Bin 0 -> 88395 bytes
 doc/image/platform-usage/19_start_flink_job.png    |  Bin 0 -> 91885 bytes
 doc/image/platform-usage/1_config_flink_home.png   |  Bin 0 -> 64511 bytes
 .../20_set_checkpoint_when_start_flink_job.png     |  Bin 0 -> 111818 bytes
 doc/image/platform-usage/21_submit_flink_job_1.png |  Bin 0 -> 89656 bytes
 doc/image/platform-usage/22_submit_flink_job_2.png |  Bin 0 -> 89010 bytes
 .../platform-usage/23_flink_job_dashboard.png      |  Bin 0 -> 92334 bytes
 .../24_display_flink_job_details.png               |  Bin 0 -> 95996 bytes
 .../25_display_flink_job_details_page.png          |  Bin 0 -> 74458 bytes
 .../26_display_native_flink_job_web_ui.png         |  Bin 0 -> 78632 bytes
 .../27_display_native_flink_job_web_ui_2.png       |  Bin 0 -> 60112 bytes
 .../28_streampark_process_workflow.png             |  Bin 0 -> 44969 bytes
 .../platform-usage/29_streampark_system_menu.png   |  Bin 0 -> 95473 bytes
 doc/image/platform-usage/2_add_flink_home_info.png |  Bin 0 -> 79284 bytes
 .../30_streampark_user_management_menu.png         |  Bin 0 -> 75673 bytes
 .../31_streampark_token_management_menu.png        |  Bin 0 -> 71968 bytes
 .../32_streampark_token_management_menu_usage.png  |  Bin 0 -> 88690 bytes
 .../platform-usage/33_streampark_role_menu.png     |  Bin 0 -> 79304 bytes
 .../platform-usage/34_streampark_team_menu.png     |  Bin 0 -> 73012 bytes
 .../platform-usage/35_streampark_member_menu.png   |  Bin 0 -> 74390 bytes
 .../36_streampark_menu_management.png              |  Bin 0 -> 105805 bytes
 .../platform-usage/37_streampark_project_menu.png  |  Bin 0 -> 70041 bytes
 .../38_streampark_project_menu_usage_1.png         |  Bin 0 -> 74763 bytes
 .../39_streampark_project_menu_usage_2.png         |  Bin 0 -> 86426 bytes
 .../platform-usage/3_display_flink_home_config.png |  Bin 0 -> 64698 bytes
 doc/image/platform-usage/40_application_menu.png   |  Bin 0 -> 90632 bytes
 .../platform-usage/41_variable_menu_usage_1.png    |  Bin 0 -> 77057 bytes
 .../platform-usage/42_variable_menu_usage_2.png    |  Bin 0 -> 69482 bytes
 .../platform-usage/43_variable_menu_usage_3.png    |  Bin 0 -> 69112 bytes
 doc/image/platform-usage/44_system_menu_1.png      |  Bin 0 -> 72438 bytes
 doc/image/platform-usage/45_system_menu_2.png      |  Bin 0 -> 74431 bytes
 doc/image/platform-usage/46_system_menu_3.png      |  Bin 0 -> 69906 bytes
 doc/image/platform-usage/47_system_menu_4.png      |  Bin 0 -> 68408 bytes
 doc/image/platform-usage/48_alert_setting_menu.png |  Bin 0 -> 73513 bytes
 doc/image/platform-usage/49_flink_home_list.png    |  Bin 0 -> 63714 bytes
 .../4_flink_deployment_execute_model.png           |  Bin 0 -> 15170 bytes
 doc/image/platform-usage/50_flink_home_usage.png   |  Bin 0 -> 76584 bytes
 doc/image/platform-usage/51_flink_home_usage_2.png |  Bin 0 -> 77630 bytes
 .../platform-usage/52_add_flink_cluster_info.png   |  Bin 0 -> 75042 bytes
 .../53_display_flink_cluster_list.png              |  Bin 0 -> 81708 bytes
 .../54_visit_flink_cluster_web_ui.png              |  Bin 0 -> 86821 bytes
 .../55_flink_deployment_difference_1.png           |  Bin 0 -> 134293 bytes
 .../56_flink_deployment_difference_2.png           |  Bin 0 -> 173523 bytes
 .../57_flink_deployment_difference_3.png           |  Bin 0 -> 174101 bytes
 .../58_flink_deployment_difference_4.png           |  Bin 0 -> 67786 bytes
 .../59_flink_deployment_difference_5.png           |  Bin 0 -> 81369 bytes
 .../5_start_flink_standalone_session_service.png   |  Bin 0 -> 10842 bytes
 .../60_flink_deployment_difference_6.png           |  Bin 0 -> 144383 bytes
 .../61_flink_session_cluster_usage_1.png           |  Bin 0 -> 83793 bytes
 .../62_flink_session_cluster_usage_2.png           |  Bin 0 -> 83664 bytes
 .../63_flink_application_model_usage_1.png         |  Bin 0 -> 78361 bytes
 .../64_flink_application_model_usage_2.png         |  Bin 0 -> 76677 bytes
 .../65_flink_application_model_usage_3.png         |  Bin 0 -> 58665 bytes
 .../66_flink_application_model_usage_4.png         |  Bin 0 -> 125235 bytes
 .../platform-usage/67_dynamic_params_usage.png     |  Bin 0 -> 68487 bytes
 .../68_native_flink_restart_strategy.png           |  Bin 0 -> 33953 bytes
 .../69_streampark_alert_settings_1.png             |  Bin 0 -> 83561 bytes
 .../6_flink_standalone_session_web_ui.png          |  Bin 0 -> 65746 bytes
 .../70_streampark_alert_settings_2.png             |  Bin 0 -> 67099 bytes
 .../platform-usage/71_streampark_alert_usage.png   |  Bin 0 -> 97946 bytes
 .../72_native_flink_save_checkpoint_gramma.png     |  Bin 0 -> 6058 bytes
 .../73_streampark_save_checkpoint.png              |  Bin 0 -> 107963 bytes
 .../74_streampark_set_checkpoint_location.png      |  Bin 0 -> 110078 bytes
 .../75_streampark_save_checkpoint_log.png          |  Bin 0 -> 18758 bytes
 .../76_show_checkpoint_file_name.png               |  Bin 0 -> 14106 bytes
 .../77_show_checkpoint_file_name_2.png             |  Bin 0 -> 46683 bytes
 .../78_usage_checkpoint_in_streampark.png          |  Bin 0 -> 105680 bytes
 .../platform-usage/79_native_flink_job_status.svg  | 1132 +++++++++
 .../platform-usage/7_config_flink_cluster_menu.png |  Bin 0 -> 65008 bytes
 .../80_native_flink_job_details_page.png           |  Bin 0 -> 62321 bytes
 .../81_streampark_flink_job_details_page.png       |  Bin 0 -> 97145 bytes
 .../82_streampark_flink_job_starting_log_info.png  |  Bin 0 -> 75808 bytes
 .../platform-usage/83_streampark_restful_api_1.png |  Bin 0 -> 80186 bytes
 .../platform-usage/84_streampark_restful_api_2.png |  Bin 0 -> 88808 bytes
 .../platform-usage/8_add_flink_cluster_info.png    |  Bin 0 -> 74234 bytes
 .../9_add_flink_cluster_successfully.png           |  Bin 0 -> 76609 bytes
 doc/image/process_mem_model.svg                    |   21 +
 doc/image/process_steps.png                        |  Bin 0 -> 25288 bytes
 doc/image/remote.png                               |  Bin 0 -> 48024 bytes
 doc/image/remoteSubmission.png                     |  Bin 0 -> 83675 bytes
 doc/image/rocksdb_dependency.png                   |  Bin 0 -> 115324 bytes
 doc/image/sso/existing-user-login-process.png      |  Bin 0 -> 79579 bytes
 doc/image/sso/github-login.png                     |  Bin 0 -> 29176 bytes
 doc/image/sso/google-login.png                     |  Bin 0 -> 50455 bytes
 doc/image/sso/login-success-redirect.png           |  Bin 0 -> 66393 bytes
 doc/image/sso/new-user-login-process.png           |  Bin 0 -> 75944 bytes
 doc/image/sso/user-login-sso-not-enabled.png       |  Bin 0 -> 42047 bytes
 doc/image/streampark-archite.png                   |  Bin 0 -> 466387 bytes
 doc/image/streampark_apis.jpeg                     |  Bin 0 -> 323045 bytes
 doc/image/streampark_archite.png                   |  Bin 0 -> 289155 bytes
 doc/image/streampark_build.png                     |  Bin 0 -> 73496 bytes
 doc/image/streampark_conf.jpg                      |  Bin 0 -> 330742 bytes
 doc/image/streampark_coreapi.png                   |  Bin 0 -> 113182 bytes
 doc/image/streampark_debug_build.png               |  Bin 0 -> 184388 bytes
 doc/image/streampark_debugging.png                 |  Bin 0 -> 240274 bytes
 doc/image/streampark_docker-compose.png            |  Bin 0 -> 30747 bytes
 doc/image/streampark_docker_ls_hadoop.png          |  Bin 0 -> 106300 bytes
 doc/image/streampark_docker_ps.png                 |  Bin 0 -> 140437 bytes
 doc/image/streampark_flinkhome.png                 |  Bin 0 -> 58419 bytes
 doc/image/streampark_frontend_running.png          |  Bin 0 -> 45565 bytes
 doc/image/streampark_ideaopt.jpg                   |  Bin 0 -> 264279 bytes
 doc/image/streampark_kafkaapi.jpeg                 |  Bin 0 -> 253353 bytes
 doc/image/streampark_login.jpeg                    |  Bin 0 -> 209275 bytes
 doc/image/streampark_modify_run_configuration.jpg  |  Bin 0 -> 243907 bytes
 doc/image/streampark_project_build.png             |  Bin 0 -> 148980 bytes
 doc/image/streampark_run_config.jpeg               |  Bin 0 -> 427488 bytes
 doc/image/streampark_scala_life_cycle.png          |  Bin 0 -> 191835 bytes
 doc/image/streampark_select_team.jpg               |  Bin 0 -> 69971 bytes
 doc/image/streampark_settings.png                  |  Bin 0 -> 436417 bytes
 doc/image/streampark_settings_2.0.0.png            |  Bin 0 -> 96220 bytes
 doc/image/streampark_source_generation_image.png   |  Bin 0 -> 34225 bytes
 doc/image/streampark_start.png                     |  Bin 0 -> 276096 bytes
 doc/image/streampark_websetting.png                |  Bin 0 -> 412728 bytes
 doc/image/team/app_list.png                        |  Bin 0 -> 163912 bytes
 doc/image/team/change_team.png                     |  Bin 0 -> 159238 bytes
 doc/image/team/member_management.png               |  Bin 0 -> 126021 bytes
 doc/image/team/role_management.png                 |  Bin 0 -> 136100 bytes
 doc/image/team/team_management.png                 |  Bin 0 -> 129422 bytes
 doc/image/variable/create_variable.png             |  Bin 0 -> 68605 bytes
 .../variable/create_variable_desensitization.png   |  Bin 0 -> 70095 bytes
 doc/image/variable/variable_flinkjar_preview.png   |  Bin 0 -> 20721 bytes
 doc/image/variable/variable_flinkjar_queto.png     |  Bin 0 -> 11377 bytes
 doc/image/variable/variable_flinksql_preview.png   |  Bin 0 -> 45703 bytes
 doc/image/variable/variable_flinksql_quote.png     |  Bin 0 -> 32932 bytes
 doc/image/variable/variable_flinksql_search.png    |  Bin 0 -> 38860 bytes
 doc/image/variable/variable_list.png               |  Bin 0 -> 74370 bytes
 .../available_queues_when_creating_application.png |  Bin 0 -> 381753 bytes
 .../available_queues_when_creating_cluster.png     |  Bin 0 -> 453549 bytes
 doc/image/yarn-queue/existed_queues.png            |  Bin 0 -> 411339 bytes
 doc/image/yarn-queue/flow_to_create.png            |  Bin 0 -> 384270 bytes
 .../yarn-queue/flow_to_type_in_pure_queue.png      |  Bin 0 -> 392799 bytes
 .../flow_to_type_in_pure_queue_labels.png          |  Bin 0 -> 395438 bytes
 .../use_yarn_app_mode_to_create_application.png    |  Bin 0 -> 451721 bytes
 ...use_yarn_session_mode_to_create_application.png |  Bin 0 -> 344748 bytes
 doc/image_en/.keep                                 |    0
 .../16_application_yml_spring_profile_active.png   |  Bin 0 -> 129894 bytes
 .../17_application_yml_streampark_workspace.png    |  Bin 0 -> 78209 bytes
 doc/image_en/install/18_application_yml_ldap.png   |  Bin 0 -> 38050 bytes
 doc/image_en/install/2_main_components_dep.png     |  Bin 0 -> 87310 bytes
 .../10_display_flink_cluster_list.png              |  Bin 0 -> 368607 bytes
 .../platform-usage/11_add_flink_job_menu.png       |  Bin 0 -> 486292 bytes
 .../platform-usage/12_add_flink_job_param_1.png    |  Bin 0 -> 550579 bytes
 .../platform-usage/13_add_flink_job_param_2.png    |  Bin 0 -> 505766 bytes
 .../platform-usage/14_add_flink_job_param_3.png    |  Bin 0 -> 661873 bytes
 doc/image_en/platform-usage/15_save_flink_job.png  |  Bin 0 -> 603495 bytes
 .../platform-usage/16_display_flink_job_list.png   |  Bin 0 -> 474615 bytes
 doc/image_en/platform-usage/17_build_flink_job.png |  Bin 0 -> 466805 bytes
 .../18_build_flink_job_successfully.png            |  Bin 0 -> 473090 bytes
 doc/image_en/platform-usage/19_start_flink_job.png |  Bin 0 -> 464540 bytes
 .../platform-usage/1_config_flink_home.png         |  Bin 0 -> 218571 bytes
 .../20_set_checkpoint_when_start_flink_job.png     |  Bin 0 -> 469647 bytes
 .../platform-usage/21_submit_flink_job_1.png       |  Bin 0 -> 429497 bytes
 .../platform-usage/22_submit_flink_job_2.png       |  Bin 0 -> 446340 bytes
 .../platform-usage/23_flink_job_dashboard.png      |  Bin 0 -> 524960 bytes
 .../24_display_flink_job_details.png               |  Bin 0 -> 495542 bytes
 .../25_display_flink_job_details_page.png          |  Bin 0 -> 439064 bytes
 .../26_display_native_flink_job_web_ui.png         |  Bin 0 -> 452501 bytes
 .../27_display_native_flink_job_web_ui_2.png       |  Bin 0 -> 413305 bytes
 .../28_streampark_process_workflow.png             |  Bin 0 -> 26745 bytes
 .../platform-usage/29_streampark_system_menu.png   |  Bin 0 -> 507096 bytes
 .../platform-usage/2_add_flink_home_info.png       |  Bin 0 -> 491301 bytes
 .../30_streampark_user_management_menu.png         |  Bin 0 -> 508547 bytes
 .../31_streampark_token_management_menu.png        |  Bin 0 -> 394553 bytes
 .../32_streampark_token_management_menu_usage.png  |  Bin 0 -> 516102 bytes
 .../platform-usage/33_streampark_role_menu.png     |  Bin 0 -> 441875 bytes
 .../platform-usage/34_streampark_team_menu.png     |  Bin 0 -> 447372 bytes
 .../platform-usage/35_streampark_member_menu.png   |  Bin 0 -> 463782 bytes
 .../36_streampark_menu_management.png              |  Bin 0 -> 750457 bytes
 .../platform-usage/37_streampark_project_menu.png  |  Bin 0 -> 399367 bytes
 .../38_streampark_project_menu_usage_1.png         |  Bin 0 -> 517796 bytes
 .../39_streampark_project_menu_usage_2.png         |  Bin 0 -> 421709 bytes
 .../platform-usage/3_display_flink_home_config.png |  Bin 0 -> 261417 bytes
 .../platform-usage/40_application_menu.png         |  Bin 0 -> 90632 bytes
 .../platform-usage/41_variable_menu_usage_1.png    |  Bin 0 -> 437920 bytes
 .../platform-usage/42_variable_menu_usage_2.png    |  Bin 0 -> 547434 bytes
 .../platform-usage/43_variable_menu_usage_3.png    |  Bin 0 -> 541419 bytes
 doc/image_en/platform-usage/44_system_menu_1.png   |  Bin 0 -> 608165 bytes
 doc/image_en/platform-usage/45_system_menu_2.png   |  Bin 0 -> 598292 bytes
 doc/image_en/platform-usage/46_system_menu_3.png   |  Bin 0 -> 635027 bytes
 doc/image_en/platform-usage/47_system_menu_4.png   |  Bin 0 -> 499077 bytes
 .../platform-usage/48_alert_setting_menu.png       |  Bin 0 -> 481981 bytes
 doc/image_en/platform-usage/49_flink_home_list.png |  Bin 0 -> 472231 bytes
 .../4_flink_deployment_execute_model.png           |  Bin 0 -> 13506 bytes
 .../platform-usage/50_flink_home_usage.png         |  Bin 0 -> 677004 bytes
 .../platform-usage/51_flink_home_usage_2.png       |  Bin 0 -> 678028 bytes
 .../platform-usage/52_add_flink_cluster_info.png   |  Bin 0 -> 873052 bytes
 .../53_display_flink_cluster_list.png              |  Bin 0 -> 532312 bytes
 .../54_visit_flink_cluster_web_ui.png              |  Bin 0 -> 619456 bytes
 .../55_flink_deployment_difference_1.png           |  Bin 0 -> 134293 bytes
 .../56_flink_deployment_difference_2.png           |  Bin 0 -> 173523 bytes
 .../57_flink_deployment_difference_3.png           |  Bin 0 -> 174101 bytes
 .../58_flink_deployment_difference_4.png           |  Bin 0 -> 67786 bytes
 .../59_flink_deployment_difference_5.png           |  Bin 0 -> 81369 bytes
 .../5_start_flink_standalone_session_service.png   |  Bin 0 -> 10842 bytes
 .../60_flink_deployment_difference_6.png           |  Bin 0 -> 144383 bytes
 .../61_flink_session_cluster_usage_1.png           |  Bin 0 -> 537797 bytes
 .../62_flink_session_cluster_usage_2.png           |  Bin 0 -> 675239 bytes
 .../63_flink_application_model_usage_1.png         |  Bin 0 -> 843242 bytes
 .../64_flink_application_model_usage_2.png         |  Bin 0 -> 694493 bytes
 .../65_flink_application_model_usage_3.png         |  Bin 0 -> 351471 bytes
 .../66_flink_application_model_usage_4.png         |  Bin 0 -> 2075777 bytes
 .../platform-usage/67_dynamic_params_usage.png     |  Bin 0 -> 853148 bytes
 .../68_native_flink_restart_strategy.png           |  Bin 0 -> 33953 bytes
 .../69_streampark_alert_settings_1.png             |  Bin 0 -> 407769 bytes
 .../6_flink_standalone_session_web_ui.png          |  Bin 0 -> 404983 bytes
 .../70_streampark_alert_settings_2.png             |  Bin 0 -> 357055 bytes
 .../platform-usage/71_streampark_alert_usage.png   |  Bin 0 -> 736247 bytes
 .../72_native_flink_save_checkpoint_gramma.png     |  Bin 0 -> 21216 bytes
 .../73_streampark_save_checkpoint.png              |  Bin 0 -> 107963 bytes
 .../74_streampark_set_checkpoint_location.png      |  Bin 0 -> 110078 bytes
 .../75_streampark_save_checkpoint_log.png          |  Bin 0 -> 18758 bytes
 .../76_show_checkpoint_file_name.png               |  Bin 0 -> 14106 bytes
 .../77_show_checkpoint_file_name_2.png             |  Bin 0 -> 46683 bytes
 .../78_usage_checkpoint_in_streampark.png          |  Bin 0 -> 105680 bytes
 .../platform-usage/79_native_flink_job_status.svg  | 1132 +++++++++
 .../platform-usage/7_config_flink_cluster_menu.png |  Bin 0 -> 436937 bytes
 .../80_native_flink_job_details_page.png           |  Bin 0 -> 584250 bytes
 .../81_streampark_flink_job_details_page.png       |  Bin 0 -> 731237 bytes
 .../82_streampark_flink_job_starting_log_info.png  |  Bin 0 -> 75808 bytes
 .../platform-usage/83_streampark_restful_api_1.png |  Bin 0 -> 554762 bytes
 .../platform-usage/84_streampark_restful_api_2.png |  Bin 0 -> 779772 bytes
 .../platform-usage/8_add_flink_cluster_info.png    |  Bin 0 -> 366548 bytes
 .../9_add_flink_cluster_successfully.png           |  Bin 0 -> 342532 bytes
 doc/image_en/streampark_archite.png                |  Bin 0 -> 267730 bytes
 docs/development/development/index.html            |   75 +
 docs/framework/config/index.html                   |  184 ++
 docs/framework/connector/clickhouse/index.html     |   90 +
 docs/framework/connector/doris/index.html          |   53 +
 docs/framework/connector/es/index.html             |   90 +
 docs/framework/connector/hbase/index.html          |   77 +
 docs/framework/connector/http/index.html           |   69 +
 docs/framework/connector/jdbc/index.html           |   99 +
 docs/framework/connector/kafka/index.html          |  152 ++
 docs/framework/connector/redis/index.html          |   77 +
 docs/framework/dev-model/index.html                |  179 ++
 docs/framework/quick-start/index.html              |   68 +
 docs/get-started/deployment/index.html             |  122 +
 docs/get-started/docker-deployment/index.html      |   93 +
 docs/get-started/how-to-use/index.html             |  355 +++
 docs/get-started/intro/index.html                  |   79 +
 docs/platform/alert/index.html                     |  132 +
 docs/platform/ext-link/index.html                  |   54 +
 docs/platform/k8s/flink-on-k8s/index.html          |  106 +
 .../k8s/hadoop-resource-integration/index.html     |   79 +
 docs/platform/k8s/k8s-pvc-integration/index.html   |   65 +
 docs/platform/ldap/index.html                      |   55 +
 docs/platform/platform-build/index.html            |  252 ++
 docs/platform/sso/index.html                       |   84 +
 docs/platform/team/index.html                      |   86 +
 docs/platform/variable/index.html                  |   85 +
 docs/platform/version-upgrade/index.html           |   75 +
 docs/platform/yarn-queue/index.html                |  183 ++
 download/index.html                                |   43 +
 download/release-card/mobile/index.html            |   14 +
 download/release-card/pc/index.html                |   14 +
 download/release-note/2.0.0/index.html             |  182 ++
 download/release-note/2.1.0/index.html             |   94 +
 download/release-note/2.1.1/index.html             |   61 +
 download/release-note/2.1.2/index.html             |   74 +
 download/release-note/2.1.3/index.html             |   69 +
 download/release-note/2.1.4/index.html             |   77 +
 download/table/index.html                          |   14 +
 home/banner-mask.png                               |  Bin 0 -> 37162 bytes
 home/banner.png                                    |  Bin 0 -> 48506 bytes
 home/bg-fotter.png                                 |  Bin 0 -> 21320 bytes
 home/bg-mask.png                                   |  Bin 0 -> 499378 bytes
 home/block.svg                                     |    3 +
 home/code-bg1.png                                  |  Bin 0 -> 124707 bytes
 home/code-bg2.png                                  |  Bin 0 -> 121833 bytes
 home/code1.png                                     |  Bin 0 -> 77516 bytes
 home/code2.png                                     |  Bin 0 -> 76698 bytes
 home/coder1.png                                    |  Bin 0 -> 103243 bytes
 home/coder2.png                                    |  Bin 0 -> 101206 bytes
 home/coding.svg                                    |   82 +
 home/dark.png                                      |  Bin 0 -> 1204757 bytes
 home/dashboard.png                                 |  Bin 0 -> 327763 bytes
 home/dashboard.svg                                 |    3 +
 home/dot.png                                       |  Bin 0 -> 989 bytes
 home/feature/index.html                            |   14 +
 home/gitee.png                                     |  Bin 0 -> 3003 bytes
 home/gvp2021.png                                   |  Bin 0 -> 259716 bytes
 home/half-circle.png                               |  Bin 0 -> 1174 bytes
 home/hero/index.html                               |   14 +
 home/honor2021.jpg                                 |  Bin 0 -> 936772 bytes
 home/icon.svg                                      |    1 +
 home/index.html                                    |   14 +
 home/light.png                                     |  Bin 0 -> 1124026 bytes
 home/macbook.svg                                   |    1 +
 home/mymen-bg.png                                  |  Bin 0 -> 11943 bytes
 home/performance/index.html                        |   14 +
 home/rocket.svg                                    |    1 +
 home/screenshot/index.html                         |   14 +
 home/streampark-banner.png                         |  Bin 0 -> 175159 bytes
 home/top1.svg                                      |   88 +
 home/top2.svg                                      |   88 +
 home/users/index.html                              |   14 +
 home/wave.svg                                      |    8 +
 image/apache-incubator-dark.svg                    |    1 +
 image/apache-incubator.svg                         |    2 +
 image/circle.svg                                   |    8 +
 image/dashboard-preview.png                        |  Bin 0 -> 369091 bytes
 image/dashboard.png                                |  Bin 0 -> 516569 bytes
 image/favicon.ico                                  |  Bin 0 -> 1595 bytes
 image/join_wechat.png                              |  Bin 0 -> 79574 bytes
 image/logo.png                                     |  Bin 0 -> 33648 bytes
 image/logo.svg                                     |    3 +
 image/logo_name.png                                |  Bin 0 -> 80935 bytes
 image/logo_name.svg                                |    3 +
 image/logo_name_white.png                          |  Bin 0 -> 97457 bytes
 image/sqlide.png                                   |  Bin 0 -> 943934 bytes
 image/users.png                                    |  Bin 0 -> 312973 bytes
 image/wx_qr.png                                    |  Bin 0 -> 71315 bytes
 index.html                                         |   43 +
 search-index.json                                  |    1 +
 search/index.html                                  |   43 +
 sitemap.xml                                        |    1 +
 team/index.html                                    |   43 +
 user/alpha.png                                     |  Bin 0 -> 3000 bytes
 user/apollo.png                                    |  Bin 0 -> 10077 bytes
 user/atguigu.png                                   |  Bin 0 -> 74036 bytes
 user/baidu.png                                     |  Bin 0 -> 13644 bytes
 user/banggood.png                                  |  Bin 0 -> 22456 bytes
 user/belle.png                                     |  Bin 0 -> 18867 bytes
 user/bondex.png                                    |  Bin 0 -> 20030 bytes
 user/changan.png                                   |  Bin 0 -> 19570 bytes
 user/china-unicon.png                              |  Bin 0 -> 16987 bytes
 user/china_entercom.jpg                            |  Bin 0 -> 41544 bytes
 user/cloudview.png                                 |  Bin 0 -> 3542 bytes
 user/ctyun.png                                     |  Bin 0 -> 4760 bytes
 user/deepway.png                                   |  Bin 0 -> 21188 bytes
 user/doctorglasses.png                             |  Bin 0 -> 95667 bytes
 user/dtsclouds.png                                 |  Bin 0 -> 11537 bytes
 user/dustess.png                                   |  Bin 0 -> 33882 bytes
 user/dyrs.png                                      |  Bin 0 -> 84873 bytes
 user/esign.png                                     |  Bin 0 -> 14140 bytes
 user/fy-data.png                                   |  Bin 0 -> 17602 bytes
 user/gigacloud_technology.png                      |  Bin 0 -> 46507 bytes
 user/grow.png                                      |  Bin 0 -> 11303 bytes
 user/haibo.png                                     |  Bin 0 -> 9896 bytes
 user/hopson.png                                    |  Bin 0 -> 34017 bytes
 user/hrfax.png                                     |  Bin 0 -> 222703 bytes
 user/idataway.png                                  |  Bin 0 -> 29381 bytes
 user/index.html                                    |   43 +
 user/inmobi.png                                    |  Bin 0 -> 7094 bytes
 user/itcast.png                                    |  Bin 0 -> 17174 bytes
 user/joy_u.png                                     |  Bin 0 -> 13373 bytes
 user/joyme.png                                     |  Bin 0 -> 10401 bytes
 user/kcbebank.png                                  |  Bin 0 -> 103653 bytes
 user/lccomputing.png                               |  Bin 0 -> 38012 bytes
 user/longping.png                                  |  Bin 0 -> 199840 bytes
 user/lydigi.png                                    |  Bin 0 -> 109364 bytes
 user/mafengwo.png                                  |  Bin 0 -> 31073 bytes
 user/relx.png                                      |  Bin 0 -> 35305 bytes
 user/shudui.png                                    |  Bin 0 -> 78870 bytes
 user/shunwang.png                                  |  Bin 0 -> 223769 bytes
 user/sobot.png                                     |  Bin 0 -> 43852 bytes
 user/supcon.png                                    |  Bin 0 -> 6295 bytes
 user/tencent.png                                   |  Bin 0 -> 11383 bytes
 user/tenclass.png                                  |  Bin 0 -> 22863 bytes
 user/treeroot.png                                  |  Bin 0 -> 113310 bytes
 user/vixtel.png                                    |  Bin 0 -> 3646 bytes
 user/vlion.png                                     |  Bin 0 -> 113634 bytes
 user/vphonor.png                                   |  Bin 0 -> 50616 bytes
 user/wondersgroup.png                              |  Bin 0 -> 13512 bytes
 user/yingzi.png                                    |  Bin 0 -> 9145 bytes
 user/yipage.png                                    |  Bin 0 -> 18854 bytes
 user/yonghui.png                                   |  Bin 0 -> 18814 bytes
 user/yto.png                                       |  Bin 0 -> 30092 bytes
 user/yucun.png                                     |  Bin 0 -> 52464 bytes
 user/yunlizhi.png                                  |  Bin 0 -> 30235 bytes
 user/zehoo.png                                     |  Bin 0 -> 66107 bytes
 user/zhengzhou.png                                 |  Bin 0 -> 15031 bytes
 user/ziroom.png                                    |  Bin 0 -> 50857 bytes
 user/zoomlion.png                                  |  Bin 0 -> 55508 bytes
 user/zto.png                                       |  Bin 0 -> 150344 bytes
 zh-CN/.asf.yaml                                    |   39 +
 zh-CN/.nojekyll                                    |    0
 zh-CN/404.html                                     |   43 +
 zh-CN/assets/css/styles.7da077ff.css               |    1 +
 ...ons-y2l643-6ac9873828472f7a88703893f3de50c7.eot |  Bin 0 -> 147388 bytes
 ...ns-y2l643-c2f4b7610f34f5843a72d44f5c4ae9d2.woff |  Bin 0 -> 147292 bytes
 ...ons-y2l643-fb16b8b0de9e73ca9b2d7bb18c4e7108.ttf |  Bin 0 -> 147216 bytes
 ...nagari-1-64d5f06ee726edd58ca33456c8ead0cb.woff2 |  Bin 0 -> 39564 bytes
 ...nagari-2-f43b6ebf46ee6fba05559f09fd680c90.woff2 |  Bin 0 -> 39136 bytes
 ...nagari-3-349ed9fa39221b45ae9a033c0c3de0e2.woff2 |  Bin 0 -> 39148 bytes
 ...me-webfont-1e59d2330b4c6deb84b340635ed36249.ttf |  Bin 0 -> 165548 bytes
 ...-webfont-20fd1704ea223900efa9fd4e869efb08.woff2 |  Bin 0 -> 77160 bytes
 ...me-webfont-8b43027f47b20503057dfbbaa9401fef.eot |  Bin 0 -> 165742 bytes
 ...e-webfont-f691f37e57f04c152e2315ab7dbad881.woff |  Bin 0 -> 98024 bytes
 ...uster_list-898b950452ed259290f492f8c2b7aae8.png |  Bin 0 -> 75740 bytes
 ..._data_file-f34042180339f5bf7a8b69dea1a61daa.png |  Bin 0 -> 53447 bytes
 ...k_job_menu-e85f9a4e678ea4cbf06db1fcb9173000.png |  Bin 0 -> 94703 bytes
 ...k_database-8c45ff59e4d800c31971c686b714c2e2.png |  Bin 0 -> 14952 bytes
 ...ob_param_1-c26dfccc7e8b95723827649e0bbd7836.png |  Bin 0 -> 12688 bytes
 ...ob_param_2-77e758565cd34b580bfd77cb432ebace.png |  Bin 0 -> 27851 bytes
 ..._db_tables-5b3fdd325d69ff0eafaa6132b8eec00d.png |  Bin 0 -> 16510 bytes
 ...conf_files-407bdde31edce6c38235378f25371a9f.png |  Bin 0 -> 41533 bytes
 ...erver_port-cd566ef989ade5bbf4a803f0fc89709f.png |  Bin 0 -> 10641 bytes
 ..._flink_job-dc941b93f339fe00137c7e5ae2681192.png |  Bin 0 -> 73075 bytes
 ...ile_active-010f12d75fd3973f3f55bace3aaa0d98.png |  Bin 0 -> 56046 bytes
 ...k_job_list-88b13da359ea21967f00b37cdd227c13.png |  Bin 0 -> 84747 bytes
 ..._workspace-60b1c5ecb289f51451a83cb7e1b4a8d0.png |  Bin 0 -> 69047 bytes
 ..._flink_job-244c1e0e4d37d50dac3fcaa002512580.png |  Bin 0 -> 94392 bytes
 ...n_yml_ldap-347aa98e374ce9012176b8ec9099d85e.png |  Bin 0 -> 31471 bytes
 ...ccessfully-574bd7e9d6b4884cfb8a6475c2ef9da3.png |  Bin 0 -> 88395 bytes
 ...yml_config-3b48e035ede7c69fdaba5411126f1ecd.png |  Bin 0 -> 14479 bytes
 ..._flink_job-2660c5cf93f47d04817790347b8ac9bf.png |  Bin 0 -> 91885 bytes
 ...flink_home-27a38d4517b2d2cf570cf99afe52d105.png |  Bin 0 -> 64511 bytes
 ...equirement-92b8570a4b7602f7fe42f1dd52f5b57a.png |  Bin 0 -> 15221 bytes
 ...ampark_dir-23fe0cd7289a39bf670e9206a5f99826.png |  Bin 0 -> 58828 bytes
 ..._flink_job-4764c551cbb8e256ae6e4198f29a80eb.png |  Bin 0 -> 111818 bytes
 ...rk_service-6fd3adcc3dae4e921381d4becc0bccb9.png |  Bin 0 -> 71345 bytes
 ...link_job_1-3dd7dec1ecb358e3a389ac921831adfb.png |  Bin 0 -> 89656 bytes
 ...arting_log-1121349a6e965af339b2a297adf1c43e.png |  Bin 0 -> 61565 bytes
 ...link_job_2-103de3f04e6254b84642329f07fc6b64.png |  Bin 0 -> 89010 bytes
 ..._dashboard-f2e5018eb5a24013eeda8ba84f440ce9.png |  Bin 0 -> 92334 bytes
 ...ampark_web-24675f279e919a73cd6792d99c4647e7.png |  Bin 0 -> 153245 bytes
 ...ob_details-de0d382b97199f2cb8f87cb49271be2d.png |  Bin 0 -> 95996 bytes
 ...index_page-ca827d0b22ea67ee53f1fb0448121685.png |  Bin 0 -> 108162 bytes
 ...tails_page-74a80f2b42896d5612905922c3c9e878.png |  Bin 0 -> 74458 bytes
 ...driver_err-1345c2e03b78b4b752749279b48824e3.png |  Bin 0 -> 71859 bytes
 ...job_web_ui-f14d803a4321e0d9883ae8fb446d4cc2.png |  Bin 0 -> 78632 bytes
 ...b_web_ui_2-5aacc5588f0aa92db45ca806e8c08869.png |  Bin 0 -> 60112 bytes
 ...s_workflow-75d303ec6751e45bd3621db83a9f83a4.png |  Bin 0 -> 44969 bytes
 ...ystem_menu-cbaa4dcb01b10211876029ac06e3a0c6.png |  Bin 0 -> 95473 bytes
 ..._home_info-3fc9d2449fb1f495074fb4d8f72be513.png |  Bin 0 -> 79284 bytes
 ...onents_dep-a92bd373229f314d3eb012150423a2c0.png |  Bin 0 -> 37915 bytes
 ...ement_menu-d4c511b80c3c9af9d7267dc7ac37d68c.png |  Bin 0 -> 75673 bytes
 ...ement_menu-add0b584139c36e238b73e6e10d74f93.png |  Bin 0 -> 71968 bytes
 ...menu_usage-eeca88ebea56eb015b222a1abc261110.png |  Bin 0 -> 88690 bytes
 ..._role_menu-554027be6a341c3a06fc8dae5e8a148b.png |  Bin 0 -> 79304 bytes
 ..._team_menu-e4a038c9bc4643238b8b120a8209be69.png |  Bin 0 -> 73012 bytes
 ...ember_menu-0e6e65e923bdf72537485cf84d5a0a55.png |  Bin 0 -> 74390 bytes
 ...management-cf1e5e5719180d88378e4d22d20d356f.png |  Bin 0 -> 105805 bytes
 ...oject_menu-49750a2fe76cf33b4e4061a4de36b128.png |  Bin 0 -> 70041 bytes
 ...nu_usage_1-e64fb9991e2f691fdac8eb13cee5a7ad.png |  Bin 0 -> 74763 bytes
 ...nu_usage_2-02b4f360d27710ff6ddbd38b5e848b30.png |  Bin 0 -> 86426 bytes
 ...ome_config-093143f7dd3717c2c425de46615c7d13.png |  Bin 0 -> 64698 bytes
 ...flink_home-5fd5e4a0debd18df18921a47a1619330.png |  Bin 0 -> 46534 bytes
 ...ation_menu-8d9525e6d86e32f0cf585bdbde5b5883.png |  Bin 0 -> 90632 bytes
 ...nu_usage_1-924fae055df8e2f2d7f6cf4df1fa998d.png |  Bin 0 -> 77057 bytes
 ...nu_usage_2-a060e06b93e2a6e198d379bfd6aa4945.png |  Bin 0 -> 69482 bytes
 ...nu_usage_3-ebb5c828f605208b6ec1a62f6f3b2e65.png |  Bin 0 -> 69112 bytes
 ...tem_menu_1-9966da1dcd4af519851308a319e4fbe5.png |  Bin 0 -> 72438 bytes
 ...tem_menu_2-b72aef3b964ddb704274317ca3db0698.png |  Bin 0 -> 74431 bytes
 ...tem_menu_3-910888cbe13a48fd6687f143c9694481.png |  Bin 0 -> 69906 bytes
 ...tem_menu_4-75b619a1a3fcc86ede7ddf846a5212e9.png |  Bin 0 -> 68408 bytes
 ...tting_menu-3b8e1f8a248c9fa59da1a1d5fa9d6601.png |  Bin 0 -> 73513 bytes
 ..._home_list-8923754eed86a7207611d8852a1d77aa.png |  Bin 0 -> 63714 bytes
 ...cute_model-56bc064fce5932183c1617271fcc2d69.png |  Bin 0 -> 15170 bytes
 ..._mysql_dep-63b6cf7ffb182a69d0f917810b7db78e.png |  Bin 0 -> 15811 bytes
 ...home_usage-35bf05e9992af3d0f2e38f49c23350d7.png |  Bin 0 -> 76584 bytes
 ...me_usage_2-83a1529b228e5e2a420b124b5217b00c.png |  Bin 0 -> 77630 bytes
 ...uster_info-793c153c2972045abca38e1f41a06fad.png |  Bin 0 -> 75042 bytes
 ...uster_list-f1b77046740919025d270f556ee32d3c.png |  Bin 0 -> 81708 bytes
 ...ter_web_ui-31168bba5b751222ea2c51b180487360.png |  Bin 0 -> 86821 bytes
 ...fference_1-feaec4afc61f4b4c90e9ffd222c689df.png |  Bin 0 -> 134293 bytes
 ...fference_2-9a737ee30bb4f6bcfd3cc0e951fc0932.png |  Bin 0 -> 173523 bytes
 ...fference_3-a86c9be315634a2b6d01ab09d1046969.png |  Bin 0 -> 174101 bytes
 ...fference_4-6032de6bc3c4560afe6f26b8f28a44fd.png |  Bin 0 -> 67786 bytes
 ...fference_5-ef5ad7184ef092fd5a27179490b68d3c.png |  Bin 0 -> 81369 bytes
 ...on_service-8f808dec058b639fd6792f67b52b480d.png |  Bin 0 -> 10842 bytes
 ...nstall_pkg-44b644c3b659b59ade8f75b2fbe77e06.png |  Bin 0 -> 55901 bytes
 ...fference_6-963aeebac6b77bae38e727757a132ee4.png |  Bin 0 -> 144383 bytes
 ...er_usage_1-b9216f83586670725a20d65aeb9616bc.png |  Bin 0 -> 83793 bytes
 ...er_usage_2-5689493e95cb87a2b6177804068c1d1b.png |  Bin 0 -> 83664 bytes
 ...el_usage_1-12c1abf723f9cc172cea787e06393b12.png |  Bin 0 -> 78361 bytes
 ...el_usage_2-68796aa0c179cdc4d772c6664d32a873.png |  Bin 0 -> 76677 bytes
 ...el_usage_3-6d9871ed71e6ebf9f84f02116ee237cd.png |  Bin 0 -> 58665 bytes
 ...el_usage_4-e2698ac13239ba269324c1bf2f428f03.png |  Bin 0 -> 125235 bytes
 ...rams_usage-be4672bab5444b7c3adc6c799fcd2c57.png |  Bin 0 -> 68487 bytes
 ...t_strategy-afe159cfde1938f73301f5d2f5d8e0ec.png |  Bin 0 -> 33953 bytes
 ...settings_1-d9e3487cf4b4652ba31b8d36cca530f9.png |  Bin 0 -> 83561 bytes
 ...ion_web_ui-c06233023ab99b14c4b3c86488823f25.png |  Bin 0 -> 65746 bytes
 .../6_unpkg-db24dd2ca6d16e779cf5a8ccce6e3700.png   |  Bin 0 -> 16409 bytes
 ...settings_2-038b947e930f5399ef531d586092dd93.png |  Bin 0 -> 67099 bytes
 ...lert_usage-1e5ee31ffa6d91b4400e8170718954c0.png |  Bin 0 -> 97946 bytes
 ...checkpoint-932e42066f6140bf66a412c2f192d0c1.png |  Bin 0 -> 107963 bytes
 ...t_location-2ca7e8a34023b235f04e9ea012187bb5.png |  Bin 0 -> 110078 bytes
 ...kpoint_log-5e06a0db9e648eef893aad9f1ec5f222.png |  Bin 0 -> 18758 bytes
 ..._file_name-9848305b415c965dfcab0c53b04a400e.png |  Bin 0 -> 14106 bytes
 ...ile_name_2-a322ac7cc9031bc7971b373849d87861.png |  Bin 0 -> 46683 bytes
 ...streampark-cee144525153fdfff4680f9fd45bbe72.png |  Bin 0 -> 105680 bytes
 ...uster_menu-b9e84a67e5c77472fa6269b89a0a445c.png |  Bin 0 -> 65008 bytes
 ...chema_file-3c3aac38387df5ad02c7a1cbf4f0b728.png |  Bin 0 -> 16822 bytes
 ...tails_page-93c49a19e038e50b5fd4e4817ed9d7d7.png |  Bin 0 -> 62321 bytes
 ...tails_page-7ab859146bc4ace96b7015b6d5d12304.png |  Bin 0 -> 97145 bytes
 ...g_log_info-bb5b893073b64ccd49327b6d7273be9b.png |  Bin 0 -> 75808 bytes
 ...tful_api_1-7f30159930c1f9b4c462a6a707928862.png |  Bin 0 -> 80186 bytes
 ...tful_api_2-615f4563ebb5c9c128dffdcf2d3436af.png |  Bin 0 -> 88808 bytes
 ...uster_info-4c3d88cc5935a770bf137b38e5b5823d.png |  Bin 0 -> 74234 bytes
 ..._data_file-1350e4eee605d252348c15c2a96f5ec6.png |  Bin 0 -> 15282 bytes
 ...ccessfully-6f884b0d4fc4e26ed3a4a68d52140a04.png |  Bin 0 -> 76609 bytes
 ...chema_file-a5b469564c012625644c74136c8257a7.png |  Bin 0 -> 24394 bytes
 .../Bondex-b9280a2451e6984d91f7747acaa10b97.png    |  Bin 0 -> 398441 bytes
 ...ons-y2l643-e76a21f07f1a3949a21170b145337735.svg |  492 ++++
 ...ievements1-9eb1dec5b2fa480e897cf1c12d1425d8.png |  Bin 0 -> 205363 bytes
 ...ievements2-5aa9b3c14892f9b1d8b054e82f3b4ad3.png |  Bin 0 -> 149014 bytes
 ...dependency-281888d96a8f3ce6e9af01efef9de643.png |  Bin 0 -> 66431 bytes
 ...figuration-26b97212de577a0cbc46b59f1eceea0b.png |  Bin 0 -> 52897 bytes
 .../advanced-e5c462ae9a888deddb5939a7c8065732.png  |  Bin 0 -> 52909 bytes
 ...sformation-8b3717c58b603d12e8e87c8267068672.png |  Bin 0 -> 107092 bytes
 .../alarm-609ca86190f86b8ad9a8c4d212705add.png     |  Bin 0 -> 341152 bytes
 .../alarm-8fa330c6a2d27cfd62878dcd20cd524c.png     |  Bin 0 -> 90036 bytes
 .../alarm-c2104c1839a1b4bb668d48f092f25faa.png     |  Bin 0 -> 50633 bytes
 ...larm_eamil-29b2875dbfcbeb071fef815ab751786a.png |  Bin 0 -> 237201 bytes
 ...larm_email-fd4c9ba1995ec69b7557bd1378dce737.png |  Bin 0 -> 193949 bytes
 ...nformation-b67199a66276ada93c1dba47a7581dc9.png |  Bin 0 -> 73267 bytes
 ..._ding_talk-b3caec1ffb7d3d854b81ae1cb2b03240.png |  Bin 0 -> 72561 bytes
 ..._add_email-ce05ec3b962e3da8715421bd4ba067b6.png |  Bin 0 -> 49526 bytes
 ...dd_example-cff0970a99cd0619307c145f53b97489.png |  Bin 0 -> 89944 bytes
 ...t_add_lark-d2ab4845e83ef632194e1f742891f5e9.png |  Bin 0 -> 67167 bytes
 ...dd_setting-cf588ab5ece868ab22b6e1e6e4ba261f.png |  Bin 0 -> 40086 bytes
 ..._add_wecom-63b035f6ca0c4399c8e3546b8d87834d.png |  Bin 0 -> 58015 bytes
 ...on_example-c31cb94e6de97e1a980100e28ef1dfb4.png |  Bin 0 -> 26699 bytes
 ...onf_delete-4de431dcb0c2771fa0f982f9f5400303.png |  Bin 0 -> 62691 bytes
 ...ail_sender-817f2078cfe746f369903506b4e21c67.png |  Bin 0 -> 76848 bytes
 ...te_success-2bbd348dbe458d95b505211eedb1ef2e.png |  Bin 0 -> 16491 bytes
 ...alert_edit-9362d5ea6791b866c0fcdb106b04fda5.png |  Bin 0 -> 67537 bytes
 ..._send_test-7cd2e3cce6cfc5a7949bc382c82bddde.png |  Bin 0 -> 62465 bytes
 ...st_success-3394a1b85454dd88f5504e2cb2e7772b.png |  Bin 0 -> 16022 bytes
 ..._ding_talk-00a51843a9faf5a5dc793a12580db8af.png |  Bin 0 -> 47527 bytes
 ...test_email-2c342e2867b99c5bb4b60796aab9a203.png |  Bin 0 -> 58553 bytes
 ..._test_lark-8786b1c7559ecd42b93f95a74662b9af.png |  Bin 0 -> 54892 bytes
 ...est_wechat-2cc8875b55d42a6ad43b5094c38394ac.png |  Bin 0 -> 46513 bytes
 .../aliyun-43dec052b5792743675fb5a0e5980ebc.png    |  Bin 0 -> 44327 bytes
 ...datastream-f095c45ce30fe21e178eac323c6a7a37.jpg |  Bin 0 -> 29584 bytes
 .../api_copy-ceff34954a24abe2b3e04bc6d10d4f26.png  |  Bin 0 -> 37419 bytes
 ...pplication-b12eb5d36d548a02e52ec12a28ddcec0.png |  Bin 0 -> 200570 bytes
 ...pplication-c99d4b0512fdb7d214e5429769629930.png |  Bin 0 -> 183363 bytes
 ..._interface-51c8f96e343842f32b56c3c889064cba.png |  Bin 0 -> 157426 bytes
 ...cation_job-5518b58af2b481d7bdb36a7bae252c41.png |  Bin 0 -> 135003 bytes
 ...on_setting-48542837b22debfeca15eddaf6ea93a0.png |  Bin 0 -> 104525 bytes
 .../arthas-31f8df2a167d53420d2b4a828003a449.png    |  Bin 0 -> 161985 bytes
 ...arthas_log-fbc7dc0891690e569c6ad63359fc52fd.png |  Bin 0 -> 327895 bytes
 .../author-487ad3c1ad9a397cd4c2614f54976368.png    |  Bin 0 -> 124901 bytes
 .../author-c3dabbb31d7cea1b5164a75a94ca3008.png    |  Bin 0 -> 134606 bytes
 .../autor-4fee09aa3abf8842dcdbb7ada1aa9409.png     |  Bin 0 -> 235078 bytes
 .../call_link-da9d24e3a1993590cf25da174d5fb676.png |  Bin 0 -> 110985 bytes
 .../canal_job-fbfcee343ac2473e1b22d199da463ad4.png |  Bin 0 -> 49764 bytes
 ...capability-2f9e6fd6a844689944e87e108221d5d9.png |  Bin 0 -> 54673 bytes
 ...ertificate-2f5b95ebb0816ead327ec169c12996b6.png |  Bin 0 -> 134883 bytes
 ...challenges-2c1babbcd18fc83fb47c4447fa413a95.png |  Bin 0 -> 282076 bytes
 ...checkpoint-acf7379b24a3bac6695a517b425f466b.png |  Bin 0 -> 128004 bytes
 ...checkpoint-e9edd22da076247770a0b40595626fb7.png |  Bin 0 -> 101130 bytes
 ...figuration-861a4f0439b1a0f8aade35e10e6b60c5.png |  Bin 0 -> 163592 bytes
 .../cluster-96bd791c1c4f3d6144fbd1d134d89cd6.png   |  Bin 0 -> 151238 bytes
 .../code1-1a9d0a485d9f0939bcd7732fd87bf103.png     |  Bin 0 -> 77516 bytes
 .../code2-648eebe0861d540b9c3781536bdd1704.png     |  Bin 0 -> 76698 bytes
 ...e_notebook-542046feb8a312b5f6c057af551421c6.png |  Bin 0 -> 202937 bytes
 .../coder1-3782709e13fa240eb6c400a7faa1e905.png    |  Bin 0 -> 103243 bytes
 .../coder2-134fadb297b49b5f597b40d7a12ecfbf.png    |  Bin 0 -> 101206 bytes
 .../conf-42f135b00a0b3048efb6aa939efd30ac.png      |  Bin 0 -> 118443 bytes
 .../conf-ff77bc47a1f6af137a3326cc05cfdfee.png      |  Bin 0 -> 210078 bytes
 ...connectors-399832ebea5ac259c19088bb4290efc2.png |  Bin 0 -> 50741 bytes
 ...connectors-d405c391d0cfdd753e7b329433275117.png |  Bin 0 -> 129074 bytes
 ...nhancement-bbb20c198ecc048735b12e40157115e2.png |  Bin 0 -> 52061 bytes
 .../cover-87ff8832da8f5d9398ed5a1e2f283d0d.png     |  Bin 0 -> 275990 bytes
 .../cover-cfb54d18805b5d425d6bbd2659db2533.png     |  Bin 0 -> 501047 bytes
 .../cp_fail-a5b4c7c1cd38f2563b651b23daab8140.jpg   |  Bin 0 -> 58483 bytes
 ...adge_label-a6542822bd5a1e9274ca0017d25a9ccd.png |  Bin 0 -> 72641 bytes
 .../dashboard-78745d8d3ebe422b166a17631bfbe622.png |  Bin 0 -> 79576 bytes
 ...s_platform-a2d62b477382c15128b76c60e9c6be53.png |  Bin 0 -> 44163 bytes
 ...ggregation-e5caba8eee38a8444df6cb3382a1d978.png |  Bin 0 -> 404143 bytes
 ...ta_merging-b8ac385c5de9f96c13163aa65e382496.png |  Bin 0 -> 108710 bytes
 ..._processes-6b611077be80fd421d883accd5acb423.png |  Bin 0 -> 68034 bytes
 ...ata_source-5f9b710b4186a08571192ae81ab350d1.png |  Bin 0 -> 107083 bytes
 ...dependency-172169d43c50f455fb7e2c7e08de32a2.png |  Bin 0 -> 25085 bytes
 ...dependency-a3b9ff29795acb8a1fd4ed6bb773d53e.png |  Bin 0 -> 98231 bytes
 .../deploy-d486a5c0eb238a9f2a6ce5f2b3013500.png    |  Bin 0 -> 122424 bytes
 .../detail-e9ee4c14e45068bea5e1edabec596bee.png    |  Bin 0 -> 127902 bytes
 ...efficiency-2b27930ac18721c40acb006c03806e69.png |  Bin 0 -> 76160 bytes
 ...nt_process-476918cfd29159983fe26b36ef487895.png |  Bin 0 -> 60969 bytes
 ...s_platform-97e53d17c155a4d98431a1ab52a7bd13.png |  Bin 0 -> 64491 bytes
 ...fficulties-81db2f256a9e39ae8c9ba9730aa37585.png |  Bin 0 -> 57748 bytes
 ...er_setting-55ff0f03235a1708b428b016d8ccc8a2.png |  Bin 0 -> 342113 bytes
 ...er_setting-80acf43cf64fd390e4d50da8830671c0.png |  Bin 0 -> 76829 bytes
 ...em_setting-60d5b7d9e930185cf1a9a404beab9dc0.png |  Bin 0 -> 39868 bytes
 .../doris-4baaea78343b928b0a798ae9238c489f.png     |  Bin 0 -> 132409 bytes
 ...ness_order-a017b7fa6dac855794cf9720a0421090.png |  Bin 0 -> 70001 bytes
 ...dwd_orders-8343ec8277c69354f8ee7cac0c4c9f91.png |  Bin 0 -> 100067 bytes
 ...rder_count-1abbcf7d6b31f15e49f2e035ecfdb8d7.png |  Bin 0 -> 19097 bytes
 ...r_count_op-72bb62943dcef89451b47db142cfe689.png |  Bin 0 -> 19358 bytes
 ...properties-33cd67364d80285f0e480974a60d52ff.jpg |  Bin 0 -> 18723 bytes
 .../earnings-40d9739c55527d669e4f90c739571049.png  |  Bin 0 -> 578133 bytes
 ...il_setting-7b8ddba6688c75cfad32f5d16e93354f.png |  Bin 0 -> 44536 bytes
 ...enterprise-c8641726b9205b14e3e330d10e73bb68.png |  Bin 0 -> 213773 bytes
 ...ution_mode-1182aeb8efe9572ec98c2a2b95293dc1.png |  Bin 0 -> 64693 bytes
 ...parameters-75c3f87809d0675c2fc82bc8d2ec096e.jpg |  Bin 0 -> 162669 bytes
 ...sitization-3005c6f1d9c2f7ad0530d09a5a9aecea.png |  Bin 0 -> 58271 bytes
 ...tion_table-e200cbbf0081e2d416411659a188bb90.png |  Bin 0 -> 25780 bytes
 ...ialization-f270b827e85b0ff840bf3db25686349c.png |  Bin 0 -> 277666 bytes
 .../flink_cdc-318444c917eb66f591a5c75db9662e78.png |  Bin 0 -> 40876 bytes
 ...flink_conf-1c8b9773c6678621a140320ae2a8525f.jpg |  Bin 0 -> 23226 bytes
 ...flink_conf-db4fdbcbac08f9e19eaf550c1332de25.png |  Bin 0 -> 71926 bytes
 ..._dashboard-4bcca1ae4f103249bd7c6c48625a4959.png |  Bin 0 -> 72311 bytes
 ...flink_home-0a6f4f2014cc87b074ef259088af2b98.png |  Bin 0 -> 34874 bytes
 ...flink_home-effa79b6d882bdee8a3963543b193a0b.png |  Bin 0 -> 90462 bytes
 .../flink_job-2769695ec6b0a9446b8d5f4828976b7d.png |  Bin 0 -> 35931 bytes
 ...parameters-ff7790882a753bd88fbf5db9b775a0e3.png |  Bin 0 -> 213172 bytes
 ...ink_shaded-f21909c81059b2ea4ebd8307998cbc26.png |  Bin 0 -> 173825 bytes
 .../flink_sql-13f6952f92585140c5fc640b490918b0.png |  Bin 0 -> 143648 bytes
 .../flink_sql-a8811954a9f765640bb08ad9cd139a15.png |  Bin 0 -> 56199 bytes
 ...ql_version-a02b0f0eac9c5d6c0281b7471e438b78.png |  Bin 0 -> 243524 bytes
 ...ink_system-02dee8b704254087aae900731ae47076.png |  Bin 0 -> 54347 bytes
 .../flink_ui-1a5557a19b30e92802eab1b75cc4a574.png  |  Bin 0 -> 124061 bytes
 ...link_webui-ca719f066a60a19004af7d6761eae27d.png |  Bin 0 -> 88111 bytes
 .../flinksql-13b242feb3803b15e6698635a79065b4.png  |  Bin 0 -> 122976 bytes
 ...on_setting-b170a43882590683ea0c7f109f909396.png |  Bin 0 -> 55668 bytes
 .../flow-c2227ba0cc1f59f78e2164fdb3657223.png      |  Bin 0 -> 380020 bytes
 ...me-webfont-c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg | 2671 ++++++++++++++++++++
 .../function-c2d3ad419e1676a0253d933935921a71.png  |  Bin 0 -> 146677 bytes
 .../git-90b5c4fc3c5c732e3e2757fc83ecb1d4.png       |  Bin 0 -> 180339 bytes
 .../hadoop-1c0b84f088853fdc601244e8fad4abdf.png    |  Bin 0 -> 14324 bytes
 .../hdfs_conf-8af6d1660d09b58fc28a6fec1bff604b.png |  Bin 0 -> 14950 bytes
 ...rical_logs-815b75ba2fe1a1d1d90c284999e35f3d.png |  Bin 0 -> 192580 bytes
 ...ery_paimon-9203a5f6debb35ce41f9f51be06e1446.png |  Bin 0 -> 570715 bytes
 .../homework-96030dec4ea9db88b42668873f5a176d.png  |  Bin 0 -> 135558 bytes
 ...rk_manager-96dc37860dd87f12ed55311b38116931.png |  Bin 0 -> 155211 bytes
 ...ork_submit-1f05dacf0fedfd1423f89ca2dec28437.png |  Bin 0 -> 97046 bytes
 ...scheduling-267e8ae0aa04d5901cd98bea50370d69.png |  Bin 0 -> 142224 bytes
 .../idea-d654040d5fad6fefd756ede9a9ac8a4b.png      |  Bin 0 -> 238741 bytes
 ...ss_setting-2b8e1403aae4ff708a05f61f87d34733.png |  Bin 0 -> 67162 bytes
 .../job-767d96706631b95dadf7638c142a0adc.png       |  Bin 0 -> 323214 bytes
 ...oes_online-ae38a4f939687b0e80e8e5677885fe0d.png |  Bin 0 -> 77184 bytes
 ...management-57ac8eebee7ab32d4d55008faade15ff.png |  Bin 0 -> 59143 bytes
 ...management-ccb5b6adb51dd3dc263c4511360a4291.png |  Bin 0 -> 89720 bytes
 ..._mirroring-8cbc7decc438aa15ca8166ba9a0bd7c1.png |  Bin 0 -> 42630 bytes
 .../k8s-9a28cd8f0e9c996501193f591ebe22b0.png       |  Bin 0 -> 95234 bytes
 ...app_detail-5ee71eb0d0e20f2c6e3009e98b3d63db.png |  Bin 0 -> 391958 bytes
 ...ion_submit-7d2a3d17220cc3048b6d5b22184f9afc.png |  Bin 0 -> 422783 bytes
 .../k8s_job-1759da059df126162f2b7e0c7b9b121a.png   |  Bin 0 -> 109596 bytes
 .../k8s_log-aafb7f2dff97d584b187ab4a22de9eaf.png   |  Bin 0 -> 351069 bytes
 .../k8s_pvc-cdeee4dafe036102e017aad3b6c13f5d.png   |  Bin 0 -> 298852 bytes
 .../kappa-924eb8691ece5d996d9aa740e5b79230.png     |  Bin 0 -> 71378 bytes
 ...parameters-1a28fec8d9d3dc57744324db4ef58551.png |  Bin 0 -> 155544 bytes
 .../lambda-e357a7e34ced4e82971d4b86acc790b4.png    |  Bin 0 -> 168925 bytes
 .../launcher-766611cb0dddb99d8437ead44d0665d4.png  |  Bin 0 -> 89504 bytes
 .../ldap-39a8f66b7bba105117ecbfc54551dc95.png      |  Bin 0 -> 225948 bytes
 .../lib-681f949f839a87303f598e2e7b907e24.png       |  Bin 0 -> 99474 bytes
 .../lib-faa76eddded5bdcb4228bf65c2d3122d.png       |  Bin 0 -> 63873 bytes
 .../link_jump-f353a479fac3e5576056edcaab705dda.png |  Bin 0 -> 115677 bytes
 .../log-42ef92b8036ed3698fb0fbb1abdaecab.png       |  Bin 0 -> 107457 bytes
 .../logs-e4e9f2084f1fbcf0a4afe079433cef0a.png      |  Bin 0 -> 104856 bytes
 .../loki-372203296a8af19f7a32fcd2162fdc29.png      |  Bin 0 -> 92851 bytes
 ...management-9eb1dec5b2fa480e897cf1c12d1425d8.png |  Bin 0 -> 205363 bytes
 .../manager-07ba2a4bc979cd2dd86fc9e07384ec61.png   |  Bin 0 -> 67613 bytes
 ...am_support-ea9b19ef43d528e9be9016efa65f80fc.png |  Bin 0 -> 40011 bytes
 ...components-85e9f3f218c9c5ef79d3792aec9540ac.png |  Bin 0 -> 82910 bytes
 ...tion_modes-56bb5cc794122dd7ac987f57999afb33.png |  Bin 0 -> 77690 bytes
 ...chitecture-ad376f8ae79ab66d90d95742e8335d53.png |  Bin 0 -> 109019 bytes
 .../new_cover-4883e1aa52dc856ae160abd142daf867.png |  Bin 0 -> 364478 bytes
 .../new_cover-5991f0d6d5ee86bc8716862748caf484.png |  Bin 0 -> 374777 bytes
 .../nocos-382ee7fe44f0199ec2209b703381d6cf.png     |  Bin 0 -> 12154 bytes
 .../ods-bc0d5ecbef808b0ca349311569803f18.png       |  Bin 0 -> 76573 bytes
 ...e_flinksql-ca82a6f42e04e54e9f6da2b1e391b073.png |  Bin 0 -> 38770 bytes
 ...online_jar-48549248f657388c7aebc0c8491660fa.png |  Bin 0 -> 128451 bytes
 .../operation-067a84b9b5b1491206780076f98e6f8d.png |  Bin 0 -> 167437 bytes
 ...background-dd9ae29be9c5d959a649bb9dd8f7a1dc.png |  Bin 0 -> 58989 bytes
 ...chitecture-efc4272dcb2fcdadac42d40cf1a6a931.png |  Bin 0 -> 58965 bytes
 ...paimon-dwd-d3b020d2bd2b78c26944a6928be39e4e.png |  Bin 0 -> 72592 bytes
 ...paimon-dwm-778a748d6b64c9e61d73e6b6da1d625f.png |  Bin 0 -> 11102 bytes
 ...paimon-dws-632e1291e21c4f628f7e87ca03ae5c6f.png |  Bin 0 -> 12942 bytes
 ...paimon-ods-876cf67ff375c0b5cb67d4a0e555b1a3.png |  Bin 0 -> 73353 bytes
 ...og_setting-aa6a826f1cb1a7d9c90fc3fae71a0ef3.png |  Bin 0 -> 37066 bytes
 .../pain-4d2aee42ea7aae80eaeac17a6d51c090.png      |  Bin 0 -> 199614 bytes
 .../parameter-d7feafe0cd25f249bec4b2115d64ec00.png |  Bin 0 -> 106709 bytes
 ...figuration-94fb5d7ee0c9c04ed6d79ddb1cd3c1c7.png |  Bin 0 -> 213812 bytes
 ...permission-affd274acd10773ad4531da9102f3f91.png |  Bin 0 -> 135332 bytes
 ...ermissions-5879a5913ed1c6f93481b0951b139fc3.png |  Bin 0 -> 161960 bytes
 .../pipline-60b68a9487092b6866020ce983a85ac0.png   |  Bin 0 -> 134002 bytes
 ...background-e591fd5ed3391480217c668f70519d28.png |  Bin 0 -> 44176 bytes
 ...nstruction-b73e12b57a4a9f558ada77038496bf50.png |  Bin 0 -> 301572 bytes
 ..._evolution-9d3427a9bb13529e6a6540f6a77e152b.png |  Bin 0 -> 42457 bytes
 ...management-f3f784103707c8e3b67a3bcdda5a3dd6.png |  Bin 0 -> 77489 bytes
 .../pod-d46370aaff2c34c4fe6a584c0524b28e.png       |  Bin 0 -> 141062 bytes
 ...d_template-4a36a24383f78f09d3090e5ddf7fe1fa.png |  Bin 0 -> 120895 bytes
 ...d_template-722285f448ec8adc0fa939d0baea2d10.png |  Bin 0 -> 175911 bytes
 ...d_template-d8a9864bc8486d493025cc5e8b0e6dd1.png |  Bin 0 -> 99549 bytes
 .../pom-949e43be1f8e611776858b7573047de2.jpg       |  Bin 0 -> 29082 bytes
 ...ort_number-e421801c946def0b0e2df3747239fec6.png |  Bin 0 -> 108692 bytes
 ...cess_steps-602d682d0f781a6178e3793ed9e434e7.png |  Bin 0 -> 25288 bytes
 ...nvironment-4f155f3b14a4e95c5367ba99a6c5a6f8.png |  Bin 0 -> 159655 bytes
 ...figuration-add3d079bba91ac4977b830d3c3fe8f7.png |  Bin 0 -> 52385 bytes
 .../queue-83552f1862acff8811b74488e8fe7c05.png     |  Bin 0 -> 37211 bytes
 ..._warehouse-418beb6d713966065d731eb8417b8a6e.png |  Bin 0 -> 94212 bytes
 .../recover-f1de53fdbe66c50b465d58d0a66050de.jpg   |  Bin 0 -> 29790 bytes
 .../relevancy-a1914717d6479d16e07f7f1e6193f409.png |  Bin 0 -> 176912 bytes
 .../remote-c75d520f5a61d9f100c0e1c58d304eb3.png    |  Bin 0 -> 48024 bytes
 ...Submission-390200dc9d1b5a55add19d303add2698.png |  Bin 0 -> 83675 bytes
 ...e_overview-b7f0b5ccafd202f82c515c64e48cd377.png |  Bin 0 -> 107737 bytes
 .../road_map-1a30ee719bdadf2e0ea31d6ea9e957bc.png  |  Bin 0 -> 48992 bytes
 ...dependency-932be3682bef8d8cd169522c00cfd12b.png |  Bin 0 -> 115324 bytes
 ...ermissions-cd7665f926dd3c92e8479be34f9084d5.png |  Bin 0 -> 104519 bytes
 ...ions_table-780239498d6b6d09c8a5c1ffe4ad44ef.png |  Bin 0 -> 30990 bytes
 ...run_status-5a663d9169c0bce8f4cfb993db77ae59.png |  Bin 0 -> 188753 bytes
 .../savepoint-b0288f5293875d156f20dbe768384076.png |  Bin 0 -> 120087 bytes
 ...screenshot-2906914515b810aadb10db951d4f02bd.png |  Bin 0 -> 192870 bytes
 .../source-afa30e0d3ab0116582cc4bd7831ce2ca.png    |  Bin 0 -> 24125 bytes
 ...sql_client-32fd9eb063198e6f35349187eed61546.png |  Bin 0 -> 243094 bytes
 ...ql_develop-ef85f6a001fb814d494c9b39eb2dfba9.png |  Bin 0 -> 28229 bytes
 .../sql_job-8e9bfa3d04866e5bf5e05103048f0e09.png   |  Bin 0 -> 141054 bytes
 .../sqlverify-7e12cf343c9c81fcbc2e20f8d7588f1b.png |  Bin 0 -> 128683 bytes
 .../start-71fbb288851d022c450a6bd34e8b4dc2.png     |  Bin 0 -> 164457 bytes
 .../start_log-6ce6b3125c8693db96197193241d6807.png |  Bin 0 -> 15848 bytes
 ...rt_the_job-036fdf864d022cf8de2282af72d4b3ca.png |  Bin 0 -> 52460 bytes
 ...timization-06c675fa387cb316cc225fb0b1576451.png |  Bin 0 -> 71677 bytes
 ...e_recovery-7d0a5ecaf3c3af7ffe33f85abf3d51a8.png |  Bin 0 -> 58358 bytes
 ...bottleneck-436fee79261994fd26eda735d2833e70.png |  Bin 0 -> 80424 bytes
 ...status_log-eed735d5dc4c6954042376d7b6f12388.png |  Bin 0 -> 67477 bytes
 .../step-d945592bbe32c0e093289c6265472f1c.png      |  Bin 0 -> 33354 bytes
 ...ep_details-301b14f2dbfa9c41f4c0e75a9086f0a4.png |  Bin 0 -> 590212 bytes
 ..._warehouse-ab83b309ef461f3907c2df023143c817.png |  Bin 0 -> 276056 bytes
 ...park_apis-574b985bc649f26aacf875ccd0155793.jpeg |  Bin 0 -> 323045 bytes
 ...rk_archite-208af7dd55c924f7fd8e07280b3b89c4.png |  Bin 0 -> 289155 bytes
 ...ebug_build-06cd03c36e5fe03d771f69ebf0edb2fb.png |  Bin 0 -> 184388 bytes
 ..._debugging-8f400df7199ad25248a1268668f96a01.png |  Bin 0 -> 240274 bytes
 ...er-compose-b54adcb7090f479ccb4db544ac8577b9.png |  Bin 0 -> 30747 bytes
 ..._ls_hadoop-8e7848bd06b4c193ef02d0f722ad006a.png |  Bin 0 -> 106300 bytes
 ..._docker_ps-c715c198d48a9cffef4731beedef4f94.png |  Bin 0 -> 140437 bytes
 ..._flinkhome-d6e90dd6fa04a003feef2eb6086ca3c3.png |  Bin 0 -> 58419 bytes
 ...nd_running-2cdb3e36175fc1f655b9db0273e1aab2.png |  Bin 0 -> 45565 bytes
 ..._kafkaapi-c3eb75726e1ec7cb8788dea846c54933.jpeg |  Bin 0 -> 253353 bytes
 ...ark_login-c38d72811068f2d3b2bd865ac7cb759b.jpeg |  Bin 0 -> 209275 bytes
 ...figuration-176261306c7c0ef7ca0b8067967d6826.jpg |  Bin 0 -> 243907 bytes
 ...un_config-d518cfc4f960434b126b8376571a04bb.jpeg |  Bin 0 -> 427488 bytes
 ...life_cycle-7bfdf4f1228b36f59fae79943d5c8108.png |  Bin 0 -> 191835 bytes
 ...elect_team-a9cb67779e6ad36c3ccab02a3382acc2.jpg |  Bin 0 -> 69971 bytes
 ...ings_2.0.0-8af18c05b4a169fb3b482186c00dcadf.png |  Bin 0 -> 96220 bytes
 ...tion_image-6022aab5159e058f0cb295ef4f13f508.png |  Bin 0 -> 34225 bytes
 ...on_process-bb3efd39e3f2e76595995647327be75a.png |  Bin 0 -> 66732 bytes
 ...successful-5bef1e14d16c3e90b504d99e28e70d2e.png |  Bin 0 -> 42964 bytes
 .../sync_conf-9d2b45b6f42376859fda062127e33d82.png |  Bin 0 -> 208559 bytes
 ...on_process-0fa72272598ce1fbf180e4f859cf59dc.png |  Bin 0 -> 105191 bytes
 ...ystem_list-6e9c13318d5aa2cfa4cdc11ac42c5844.png |  Bin 0 -> 69998 bytes
 ...em_setting-6b5b21f22fc4a32b973ede0a5f21ebc2.png |  Bin 0 -> 47347 bytes
 ...management-d7b65ce685ba87d759bcae290b0cbbe1.png |  Bin 0 -> 257733 bytes
 ..._retrieval-eee86f9c0af117cbf15d2af5d528b2cc.png |  Bin 0 -> 107386 bytes
 .../token-94cb364497fe129fc62be3bbb7193390.png     |  Bin 0 -> 91286 bytes
 ...versioning-641f09a5fcccd37dda2ed9d4cac14413.png |  Bin 0 -> 32833 bytes
 .../yarn_log-100e18b484ec81cf3165736de8259365.png  |  Bin 0 -> 25085 bytes
 zh-CN/assets/js/01a85c17.83951d21.js               |    1 +
 zh-CN/assets/js/035672d3.58cd672b.js               |    1 +
 zh-CN/assets/js/04b66cf6.9463962c.js               |    1 +
 zh-CN/assets/js/06e46547.48590eff.js               |    1 +
 zh-CN/assets/js/06e7197c.58db4ccc.js               |    1 +
 zh-CN/assets/js/09df2efc.2da3c0c2.js               |    1 +
 zh-CN/assets/js/0a56bba8.d7250073.js               |    1 +
 zh-CN/assets/js/0d357cdf.ed4538b5.js               |    1 +
 zh-CN/assets/js/0e49e91b.01983af7.js               |    1 +
 zh-CN/assets/js/107453fe.5bb28eee.js               |    1 +
 zh-CN/assets/js/138e0e15.849656d0.js               |    1 +
 zh-CN/assets/js/16273241.212daa85.js               |    1 +
 zh-CN/assets/js/17896441.38003341.js               |    1 +
 zh-CN/assets/js/181d6f49.9cfe3981.js               |    1 +
 zh-CN/assets/js/19318848.919d2fc0.js               |    1 +
 zh-CN/assets/js/1a30bbe5.36c0e9a6.js               |    1 +
 zh-CN/assets/js/1a4e3797.b0b687eb.js               |    1 +
 zh-CN/assets/js/1df93b7f.56a95d19.js               |    1 +
 zh-CN/assets/js/1f391b9e.0c1694e7.js               |    1 +
 zh-CN/assets/js/238ac0eb.3d5f2975.js               |    1 +
 zh-CN/assets/js/2397994d.22cc2f13.js               |    1 +
 zh-CN/assets/js/25683283.31c7711f.js               |    1 +
 zh-CN/assets/js/25d6b952.c122818e.js               |    1 +
 zh-CN/assets/js/2642.c00639e2.js                   |    1 +
 zh-CN/assets/js/271ff943.441fa1cf.js               |    1 +
 zh-CN/assets/js/2a0e8467.dac48ead.js               |    1 +
 zh-CN/assets/js/2a28eb89.a999d4bc.js               |    1 +
 zh-CN/assets/js/2be56a3a.e47e1355.js               |    1 +
 zh-CN/assets/js/30c3bee4.294eba49.js               |    1 +
 zh-CN/assets/js/36994c47.a1ce9430.js               |    1 +
 zh-CN/assets/js/3e22f455.d3a6c8a0.js               |    1 +
 zh-CN/assets/js/428f0e35.c53b8dd2.js               |    1 +
 zh-CN/assets/js/43a997bb.acbce27e.js               |    1 +
 zh-CN/assets/js/44fd2745.48ffe0fe.js               |    1 +
 zh-CN/assets/js/451cf782.12485415.js               |    1 +
 zh-CN/assets/js/45dbebef.0a2367f1.js               |    1 +
 zh-CN/assets/js/4724b0f5.85d2e880.js               |    1 +
 zh-CN/assets/js/4ac8765b.6123a147.js               |    1 +
 zh-CN/assets/js/4b98d89b.1c9b3acd.js               |    1 +
 zh-CN/assets/js/4f0649e0.eaf00ef6.js               |    1 +
 zh-CN/assets/js/5581.8533cd94.js                   |    1 +
 zh-CN/assets/js/55fe8cd1.b30f7eb0.js               |    1 +
 zh-CN/assets/js/5731d9fc.b4f9f61a.js               |    1 +
 zh-CN/assets/js/5808497c.4521a262.js               |    1 +
 zh-CN/assets/js/586f532c.0794d51e.js               |    1 +
 zh-CN/assets/js/5d4da1d7.d6c99612.js               |    1 +
 zh-CN/assets/js/5e95c892.f48bcd03.js               |    1 +
 zh-CN/assets/js/61d4c0e4.dbf30d8e.js               |    1 +
 zh-CN/assets/js/6324c440.3cb3deaa.js               |    1 +
 zh-CN/assets/js/659ec0cd.2f1bea48.js               |    1 +
 zh-CN/assets/js/671bbfe3.551bf261.js               |    1 +
 zh-CN/assets/js/6875c492.1b75a995.js               |    1 +
 zh-CN/assets/js/6968b7d2.46f2cbdf.js               |    1 +
 zh-CN/assets/js/6f798eec.67c96caf.js               |    1 +
 zh-CN/assets/js/735ee4c9.a54aa79e.js               |    1 +
 zh-CN/assets/js/7728a48f.68c37a9b.js               |    1 +
 zh-CN/assets/js/7f5614eb.98f67dd8.js               |    1 +
 zh-CN/assets/js/814f3328.00719f40.js               |    1 +
 zh-CN/assets/js/82500c57.fa84ed95.js               |    1 +
 zh-CN/assets/js/8310.437ca112.js                   |    1 +
 zh-CN/assets/js/83940afa.622216de.js               |    1 +
 zh-CN/assets/js/848a415b.2ff967b5.js               |    1 +
 zh-CN/assets/js/868e7944.e3c771b7.js               |    1 +
 zh-CN/assets/js/890f521a.97112fca.js               |    1 +
 zh-CN/assets/js/8b14544a.4105fa45.js               |    1 +
 zh-CN/assets/js/8c190214.8517e4b5.js               |    1 +
 zh-CN/assets/js/8d37854c.35084147.js               |    1 +
 zh-CN/assets/js/8d508cec.d3dd333c.js               |    1 +
 zh-CN/assets/js/9056.00f94733.js                   |    1 +
 zh-CN/assets/js/971833f8.ae0032c9.js               |    1 +
 zh-CN/assets/js/974abdd9.4460c0ed.js               |    1 +
 zh-CN/assets/js/9951.375399f0.js                   |    2 +
 zh-CN/assets/js/9951.375399f0.js.LICENSE.txt       |    1 +
 zh-CN/assets/js/9c21d8f8.9dba35ca.js               |    1 +
 zh-CN/assets/js/9ceb4166.fa37b72c.js               |    1 +
 zh-CN/assets/js/9cee7b09.c278eeae.js               |    1 +
 zh-CN/assets/js/9e4087bc.c9d1afd4.js               |    1 +
 zh-CN/assets/js/a0f8bb27.d8197e12.js               |    1 +
 zh-CN/assets/js/a6aa9e1f.99eadeda.js               |    1 +
 zh-CN/assets/js/a7456010.db527b80.js               |    1 +
 zh-CN/assets/js/a7bd4aaa.35bdde18.js               |    1 +
 zh-CN/assets/js/a94703ab.2e82f47a.js               |    1 +
 zh-CN/assets/js/a950ec99.372e6937.js               |    1 +
 zh-CN/assets/js/aba21aa0.e3e72c9e.js               |    1 +
 zh-CN/assets/js/acecf23e.9a770f2b.js               |    1 +
 zh-CN/assets/js/b6f232fb.789a625b.js               |    1 +
 zh-CN/assets/js/b7a9f970.029fad57.js               |    1 +
 zh-CN/assets/js/b8837a77.e3bda3d7.js               |    1 +
 zh-CN/assets/js/bc37b46f.6f26c549.js               |    1 +
 zh-CN/assets/js/be8f91a4.bbc5c638.js               |    1 +
 zh-CN/assets/js/becc4ce2.e4c3f278.js               |    1 +
 zh-CN/assets/js/c031ca48.e9d870e7.js               |    1 +
 zh-CN/assets/js/c20ada1e.0fe251f7.js               |    1 +
 zh-CN/assets/js/c4e7c4ba.df68d084.js               |    1 +
 zh-CN/assets/js/c8e6c20d.b06e0a48.js               |    1 +
 zh-CN/assets/js/c92a52da.7001772f.js               |    1 +
 zh-CN/assets/js/ccc49370.adebf72b.js               |    1 +
 zh-CN/assets/js/d1a11acb.6f416903.js               |    1 +
 zh-CN/assets/js/d1edd000.14dccabb.js               |    1 +
 zh-CN/assets/js/d8340e3c.62d4afc7.js               |    1 +
 zh-CN/assets/js/db517c30.15d6d7a1.js               |    1 +
 zh-CN/assets/js/dcaea5b7.373ba0a6.js               |    1 +
 zh-CN/assets/js/dfacc132.d321563c.js               |    1 +
 zh-CN/assets/js/dff4fd6e.db7d0e60.js               |    1 +
 zh-CN/assets/js/e0719818.e112f5b9.js               |    1 +
 zh-CN/assets/js/e131a263.97111d36.js               |    1 +
 zh-CN/assets/js/e4613c78.9228e65f.js               |    1 +
 zh-CN/assets/js/e5171d30.375297de.js               |    1 +
 zh-CN/assets/js/e523bc1f.e29c18e2.js               |    1 +
 zh-CN/assets/js/e5b5497a.7324cf21.js               |    1 +
 zh-CN/assets/js/e71b3f16.1bde03c7.js               |    1 +
 zh-CN/assets/js/e848fd64.1da628ab.js               |    1 +
 zh-CN/assets/js/e98e7c58.9dd4a793.js               |    1 +
 zh-CN/assets/js/eaa9482d.9a3e483e.js               |    1 +
 zh-CN/assets/js/ec0307bd.8bc0be7f.js               |    1 +
 zh-CN/assets/js/ecfd5863.5e3d408e.js               |    1 +
 zh-CN/assets/js/f106860d.d02d9245.js               |    1 +
 zh-CN/assets/js/f43e6221.f6a39dd1.js               |    1 +
 zh-CN/assets/js/f6235b5a.d6260dd8.js               |    1 +
 zh-CN/assets/js/f980d281.afc8327b.js               |    1 +
 zh-CN/assets/js/fb5fbd68.c8f5b48f.js               |    1 +
 zh-CN/assets/js/fc041bda.99fcd265.js               |    1 +
 zh-CN/assets/js/main.18c98162.js                   |    2 +
 zh-CN/assets/js/main.18c98162.js.LICENSE.txt       |  135 +
 zh-CN/assets/js/runtime~main.5aac20ac.js           |    1 +
 zh-CN/blog/archive/index.html                      |   43 +
 zh-CN/blog/atom.xml                                | 1665 ++++++++++++
 zh-CN/blog/belle/author.png                        |  Bin 0 -> 134606 bytes
 zh-CN/blog/belle/dashboard.png                     |  Bin 0 -> 79576 bytes
 zh-CN/blog/belle/dependency.png                    |  Bin 0 -> 98231 bytes
 zh-CN/blog/belle/detail.png                        |  Bin 0 -> 127902 bytes
 zh-CN/blog/belle/doris.png                         |  Bin 0 -> 132409 bytes
 zh-CN/blog/belle/flinksql.png                      |  Bin 0 -> 122976 bytes
 zh-CN/blog/belle/flow.png                          |  Bin 0 -> 380020 bytes
 zh-CN/blog/belle/k8s.png                           |  Bin 0 -> 95234 bytes
 zh-CN/blog/belle/pod.png                           |  Bin 0 -> 141062 bytes
 zh-CN/blog/belle/sqlverify.png                     |  Bin 0 -> 128683 bytes
 zh-CN/blog/belle/start.png                         |  Bin 0 -> 164457 bytes
 zh-CN/blog/bondex/Bondex.png                       |  Bin 0 -> 398441 bytes
 zh-CN/blog/bondex/aliyun.png                       |  Bin 0 -> 44327 bytes
 zh-CN/blog/bondex/all_datastream.jpg               |  Bin 0 -> 29584 bytes
 zh-CN/blog/bondex/application_setting.png          |  Bin 0 -> 104525 bytes
 zh-CN/blog/bondex/cp_fail.jpg                      |  Bin 0 -> 58483 bytes
 zh-CN/blog/bondex/dockersystem_setting.png         |  Bin 0 -> 39868 bytes
 zh-CN/blog/bondex/dwd_business_order.png           |  Bin 0 -> 70001 bytes
 zh-CN/blog/bondex/dwd_orders.png                   |  Bin 0 -> 100067 bytes
 zh-CN/blog/bondex/dwm_business_order_count.png     |  Bin 0 -> 19097 bytes
 zh-CN/blog/bondex/dws_business_order_count_op.png  |  Bin 0 -> 19358 bytes
 zh-CN/blog/bondex/dynamic_properties.jpg           |  Bin 0 -> 18723 bytes
 zh-CN/blog/bondex/flink_conf.jpg                   |  Bin 0 -> 23226 bytes
 zh-CN/blog/bondex/flink_dashboard.png              |  Bin 0 -> 72311 bytes
 zh-CN/blog/bondex/kappa.png                        |  Bin 0 -> 71378 bytes
 zh-CN/blog/bondex/lambda.png                       |  Bin 0 -> 168925 bytes
 zh-CN/blog/bondex/log.png                          |  Bin 0 -> 107457 bytes
 zh-CN/blog/bondex/loki.png                         |  Bin 0 -> 92851 bytes
 zh-CN/blog/bondex/ods.png                          |  Bin 0 -> 76573 bytes
 zh-CN/blog/bondex/paimon-dwd.png                   |  Bin 0 -> 72592 bytes
 zh-CN/blog/bondex/paimon-dwm.png                   |  Bin 0 -> 11102 bytes
 zh-CN/blog/bondex/paimon-dws.png                   |  Bin 0 -> 12942 bytes
 zh-CN/blog/bondex/paimon-ods.png                   |  Bin 0 -> 73353 bytes
 zh-CN/blog/bondex/paimon_catalog_setting.png       |  Bin 0 -> 37066 bytes
 zh-CN/blog/bondex/pipline.png                      |  Bin 0 -> 134002 bytes
 zh-CN/blog/bondex/pod_template.png                 |  Bin 0 -> 120895 bytes
 zh-CN/blog/bondex/pom.jpg                          |  Bin 0 -> 29082 bytes
 zh-CN/blog/bondex/realtime_warehouse.png           |  Bin 0 -> 94212 bytes
 zh-CN/blog/bondex/source.png                       |  Bin 0 -> 24125 bytes
 zh-CN/blog/bondex/status_log.png                   |  Bin 0 -> 67477 bytes
 zh-CN/blog/bondex/streaming_warehouse.png          |  Bin 0 -> 276056 bytes
 zh-CN/blog/changan/alarm_information.png           |  Bin 0 -> 73267 bytes
 zh-CN/blog/changan/capability.png                  |  Bin 0 -> 54673 bytes
 zh-CN/blog/changan/conf.png                        |  Bin 0 -> 118443 bytes
 zh-CN/blog/changan/connectors.png                  |  Bin 0 -> 50741 bytes
 zh-CN/blog/changan/cover.png                       |  Bin 0 -> 501047 bytes
 zh-CN/blog/changan/flink_home.png                  |  Bin 0 -> 90462 bytes
 zh-CN/blog/changan/hadoop.png                      |  Bin 0 -> 14324 bytes
 zh-CN/blog/changan/job.png                         |  Bin 0 -> 323214 bytes
 zh-CN/blog/changan/job_management.png              |  Bin 0 -> 89720 bytes
 zh-CN/blog/changan/lib.png                         |  Bin 0 -> 99474 bytes
 zh-CN/blog/changan/nocos.png                       |  Bin 0 -> 12154 bytes
 .../chinaunion/contribution_and_enhancement.png    |  Bin 0 -> 52061 bytes
 .../chinaunion/contribution_and_enhancement_en.png |  Bin 0 -> 860484 bytes
 .../blog/chinaunion/data_processing_processes.png  |  Bin 0 -> 68034 bytes
 .../chinaunion/data_processing_processes_en.png    |  Bin 0 -> 933928 bytes
 zh-CN/blog/chinaunion/development_efficiency.png   |  Bin 0 -> 76160 bytes
 .../blog/chinaunion/development_efficiency_en.png  |  Bin 0 -> 1069644 bytes
 zh-CN/blog/chinaunion/devops_platform.png          |  Bin 0 -> 64491 bytes
 zh-CN/blog/chinaunion/devops_platform_en.png       |  Bin 0 -> 870991 bytes
 zh-CN/blog/chinaunion/difficulties.png             |  Bin 0 -> 57748 bytes
 zh-CN/blog/chinaunion/difficulties_en.png          |  Bin 0 -> 1047547 bytes
 zh-CN/blog/chinaunion/job_management.png           |  Bin 0 -> 59143 bytes
 zh-CN/blog/chinaunion/job_management_en.png        |  Bin 0 -> 845008 bytes
 zh-CN/blog/chinaunion/multi_team_support.png       |  Bin 0 -> 40011 bytes
 zh-CN/blog/chinaunion/multi_team_support_en.png    |  Bin 0 -> 933424 bytes
 .../multiple_environments_and_components.png       |  Bin 0 -> 82910 bytes
 .../multiple_environments_and_components_en.png    |  Bin 0 -> 1018222 bytes
 zh-CN/blog/chinaunion/multiple_execution_modes.png |  Bin 0 -> 77690 bytes
 .../chinaunion/multiple_execution_modes_en.png     |  Bin 0 -> 930085 bytes
 zh-CN/blog/chinaunion/operational_background.png   |  Bin 0 -> 58989 bytes
 .../blog/chinaunion/operational_background_en.png  |  Bin 0 -> 908120 bytes
 zh-CN/blog/chinaunion/overall_architecture.png     |  Bin 0 -> 58965 bytes
 zh-CN/blog/chinaunion/overall_architecture_en.png  |  Bin 0 -> 885988 bytes
 zh-CN/blog/chinaunion/platform_background.png      |  Bin 0 -> 44176 bytes
 zh-CN/blog/chinaunion/platform_background_en.png   |  Bin 0 -> 847610 bytes
 zh-CN/blog/chinaunion/platform_evolution.png       |  Bin 0 -> 42457 bytes
 zh-CN/blog/chinaunion/platform_evolution_en.png    |  Bin 0 -> 897677 bytes
 zh-CN/blog/chinaunion/platformized_management.png  |  Bin 0 -> 77489 bytes
 .../blog/chinaunion/platformized_management_en.png |  Bin 0 -> 949047 bytes
 zh-CN/blog/chinaunion/road_map.png                 |  Bin 0 -> 48992 bytes
 zh-CN/blog/chinaunion/road_map_en.png              |  Bin 0 -> 874992 bytes
 zh-CN/blog/chinaunion/state_optimization.png       |  Bin 0 -> 71677 bytes
 zh-CN/blog/chinaunion/state_optimization_en.png    |  Bin 0 -> 792706 bytes
 zh-CN/blog/chinaunion/state_recovery.png           |  Bin 0 -> 58358 bytes
 zh-CN/blog/chinaunion/state_recovery_en.png        |  Bin 0 -> 875351 bytes
 .../chinaunion/status_acquisition_bottleneck.png   |  Bin 0 -> 80424 bytes
 .../status_acquisition_bottleneck_en.png           |  Bin 0 -> 812005 bytes
 zh-CN/blog/chinaunion/submission_process.png       |  Bin 0 -> 66732 bytes
 zh-CN/blog/chinaunion/submission_process_en.png    |  Bin 0 -> 941018 bytes
 zh-CN/blog/chinaunion/versioning.png               |  Bin 0 -> 32833 bytes
 zh-CN/blog/chinaunion/versioning_en.png            |  Bin 0 -> 753078 bytes
 zh-CN/blog/dustess/alarm_email.png                 |  Bin 0 -> 193949 bytes
 zh-CN/blog/dustess/author.png                      |  Bin 0 -> 124901 bytes
 zh-CN/blog/dustess/certificate.png                 |  Bin 0 -> 134883 bytes
 zh-CN/blog/dustess/checkpoint.png                  |  Bin 0 -> 101130 bytes
 zh-CN/blog/dustess/code_notebook.png               |  Bin 0 -> 202937 bytes
 zh-CN/blog/dustess/execution_mode.png              |  Bin 0 -> 64693 bytes
 zh-CN/blog/dustess/extended_parameters.jpg         |  Bin 0 -> 162669 bytes
 zh-CN/blog/dustess/flink_home.png                  |  Bin 0 -> 34874 bytes
 zh-CN/blog/dustess/flink_sql.png                   |  Bin 0 -> 143648 bytes
 zh-CN/blog/dustess/flink_sql_version.png           |  Bin 0 -> 243524 bytes
 zh-CN/blog/dustess/manager.png                     |  Bin 0 -> 67613 bytes
 zh-CN/blog/dustess/online_flinksql.png             |  Bin 0 -> 38770 bytes
 zh-CN/blog/dustess/online_jar.png                  |  Bin 0 -> 128451 bytes
 zh-CN/blog/dustess/parameter_configuration.png     |  Bin 0 -> 213812 bytes
 zh-CN/blog/dustess/recover.jpg                     |  Bin 0 -> 29790 bytes
 zh-CN/blog/dustess/system_list.png                 |  Bin 0 -> 69998 bytes
 zh-CN/blog/dustess/task_retrieval.png              |  Bin 0 -> 107386 bytes
 .../index.html                                     |  151 ++
 zh-CN/blog/haibo/analysis_models.png               |  Bin 0 -> 64250 bytes
 zh-CN/blog/haibo/application.png                   |  Bin 0 -> 200570 bytes
 zh-CN/blog/haibo/data_aggregation.png              |  Bin 0 -> 404143 bytes
 zh-CN/blog/haibo/data_source.png                   |  Bin 0 -> 107083 bytes
 zh-CN/blog/haibo/dependency.png                    |  Bin 0 -> 25085 bytes
 zh-CN/blog/haibo/deploy.png                        |  Bin 0 -> 122424 bytes
 zh-CN/blog/haibo/flink_cdc.png                     |  Bin 0 -> 40876 bytes
 zh-CN/blog/haibo/flink_sql.png                     |  Bin 0 -> 56199 bytes
 zh-CN/blog/index.html                              |   74 +
 zh-CN/blog/joyme/add_dependency.png                |  Bin 0 -> 66431 bytes
 zh-CN/blog/joyme/add_projectconfiguration.png      |  Bin 0 -> 52897 bytes
 zh-CN/blog/joyme/alarm_eamil.png                   |  Bin 0 -> 237201 bytes
 zh-CN/blog/joyme/application_interface.png         |  Bin 0 -> 157426 bytes
 zh-CN/blog/joyme/application_job.png               |  Bin 0 -> 135003 bytes
 zh-CN/blog/joyme/checkpoint_configuration.png      |  Bin 0 -> 163592 bytes
 zh-CN/blog/joyme/email_setting.png                 |  Bin 0 -> 44536 bytes
 zh-CN/blog/joyme/flink_system.png                  |  Bin 0 -> 54347 bytes
 zh-CN/blog/joyme/project_configuration.png         |  Bin 0 -> 52385 bytes
 zh-CN/blog/joyme/start_log.png                     |  Bin 0 -> 15848 bytes
 zh-CN/blog/joyme/system_setting.png                |  Bin 0 -> 47347 bytes
 zh-CN/blog/joyme/yarn_log.png                      |  Bin 0 -> 25085 bytes
 zh-CN/blog/page/2/index.html                       |   90 +
 zh-CN/blog/relx/alarm.png                          |  Bin 0 -> 50633 bytes
 zh-CN/blog/relx/checkpoint.png                     |  Bin 0 -> 128004 bytes
 zh-CN/blog/relx/development_process.png            |  Bin 0 -> 60969 bytes
 zh-CN/blog/relx/docker_setting.png                 |  Bin 0 -> 76829 bytes
 zh-CN/blog/relx/flink_parameters.png               |  Bin 0 -> 213172 bytes
 zh-CN/blog/relx/flinkversion_setting.png           |  Bin 0 -> 55668 bytes
 zh-CN/blog/relx/homework_submit.png                |  Bin 0 -> 97046 bytes
 zh-CN/blog/relx/kubernetes_base_parameters.png     |  Bin 0 -> 155544 bytes
 zh-CN/blog/relx/nativekubernetes_architecture.png  |  Bin 0 -> 109019 bytes
 zh-CN/blog/relx/operation.png                      |  Bin 0 -> 167437 bytes
 zh-CN/blog/relx/pod_template.png                   |  Bin 0 -> 175911 bytes
 zh-CN/blog/relx/run_status.png                     |  Bin 0 -> 188753 bytes
 zh-CN/blog/relx/savepoint.png                      |  Bin 0 -> 120087 bytes
 zh-CN/blog/relx/screenshot.png                     |  Bin 0 -> 192870 bytes
 zh-CN/blog/relx/step_details.png                   |  Bin 0 -> 590212 bytes
 zh-CN/blog/rss.xml                                 | 1667 ++++++++++++
 zh-CN/blog/shunwang/achievements1.png              |  Bin 0 -> 205363 bytes
 zh-CN/blog/shunwang/achievements2.png              |  Bin 0 -> 149014 bytes
 zh-CN/blog/shunwang/alarm.png                      |  Bin 0 -> 90036 bytes
 zh-CN/blog/shunwang/application.png                |  Bin 0 -> 183363 bytes
 zh-CN/blog/shunwang/autor.png                      |  Bin 0 -> 235078 bytes
 zh-CN/blog/shunwang/cluster.png                    |  Bin 0 -> 151238 bytes
 zh-CN/blog/shunwang/connectors.png                 |  Bin 0 -> 129074 bytes
 zh-CN/blog/shunwang/function.png                   |  Bin 0 -> 146677 bytes
 zh-CN/blog/shunwang/homework.png                   |  Bin 0 -> 135558 bytes
 zh-CN/blog/shunwang/homework_manager.png           |  Bin 0 -> 155211 bytes
 zh-CN/blog/shunwang/launcher.png                   |  Bin 0 -> 89504 bytes
 zh-CN/blog/shunwang/logs.png                       |  Bin 0 -> 104856 bytes
 zh-CN/blog/shunwang/management.png                 |  Bin 0 -> 205363 bytes
 zh-CN/blog/shunwang/pain.png                       |  Bin 0 -> 199614 bytes
 zh-CN/blog/shunwang/permission.png                 |  Bin 0 -> 135332 bytes
 zh-CN/blog/shunwang/queue.png                      |  Bin 0 -> 37211 bytes
 zh-CN/blog/shunwang/sql_client.png                 |  Bin 0 -> 243094 bytes
 zh-CN/blog/shunwang/sql_develop.png                |  Bin 0 -> 28229 bytes
 zh-CN/blog/shunwang/step.png                       |  Bin 0 -> 33354 bytes
 zh-CN/blog/streampark-flink-on-k8s/index.html      |  197 ++
 .../index.html                                     |  197 ++
 .../index.html                                     |  285 +++
 zh-CN/blog/streampark-usercase-changan/index.html  |  111 +
 .../blog/streampark-usercase-chinaunion/index.html |  149 ++
 zh-CN/blog/streampark-usercase-dustess/index.html  |  195 ++
 zh-CN/blog/streampark-usercase-haibo/index.html    |   97 +
 zh-CN/blog/streampark-usercase-joyme/index.html    |  114 +
 zh-CN/blog/streampark-usercase-shunwang/index.html |  138 +
 .../blog/streampark-usercase-tianyancha/index.html |  169 ++
 zh-CN/blog/streampark-usercase-ziru/index.html     |  238 ++
 zh-CN/blog/tags/data-stream/index.html             |   45 +
 zh-CN/blog/tags/flink-sql/index.html               |   78 +
 zh-CN/blog/tags/flink-sql/page/2/index.html        |   51 +
 zh-CN/blog/tags/index.html                         |   43 +
 zh-CN/blog/tags/kubernetes/index.html              |   43 +
 zh-CN/blog/tags/paimon/index.html                  |   51 +
 zh-CN/blog/tags/stream-park/index.html             |   74 +
 zh-CN/blog/tags/stream-park/page/2/index.html      |   90 +
 zh-CN/blog/tags/streaming-warehouse/index.html     |   51 +
 .../index.html"                                    |   81 +
 .../page/2/index.html"                             |   81 +
 zh-CN/blog/tianyancha/alarm.png                    |  Bin 0 -> 341152 bytes
 zh-CN/blog/tianyancha/challenges.png               |  Bin 0 -> 282076 bytes
 zh-CN/blog/tianyancha/earnings.png                 |  Bin 0 -> 578133 bytes
 zh-CN/blog/tianyancha/enterprise.png               |  Bin 0 -> 213773 bytes
 zh-CN/blog/tianyancha/git.png                      |  Bin 0 -> 180339 bytes
 zh-CN/blog/tianyancha/historical_logs.png          |  Bin 0 -> 192580 bytes
 zh-CN/blog/tianyancha/new_cover.png                |  Bin 0 -> 364478 bytes
 zh-CN/blog/tianyancha/permissions.png              |  Bin 0 -> 161960 bytes
 zh-CN/blog/tianyancha/sql_job.png                  |  Bin 0 -> 141054 bytes
 zh-CN/blog/tianyancha/successful.png               |  Bin 0 -> 42964 bytes
 zh-CN/blog/tianyancha/task_management.png          |  Bin 0 -> 257733 bytes
 zh-CN/blog/ziru/advanced.png                       |  Bin 0 -> 52909 bytes
 zh-CN/blog/ziru/after_the_transformation.png       |  Bin 0 -> 107092 bytes
 zh-CN/blog/ziru/api_copy.png                       |  Bin 0 -> 37419 bytes
 zh-CN/blog/ziru/arthas.png                         |  Bin 0 -> 161985 bytes
 zh-CN/blog/ziru/arthas_log.png                     |  Bin 0 -> 327895 bytes
 zh-CN/blog/ziru/call_link.png                      |  Bin 0 -> 110985 bytes
 zh-CN/blog/ziru/canal_job.png                      |  Bin 0 -> 49764 bytes
 zh-CN/blog/ziru/conf.png                           |  Bin 0 -> 210078 bytes
 zh-CN/blog/ziru/cover.png                          |  Bin 0 -> 275990 bytes
 zh-CN/blog/ziru/create_badge_label.png             |  Bin 0 -> 72641 bytes
 zh-CN/blog/ziru/data_access_platform.png           |  Bin 0 -> 44163 bytes
 zh-CN/blog/ziru/data_merging.png                   |  Bin 0 -> 108710 bytes
 zh-CN/blog/ziru/dockerfile.png                     |  Bin 0 -> 7108 bytes
 zh-CN/blog/ziru/field_desensitization.png          |  Bin 0 -> 58271 bytes
 zh-CN/blog/ziru/field_desensitization_table.png    |  Bin 0 -> 25780 bytes
 zh-CN/blog/ziru/first_initialization.png           |  Bin 0 -> 277666 bytes
 zh-CN/blog/ziru/flink_conf.png                     |  Bin 0 -> 71926 bytes
 zh-CN/blog/ziru/flink_job.png                      |  Bin 0 -> 35931 bytes
 zh-CN/blog/ziru/flink_shaded.png                   |  Bin 0 -> 173825 bytes
 zh-CN/blog/ziru/flink_ui.png                       |  Bin 0 -> 124061 bytes
 zh-CN/blog/ziru/flink_webui.png                    |  Bin 0 -> 88111 bytes
 zh-CN/blog/ziru/hdfs_conf.png                      |  Bin 0 -> 14950 bytes
 zh-CN/blog/ziru/high_freshness.png                 |  Bin 0 -> 3852 bytes
 zh-CN/blog/ziru/hive_query_paimon.png              |  Bin 0 -> 570715 bytes
 zh-CN/blog/ziru/http_scheduling.png                |  Bin 0 -> 142224 bytes
 zh-CN/blog/ziru/idea.png                           |  Bin 0 -> 238741 bytes
 zh-CN/blog/ziru/ingress_setting.png                |  Bin 0 -> 67162 bytes
 zh-CN/blog/ziru/job_goes_online.png                |  Bin 0 -> 77184 bytes
 zh-CN/blog/ziru/job_mirroring.png                  |  Bin 0 -> 42630 bytes
 zh-CN/blog/ziru/k8s_job.png                        |  Bin 0 -> 109596 bytes
 zh-CN/blog/ziru/k8s_log.png                        |  Bin 0 -> 351069 bytes
 zh-CN/blog/ziru/ldap.png                           |  Bin 0 -> 225948 bytes
 zh-CN/blog/ziru/lib.png                            |  Bin 0 -> 63873 bytes
 zh-CN/blog/ziru/link_jump.png                      |  Bin 0 -> 115677 bytes
 zh-CN/blog/ziru/low_freshness.png                  |  Bin 0 -> 2626 bytes
 zh-CN/blog/ziru/new_cover.png                      |  Bin 0 -> 374777 bytes
 zh-CN/blog/ziru/parameter.png                      |  Bin 0 -> 106709 bytes
 zh-CN/blog/ziru/platform_construction.png          |  Bin 0 -> 301572 bytes
 zh-CN/blog/ziru/pod_template.png                   |  Bin 0 -> 99549 bytes
 zh-CN/blog/ziru/port_number.png                    |  Bin 0 -> 108692 bytes
 zh-CN/blog/ziru/production_environment.png         |  Bin 0 -> 159655 bytes
 zh-CN/blog/ziru/relevancy.png                      |  Bin 0 -> 176912 bytes
 zh-CN/blog/ziru/resource_overview.png              |  Bin 0 -> 107737 bytes
 zh-CN/blog/ziru/row_level_permissions.png          |  Bin 0 -> 104519 bytes
 zh-CN/blog/ziru/row_level_permissions_table.png    |  Bin 0 -> 30990 bytes
 zh-CN/blog/ziru/start_the_job.png                  |  Bin 0 -> 52460 bytes
 zh-CN/blog/ziru/sync_conf.png                      |  Bin 0 -> 208559 bytes
 zh-CN/blog/ziru/system_interaction_process.png     |  Bin 0 -> 105191 bytes
 zh-CN/blog/ziru/token.png                          |  Bin 0 -> 91286 bytes
 .../contribution_guide/become_committer/index.html |   69 +
 .../become_pmc_member/index.html                   |   69 +
 .../contribution_guide/mailing_lists/index.html    |   70 +
 .../new_committer_process/index.html               |  103 +
 .../new_pmc_ember_process/index.html               |  106 +
 zh-CN/community/release/how_to_release/index.html  |  256 ++
 .../release/how_to_verify_release/index.html       |  151 ++
 .../code_style_and_quality_guide/index.html        |  668 +++++
 zh-CN/community/submit_guide/document/index.html   |   86 +
 .../documentation_style_guide/index.html           |  345 +++
 .../community/submit_guide/submit_code/index.html  |   95 +
 zh-CN/doc/image/alert/alert_add_ding_talk.png      |  Bin 0 -> 72561 bytes
 zh-CN/doc/image/alert/alert_add_email.png          |  Bin 0 -> 49526 bytes
 zh-CN/doc/image/alert/alert_add_example.png        |  Bin 0 -> 89944 bytes
 zh-CN/doc/image/alert/alert_add_lark.png           |  Bin 0 -> 67167 bytes
 zh-CN/doc/image/alert/alert_add_setting.png        |  Bin 0 -> 40086 bytes
 zh-CN/doc/image/alert/alert_add_wecom.png          |  Bin 0 -> 58015 bytes
 .../doc/image/alert/alert_application_example.png  |  Bin 0 -> 26699 bytes
 zh-CN/doc/image/alert/alert_conf_delete.png        |  Bin 0 -> 62691 bytes
 zh-CN/doc/image/alert/alert_conf_mail_sender.png   |  Bin 0 -> 76848 bytes
 zh-CN/doc/image/alert/alert_delete_success.png     |  Bin 0 -> 16491 bytes
 zh-CN/doc/image/alert/alert_edit.png               |  Bin 0 -> 67537 bytes
 zh-CN/doc/image/alert/alert_send_test.png          |  Bin 0 -> 62465 bytes
 zh-CN/doc/image/alert/alert_send_test_success.png  |  Bin 0 -> 16022 bytes
 zh-CN/doc/image/alert/alert_test_ding_talk.png     |  Bin 0 -> 47527 bytes
 zh-CN/doc/image/alert/alert_test_email.png         |  Bin 0 -> 58553 bytes
 zh-CN/doc/image/alert/alert_test_lark.png          |  Bin 0 -> 54892 bytes
 zh-CN/doc/image/alert/alert_test_wechat.png        |  Bin 0 -> 46513 bytes
 zh-CN/doc/image/console_conf.jpg                   |  Bin 0 -> 563112 bytes
 zh-CN/doc/image/docker_register_setting.png        |  Bin 0 -> 342113 bytes
 zh-CN/doc/image/external-link/badge.png            |  Bin 0 -> 316841 bytes
 .../image/external-link/external-link-detail.png   |  Bin 0 -> 66605 bytes
 zh-CN/doc/image/flinksql/aggregate-function.png    |  Bin 0 -> 36831 bytes
 .../image/flinksql/cumulative-window-diagram.png   |  Bin 0 -> 32568 bytes
 .../hive_to_hive_explode_sink_table_data.png       |  Bin 0 -> 3223 bytes
 .../hive_to_hive_explode_source_table_data.png     |  Bin 0 -> 1960 bytes
 .../example/hive_to_hive_merge_sink_table_data.png |  Bin 0 -> 2728 bytes
 .../hive_to_hive_merge_source_table_data.png       |  Bin 0 -> 3180 bytes
 .../flinksql/example/jdbc-lookup-join-running.png  |  Bin 0 -> 120642 bytes
 .../image/flinksql/example/jdbc-lookup-join.png    |  Bin 0 -> 118966 bytes
 .../image/flinksql/example/jdbc-regular-join.png   |  Bin 0 -> 100505 bytes
 .../example/kafka_data_gen_source_data.png         |  Bin 0 -> 47306 bytes
 .../example/kafka_lookup_join_mysql_flink_ui.png   |  Bin 0 -> 69136 bytes
 .../kafka_lookup_join_mysql_mysql_data1.png        |  Bin 0 -> 5770 bytes
 .../kafka_lookup_join_mysql_mysql_data2.png        |  Bin 0 -> 6030 bytes
 .../kafka_lookup_join_mysql_sink_kafka_data1.png   |  Bin 0 -> 52785 bytes
 .../kafka_lookup_join_mysql_sink_kafka_data2.png   |  Bin 0 -> 58067 bytes
 .../kafka_lookup_join_mysql_sink_kafka_data3.png   |  Bin 0 -> 57490 bytes
 .../example/kafka_temporal_join_flink_ui.png       |  Bin 0 -> 70920 bytes
 .../kafka_temporal_join_kafka_dim_data1.png        |  Bin 0 -> 6867 bytes
 .../kafka_temporal_join_kafka_dim_data2.png        |  Bin 0 -> 9280 bytes
 .../kafka_temporal_join_kafka_sink_data1.png       |  Bin 0 -> 53408 bytes
 .../kafka_temporal_join_kafka_sink_data2.png       |  Bin 0 -> 60827 bytes
 .../flinksql/example/kafka_to_hive_flink_ui.png    |  Bin 0 -> 35954 bytes
 .../flinksql/example/kafka_to_hive_hive_data.png   |  Bin 0 -> 39937 bytes
 .../example/kafka_to_hive_hive_table_hdfs_file.png |  Bin 0 -> 87698 bytes
 .../example/kafka_to_hive_partition_table_data.png |  Bin 0 -> 64527 bytes
 .../kafka_to_hive_partition_table_flink_ui.png     |  Bin 0 -> 51560 bytes
 .../kafka_to_hive_partition_table_hdfs_file.png    |  Bin 0 -> 54511 bytes
 .../flinksql/example/kafka_to_kafka_flink_ui.png   |  Bin 0 -> 59925 bytes
 .../flinksql/example/kafka_to_kafka_sink_data.png  |  Bin 0 -> 40350 bytes
 .../example/multy-stream-union-window-result.png   |  Bin 0 -> 64360 bytes
 .../flinksql/example/multy-stream-union-window.png |  Bin 0 -> 117235 bytes
 .../example/multy-stream-window-union-result.png   |  Bin 0 -> 130576 bytes
 .../example/multy-stream-window-union-ui1.png      |  Bin 0 -> 155062 bytes
 .../example/multy-stream-window-union-ui2.png      |  Bin 0 -> 154200 bytes
 .../image/flinksql/example/one-stream-window.png   |  Bin 0 -> 503633 bytes
 .../image/flinksql/example/one-stream-window2.png  |  Bin 0 -> 57828 bytes
 .../doc/image/flinksql/flink-dialect-exception.png |  Bin 0 -> 54390 bytes
 zh-CN/doc/image/flinksql/hop-window.png            |  Bin 0 -> 22559 bytes
 zh-CN/doc/image/flinksql/local-global-agg.png      |  Bin 0 -> 133865 bytes
 zh-CN/doc/image/flinksql/mini-batch.png            |  Bin 0 -> 59050 bytes
 zh-CN/doc/image/flinksql/split-distinct.png        |  Bin 0 -> 174395 bytes
 .../image/flinksql/table-aggregate-function.png    |  Bin 0 -> 38719 bytes
 zh-CN/doc/image/flinksql/tumble-window.png         |  Bin 0 -> 12024 bytes
 .../install/10_import_streampark_data_file.png     |  Bin 0 -> 53447 bytes
 .../image/install/11_show_streampark_database.png  |  Bin 0 -> 14952 bytes
 zh-CN/doc/image/install/12_use_streampark_db.png   |  Bin 0 -> 3082 bytes
 .../image/install/13_show_streampark_db_tables.png |  Bin 0 -> 16510 bytes
 .../doc/image/install/14_streampark_conf_files.png |  Bin 0 -> 41533 bytes
 .../install/15_application_yml_server_port.png     |  Bin 0 -> 10641 bytes
 .../16_application_yml_spring_profile_active.png   |  Bin 0 -> 56046 bytes
 .../17_application_yml_streampark_workspace.png    |  Bin 0 -> 69047 bytes
 .../doc/image/install/18_application_yml_ldap.png  |  Bin 0 -> 31471 bytes
 zh-CN/doc/image/install/19_kerberos_yml_config.png |  Bin 0 -> 14479 bytes
 zh-CN/doc/image/install/1_hardware_requirement.png |  Bin 0 -> 15221 bytes
 .../doc/image/install/20_enter_streampark_dir.png  |  Bin 0 -> 58828 bytes
 .../image/install/21_start_streampark_service.png  |  Bin 0 -> 71345 bytes
 .../install/22_check_service_starting_log.png      |  Bin 0 -> 61565 bytes
 .../doc/image/install/23_visit_streampark_web.png  |  Bin 0 -> 153245 bytes
 .../image/install/24_streampark_web_index_page.png |  Bin 0 -> 108162 bytes
 .../doc/image/install/25_lack_mysql_driver_err.png |  Bin 0 -> 71859 bytes
 zh-CN/doc/image/install/2_main_components_dep.png  |  Bin 0 -> 37915 bytes
 zh-CN/doc/image/install/3_flink_home.png           |  Bin 0 -> 46534 bytes
 zh-CN/doc/image/install/4_mysql_dep.png            |  Bin 0 -> 15811 bytes
 .../doc/image/install/5_streampark_install_pkg.png |  Bin 0 -> 55901 bytes
 zh-CN/doc/image/install/6_unpkg.png                |  Bin 0 -> 16409 bytes
 zh-CN/doc/image/install/7_mysql_schema_file.png    |  Bin 0 -> 16822 bytes
 zh-CN/doc/image/install/8_mysql_data_file.png      |  Bin 0 -> 15282 bytes
 .../install/9_import_streampark_schema_file.png    |  Bin 0 -> 24394 bytes
 zh-CN/doc/image/k8s_app_detail.png                 |  Bin 0 -> 391958 bytes
 zh-CN/doc/image/k8s_application_submit.png         |  Bin 0 -> 422783 bytes
 zh-CN/doc/image/k8s_pvc.png                        |  Bin 0 -> 298852 bytes
 .../10_display_flink_cluster_list.png              |  Bin 0 -> 75740 bytes
 .../image/platform-usage/11_add_flink_job_menu.png |  Bin 0 -> 94703 bytes
 .../platform-usage/12_add_flink_job_param_1.png    |  Bin 0 -> 12688 bytes
 .../platform-usage/13_add_flink_job_param_2.png    |  Bin 0 -> 27851 bytes
 .../platform-usage/14_add_flink_job_param_3.png    |  Bin 0 -> 3086 bytes
 .../doc/image/platform-usage/15_save_flink_job.png |  Bin 0 -> 73075 bytes
 .../platform-usage/16_display_flink_job_list.png   |  Bin 0 -> 84747 bytes
 .../image/platform-usage/17_build_flink_job.png    |  Bin 0 -> 94392 bytes
 .../18_build_flink_job_successfully.png            |  Bin 0 -> 88395 bytes
 .../image/platform-usage/19_start_flink_job.png    |  Bin 0 -> 91885 bytes
 .../image/platform-usage/1_config_flink_home.png   |  Bin 0 -> 64511 bytes
 .../20_set_checkpoint_when_start_flink_job.png     |  Bin 0 -> 111818 bytes
 .../image/platform-usage/21_submit_flink_job_1.png |  Bin 0 -> 89656 bytes
 .../image/platform-usage/22_submit_flink_job_2.png |  Bin 0 -> 89010 bytes
 .../platform-usage/23_flink_job_dashboard.png      |  Bin 0 -> 92334 bytes
 .../24_display_flink_job_details.png               |  Bin 0 -> 95996 bytes
 .../25_display_flink_job_details_page.png          |  Bin 0 -> 74458 bytes
 .../26_display_native_flink_job_web_ui.png         |  Bin 0 -> 78632 bytes
 .../27_display_native_flink_job_web_ui_2.png       |  Bin 0 -> 60112 bytes
 .../28_streampark_process_workflow.png             |  Bin 0 -> 44969 bytes
 .../platform-usage/29_streampark_system_menu.png   |  Bin 0 -> 95473 bytes
 .../image/platform-usage/2_add_flink_home_info.png |  Bin 0 -> 79284 bytes
 .../30_streampark_user_management_menu.png         |  Bin 0 -> 75673 bytes
 .../31_streampark_token_management_menu.png        |  Bin 0 -> 71968 bytes
 .../32_streampark_token_management_menu_usage.png  |  Bin 0 -> 88690 bytes
 .../platform-usage/33_streampark_role_menu.png     |  Bin 0 -> 79304 bytes
 .../platform-usage/34_streampark_team_menu.png     |  Bin 0 -> 73012 bytes
 .../platform-usage/35_streampark_member_menu.png   |  Bin 0 -> 74390 bytes
 .../36_streampark_menu_management.png              |  Bin 0 -> 105805 bytes
 .../platform-usage/37_streampark_project_menu.png  |  Bin 0 -> 70041 bytes
 .../38_streampark_project_menu_usage_1.png         |  Bin 0 -> 74763 bytes
 .../39_streampark_project_menu_usage_2.png         |  Bin 0 -> 86426 bytes
 .../platform-usage/3_display_flink_home_config.png |  Bin 0 -> 64698 bytes
 .../image/platform-usage/40_application_menu.png   |  Bin 0 -> 90632 bytes
 .../platform-usage/41_variable_menu_usage_1.png    |  Bin 0 -> 77057 bytes
 .../platform-usage/42_variable_menu_usage_2.png    |  Bin 0 -> 69482 bytes
 .../platform-usage/43_variable_menu_usage_3.png    |  Bin 0 -> 69112 bytes
 .../doc/image/platform-usage/44_system_menu_1.png  |  Bin 0 -> 72438 bytes
 .../doc/image/platform-usage/45_system_menu_2.png  |  Bin 0 -> 74431 bytes
 .../doc/image/platform-usage/46_system_menu_3.png  |  Bin 0 -> 69906 bytes
 .../doc/image/platform-usage/47_system_menu_4.png  |  Bin 0 -> 68408 bytes
 .../image/platform-usage/48_alert_setting_menu.png |  Bin 0 -> 73513 bytes
 .../image/platform-usage/49_flink_home_list.png    |  Bin 0 -> 63714 bytes
 .../4_flink_deployment_execute_model.png           |  Bin 0 -> 15170 bytes
 .../image/platform-usage/50_flink_home_usage.png   |  Bin 0 -> 76584 bytes
 .../image/platform-usage/51_flink_home_usage_2.png |  Bin 0 -> 77630 bytes
 .../platform-usage/52_add_flink_cluster_info.png   |  Bin 0 -> 75042 bytes
 .../53_display_flink_cluster_list.png              |  Bin 0 -> 81708 bytes
 .../54_visit_flink_cluster_web_ui.png              |  Bin 0 -> 86821 bytes
 .../55_flink_deployment_difference_1.png           |  Bin 0 -> 134293 bytes
 .../56_flink_deployment_difference_2.png           |  Bin 0 -> 173523 bytes
 .../57_flink_deployment_difference_3.png           |  Bin 0 -> 174101 bytes
 .../58_flink_deployment_difference_4.png           |  Bin 0 -> 67786 bytes
 .../59_flink_deployment_difference_5.png           |  Bin 0 -> 81369 bytes
 .../5_start_flink_standalone_session_service.png   |  Bin 0 -> 10842 bytes
 .../60_flink_deployment_difference_6.png           |  Bin 0 -> 144383 bytes
 .../61_flink_session_cluster_usage_1.png           |  Bin 0 -> 83793 bytes
 .../62_flink_session_cluster_usage_2.png           |  Bin 0 -> 83664 bytes
 .../63_flink_application_model_usage_1.png         |  Bin 0 -> 78361 bytes
 .../64_flink_application_model_usage_2.png         |  Bin 0 -> 76677 bytes
 .../65_flink_application_model_usage_3.png         |  Bin 0 -> 58665 bytes
 .../66_flink_application_model_usage_4.png         |  Bin 0 -> 125235 bytes
 .../platform-usage/67_dynamic_params_usage.png     |  Bin 0 -> 68487 bytes
 .../68_native_flink_restart_strategy.png           |  Bin 0 -> 33953 bytes
 .../69_streampark_alert_settings_1.png             |  Bin 0 -> 83561 bytes
 .../6_flink_standalone_session_web_ui.png          |  Bin 0 -> 65746 bytes
 .../70_streampark_alert_settings_2.png             |  Bin 0 -> 67099 bytes
 .../platform-usage/71_streampark_alert_usage.png   |  Bin 0 -> 97946 bytes
 .../72_native_flink_save_checkpoint_gramma.png     |  Bin 0 -> 6058 bytes
 .../73_streampark_save_checkpoint.png              |  Bin 0 -> 107963 bytes
 .../74_streampark_set_checkpoint_location.png      |  Bin 0 -> 110078 bytes
 .../75_streampark_save_checkpoint_log.png          |  Bin 0 -> 18758 bytes
 .../76_show_checkpoint_file_name.png               |  Bin 0 -> 14106 bytes
 .../77_show_checkpoint_file_name_2.png             |  Bin 0 -> 46683 bytes
 .../78_usage_checkpoint_in_streampark.png          |  Bin 0 -> 105680 bytes
 .../platform-usage/79_native_flink_job_status.svg  | 1132 +++++++++
 .../platform-usage/7_config_flink_cluster_menu.png |  Bin 0 -> 65008 bytes
 .../80_native_flink_job_details_page.png           |  Bin 0 -> 62321 bytes
 .../81_streampark_flink_job_details_page.png       |  Bin 0 -> 97145 bytes
 .../82_streampark_flink_job_starting_log_info.png  |  Bin 0 -> 75808 bytes
 .../platform-usage/83_streampark_restful_api_1.png |  Bin 0 -> 80186 bytes
 .../platform-usage/84_streampark_restful_api_2.png |  Bin 0 -> 88808 bytes
 .../platform-usage/8_add_flink_cluster_info.png    |  Bin 0 -> 74234 bytes
 .../9_add_flink_cluster_successfully.png           |  Bin 0 -> 76609 bytes
 zh-CN/doc/image/process_mem_model.svg              |   21 +
 zh-CN/doc/image/process_steps.png                  |  Bin 0 -> 25288 bytes
 zh-CN/doc/image/remote.png                         |  Bin 0 -> 48024 bytes
 zh-CN/doc/image/remoteSubmission.png               |  Bin 0 -> 83675 bytes
 zh-CN/doc/image/rocksdb_dependency.png             |  Bin 0 -> 115324 bytes
 .../doc/image/sso/existing-user-login-process.png  |  Bin 0 -> 79579 bytes
 zh-CN/doc/image/sso/github-login.png               |  Bin 0 -> 29176 bytes
 zh-CN/doc/image/sso/google-login.png               |  Bin 0 -> 50455 bytes
 zh-CN/doc/image/sso/login-success-redirect.png     |  Bin 0 -> 66393 bytes
 zh-CN/doc/image/sso/new-user-login-process.png     |  Bin 0 -> 75944 bytes
 zh-CN/doc/image/sso/user-login-sso-not-enabled.png |  Bin 0 -> 42047 bytes
 zh-CN/doc/image/streampark-archite.png             |  Bin 0 -> 466387 bytes
 zh-CN/doc/image/streampark_apis.jpeg               |  Bin 0 -> 323045 bytes
 zh-CN/doc/image/streampark_archite.png             |  Bin 0 -> 289155 bytes
 zh-CN/doc/image/streampark_build.png               |  Bin 0 -> 73496 bytes
 zh-CN/doc/image/streampark_conf.jpg                |  Bin 0 -> 330742 bytes
 zh-CN/doc/image/streampark_coreapi.png             |  Bin 0 -> 113182 bytes
 zh-CN/doc/image/streampark_debug_build.png         |  Bin 0 -> 184388 bytes
 zh-CN/doc/image/streampark_debugging.png           |  Bin 0 -> 240274 bytes
 zh-CN/doc/image/streampark_docker-compose.png      |  Bin 0 -> 30747 bytes
 zh-CN/doc/image/streampark_docker_ls_hadoop.png    |  Bin 0 -> 106300 bytes
 zh-CN/doc/image/streampark_docker_ps.png           |  Bin 0 -> 140437 bytes
 zh-CN/doc/image/streampark_flinkhome.png           |  Bin 0 -> 58419 bytes
 zh-CN/doc/image/streampark_frontend_running.png    |  Bin 0 -> 45565 bytes
 zh-CN/doc/image/streampark_ideaopt.jpg             |  Bin 0 -> 264279 bytes
 zh-CN/doc/image/streampark_kafkaapi.jpeg           |  Bin 0 -> 253353 bytes
 zh-CN/doc/image/streampark_login.jpeg              |  Bin 0 -> 209275 bytes
 .../image/streampark_modify_run_configuration.jpg  |  Bin 0 -> 243907 bytes
 zh-CN/doc/image/streampark_project_build.png       |  Bin 0 -> 148980 bytes
 zh-CN/doc/image/streampark_run_config.jpeg         |  Bin 0 -> 427488 bytes
 zh-CN/doc/image/streampark_scala_life_cycle.png    |  Bin 0 -> 191835 bytes
 zh-CN/doc/image/streampark_select_team.jpg         |  Bin 0 -> 69971 bytes
 zh-CN/doc/image/streampark_settings.png            |  Bin 0 -> 436417 bytes
 zh-CN/doc/image/streampark_settings_2.0.0.png      |  Bin 0 -> 96220 bytes
 .../image/streampark_source_generation_image.png   |  Bin 0 -> 34225 bytes
 zh-CN/doc/image/streampark_start.png               |  Bin 0 -> 276096 bytes
 zh-CN/doc/image/streampark_websetting.png          |  Bin 0 -> 412728 bytes
 zh-CN/doc/image/team/app_list.png                  |  Bin 0 -> 163912 bytes
 zh-CN/doc/image/team/change_team.png               |  Bin 0 -> 159238 bytes
 zh-CN/doc/image/team/member_management.png         |  Bin 0 -> 126021 bytes
 zh-CN/doc/image/team/role_management.png           |  Bin 0 -> 136100 bytes
 zh-CN/doc/image/team/team_management.png           |  Bin 0 -> 129422 bytes
 zh-CN/doc/image/variable/create_variable.png       |  Bin 0 -> 68605 bytes
 .../variable/create_variable_desensitization.png   |  Bin 0 -> 70095 bytes
 .../image/variable/variable_flinkjar_preview.png   |  Bin 0 -> 20721 bytes
 .../doc/image/variable/variable_flinkjar_queto.png |  Bin 0 -> 11377 bytes
 .../image/variable/variable_flinksql_preview.png   |  Bin 0 -> 45703 bytes
 .../doc/image/variable/variable_flinksql_quote.png |  Bin 0 -> 32932 bytes
 .../image/variable/variable_flinksql_search.png    |  Bin 0 -> 38860 bytes
 zh-CN/doc/image/variable/variable_list.png         |  Bin 0 -> 74370 bytes
 .../available_queues_when_creating_application.png |  Bin 0 -> 381753 bytes
 .../available_queues_when_creating_cluster.png     |  Bin 0 -> 453549 bytes
 zh-CN/doc/image/yarn-queue/existed_queues.png      |  Bin 0 -> 411339 bytes
 zh-CN/doc/image/yarn-queue/flow_to_create.png      |  Bin 0 -> 384270 bytes
 .../yarn-queue/flow_to_type_in_pure_queue.png      |  Bin 0 -> 392799 bytes
 .../flow_to_type_in_pure_queue_labels.png          |  Bin 0 -> 395438 bytes
 .../use_yarn_app_mode_to_create_application.png    |  Bin 0 -> 451721 bytes
 ...use_yarn_session_mode_to_create_application.png |  Bin 0 -> 344748 bytes
 zh-CN/doc/image_en/.keep                           |    0
 .../16_application_yml_spring_profile_active.png   |  Bin 0 -> 129894 bytes
 .../17_application_yml_streampark_workspace.png    |  Bin 0 -> 78209 bytes
 .../image_en/install/18_application_yml_ldap.png   |  Bin 0 -> 38050 bytes
 .../doc/image_en/install/2_main_components_dep.png |  Bin 0 -> 87310 bytes
 .../10_display_flink_cluster_list.png              |  Bin 0 -> 368607 bytes
 .../platform-usage/11_add_flink_job_menu.png       |  Bin 0 -> 486292 bytes
 .../platform-usage/12_add_flink_job_param_1.png    |  Bin 0 -> 550579 bytes
 .../platform-usage/13_add_flink_job_param_2.png    |  Bin 0 -> 505766 bytes
 .../platform-usage/14_add_flink_job_param_3.png    |  Bin 0 -> 661873 bytes
 .../image_en/platform-usage/15_save_flink_job.png  |  Bin 0 -> 603495 bytes
 .../platform-usage/16_display_flink_job_list.png   |  Bin 0 -> 474615 bytes
 .../image_en/platform-usage/17_build_flink_job.png |  Bin 0 -> 466805 bytes
 .../18_build_flink_job_successfully.png            |  Bin 0 -> 473090 bytes
 .../image_en/platform-usage/19_start_flink_job.png |  Bin 0 -> 464540 bytes
 .../platform-usage/1_config_flink_home.png         |  Bin 0 -> 218571 bytes
 .../20_set_checkpoint_when_start_flink_job.png     |  Bin 0 -> 469647 bytes
 .../platform-usage/21_submit_flink_job_1.png       |  Bin 0 -> 429497 bytes
 .../platform-usage/22_submit_flink_job_2.png       |  Bin 0 -> 446340 bytes
 .../platform-usage/23_flink_job_dashboard.png      |  Bin 0 -> 524960 bytes
 .../24_display_flink_job_details.png               |  Bin 0 -> 495542 bytes
 .../25_display_flink_job_details_page.png          |  Bin 0 -> 439064 bytes
 .../26_display_native_flink_job_web_ui.png         |  Bin 0 -> 452501 bytes
 .../27_display_native_flink_job_web_ui_2.png       |  Bin 0 -> 413305 bytes
 .../28_streampark_process_workflow.png             |  Bin 0 -> 26745 bytes
 .../platform-usage/29_streampark_system_menu.png   |  Bin 0 -> 507096 bytes
 .../platform-usage/2_add_flink_home_info.png       |  Bin 0 -> 491301 bytes
 .../30_streampark_user_management_menu.png         |  Bin 0 -> 508547 bytes
 .../31_streampark_token_management_menu.png        |  Bin 0 -> 394553 bytes
 .../32_streampark_token_management_menu_usage.png  |  Bin 0 -> 516102 bytes
 .../platform-usage/33_streampark_role_menu.png     |  Bin 0 -> 441875 bytes
 .../platform-usage/34_streampark_team_menu.png     |  Bin 0 -> 447372 bytes
 .../platform-usage/35_streampark_member_menu.png   |  Bin 0 -> 463782 bytes
 .../36_streampark_menu_management.png              |  Bin 0 -> 750457 bytes
 .../platform-usage/37_streampark_project_menu.png  |  Bin 0 -> 399367 bytes
 .../38_streampark_project_menu_usage_1.png         |  Bin 0 -> 517796 bytes
 .../39_streampark_project_menu_usage_2.png         |  Bin 0 -> 421709 bytes
 .../platform-usage/3_display_flink_home_config.png |  Bin 0 -> 261417 bytes
 .../platform-usage/40_application_menu.png         |  Bin 0 -> 90632 bytes
 .../platform-usage/41_variable_menu_usage_1.png    |  Bin 0 -> 437920 bytes
 .../platform-usage/42_variable_menu_usage_2.png    |  Bin 0 -> 547434 bytes
 .../platform-usage/43_variable_menu_usage_3.png    |  Bin 0 -> 541419 bytes
 .../image_en/platform-usage/44_system_menu_1.png   |  Bin 0 -> 608165 bytes
 .../image_en/platform-usage/45_system_menu_2.png   |  Bin 0 -> 598292 bytes
 .../image_en/platform-usage/46_system_menu_3.png   |  Bin 0 -> 635027 bytes
 .../image_en/platform-usage/47_system_menu_4.png   |  Bin 0 -> 499077 bytes
 .../platform-usage/48_alert_setting_menu.png       |  Bin 0 -> 481981 bytes
 .../image_en/platform-usage/49_flink_home_list.png |  Bin 0 -> 472231 bytes
 .../4_flink_deployment_execute_model.png           |  Bin 0 -> 13506 bytes
 .../platform-usage/50_flink_home_usage.png         |  Bin 0 -> 677004 bytes
 .../platform-usage/51_flink_home_usage_2.png       |  Bin 0 -> 678028 bytes
 .../platform-usage/52_add_flink_cluster_info.png   |  Bin 0 -> 873052 bytes
 .../53_display_flink_cluster_list.png              |  Bin 0 -> 532312 bytes
 .../54_visit_flink_cluster_web_ui.png              |  Bin 0 -> 619456 bytes
 .../55_flink_deployment_difference_1.png           |  Bin 0 -> 134293 bytes
 .../56_flink_deployment_difference_2.png           |  Bin 0 -> 173523 bytes
 .../57_flink_deployment_difference_3.png           |  Bin 0 -> 174101 bytes
 .../58_flink_deployment_difference_4.png           |  Bin 0 -> 67786 bytes
 .../59_flink_deployment_difference_5.png           |  Bin 0 -> 81369 bytes
 .../5_start_flink_standalone_session_service.png   |  Bin 0 -> 10842 bytes
 .../60_flink_deployment_difference_6.png           |  Bin 0 -> 144383 bytes
 .../61_flink_session_cluster_usage_1.png           |  Bin 0 -> 537797 bytes
 .../62_flink_session_cluster_usage_2.png           |  Bin 0 -> 675239 bytes
 .../63_flink_application_model_usage_1.png         |  Bin 0 -> 843242 bytes
 .../64_flink_application_model_usage_2.png         |  Bin 0 -> 694493 bytes
 .../65_flink_application_model_usage_3.png         |  Bin 0 -> 351471 bytes
 .../66_flink_application_model_usage_4.png         |  Bin 0 -> 2075777 bytes
 .../platform-usage/67_dynamic_params_usage.png     |  Bin 0 -> 853148 bytes
 .../68_native_flink_restart_strategy.png           |  Bin 0 -> 33953 bytes
 .../69_streampark_alert_settings_1.png             |  Bin 0 -> 407769 bytes
 .../6_flink_standalone_session_web_ui.png          |  Bin 0 -> 404983 bytes
 .../70_streampark_alert_settings_2.png             |  Bin 0 -> 357055 bytes
 .../platform-usage/71_streampark_alert_usage.png   |  Bin 0 -> 736247 bytes
 .../72_native_flink_save_checkpoint_gramma.png     |  Bin 0 -> 21216 bytes
 .../73_streampark_save_checkpoint.png              |  Bin 0 -> 107963 bytes
 .../74_streampark_set_checkpoint_location.png      |  Bin 0 -> 110078 bytes
 .../75_streampark_save_checkpoint_log.png          |  Bin 0 -> 18758 bytes
 .../76_show_checkpoint_file_name.png               |  Bin 0 -> 14106 bytes
 .../77_show_checkpoint_file_name_2.png             |  Bin 0 -> 46683 bytes
 .../78_usage_checkpoint_in_streampark.png          |  Bin 0 -> 105680 bytes
 .../platform-usage/79_native_flink_job_status.svg  | 1132 +++++++++
 .../platform-usage/7_config_flink_cluster_menu.png |  Bin 0 -> 436937 bytes
 .../80_native_flink_job_details_page.png           |  Bin 0 -> 584250 bytes
 .../81_streampark_flink_job_details_page.png       |  Bin 0 -> 731237 bytes
 .../82_streampark_flink_job_starting_log_info.png  |  Bin 0 -> 75808 bytes
 .../platform-usage/83_streampark_restful_api_1.png |  Bin 0 -> 554762 bytes
 .../platform-usage/84_streampark_restful_api_2.png |  Bin 0 -> 779772 bytes
 .../platform-usage/8_add_flink_cluster_info.png    |  Bin 0 -> 366548 bytes
 .../9_add_flink_cluster_successfully.png           |  Bin 0 -> 342532 bytes
 zh-CN/doc/image_en/streampark_archite.png          |  Bin 0 -> 267730 bytes
 zh-CN/docs/development/development/index.html      |   75 +
 zh-CN/docs/framework/config/index.html             |  123 +
 .../docs/framework/connector/clickhouse/index.html |   82 +
 zh-CN/docs/framework/connector/doris/index.html    |   53 +
 zh-CN/docs/framework/connector/es/index.html       |   77 +
 zh-CN/docs/framework/connector/hbase/index.html    |   70 +
 zh-CN/docs/framework/connector/http/index.html     |   62 +
 zh-CN/docs/framework/connector/jdbc/index.html     |   99 +
 zh-CN/docs/framework/connector/kafka/index.html    |  149 ++
 zh-CN/docs/framework/connector/redis/index.html    |   76 +
 zh-CN/docs/framework/dev-model/index.html          |  180 ++
 zh-CN/docs/framework/quick-start/index.html        |   68 +
 zh-CN/docs/get-started/deployment/index.html       |  110 +
 .../docs/get-started/docker-deployment/index.html  |   95 +
 zh-CN/docs/get-started/how-to-use/index.html       |  364 +++
 zh-CN/docs/get-started/intro/index.html            |   80 +
 zh-CN/docs/platform/alert/index.html               |  128 +
 zh-CN/docs/platform/ext-link/index.html            |   54 +
 zh-CN/docs/platform/k8s/flink-on-k8s/index.html    |  100 +
 .../k8s/hadoop-resource-integration/index.html     |   73 +
 .../platform/k8s/k8s-pvc-integration/index.html    |   65 +
 zh-CN/docs/platform/ldap/index.html                |   55 +
 zh-CN/docs/platform/platform-install/index.html    |  253 ++
 zh-CN/docs/platform/sso/index.html                 |   84 +
 zh-CN/docs/platform/team/index.html                |   72 +
 zh-CN/docs/platform/variable/index.html            |   78 +
 zh-CN/docs/platform/version-upgrade/index.html     |   74 +
 zh-CN/docs/platform/yarn-queue/index.html          |  173 ++
 zh-CN/download/index.html                          |   43 +
 zh-CN/download/release-card/mobile/index.html      |   14 +
 zh-CN/download/release-card/pc/index.html          |   14 +
 zh-CN/download/release-note/2.0.0/index.html       |  182 ++
 zh-CN/download/release-note/2.1.0/index.html       |   94 +
 zh-CN/download/release-note/2.1.1/index.html       |   61 +
 zh-CN/download/release-note/2.1.2/index.html       |   74 +
 zh-CN/download/release-note/2.1.3/index.html       |   69 +
 zh-CN/download/release-note/2.1.4/index.html       |   77 +
 zh-CN/download/table/index.html                    |   14 +
 zh-CN/home/banner-mask.png                         |  Bin 0 -> 37162 bytes
 zh-CN/home/banner.png                              |  Bin 0 -> 48506 bytes
 zh-CN/home/bg-fotter.png                           |  Bin 0 -> 21320 bytes
 zh-CN/home/bg-mask.png                             |  Bin 0 -> 499378 bytes
 zh-CN/home/block.svg                               |    3 +
 zh-CN/home/code-bg1.png                            |  Bin 0 -> 124707 bytes
 zh-CN/home/code-bg2.png                            |  Bin 0 -> 121833 bytes
 zh-CN/home/code1.png                               |  Bin 0 -> 77516 bytes
 zh-CN/home/code2.png                               |  Bin 0 -> 76698 bytes
 zh-CN/home/coder1.png                              |  Bin 0 -> 103243 bytes
 zh-CN/home/coder2.png                              |  Bin 0 -> 101206 bytes
 zh-CN/home/coding.svg                              |   82 +
 zh-CN/home/dark.png                                |  Bin 0 -> 1204757 bytes
 zh-CN/home/dashboard.png                           |  Bin 0 -> 327763 bytes
 zh-CN/home/dashboard.svg                           |    3 +
 zh-CN/home/dot.png                                 |  Bin 0 -> 989 bytes
 zh-CN/home/feature/index.html                      |   14 +
 zh-CN/home/gitee.png                               |  Bin 0 -> 3003 bytes
 zh-CN/home/gvp2021.png                             |  Bin 0 -> 259716 bytes
 zh-CN/home/half-circle.png                         |  Bin 0 -> 1174 bytes
 zh-CN/home/hero/index.html                         |   14 +
 zh-CN/home/honor2021.jpg                           |  Bin 0 -> 936772 bytes
 zh-CN/home/icon.svg                                |    1 +
 zh-CN/home/index.html                              |   14 +
 zh-CN/home/light.png                               |  Bin 0 -> 1124026 bytes
 zh-CN/home/macbook.svg                             |    1 +
 zh-CN/home/mymen-bg.png                            |  Bin 0 -> 11943 bytes
 zh-CN/home/performance/index.html                  |   14 +
 zh-CN/home/rocket.svg                              |    1 +
 zh-CN/home/screenshot/index.html                   |   14 +
 zh-CN/home/streampark-banner.png                   |  Bin 0 -> 175159 bytes
 zh-CN/home/top1.svg                                |   88 +
 zh-CN/home/top2.svg                                |   88 +
 zh-CN/home/users/index.html                        |   14 +
 zh-CN/home/wave.svg                                |    8 +
 zh-CN/image/apache-incubator-dark.svg              |    1 +
 zh-CN/image/apache-incubator.svg                   |    2 +
 zh-CN/image/circle.svg                             |    8 +
 zh-CN/image/dashboard-preview.png                  |  Bin 0 -> 369091 bytes
 zh-CN/image/dashboard.png                          |  Bin 0 -> 516569 bytes
 zh-CN/image/favicon.ico                            |  Bin 0 -> 1595 bytes
 zh-CN/image/join_wechat.png                        |  Bin 0 -> 79574 bytes
 zh-CN/image/logo.png                               |  Bin 0 -> 33648 bytes
 zh-CN/image/logo.svg                               |    3 +
 zh-CN/image/logo_name.png                          |  Bin 0 -> 80935 bytes
 zh-CN/image/logo_name.svg                          |    3 +
 zh-CN/image/logo_name_white.png                    |  Bin 0 -> 97457 bytes
 zh-CN/image/sqlide.png                             |  Bin 0 -> 943934 bytes
 zh-CN/image/users.png                              |  Bin 0 -> 312973 bytes
 zh-CN/image/wx_qr.png                              |  Bin 0 -> 71315 bytes
 zh-CN/index.html                                   |   43 +
 zh-CN/search-index.json                            |    1 +
 zh-CN/search/index.html                            |   43 +
 zh-CN/sitemap.xml                                  |    1 +
 zh-CN/team/index.html                              |   43 +
 zh-CN/user/alpha.png                               |  Bin 0 -> 3000 bytes
 zh-CN/user/apollo.png                              |  Bin 0 -> 10077 bytes
 zh-CN/user/atguigu.png                             |  Bin 0 -> 74036 bytes
 zh-CN/user/baidu.png                               |  Bin 0 -> 13644 bytes
 zh-CN/user/banggood.png                            |  Bin 0 -> 22456 bytes
 zh-CN/user/belle.png                               |  Bin 0 -> 18867 bytes
 zh-CN/user/bondex.png                              |  Bin 0 -> 20030 bytes
 zh-CN/user/changan.png                             |  Bin 0 -> 19570 bytes
 zh-CN/user/china-unicon.png                        |  Bin 0 -> 16987 bytes
 zh-CN/user/china_entercom.jpg                      |  Bin 0 -> 41544 bytes
 zh-CN/user/cloudview.png                           |  Bin 0 -> 3542 bytes
 zh-CN/user/ctyun.png                               |  Bin 0 -> 4760 bytes
 zh-CN/user/deepway.png                             |  Bin 0 -> 21188 bytes
 zh-CN/user/doctorglasses.png                       |  Bin 0 -> 95667 bytes
 zh-CN/user/dtsclouds.png                           |  Bin 0 -> 11537 bytes
 zh-CN/user/dustess.png                             |  Bin 0 -> 33882 bytes
 zh-CN/user/dyrs.png                                |  Bin 0 -> 84873 bytes
 zh-CN/user/esign.png                               |  Bin 0 -> 14140 bytes
 zh-CN/user/fy-data.png                             |  Bin 0 -> 17602 bytes
 zh-CN/user/gigacloud_technology.png                |  Bin 0 -> 46507 bytes
 zh-CN/user/grow.png                                |  Bin 0 -> 11303 bytes
 zh-CN/user/haibo.png                               |  Bin 0 -> 9896 bytes
 zh-CN/user/hopson.png                              |  Bin 0 -> 34017 bytes
 zh-CN/user/hrfax.png                               |  Bin 0 -> 222703 bytes
 zh-CN/user/idataway.png                            |  Bin 0 -> 29381 bytes
 zh-CN/user/index.html                              |   43 +
 zh-CN/user/inmobi.png                              |  Bin 0 -> 7094 bytes
 zh-CN/user/itcast.png                              |  Bin 0 -> 17174 bytes
 zh-CN/user/joy_u.png                               |  Bin 0 -> 13373 bytes
 zh-CN/user/joyme.png                               |  Bin 0 -> 10401 bytes
 zh-CN/user/kcbebank.png                            |  Bin 0 -> 103653 bytes
 zh-CN/user/lccomputing.png                         |  Bin 0 -> 38012 bytes
 zh-CN/user/longping.png                            |  Bin 0 -> 199840 bytes
 zh-CN/user/lydigi.png                              |  Bin 0 -> 109364 bytes
 zh-CN/user/mafengwo.png                            |  Bin 0 -> 31073 bytes
 zh-CN/user/relx.png                                |  Bin 0 -> 35305 bytes
 zh-CN/user/shudui.png                              |  Bin 0 -> 78870 bytes
 zh-CN/user/shunwang.png                            |  Bin 0 -> 223769 bytes
 zh-CN/user/sobot.png                               |  Bin 0 -> 43852 bytes
 zh-CN/user/supcon.png                              |  Bin 0 -> 6295 bytes
 zh-CN/user/tencent.png                             |  Bin 0 -> 11383 bytes
 zh-CN/user/tenclass.png                            |  Bin 0 -> 22863 bytes
 zh-CN/user/treeroot.png                            |  Bin 0 -> 113310 bytes
 zh-CN/user/vixtel.png                              |  Bin 0 -> 3646 bytes
 zh-CN/user/vlion.png                               |  Bin 0 -> 113634 bytes
 zh-CN/user/vphonor.png                             |  Bin 0 -> 50616 bytes
 zh-CN/user/wondersgroup.png                        |  Bin 0 -> 13512 bytes
 zh-CN/user/yingzi.png                              |  Bin 0 -> 9145 bytes
 zh-CN/user/yipage.png                              |  Bin 0 -> 18854 bytes
 zh-CN/user/yonghui.png                             |  Bin 0 -> 18814 bytes
 zh-CN/user/yto.png                                 |  Bin 0 -> 30092 bytes
 zh-CN/user/yucun.png                               |  Bin 0 -> 52464 bytes
 zh-CN/user/yunlizhi.png                            |  Bin 0 -> 30235 bytes
 zh-CN/user/zehoo.png                               |  Bin 0 -> 66107 bytes
 zh-CN/user/zhengzhou.png                           |  Bin 0 -> 15031 bytes
 zh-CN/user/ziroom.png                              |  Bin 0 -> 50857 bytes
 zh-CN/user/zoomlion.png                            |  Bin 0 -> 55508 bytes
 zh-CN/user/zto.png                                 |  Bin 0 -> 150344 bytes
 2448 files changed, 36709 insertions(+)

diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 00000000..608973a0
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,39 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+github:
+  description: "Apache streampark Website"
+  homepage: https://streampark.apache.org/
+  features:
+    issues: false
+    projects: false
+    wiki: false
+  labels:
+    - streampark
+  enabled_merge_buttons:
+    squash:  true
+    merge:   false
+    rebase:  false
+
+publish:
+  whoami: asf-site
+
+notifications:
+  commits:      commits@streampark.apache.org
+  issues:       issues@streampark.apache.org
+  pullrequests: issues@streampark.apache.org
+  jobs:         builds@streampark.apache.org
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/404.html b/404.html
new file mode 100644
index 00000000..e0d95685
--- /dev/null
+++ b/404.html
@@ -0,0 +1,43 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.3.2">
+<title data-rh="true">Page Not Found | Apache StreamPark (incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://streampark.apache.org/404.html"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" conte [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache StreamPark (incubating) Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8c72ea81.css">
+<script src="/assets/js/runtime~main.de93b3db.js" defer="defer"></script>
+<script src="/assets/js/main.2e3dadaf.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),function(){try{const c=new URLSearchParams(window.location.sea [...]
+                <div class="subscribe-box btns">
+                  <a class="btn btn-primary" href="https://github.com/apache/incubator-streampark"><i class="fa fa-github"></i><span>Github</span></a>
+                  <a class="btn btn-primary" href="https://github.com/apache/incubator-streampark/issues"><i class="fa fa-slack"></i><span>Issue Tracking</span></a>
+                  <a class="btn btn-primary" href="javascript:void(0)">
+                    <i class="fa fa-wechat"></i>
+                    <span>Wechat</span>
+                    <div class="wechat-dropdown"><img src="/image/join_wechat.png" alt="weChat"></div>
+                  </a>
+                </div>
+              </li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"><div>
+        <div>
+          <div style="margin-bottom: 30px;">
+            <a href="https://incubator.apache.org/" class="footerLogoLink" one-link-mark="yes">
+              <img alt="Apache Incubator logo" class="footer__logo" width="200">
+            </a>
+          </div>
+          <div>
+            <p>
+            Apache StreamPark is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate t [...]
+            </p>
+          </div>
+        </div>
+
+        <div>
+          <span>
+            Copyright © 2022-2024 The Apache Software Foundation. Apache StreamPark, StreamPark, and its feather logo are trademarks of The Apache Software Foundation.
+          </span>
+        </div>
+      </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/assets/css/styles.8c72ea81.css b/assets/css/styles.8c72ea81.css
new file mode 100644
index 00000000..6e9ec871
--- /dev/null
+++ b/assets/css/styles.8c72ea81.css
@@ -0,0 +1 @@
+@charset "UTF-8";.col,.container{padding:0 var(--ifm-spacing-horizontal)}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}a,pre code{background-color:initial}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,. [...]
\ No newline at end of file
diff --git a/assets/fonts/LineIcons-y2l643-6ac9873828472f7a88703893f3de50c7.eot b/assets/fonts/LineIcons-y2l643-6ac9873828472f7a88703893f3de50c7.eot
new file mode 100644
index 00000000..7146a83e
Binary files /dev/null and b/assets/fonts/LineIcons-y2l643-6ac9873828472f7a88703893f3de50c7.eot differ
diff --git a/assets/fonts/LineIcons-y2l643-c2f4b7610f34f5843a72d44f5c4ae9d2.woff b/assets/fonts/LineIcons-y2l643-c2f4b7610f34f5843a72d44f5c4ae9d2.woff
new file mode 100644
index 00000000..d6e9b9a2
Binary files /dev/null and b/assets/fonts/LineIcons-y2l643-c2f4b7610f34f5843a72d44f5c4ae9d2.woff differ
diff --git a/assets/fonts/LineIcons-y2l643-fb16b8b0de9e73ca9b2d7bb18c4e7108.ttf b/assets/fonts/LineIcons-y2l643-fb16b8b0de9e73ca9b2d7bb18c4e7108.ttf
new file mode 100644
index 00000000..4d4a3aa8
Binary files /dev/null and b/assets/fonts/LineIcons-y2l643-fb16b8b0de9e73ca9b2d7bb18c4e7108.ttf differ
diff --git a/assets/fonts/devanagari-1-64d5f06ee726edd58ca33456c8ead0cb.woff2 b/assets/fonts/devanagari-1-64d5f06ee726edd58ca33456c8ead0cb.woff2
new file mode 100644
index 00000000..3295a4cc
Binary files /dev/null and b/assets/fonts/devanagari-1-64d5f06ee726edd58ca33456c8ead0cb.woff2 differ
diff --git a/assets/fonts/devanagari-2-f43b6ebf46ee6fba05559f09fd680c90.woff2 b/assets/fonts/devanagari-2-f43b6ebf46ee6fba05559f09fd680c90.woff2
new file mode 100644
index 00000000..7850aa30
Binary files /dev/null and b/assets/fonts/devanagari-2-f43b6ebf46ee6fba05559f09fd680c90.woff2 differ
diff --git a/assets/fonts/devanagari-3-349ed9fa39221b45ae9a033c0c3de0e2.woff2 b/assets/fonts/devanagari-3-349ed9fa39221b45ae9a033c0c3de0e2.woff2
new file mode 100644
index 00000000..742e1442
Binary files /dev/null and b/assets/fonts/devanagari-3-349ed9fa39221b45ae9a033c0c3de0e2.woff2 differ
diff --git a/assets/fonts/fontawesome-webfont-1e59d2330b4c6deb84b340635ed36249.ttf b/assets/fonts/fontawesome-webfont-1e59d2330b4c6deb84b340635ed36249.ttf
new file mode 100644
index 00000000..35acda2f
Binary files /dev/null and b/assets/fonts/fontawesome-webfont-1e59d2330b4c6deb84b340635ed36249.ttf differ
diff --git a/assets/fonts/fontawesome-webfont-20fd1704ea223900efa9fd4e869efb08.woff2 b/assets/fonts/fontawesome-webfont-20fd1704ea223900efa9fd4e869efb08.woff2
new file mode 100644
index 00000000..4d13fc60
Binary files /dev/null and b/assets/fonts/fontawesome-webfont-20fd1704ea223900efa9fd4e869efb08.woff2 differ
diff --git a/assets/fonts/fontawesome-webfont-8b43027f47b20503057dfbbaa9401fef.eot b/assets/fonts/fontawesome-webfont-8b43027f47b20503057dfbbaa9401fef.eot
new file mode 100644
index 00000000..e9f60ca9
Binary files /dev/null and b/assets/fonts/fontawesome-webfont-8b43027f47b20503057dfbbaa9401fef.eot differ
diff --git a/assets/fonts/fontawesome-webfont-f691f37e57f04c152e2315ab7dbad881.woff b/assets/fonts/fontawesome-webfont-f691f37e57f04c152e2315ab7dbad881.woff
new file mode 100644
index 00000000..400014a4
Binary files /dev/null and b/assets/fonts/fontawesome-webfont-f691f37e57f04c152e2315ab7dbad881.woff differ
diff --git a/assets/images/10_display_flink_cluster_list-f3bf4ea6dd3331d4a33b34e363bf200e.png b/assets/images/10_display_flink_cluster_list-f3bf4ea6dd3331d4a33b34e363bf200e.png
new file mode 100644
index 00000000..e77d34f0
Binary files /dev/null and b/assets/images/10_display_flink_cluster_list-f3bf4ea6dd3331d4a33b34e363bf200e.png differ
diff --git a/assets/images/10_import_streampark_data_file-f34042180339f5bf7a8b69dea1a61daa.png b/assets/images/10_import_streampark_data_file-f34042180339f5bf7a8b69dea1a61daa.png
new file mode 100644
index 00000000..eed03f50
Binary files /dev/null and b/assets/images/10_import_streampark_data_file-f34042180339f5bf7a8b69dea1a61daa.png differ
diff --git a/assets/images/11_add_flink_job_menu-655020740842addde3a077799bcf45e9.png b/assets/images/11_add_flink_job_menu-655020740842addde3a077799bcf45e9.png
new file mode 100644
index 00000000..8c1da350
Binary files /dev/null and b/assets/images/11_add_flink_job_menu-655020740842addde3a077799bcf45e9.png differ
diff --git a/assets/images/11_show_streampark_database-8c45ff59e4d800c31971c686b714c2e2.png b/assets/images/11_show_streampark_database-8c45ff59e4d800c31971c686b714c2e2.png
new file mode 100644
index 00000000..e096a770
Binary files /dev/null and b/assets/images/11_show_streampark_database-8c45ff59e4d800c31971c686b714c2e2.png differ
diff --git a/assets/images/12_add_flink_job_param_1-9fc8141a1b1bdcc08f72a2d942a0851e.png b/assets/images/12_add_flink_job_param_1-9fc8141a1b1bdcc08f72a2d942a0851e.png
new file mode 100644
index 00000000..5cbfb08a
Binary files /dev/null and b/assets/images/12_add_flink_job_param_1-9fc8141a1b1bdcc08f72a2d942a0851e.png differ
diff --git a/assets/images/13_add_flink_job_param_2-9ce486607a0337a5d82b042a3e916a58.png b/assets/images/13_add_flink_job_param_2-9ce486607a0337a5d82b042a3e916a58.png
new file mode 100644
index 00000000..b2b7b138
Binary files /dev/null and b/assets/images/13_add_flink_job_param_2-9ce486607a0337a5d82b042a3e916a58.png differ
diff --git a/assets/images/13_show_streampark_db_tables-5b3fdd325d69ff0eafaa6132b8eec00d.png b/assets/images/13_show_streampark_db_tables-5b3fdd325d69ff0eafaa6132b8eec00d.png
new file mode 100644
index 00000000..c926edd6
Binary files /dev/null and b/assets/images/13_show_streampark_db_tables-5b3fdd325d69ff0eafaa6132b8eec00d.png differ
diff --git a/assets/images/14_add_flink_job_param_3-782062a69f1e90109c4c46cc3a118e64.png b/assets/images/14_add_flink_job_param_3-782062a69f1e90109c4c46cc3a118e64.png
new file mode 100644
index 00000000..ba39771a
Binary files /dev/null and b/assets/images/14_add_flink_job_param_3-782062a69f1e90109c4c46cc3a118e64.png differ
diff --git a/assets/images/14_streampark_conf_files-407bdde31edce6c38235378f25371a9f.png b/assets/images/14_streampark_conf_files-407bdde31edce6c38235378f25371a9f.png
new file mode 100644
index 00000000..ba9767b0
Binary files /dev/null and b/assets/images/14_streampark_conf_files-407bdde31edce6c38235378f25371a9f.png differ
diff --git a/assets/images/15_application_yml_server_port-cd566ef989ade5bbf4a803f0fc89709f.png b/assets/images/15_application_yml_server_port-cd566ef989ade5bbf4a803f0fc89709f.png
new file mode 100644
index 00000000..9e07b1ab
Binary files /dev/null and b/assets/images/15_application_yml_server_port-cd566ef989ade5bbf4a803f0fc89709f.png differ
diff --git a/assets/images/15_save_flink_job-cff0a1c78d69e80ea24604e77e3aca71.png b/assets/images/15_save_flink_job-cff0a1c78d69e80ea24604e77e3aca71.png
new file mode 100644
index 00000000..c7749594
Binary files /dev/null and b/assets/images/15_save_flink_job-cff0a1c78d69e80ea24604e77e3aca71.png differ
diff --git a/assets/images/16_application_yml_spring_profile_active-e89c957320198b6792fb5e1e001d332b.png b/assets/images/16_application_yml_spring_profile_active-e89c957320198b6792fb5e1e001d332b.png
new file mode 100644
index 00000000..dbcda5e5
Binary files /dev/null and b/assets/images/16_application_yml_spring_profile_active-e89c957320198b6792fb5e1e001d332b.png differ
diff --git a/assets/images/16_display_flink_job_list-a4f258aee00dbc0651200a4bd4799fe8.png b/assets/images/16_display_flink_job_list-a4f258aee00dbc0651200a4bd4799fe8.png
new file mode 100644
index 00000000..f0b0b600
Binary files /dev/null and b/assets/images/16_display_flink_job_list-a4f258aee00dbc0651200a4bd4799fe8.png differ
diff --git a/assets/images/17_application_yml_streampark_workspace-5b725aaf096a721b5a8598683e12bc2d.png b/assets/images/17_application_yml_streampark_workspace-5b725aaf096a721b5a8598683e12bc2d.png
new file mode 100644
index 00000000..2796f9c3
Binary files /dev/null and b/assets/images/17_application_yml_streampark_workspace-5b725aaf096a721b5a8598683e12bc2d.png differ
diff --git a/assets/images/17_build_flink_job-b455de447c56928fc7275a21ea2d2508.png b/assets/images/17_build_flink_job-b455de447c56928fc7275a21ea2d2508.png
new file mode 100644
index 00000000..65edb20a
Binary files /dev/null and b/assets/images/17_build_flink_job-b455de447c56928fc7275a21ea2d2508.png differ
diff --git a/assets/images/18_application_yml_ldap-8f16d0558d4dcef86c8060e6cfd20608.png b/assets/images/18_application_yml_ldap-8f16d0558d4dcef86c8060e6cfd20608.png
new file mode 100644
index 00000000..82ba5a4d
Binary files /dev/null and b/assets/images/18_application_yml_ldap-8f16d0558d4dcef86c8060e6cfd20608.png differ
diff --git a/assets/images/18_build_flink_job_successfully-f0e41d98d78e47a0aec79db0231a1142.png b/assets/images/18_build_flink_job_successfully-f0e41d98d78e47a0aec79db0231a1142.png
new file mode 100644
index 00000000..20277bd9
Binary files /dev/null and b/assets/images/18_build_flink_job_successfully-f0e41d98d78e47a0aec79db0231a1142.png differ
diff --git a/assets/images/19_kerberos_yml_config-3b48e035ede7c69fdaba5411126f1ecd.png b/assets/images/19_kerberos_yml_config-3b48e035ede7c69fdaba5411126f1ecd.png
new file mode 100644
index 00000000..59d8195e
Binary files /dev/null and b/assets/images/19_kerberos_yml_config-3b48e035ede7c69fdaba5411126f1ecd.png differ
diff --git a/assets/images/19_start_flink_job-acf6aa098463b632f338ef9b8cb940c3.png b/assets/images/19_start_flink_job-acf6aa098463b632f338ef9b8cb940c3.png
new file mode 100644
index 00000000..a83040a9
Binary files /dev/null and b/assets/images/19_start_flink_job-acf6aa098463b632f338ef9b8cb940c3.png differ
diff --git a/assets/images/1_config_flink_home-246fb02bb92fe8d5109d2eb3da01dea5.png b/assets/images/1_config_flink_home-246fb02bb92fe8d5109d2eb3da01dea5.png
new file mode 100644
index 00000000..b3cfa57b
Binary files /dev/null and b/assets/images/1_config_flink_home-246fb02bb92fe8d5109d2eb3da01dea5.png differ
diff --git a/assets/images/1_hardware_requirement-92b8570a4b7602f7fe42f1dd52f5b57a.png b/assets/images/1_hardware_requirement-92b8570a4b7602f7fe42f1dd52f5b57a.png
new file mode 100644
index 00000000..57559101
Binary files /dev/null and b/assets/images/1_hardware_requirement-92b8570a4b7602f7fe42f1dd52f5b57a.png differ
diff --git a/assets/images/20_enter_streampark_dir-23fe0cd7289a39bf670e9206a5f99826.png b/assets/images/20_enter_streampark_dir-23fe0cd7289a39bf670e9206a5f99826.png
new file mode 100644
index 00000000..b90d2066
Binary files /dev/null and b/assets/images/20_enter_streampark_dir-23fe0cd7289a39bf670e9206a5f99826.png differ
diff --git a/assets/images/20_set_checkpoint_when_start_flink_job-140fad79ad2243bb07c2b57961a73c6f.png b/assets/images/20_set_checkpoint_when_start_flink_job-140fad79ad2243bb07c2b57961a73c6f.png
new file mode 100644
index 00000000..2eb038ea
Binary files /dev/null and b/assets/images/20_set_checkpoint_when_start_flink_job-140fad79ad2243bb07c2b57961a73c6f.png differ
diff --git a/assets/images/21_start_streampark_service-6fd3adcc3dae4e921381d4becc0bccb9.png b/assets/images/21_start_streampark_service-6fd3adcc3dae4e921381d4becc0bccb9.png
new file mode 100644
index 00000000..89e4cb31
Binary files /dev/null and b/assets/images/21_start_streampark_service-6fd3adcc3dae4e921381d4becc0bccb9.png differ
diff --git a/assets/images/21_submit_flink_job_1-dc9d4c29102fb2bdf4242d9a5cff4de1.png b/assets/images/21_submit_flink_job_1-dc9d4c29102fb2bdf4242d9a5cff4de1.png
new file mode 100644
index 00000000..22a70782
Binary files /dev/null and b/assets/images/21_submit_flink_job_1-dc9d4c29102fb2bdf4242d9a5cff4de1.png differ
diff --git a/assets/images/22_check_service_starting_log-1121349a6e965af339b2a297adf1c43e.png b/assets/images/22_check_service_starting_log-1121349a6e965af339b2a297adf1c43e.png
new file mode 100644
index 00000000..84e5a5d8
Binary files /dev/null and b/assets/images/22_check_service_starting_log-1121349a6e965af339b2a297adf1c43e.png differ
diff --git a/assets/images/22_submit_flink_job_2-10686fdc4d0383edc432123c11356334.png b/assets/images/22_submit_flink_job_2-10686fdc4d0383edc432123c11356334.png
new file mode 100644
index 00000000..6d5626cb
Binary files /dev/null and b/assets/images/22_submit_flink_job_2-10686fdc4d0383edc432123c11356334.png differ
diff --git a/assets/images/23_flink_job_dashboard-a0e5574779839abebb989b279a7d6a98.png b/assets/images/23_flink_job_dashboard-a0e5574779839abebb989b279a7d6a98.png
new file mode 100644
index 00000000..cfa4dce2
Binary files /dev/null and b/assets/images/23_flink_job_dashboard-a0e5574779839abebb989b279a7d6a98.png differ
diff --git a/assets/images/23_visit_streampark_web-24675f279e919a73cd6792d99c4647e7.png b/assets/images/23_visit_streampark_web-24675f279e919a73cd6792d99c4647e7.png
new file mode 100644
index 00000000..f6b308ea
Binary files /dev/null and b/assets/images/23_visit_streampark_web-24675f279e919a73cd6792d99c4647e7.png differ
diff --git a/assets/images/24_display_flink_job_details-31b5337f36eacab688c54fc76377feae.png b/assets/images/24_display_flink_job_details-31b5337f36eacab688c54fc76377feae.png
new file mode 100644
index 00000000..a0b6cb6c
Binary files /dev/null and b/assets/images/24_display_flink_job_details-31b5337f36eacab688c54fc76377feae.png differ
diff --git a/assets/images/24_streampark_web_index_page-ca827d0b22ea67ee53f1fb0448121685.png b/assets/images/24_streampark_web_index_page-ca827d0b22ea67ee53f1fb0448121685.png
new file mode 100644
index 00000000..c024ffb3
Binary files /dev/null and b/assets/images/24_streampark_web_index_page-ca827d0b22ea67ee53f1fb0448121685.png differ
diff --git a/assets/images/25_display_flink_job_details_page-41a7c0501bdf2ce4ec5f16473143ec43.png b/assets/images/25_display_flink_job_details_page-41a7c0501bdf2ce4ec5f16473143ec43.png
new file mode 100644
index 00000000..7ce10751
Binary files /dev/null and b/assets/images/25_display_flink_job_details_page-41a7c0501bdf2ce4ec5f16473143ec43.png differ
diff --git a/assets/images/25_lack_mysql_driver_err-1345c2e03b78b4b752749279b48824e3.png b/assets/images/25_lack_mysql_driver_err-1345c2e03b78b4b752749279b48824e3.png
new file mode 100644
index 00000000..83201837
Binary files /dev/null and b/assets/images/25_lack_mysql_driver_err-1345c2e03b78b4b752749279b48824e3.png differ
diff --git a/assets/images/26_display_native_flink_job_web_ui-ce8bab69c0d932e35f431f80fe7052fd.png b/assets/images/26_display_native_flink_job_web_ui-ce8bab69c0d932e35f431f80fe7052fd.png
new file mode 100644
index 00000000..5d989a4d
Binary files /dev/null and b/assets/images/26_display_native_flink_job_web_ui-ce8bab69c0d932e35f431f80fe7052fd.png differ
diff --git a/assets/images/28_streampark_process_workflow-7fd6a79c2e020b9ea257022a2ed61a57.png b/assets/images/28_streampark_process_workflow-7fd6a79c2e020b9ea257022a2ed61a57.png
new file mode 100644
index 00000000..5ade20ff
Binary files /dev/null and b/assets/images/28_streampark_process_workflow-7fd6a79c2e020b9ea257022a2ed61a57.png differ
diff --git a/assets/images/29_streampark_system_menu-9fd0ca98887efb7cf31bd251a7503741.png b/assets/images/29_streampark_system_menu-9fd0ca98887efb7cf31bd251a7503741.png
new file mode 100644
index 00000000..45b30c50
Binary files /dev/null and b/assets/images/29_streampark_system_menu-9fd0ca98887efb7cf31bd251a7503741.png differ
diff --git a/assets/images/2_add_flink_home_info-64de4968630bd8b307d36a620b9cec9c.png b/assets/images/2_add_flink_home_info-64de4968630bd8b307d36a620b9cec9c.png
new file mode 100644
index 00000000..04d27108
Binary files /dev/null and b/assets/images/2_add_flink_home_info-64de4968630bd8b307d36a620b9cec9c.png differ
diff --git a/assets/images/2_main_components_dep-a127a4c83490f8bd370bf2d24db64366.png b/assets/images/2_main_components_dep-a127a4c83490f8bd370bf2d24db64366.png
new file mode 100644
index 00000000..017ef7b0
Binary files /dev/null and b/assets/images/2_main_components_dep-a127a4c83490f8bd370bf2d24db64366.png differ
diff --git a/assets/images/30_streampark_user_management_menu-492dfc52980c62a99f2a8b6ee746f923.png b/assets/images/30_streampark_user_management_menu-492dfc52980c62a99f2a8b6ee746f923.png
new file mode 100644
index 00000000..52d1023e
Binary files /dev/null and b/assets/images/30_streampark_user_management_menu-492dfc52980c62a99f2a8b6ee746f923.png differ
diff --git a/assets/images/31_streampark_token_management_menu-eb14faf845ab86acbee0d31417c9c321.png b/assets/images/31_streampark_token_management_menu-eb14faf845ab86acbee0d31417c9c321.png
new file mode 100644
index 00000000..c34f7d6b
Binary files /dev/null and b/assets/images/31_streampark_token_management_menu-eb14faf845ab86acbee0d31417c9c321.png differ
diff --git a/assets/images/32_streampark_token_management_menu_usage-cafe14fbd9f24364b3795651a72d2f3a.png b/assets/images/32_streampark_token_management_menu_usage-cafe14fbd9f24364b3795651a72d2f3a.png
new file mode 100644
index 00000000..78e65a5b
Binary files /dev/null and b/assets/images/32_streampark_token_management_menu_usage-cafe14fbd9f24364b3795651a72d2f3a.png differ
diff --git a/assets/images/33_streampark_role_menu-ab1e7a0172c324af7da49a112c50106b.png b/assets/images/33_streampark_role_menu-ab1e7a0172c324af7da49a112c50106b.png
new file mode 100644
index 00000000..c136b3cd
Binary files /dev/null and b/assets/images/33_streampark_role_menu-ab1e7a0172c324af7da49a112c50106b.png differ
diff --git a/assets/images/34_streampark_team_menu-c965a23a07e6eba715cd00ba3d59450a.png b/assets/images/34_streampark_team_menu-c965a23a07e6eba715cd00ba3d59450a.png
new file mode 100644
index 00000000..e8ffafa8
Binary files /dev/null and b/assets/images/34_streampark_team_menu-c965a23a07e6eba715cd00ba3d59450a.png differ
diff --git a/assets/images/35_streampark_member_menu-98cb402419a52f4deb1dcdb937a0c81c.png b/assets/images/35_streampark_member_menu-98cb402419a52f4deb1dcdb937a0c81c.png
new file mode 100644
index 00000000..5a16af7f
Binary files /dev/null and b/assets/images/35_streampark_member_menu-98cb402419a52f4deb1dcdb937a0c81c.png differ
diff --git a/assets/images/36_streampark_menu_management-8d5d7913f5e4b87c931588e3fc291d66.png b/assets/images/36_streampark_menu_management-8d5d7913f5e4b87c931588e3fc291d66.png
new file mode 100644
index 00000000..5c548ee6
Binary files /dev/null and b/assets/images/36_streampark_menu_management-8d5d7913f5e4b87c931588e3fc291d66.png differ
diff --git a/assets/images/37_streampark_project_menu-05040f758eab8ef9a6b9d8cfa945585a.png b/assets/images/37_streampark_project_menu-05040f758eab8ef9a6b9d8cfa945585a.png
new file mode 100644
index 00000000..cb4ed77d
Binary files /dev/null and b/assets/images/37_streampark_project_menu-05040f758eab8ef9a6b9d8cfa945585a.png differ
diff --git a/assets/images/38_streampark_project_menu_usage_1-d27732ec9c1f92c8fe953614e234dd8b.png b/assets/images/38_streampark_project_menu_usage_1-d27732ec9c1f92c8fe953614e234dd8b.png
new file mode 100644
index 00000000..2019c230
Binary files /dev/null and b/assets/images/38_streampark_project_menu_usage_1-d27732ec9c1f92c8fe953614e234dd8b.png differ
diff --git a/assets/images/39_streampark_project_menu_usage_2-29a21c3cf1f35949b98a3fec192418a6.png b/assets/images/39_streampark_project_menu_usage_2-29a21c3cf1f35949b98a3fec192418a6.png
new file mode 100644
index 00000000..281246b1
Binary files /dev/null and b/assets/images/39_streampark_project_menu_usage_2-29a21c3cf1f35949b98a3fec192418a6.png differ
diff --git a/assets/images/3_display_flink_home_config-4ab8b2b0418e178cc6f0b444828f1341.png b/assets/images/3_display_flink_home_config-4ab8b2b0418e178cc6f0b444828f1341.png
new file mode 100644
index 00000000..7774ffd7
Binary files /dev/null and b/assets/images/3_display_flink_home_config-4ab8b2b0418e178cc6f0b444828f1341.png differ
diff --git a/assets/images/3_flink_home-5fd5e4a0debd18df18921a47a1619330.png b/assets/images/3_flink_home-5fd5e4a0debd18df18921a47a1619330.png
new file mode 100644
index 00000000..1f8678d1
Binary files /dev/null and b/assets/images/3_flink_home-5fd5e4a0debd18df18921a47a1619330.png differ
diff --git a/assets/images/40_application_menu-8d9525e6d86e32f0cf585bdbde5b5883.png b/assets/images/40_application_menu-8d9525e6d86e32f0cf585bdbde5b5883.png
new file mode 100644
index 00000000..03b82f4d
Binary files /dev/null and b/assets/images/40_application_menu-8d9525e6d86e32f0cf585bdbde5b5883.png differ
diff --git a/assets/images/41_variable_menu_usage_1-33b3f127e94eb19d053201d994166f9f.png b/assets/images/41_variable_menu_usage_1-33b3f127e94eb19d053201d994166f9f.png
new file mode 100644
index 00000000..12582855
Binary files /dev/null and b/assets/images/41_variable_menu_usage_1-33b3f127e94eb19d053201d994166f9f.png differ
diff --git a/assets/images/42_variable_menu_usage_2-8d039a764acf8ff3025cc5dc33f2106c.png b/assets/images/42_variable_menu_usage_2-8d039a764acf8ff3025cc5dc33f2106c.png
new file mode 100644
index 00000000..53338706
Binary files /dev/null and b/assets/images/42_variable_menu_usage_2-8d039a764acf8ff3025cc5dc33f2106c.png differ
diff --git a/assets/images/43_variable_menu_usage_3-793db12d13e687be94e01a087723b6e7.png b/assets/images/43_variable_menu_usage_3-793db12d13e687be94e01a087723b6e7.png
new file mode 100644
index 00000000..5b07ec50
Binary files /dev/null and b/assets/images/43_variable_menu_usage_3-793db12d13e687be94e01a087723b6e7.png differ
diff --git a/assets/images/44_system_menu_1-c581b1adbe9416649eccd38a52db6750.png b/assets/images/44_system_menu_1-c581b1adbe9416649eccd38a52db6750.png
new file mode 100644
index 00000000..86a14ae6
Binary files /dev/null and b/assets/images/44_system_menu_1-c581b1adbe9416649eccd38a52db6750.png differ
diff --git a/assets/images/45_system_menu_2-42596e5f6171e4813f78b23c1527e82a.png b/assets/images/45_system_menu_2-42596e5f6171e4813f78b23c1527e82a.png
new file mode 100644
index 00000000..a7230651
Binary files /dev/null and b/assets/images/45_system_menu_2-42596e5f6171e4813f78b23c1527e82a.png differ
diff --git a/assets/images/46_system_menu_3-ca90698bed0553f6577bbbb4f1723467.png b/assets/images/46_system_menu_3-ca90698bed0553f6577bbbb4f1723467.png
new file mode 100644
index 00000000..9b8788c7
Binary files /dev/null and b/assets/images/46_system_menu_3-ca90698bed0553f6577bbbb4f1723467.png differ
diff --git a/assets/images/47_system_menu_4-688d00e1798dad39cc32679ebc8a1365.png b/assets/images/47_system_menu_4-688d00e1798dad39cc32679ebc8a1365.png
new file mode 100644
index 00000000..ee92272c
Binary files /dev/null and b/assets/images/47_system_menu_4-688d00e1798dad39cc32679ebc8a1365.png differ
diff --git a/assets/images/48_alert_setting_menu-a037245184bf609af36463fa946f0929.png b/assets/images/48_alert_setting_menu-a037245184bf609af36463fa946f0929.png
new file mode 100644
index 00000000..566e4c1d
Binary files /dev/null and b/assets/images/48_alert_setting_menu-a037245184bf609af36463fa946f0929.png differ
diff --git a/assets/images/49_flink_home_list-bdd106e9bdd2ffca109ccca61fd20adb.png b/assets/images/49_flink_home_list-bdd106e9bdd2ffca109ccca61fd20adb.png
new file mode 100644
index 00000000..6940eb56
Binary files /dev/null and b/assets/images/49_flink_home_list-bdd106e9bdd2ffca109ccca61fd20adb.png differ
diff --git a/assets/images/4_flink_deployment_execute_model-8d8236126fff0455e8f6d319ac8ee0bd.png b/assets/images/4_flink_deployment_execute_model-8d8236126fff0455e8f6d319ac8ee0bd.png
new file mode 100644
index 00000000..b5890954
Binary files /dev/null and b/assets/images/4_flink_deployment_execute_model-8d8236126fff0455e8f6d319ac8ee0bd.png differ
diff --git a/assets/images/4_mysql_dep-63b6cf7ffb182a69d0f917810b7db78e.png b/assets/images/4_mysql_dep-63b6cf7ffb182a69d0f917810b7db78e.png
new file mode 100644
index 00000000..71963c8c
Binary files /dev/null and b/assets/images/4_mysql_dep-63b6cf7ffb182a69d0f917810b7db78e.png differ
diff --git a/assets/images/50_flink_home_usage-380c085a7ed7e77c927b41e3fd4dfe4e.png b/assets/images/50_flink_home_usage-380c085a7ed7e77c927b41e3fd4dfe4e.png
new file mode 100644
index 00000000..25413023
Binary files /dev/null and b/assets/images/50_flink_home_usage-380c085a7ed7e77c927b41e3fd4dfe4e.png differ
diff --git a/assets/images/51_flink_home_usage_2-3d75e34d881c22ccc188b37f02a08387.png b/assets/images/51_flink_home_usage_2-3d75e34d881c22ccc188b37f02a08387.png
new file mode 100644
index 00000000..b69aaefa
Binary files /dev/null and b/assets/images/51_flink_home_usage_2-3d75e34d881c22ccc188b37f02a08387.png differ
diff --git a/assets/images/52_add_flink_cluster_info-27a925745999ed17a4bbced55ccd1d3c.png b/assets/images/52_add_flink_cluster_info-27a925745999ed17a4bbced55ccd1d3c.png
new file mode 100644
index 00000000..7cfd9112
Binary files /dev/null and b/assets/images/52_add_flink_cluster_info-27a925745999ed17a4bbced55ccd1d3c.png differ
diff --git a/assets/images/53_display_flink_cluster_list-a2dea9c5b00ee90cc941b4ab8e6ce9a3.png b/assets/images/53_display_flink_cluster_list-a2dea9c5b00ee90cc941b4ab8e6ce9a3.png
new file mode 100644
index 00000000..95ffc346
Binary files /dev/null and b/assets/images/53_display_flink_cluster_list-a2dea9c5b00ee90cc941b4ab8e6ce9a3.png differ
diff --git a/assets/images/54_visit_flink_cluster_web_ui-cd7de25c4e43195916f032fc7e226135.png b/assets/images/54_visit_flink_cluster_web_ui-cd7de25c4e43195916f032fc7e226135.png
new file mode 100644
index 00000000..4a6e7bf1
Binary files /dev/null and b/assets/images/54_visit_flink_cluster_web_ui-cd7de25c4e43195916f032fc7e226135.png differ
diff --git a/assets/images/5_start_flink_standalone_session_service-8f808dec058b639fd6792f67b52b480d.png b/assets/images/5_start_flink_standalone_session_service-8f808dec058b639fd6792f67b52b480d.png
new file mode 100644
index 00000000..19128b28
Binary files /dev/null and b/assets/images/5_start_flink_standalone_session_service-8f808dec058b639fd6792f67b52b480d.png differ
diff --git a/assets/images/5_streampark_install_pkg-44b644c3b659b59ade8f75b2fbe77e06.png b/assets/images/5_streampark_install_pkg-44b644c3b659b59ade8f75b2fbe77e06.png
new file mode 100644
index 00000000..7028263d
Binary files /dev/null and b/assets/images/5_streampark_install_pkg-44b644c3b659b59ade8f75b2fbe77e06.png differ
diff --git a/assets/images/61_flink_session_cluster_usage_1-c0eaf08dc4c9dbd8dd7d7127e479c219.png b/assets/images/61_flink_session_cluster_usage_1-c0eaf08dc4c9dbd8dd7d7127e479c219.png
new file mode 100644
index 00000000..73fcdb01
Binary files /dev/null and b/assets/images/61_flink_session_cluster_usage_1-c0eaf08dc4c9dbd8dd7d7127e479c219.png differ
diff --git a/assets/images/62_flink_session_cluster_usage_2-0b0d90394a6f29afde37039ba190ee4d.png b/assets/images/62_flink_session_cluster_usage_2-0b0d90394a6f29afde37039ba190ee4d.png
new file mode 100644
index 00000000..6addf796
Binary files /dev/null and b/assets/images/62_flink_session_cluster_usage_2-0b0d90394a6f29afde37039ba190ee4d.png differ
diff --git a/assets/images/63_flink_application_model_usage_1-e304961086f64945a5eae939dc8fef19.png b/assets/images/63_flink_application_model_usage_1-e304961086f64945a5eae939dc8fef19.png
new file mode 100644
index 00000000..4da6c97d
Binary files /dev/null and b/assets/images/63_flink_application_model_usage_1-e304961086f64945a5eae939dc8fef19.png differ
diff --git a/assets/images/64_flink_application_model_usage_2-ff0c09c7bde6c7d1e9654aff084f5f40.png b/assets/images/64_flink_application_model_usage_2-ff0c09c7bde6c7d1e9654aff084f5f40.png
new file mode 100644
index 00000000..2f61e967
Binary files /dev/null and b/assets/images/64_flink_application_model_usage_2-ff0c09c7bde6c7d1e9654aff084f5f40.png differ
diff --git a/assets/images/65_flink_application_model_usage_3-62ef8a576d861e999e5f18bca1320886.png b/assets/images/65_flink_application_model_usage_3-62ef8a576d861e999e5f18bca1320886.png
new file mode 100644
index 00000000..8cbeba73
Binary files /dev/null and b/assets/images/65_flink_application_model_usage_3-62ef8a576d861e999e5f18bca1320886.png differ
diff --git a/assets/images/66_flink_application_model_usage_4-497406736296d1f8eb37d23f68710a5c.png b/assets/images/66_flink_application_model_usage_4-497406736296d1f8eb37d23f68710a5c.png
new file mode 100644
index 00000000..50a02794
Binary files /dev/null and b/assets/images/66_flink_application_model_usage_4-497406736296d1f8eb37d23f68710a5c.png differ
diff --git a/assets/images/67_dynamic_params_usage-c8bcc3e941044d808bf3d89398b06897.png b/assets/images/67_dynamic_params_usage-c8bcc3e941044d808bf3d89398b06897.png
new file mode 100644
index 00000000..14618c76
Binary files /dev/null and b/assets/images/67_dynamic_params_usage-c8bcc3e941044d808bf3d89398b06897.png differ
diff --git a/assets/images/68_native_flink_restart_strategy-afe159cfde1938f73301f5d2f5d8e0ec.png b/assets/images/68_native_flink_restart_strategy-afe159cfde1938f73301f5d2f5d8e0ec.png
new file mode 100644
index 00000000..d8258271
Binary files /dev/null and b/assets/images/68_native_flink_restart_strategy-afe159cfde1938f73301f5d2f5d8e0ec.png differ
diff --git a/assets/images/69_streampark_alert_settings_1-faec89fe7f8ce829685c28d4387274c4.png b/assets/images/69_streampark_alert_settings_1-faec89fe7f8ce829685c28d4387274c4.png
new file mode 100644
index 00000000..deddfbfb
Binary files /dev/null and b/assets/images/69_streampark_alert_settings_1-faec89fe7f8ce829685c28d4387274c4.png differ
diff --git a/assets/images/6_flink_standalone_session_web_ui-c5f73ccb60329b89b1d4882e1c4f8d45.png b/assets/images/6_flink_standalone_session_web_ui-c5f73ccb60329b89b1d4882e1c4f8d45.png
new file mode 100644
index 00000000..43c4aa9c
Binary files /dev/null and b/assets/images/6_flink_standalone_session_web_ui-c5f73ccb60329b89b1d4882e1c4f8d45.png differ
diff --git a/assets/images/6_unpkg-db24dd2ca6d16e779cf5a8ccce6e3700.png b/assets/images/6_unpkg-db24dd2ca6d16e779cf5a8ccce6e3700.png
new file mode 100644
index 00000000..4c4633c5
Binary files /dev/null and b/assets/images/6_unpkg-db24dd2ca6d16e779cf5a8ccce6e3700.png differ
diff --git a/assets/images/70_streampark_alert_settings_2-521de9ad9a66bfed906063b1596e8119.png b/assets/images/70_streampark_alert_settings_2-521de9ad9a66bfed906063b1596e8119.png
new file mode 100644
index 00000000..79db47d5
Binary files /dev/null and b/assets/images/70_streampark_alert_settings_2-521de9ad9a66bfed906063b1596e8119.png differ
diff --git a/assets/images/71_streampark_alert_usage-a3b0338077095a944670b53584e0a0b3.png b/assets/images/71_streampark_alert_usage-a3b0338077095a944670b53584e0a0b3.png
new file mode 100644
index 00000000..27c9f22d
Binary files /dev/null and b/assets/images/71_streampark_alert_usage-a3b0338077095a944670b53584e0a0b3.png differ
diff --git a/assets/images/72_native_flink_save_checkpoint_gramma-2a15a651ae450499783a35cff9fd9c9a.png b/assets/images/72_native_flink_save_checkpoint_gramma-2a15a651ae450499783a35cff9fd9c9a.png
new file mode 100644
index 00000000..4cc2c1f2
Binary files /dev/null and b/assets/images/72_native_flink_save_checkpoint_gramma-2a15a651ae450499783a35cff9fd9c9a.png differ
diff --git a/assets/images/73_streampark_save_checkpoint-932e42066f6140bf66a412c2f192d0c1.png b/assets/images/73_streampark_save_checkpoint-932e42066f6140bf66a412c2f192d0c1.png
new file mode 100644
index 00000000..380fc0d0
Binary files /dev/null and b/assets/images/73_streampark_save_checkpoint-932e42066f6140bf66a412c2f192d0c1.png differ
diff --git a/assets/images/74_streampark_set_checkpoint_location-2ca7e8a34023b235f04e9ea012187bb5.png b/assets/images/74_streampark_set_checkpoint_location-2ca7e8a34023b235f04e9ea012187bb5.png
new file mode 100644
index 00000000..ca01d32b
Binary files /dev/null and b/assets/images/74_streampark_set_checkpoint_location-2ca7e8a34023b235f04e9ea012187bb5.png differ
diff --git a/assets/images/75_streampark_save_checkpoint_log-5e06a0db9e648eef893aad9f1ec5f222.png b/assets/images/75_streampark_save_checkpoint_log-5e06a0db9e648eef893aad9f1ec5f222.png
new file mode 100644
index 00000000..6a38fbd8
Binary files /dev/null and b/assets/images/75_streampark_save_checkpoint_log-5e06a0db9e648eef893aad9f1ec5f222.png differ
diff --git a/assets/images/76_show_checkpoint_file_name-9848305b415c965dfcab0c53b04a400e.png b/assets/images/76_show_checkpoint_file_name-9848305b415c965dfcab0c53b04a400e.png
new file mode 100644
index 00000000..6425e0d8
Binary files /dev/null and b/assets/images/76_show_checkpoint_file_name-9848305b415c965dfcab0c53b04a400e.png differ
diff --git a/assets/images/77_show_checkpoint_file_name_2-a322ac7cc9031bc7971b373849d87861.png b/assets/images/77_show_checkpoint_file_name_2-a322ac7cc9031bc7971b373849d87861.png
new file mode 100644
index 00000000..c94a949f
Binary files /dev/null and b/assets/images/77_show_checkpoint_file_name_2-a322ac7cc9031bc7971b373849d87861.png differ
diff --git a/assets/images/78_usage_checkpoint_in_streampark-cee144525153fdfff4680f9fd45bbe72.png b/assets/images/78_usage_checkpoint_in_streampark-cee144525153fdfff4680f9fd45bbe72.png
new file mode 100644
index 00000000..abf0f4ae
Binary files /dev/null and b/assets/images/78_usage_checkpoint_in_streampark-cee144525153fdfff4680f9fd45bbe72.png differ
diff --git a/assets/images/7_config_flink_cluster_menu-90b43c74c75774d1ea610ac8e5003188.png b/assets/images/7_config_flink_cluster_menu-90b43c74c75774d1ea610ac8e5003188.png
new file mode 100644
index 00000000..e13a9070
Binary files /dev/null and b/assets/images/7_config_flink_cluster_menu-90b43c74c75774d1ea610ac8e5003188.png differ
diff --git a/assets/images/7_mysql_schema_file-3c3aac38387df5ad02c7a1cbf4f0b728.png b/assets/images/7_mysql_schema_file-3c3aac38387df5ad02c7a1cbf4f0b728.png
new file mode 100644
index 00000000..5575fde4
Binary files /dev/null and b/assets/images/7_mysql_schema_file-3c3aac38387df5ad02c7a1cbf4f0b728.png differ
diff --git a/assets/images/80_native_flink_job_details_page-40a268af87d494532c22fb6b7e1e08d9.png b/assets/images/80_native_flink_job_details_page-40a268af87d494532c22fb6b7e1e08d9.png
new file mode 100644
index 00000000..1f393005
Binary files /dev/null and b/assets/images/80_native_flink_job_details_page-40a268af87d494532c22fb6b7e1e08d9.png differ
diff --git a/assets/images/81_streampark_flink_job_details_page-f5013d80700f0db63376ff2c9ed03ff8.png b/assets/images/81_streampark_flink_job_details_page-f5013d80700f0db63376ff2c9ed03ff8.png
new file mode 100644
index 00000000..b41f55e0
Binary files /dev/null and b/assets/images/81_streampark_flink_job_details_page-f5013d80700f0db63376ff2c9ed03ff8.png differ
diff --git a/assets/images/82_streampark_flink_job_starting_log_info-bb5b893073b64ccd49327b6d7273be9b.png b/assets/images/82_streampark_flink_job_starting_log_info-bb5b893073b64ccd49327b6d7273be9b.png
new file mode 100644
index 00000000..7133d5b5
Binary files /dev/null and b/assets/images/82_streampark_flink_job_starting_log_info-bb5b893073b64ccd49327b6d7273be9b.png differ
diff --git a/assets/images/83_streampark_restful_api_1-0636c29af897df6645fd485298db10fe.png b/assets/images/83_streampark_restful_api_1-0636c29af897df6645fd485298db10fe.png
new file mode 100644
index 00000000..ea4004b2
Binary files /dev/null and b/assets/images/83_streampark_restful_api_1-0636c29af897df6645fd485298db10fe.png differ
diff --git a/assets/images/84_streampark_restful_api_2-64c75d2b90d0a1285f84a92f13c25972.png b/assets/images/84_streampark_restful_api_2-64c75d2b90d0a1285f84a92f13c25972.png
new file mode 100644
index 00000000..de6d8479
Binary files /dev/null and b/assets/images/84_streampark_restful_api_2-64c75d2b90d0a1285f84a92f13c25972.png differ
diff --git a/assets/images/8_add_flink_cluster_info-02cff13f55de89ee1bd6a34dc557c5dd.png b/assets/images/8_add_flink_cluster_info-02cff13f55de89ee1bd6a34dc557c5dd.png
new file mode 100644
index 00000000..499e4482
Binary files /dev/null and b/assets/images/8_add_flink_cluster_info-02cff13f55de89ee1bd6a34dc557c5dd.png differ
diff --git a/assets/images/8_mysql_data_file-1350e4eee605d252348c15c2a96f5ec6.png b/assets/images/8_mysql_data_file-1350e4eee605d252348c15c2a96f5ec6.png
new file mode 100644
index 00000000..28433ddf
Binary files /dev/null and b/assets/images/8_mysql_data_file-1350e4eee605d252348c15c2a96f5ec6.png differ
diff --git a/assets/images/9_add_flink_cluster_successfully-c2eb59b780fc3f27e70c3911b5c81301.png b/assets/images/9_add_flink_cluster_successfully-c2eb59b780fc3f27e70c3911b5c81301.png
new file mode 100644
index 00000000..79f1a903
Binary files /dev/null and b/assets/images/9_add_flink_cluster_successfully-c2eb59b780fc3f27e70c3911b5c81301.png differ
diff --git a/assets/images/9_import_streampark_schema_file-a5b469564c012625644c74136c8257a7.png b/assets/images/9_import_streampark_schema_file-a5b469564c012625644c74136c8257a7.png
new file mode 100644
index 00000000..3e05b785
Binary files /dev/null and b/assets/images/9_import_streampark_schema_file-a5b469564c012625644c74136c8257a7.png differ
diff --git a/assets/images/Bondex-b9280a2451e6984d91f7747acaa10b97.png b/assets/images/Bondex-b9280a2451e6984d91f7747acaa10b97.png
new file mode 100644
index 00000000..8e511bb9
Binary files /dev/null and b/assets/images/Bondex-b9280a2451e6984d91f7747acaa10b97.png differ
diff --git a/assets/images/LineIcons-y2l643-e76a21f07f1a3949a21170b145337735.svg b/assets/images/LineIcons-y2l643-e76a21f07f1a3949a21170b145337735.svg
new file mode 100644
index 00000000..42b8c5d6
--- /dev/null
+++ b/assets/images/LineIcons-y2l643-e76a21f07f1a3949a21170b145337735.svg
@@ -0,0 +1,492 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+<json>
+<![CDATA[
+{
+	"fontFamily": "LineIcons",
+	"majorVersion": 1,
+	"minorVersion": 1,
+	"fontURL": "https://lineicons.com",
+	"description": "Free Line Icons for Modern Web and Mobile Apps\nFont generated by IcoMoon.",
+	"copyright": "https://lineicons.com",
+	"designer": "https://lineicons.com",
+	"designerURL": "https://lineicons.com",
+	"license": "Creative Commons",
+	"licenseURL": "https://lineicons.com/license",
+	"version": "Version 1.1",
+	"fontId": "LineIcons",
+	"psName": "LineIcons",
+	"subFamily": "Regular",
+	"fullName": "LineIcons"
+}
+]]>
+</json>
+</metadata>
+<defs>
+<font id="LineIcons" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe900;" glyph-name="add-file" data-tags="add-file" d="M827.392 924.16h-629.76c-23.552 0-44.032-19.456-44.032-44.032v-583.68c0-5.12 2.048-11.264 6.144-14.336l309.248-304.128c4.096-4.096 9.216-6.144 14.336-6.144h343.040c23.552 0 44.032 19.456 44.032 44.032v864.256c0 24.576-19.456 44.032-43.008 44.032zM457.728 68.096l-206.848 203.776h206.848v-203.776zM814.080 28.16h-300.032v261.12c0 21.504-16.384 38.912-38.912 38.912h-265.216v539.648h604.16v-839.68zM637.952 647.68h-87.040v [...]
+<glyph unicode="&#xe901;" glyph-name="display-alt" data-tags="display-alt" d="M952.32 809.472h-880.64c-26.624 0-49.152-21.504-49.152-49.152v-435.2c0-26.624 21.504-49.152 49.152-49.152h345.088l-35.84-134.144h-74.752c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h412.672c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-74.752l-35.84 134.144h344.064c26.624 0 49.152 21.504 49.152 49.152v436.224c0 26.624-22.528 48.128-49.152 48.128zM585.728 142.848h-147.456l [...]
+<glyph unicode="&#xe902;" glyph-name="laptop-phone" data-tags="laptop-phone" d="M955.392 621.056h-130.048v226.304c0 25.6-21.504 47.104-47.104 47.104h-643.072c-25.6 0-47.104-21.504-47.104-47.104v-336.896c0-8.192 2.048-15.36 6.144-21.504-4.096-5.12-7.168-11.264-9.216-18.432l-58.368-281.6v-1.024c-2.048-14.336 1.024-27.648 10.24-38.912 9.216-10.24 22.528-16.384 35.84-16.384h529.408v-91.136c0-22.528 18.432-40.96 40.96-40.96h313.344c22.528 0 40.96 18.432 40.96 40.96v538.624c-1.024 22.528-19.45 [...]
+<glyph unicode="&#xe903;" glyph-name="timer" data-tags="timer" d="M540.672 798.208v71.68h53.248c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-162.816c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h52.224v-71.68c-216.064-14.336-387.072-194.56-387.072-413.696 0-229.376 186.368-415.744 414.72-415.744s414.72 186.368 414.72 415.744c1.024 219.136-169.984 399.36-385.024 413.696zM512 25.088c-197.632 0-358.4 160.768-358.4 359.424 0 48.128 10.24 97.28 29.696 1 [...]
+<glyph unicode="&#xe904;" glyph-name="headphone" data-tags="headphone" d="M986.112 329.216c0 264.192-217.088 478.208-482.304 473.088-260.096-4.096-465.92-221.184-464.896-480.256v-105.472c0-6.144 4.096-10.24 10.24-10.24h18.432v-93.184c0-11.264 9.216-20.48 20.48-20.48h80.896c11.264 0 20.48 9.216 20.48 20.48v139.264c0 11.264-9.216 20.48-20.48 20.48h-73.728v49.152c0 228.352 179.2 419.84 407.552 424.96 234.496 5.12 427.008-183.296 427.008-416.768v-57.344h-72.704c-11.264 0-20.48-9.216-20.48-20 [...]
+<glyph unicode="&#xe905;" glyph-name="rocket" data-tags="rocket" d="M968.704 631.296l-132.096 133.12c-8.192 8.192-19.456 12.288-30.72 11.264l-189.44-15.36c-161.792 137.216-365.568 190.464-533.504 134.144l-13.312-4.096-4.096-13.312c-56.32-167.936-3.072-371.712 135.168-533.504l-16.384-189.44c-1.024-11.264 3.072-22.528 11.264-30.72l132.096-132.096c7.168-7.168 17.408-11.264 27.648-11.264 4.096 0 8.192 1.024 13.312 2.048 14.336 5.12 24.576 17.408 26.624 32.768l19.456 159.744c33.792-17.408 68. [...]
+<glyph unicode="&#xe906;" glyph-name="package" data-tags="package" d="M980.992 616.96l-143.36 287.744c-5.12 10.24-15.36 17.408-27.648 17.408h-595.968c-11.264 0-22.528-6.144-27.648-17.408l-143.36-287.744-7.168-15.36c-2.048-4.096-3.072-9.216-3.072-13.312v-583.68c0-17.408 13.312-30.72 30.72-30.72h898.048c17.408 0 30.72 13.312 30.72 30.72v583.68c0 5.12-1.024 9.216-3.072 13.312l-8.192 15.36zM539.648 865.792h254.976l123.904-248.832h-378.88c0 0 0 248.832 0 248.832zM230.4 865.792h252.928v-248.83 [...]
+<glyph unicode="&#xe907;" glyph-name="mobile" data-tags="mobile" d="M763.904 930.304h-503.808c-26.624 0-48.128-21.504-48.128-48.128v-869.376c0-26.624 21.504-48.128 48.128-48.128h504.832c26.624 0 48.128 21.504 48.128 48.128v869.376c-1.024 26.624-22.528 48.128-49.152 48.128zM755.712 22.016h-487.424v851.968h488.448l-1.024-851.968zM475.136 786.944h76.8c11.264 0 20.48 9.216 20.48 20.48s-9.216 20.48-20.48 20.48h-76.8c-11.264 0-20.48-9.216-20.48-20.48s9.216-20.48 20.48-20.48zM669.696 807.424c0- [...]
+<glyph unicode="&#xe908;" glyph-name="website" data-tags="website" d="M952.32 809.472h-880.64c-26.624 0-49.152-21.504-49.152-49.152v-435.2c0-26.624 21.504-49.152 49.152-49.152h399.36v-134.144h-106.496c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h294.912c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-106.496v134.144h399.36c26.624 0 49.152 21.504 49.152 49.152v436.224c0 26.624-22.528 48.128-49.152 48.128zM945.152 332.288h-865.28v420.864h865.28v-420.86 [...]
+<glyph unicode="&#xe909;" glyph-name="popup" data-tags="popup" d="M897.024 849.408h-770.048c-26.624 0-49.152-21.504-49.152-49.152v-561.152c0-26.624 21.504-49.152 49.152-49.152h224.256l133.12-133.12c7.168-7.168 16.384-11.264 27.648-11.264s19.456 4.096 27.648 11.264l133.12 133.12h224.256c26.624 0 49.152 21.504 49.152 49.152v561.152c-1.024 26.624-22.528 49.152-49.152 49.152zM888.832 247.296h-228.352c-7.168 0-14.336-3.072-19.456-8.192l-129.024-128-129.024 128c-5.12 5.12-12.288 8.192-19.456 8 [...]
+<glyph unicode="&#xe90a;" glyph-name="scroll-down" data-tags="scroll-down" d="M574.464 924.16h-124.928c-124.928 0-226.304-101.376-226.304-226.304v-499.712c0-124.928 101.376-226.304 226.304-226.304h124.928c124.928 0 226.304 101.376 226.304 226.304v499.712c0 124.928-101.376 226.304-226.304 226.304zM744.448 198.144c0-94.208-76.8-169.984-169.984-169.984h-124.928c-94.208 0-169.984 76.8-169.984 169.984v499.712c0 94.208 75.776 169.984 169.984 169.984h124.928c94.208 0 169.984-76.8 169.984-169.98 [...]
+<glyph unicode="&#xe90b;" glyph-name="pagination" data-tags="pagination" d="M94.208 448l191.488 191.488c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-203.776-204.8c-15.36-15.36-15.36-38.912 0-54.272l203.776-202.752c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-190.464 190.464zM982.016 474.624l-203.776 203.776c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l191.488-190.464-190.464-191.488c-11.264-11.264-11 [...]
+<glyph unicode="&#xe90c;" glyph-name="unlock" data-tags="unlock" d="M776.192 614.912v57.344c0 145.408-118.784 263.168-264.192 263.168-82.944 0-159.744-37.888-209.92-104.448-9.216-12.288-7.168-29.696 5.12-39.936 12.288-9.216 29.696-7.168 39.936 5.12 39.936 52.224 100.352 81.92 164.864 81.92 114.688 0 207.872-93.184 207.872-207.872v-54.272h-435.2c-110.592 2.048-199.68-87.040-199.68-197.632v-268.288c0-104.448 84.992-189.44 189.44-189.44h477.184c104.448 0 189.44 84.992 189.44 189.44v268.288c [...]
+<glyph unicode="&#xe90d;" glyph-name="reload" data-tags="reload" d="M284.672 514.56c0 15.36-12.288 28.672-28.672 28.672h-117.76c1.024 2.048 2.048 4.096 2.048 6.144 39.936 161.792 184.32 275.456 351.232 275.456 165.888 0 310.272-112.64 351.232-274.432 4.096-15.36 19.456-24.576 33.792-20.48 15.36 4.096 24.576 19.456 20.48 33.792-47.104 186.368-214.016 316.416-405.504 316.416-183.296 0-343.040-118.784-398.336-291.84v117.76c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-18 [...]
+<glyph unicode="&#xe90e;" glyph-name="map" data-tags="map" d="M535.552 754.176c0-13.007-10.545-23.552-23.552-23.552s-23.552 10.545-23.552 23.552c0 13.007 10.545 23.552 23.552 23.552s23.552-10.545 23.552-23.552zM950.272 690.688l-291.84 29.696-23.552-5.12c4.096 12.288 6.144 23.552 6.144 33.792 0 72.704-56.32 129.024-128 129.024s-129.024-58.368-129.024-129.024c0-21.504 10.24-51.2 25.6-80.896l-46.080-9.216-282.624 29.696c-10.24 1.024-21.504-2.048-29.696-9.216s-12.288-17.408-12.288-28.672v-56 [...]
+<glyph unicode="&#xe90f;" glyph-name="game" data-tags="game" d="M958.464 605.696c-29.696 30.72-71.68 48.128-113.664 48.128h-304.128v175.104c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-176.128h-304.128c-88.064 0-159.744-71.68-159.744-159.744v-293.888c0-88.064 71.68-160.768 159.744-160.768 82.944 0 150.528 62.464 159.744 142.336h347.136c8.192-80.896 76.8-143.36 159.744-143.36 88.064 0 158.72 71.68 158.72 159.744v295.936c1.024 41.984-15.36 81.92-46.080 112.64zM948.224  [...]
+<glyph unicode="&#xe910;" glyph-name="search" data-tags="search" d="M966.656 101.888l-217.088 217.088c-19.456 19.456-50.176 19.456-69.632 1.024l-95.232 94.208c44.032 53.248 71.68 121.856 71.68 196.608 0 168.96-137.216 307.2-307.2 307.2s-307.2-137.216-307.2-307.2 137.216-307.2 307.2-307.2c73.728 0 142.336 26.624 195.584 70.656l95.232-94.208-1.024-1.024c-19.456-19.456-19.456-52.224 0-71.68l217.088-216.064c19.456-19.456 52.224-19.456 71.68 0l38.912 38.912c19.456 20.48 19.456 52.224 0 71.68z [...]
+<glyph unicode="&#xe911;" glyph-name="alarm" data-tags="alarm" d="M870.4 114.176c-34.816 34.816-58.368 79.872-66.56 128 0 1.024 0 2.048 0 3.072l-45.056 297.984c-3.072 16.384-4.096 30.72-6.144 45.056-6.144 118.784-99.328 214.016-216.064 227.328v89.088c0 15.36-12.288 28.672-28.672 28.672s-26.624-13.312-26.624-28.672v-90.112c-113.664-14.336-203.776-108.544-209.92-227.328 0-10.24-2.048-22.528-4.096-33.792l-46.080-295.936-4.096-25.6c-10.24-46.080-31.744-87.040-64.512-117.76-11.264-11.264-15.3 [...]
+<glyph unicode="&#xe912;" glyph-name="code-alt" data-tags="code-alt" d="M327.68 421.376c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-86.016 86.016 86.016 86.016c11.264 11.264 11.264 28.672 0 39.936-10.24 10.24-27.648 10.24-38.912 0l-102.4-102.4c-13.312-13.312-13.312-33.792 0-47.104l102.4-102.4zM656.384 421.376c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192l102.4 102.4c13.312 13.312 13.312 33.792 0 47.104l-101.376 102.4 [...]
+<glyph unicode="&#xe913;" glyph-name="display" data-tags="display" d="M952.32 809.472h-880.64c-26.624 0-49.152-21.504-49.152-49.152v-435.2c0-26.624 21.504-49.152 49.152-49.152h399.36v-134.144h-106.496c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h294.912c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-106.496v134.144h399.36c26.624 0 49.152 21.504 49.152 49.152v436.224c0 26.624-22.528 48.128-49.152 48.128zM945.152 332.288h-865.28v420.864h865.28v-420.864z" />
+<glyph unicode="&#xe914;" glyph-name="cloud-download" data-tags="cloud-download" d="M1001.472 382.464c0 73.728-27.648 145.408-77.824 200.704-2.048 2.048-3.072 3.072-5.12 4.096-44.032 46.080-101.376 76.8-163.84 86.016-33.792 56.32-86.016 98.304-148.48 120.832 0 0 0 0 0 0s0 0 0 0 0 0-1.024 0v0c-27.648 10.24-57.344 16.384-91.136 16.384-153.6 0-279.552-122.88-284.672-275.456-114.688-10.24-204.8-107.52-204.8-225.28 0-121.856 98.304-222.208 219.136-224.256 0 0 1.024 0 1.024 0h471.040c1.024 0 2 [...]
+<glyph unicode="&#xe915;" glyph-name="headphone-alt" data-tags="headphone-alt" d="M980.992 407.040c0 261.12-215.040 473.088-477.184 467.968-257.024-4.096-459.776-219.136-459.776-476.16v-104.448c0-6.144 4.096-10.24 10.24-10.24h17.408v-91.136c0-11.264 9.216-20.48 20.48-20.48h11.264v-51.2c0-25.6 19.456-47.104 45.056-48.128l294.912-21.504v-16.384c0-8.192 7.168-15.36 15.36-15.36h131.072c8.192 0 15.36 7.168 15.36 15.36v81.92c0 8.192-7.168 15.36-15.36 15.36h-130.048c-8.192 0-15.36-7.168-15.36-1 [...]
+<glyph unicode="&#xe916;" glyph-name="empty-file" data-tags="empty-file" d="M827.392 924.16h-629.76c-23.552 0-44.032-19.456-44.032-44.032v-583.68c0-5.12 2.048-11.264 6.144-14.336l309.248-304.128c4.096-4.096 9.216-6.144 14.336-6.144h343.040c23.552 0 44.032 19.456 44.032 44.032v864.256c0 24.576-19.456 44.032-43.008 44.032zM457.728 68.096l-206.848 203.776h206.848v-203.776zM814.080 28.16h-300.032v261.12c0 21.504-16.384 38.912-38.912 38.912h-265.216v539.648h604.16v-839.68z" />
+<glyph unicode="&#xe917;" glyph-name="remove-file" data-tags="remove-file" d="M827.392 924.16h-629.76c-23.552 0-44.032-19.456-44.032-44.032v-583.68c0-5.12 2.048-11.264 6.144-14.336l309.248-304.128c4.096-4.096 9.216-6.144 14.336-6.144h343.040c23.552 0 44.032 19.456 44.032 44.032v864.256c0 24.576-19.456 44.032-43.008 44.032zM457.728 68.096l-206.848 203.776h206.848v-203.776zM814.080 28.16h-300.032v261.12c0 21.504-16.384 38.912-38.912 38.912h-265.216v539.648h604.16v-839.68zM397.312 596.48h22 [...]
+<glyph unicode="&#xe918;" glyph-name="alarm-clock" data-tags="alarm-clock" d="M854.016 620.032c29.696 25.6 48.128 63.488 48.128 103.424 0 75.776-61.44 137.216-137.216 137.216-55.296 0-102.4-32.768-123.904-80.896-31.744 10.24-65.536 17.408-101.376 19.456v71.68h53.248c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-161.792c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h53.248v-71.68c-31.744-2.048-63.488-8.192-93.184-17.408-22.528 46.080-69.632 76.8-122.8 [...]
+<glyph unicode="&#xe919;" glyph-name="shortcode" data-tags="shortcode" d="M519.168 463.36c-16.384 5.12-28.672 10.24-36.864 16.384s-12.288 13.312-12.288 21.504c0 9.216 4.096 16.384 11.264 21.504s17.408 8.192 30.72 8.192c14.336 0 24.576-4.096 31.744-10.24 3.072-4.096 6.144-8.192 8.192-12.288 4.096-9.216 11.264-15.36 21.504-15.36h4.096c18.432 0 30.72 18.432 22.528 34.816-1.024 2.048-3.072 4.096-4.096 6.144-8.192 12.288-19.456 21.504-33.792 28.672s-30.72 10.24-49.152 10.24c-18.432 0-34.816-3 [...]
+<glyph unicode="&#xe91a;" glyph-name="bookmark-alt" data-tags="bookmark-alt" d="M951.296 681.472h-499.712v121.856c0 21.504-17.408 38.912-38.912 38.912h-205.824c-21.504 0-38.912-17.408-38.912-38.912v-121.856h-95.232c-27.648 0-49.152-22.528-49.152-49.152v-528.384c0-27.648 22.528-49.152 49.152-49.152h878.592c27.648 0 49.152 22.528 49.152 49.152v527.36c1.024 27.648-21.504 50.176-49.152 50.176zM224.256 785.92h171.008v-272.384l-60.416 51.2c-7.168 6.144-16.384 9.216-25.6 9.216s-17.408-3.072-25. [...]
+<glyph unicode="&#xe91b;" glyph-name="bookmark" data-tags="bookmark" d="M263.168-31.232c-7.168 0-14.336 1.024-20.48 4.096-19.456 9.216-32.768 28.672-32.768 52.224v846.848c0 29.696 23.552 54.272 53.248 54.272h497.664c28.672 0 53.248-24.576 53.248-54.272v-845.824c2.048-20.48-8.192-39.936-25.6-50.176-18.432-10.24-41.984-8.192-59.392 5.12l-2.048 2.048-214.016 194.56-214.016-194.56c-10.24-9.216-22.528-14.336-35.84-14.336zM266.24 870.912v-840.704l211.968 192.512c20.48 16.384 49.152 16.384 69.6 [...]
+<glyph unicode="&#xe91c;" glyph-name="code" data-tags="code" d="M284.672 679.424c-11.264 11.264-28.672 11.264-39.936 0l-203.776-203.776c-7.168-8.192-11.264-17.408-11.264-27.648s4.096-19.456 11.264-27.648l203.776-203.776c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-190.464 191.488 191.488 191.488c11.264 11.264 11.264 28.672 0 39.936zM983.040 475.648l-203.776 203.776c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l191.488 [...]
+<glyph unicode="&#xe91d;" glyph-name="keyboard" data-tags="keyboard" d="M979.968 723.456h-935.936c-21.504 0-38.912-17.408-38.912-38.912v-474.112c0-21.504 17.408-38.912 38.912-38.912h934.912c21.504 0 38.912 17.408 38.912 38.912v474.112c0 21.504-17.408 38.912-37.888 38.912zM961.536 228.864h-899.072v438.272h899.072v-438.272zM721.92 344.576h-419.84c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h420.864c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-29.696 28.672zM180.22 [...]
+<glyph unicode="&#xe91e;" glyph-name="map-marker" data-tags="map-marker" d="M512 941.568c-185.344 0-335.872-150.528-335.872-335.872 0-177.152 300.032-602.112 313.344-619.52l22.528-32.768 22.528 32.768c12.288 18.432 313.344 442.368 313.344 619.52 0 185.344-150.528 335.872-335.872 335.872zM512 51.712c-95.232 139.264-279.552 432.128-279.552 553.984 0 154.624 124.928 279.552 279.552 279.552s279.552-125.952 279.552-279.552c0-120.832-184.32-414.72-279.552-553.984zM512 765.44c-80.896 0-146.432- [...]
+<glyph unicode="&#xe91f;" glyph-name="grid-alt" data-tags="grid-alt" d="M93.184 525.824h272.384c36.864 0 66.56 29.696 66.56 66.56v272.384c0 36.864-29.696 66.56-66.56 66.56h-272.384c-36.864 0-67.584-29.696-67.584-66.56v-271.36c0-36.864 30.72-67.584 67.584-67.584zM81.92 864.768c0 6.144 5.12 10.24 11.264 10.24h272.384c6.144 0 10.24-5.12 10.24-10.24v-272.384c0-4.096-4.096-10.24-10.24-10.24h-272.384c-6.144 0-11.264 5.12-11.264 11.264v271.36zM656.384 525.824h271.36c35.84 0 66.56 28.672 67.584  [...]
+<glyph unicode="&#xe920;" glyph-name="grid" data-tags="grid" d="M983.040 419.328c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-99.328v286.72h99.328c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-99.328v98.304c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-99.328h-286.72v99.328c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-99.328h-287.744v99.328c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-9 [...]
+<glyph unicode="&#xe921;" glyph-name="mic" data-tags="mic" d="M512 258.56c104.448 0 189.44 84.992 189.44 189.44v307.2c0 103.424-84.992 188.416-189.44 188.416s-189.44-84.992-189.44-188.416v-307.2c0-105.472 84.992-189.44 189.44-189.44zM378.88 755.2c0 72.704 59.392 133.12 133.12 133.12s133.12-59.392 133.12-133.12v-307.2c0-72.704-59.392-133.12-133.12-133.12s-133.12 59.392-133.12 133.12v307.2zM845.824 455.168c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672c0-152.576-123.904-2 [...]
+<glyph unicode="&#xe922;" glyph-name="tab" data-tags="tab" d="M827.392 933.376h-629.76c-26.624 0-49.152-21.504-49.152-49.152v-873.472c0-26.624 21.504-49.152 49.152-49.152h629.76c26.624 0 49.152 21.504 49.152 49.152v873.472c-1.024 26.624-22.528 49.152-49.152 49.152zM819.2 18.944h-614.4v858.112h614.4v-858.112zM366.592 777.728h151.552c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-151.552c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672zM658.432 805.376c0- [...]
+<glyph unicode="&#xe923;" glyph-name="signal" data-tags="signal" d="M512 650.752c-53.248 0-96.256-43.008-96.256-96.256 0-43.008 28.672-79.872 68.608-92.16v-441.344c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v441.344c39.936 12.288 68.608 49.152 68.608 92.16-2.048 53.248-45.056 96.256-98.304 96.256zM512 514.56c-22.528 0-39.936 18.432-39.936 39.936s18.432 39.936 39.936 39.936c22.528 0 39.936-18.432 39.936-39.936s-17.408-39.936-39.936-39.936zM358.4 554.496c0 40.96 16.384  [...]
+<glyph unicode="&#xe924;" glyph-name="unlink" data-tags="unlink" d="M468.992 750.080l-132.096 132.096c-70.656 70.656-186.368 70.656-258.048 0-70.656-70.656-70.656-186.368 0-258.048l131.072-132.096c35.84-35.84 81.92-53.248 129.024-53.248s93.184 17.408 129.024 53.248c70.656 69.632 71.68 185.344 1.024 258.048zM249.856 530.944l-131.072 133.12c-49.152 49.152-49.152 129.024 0 178.176 24.576 24.576 57.344 36.864 89.088 36.864s64.512-12.288 89.088-36.864l132.096-132.096c44.032-44.032 48.128-112. [...]
+<glyph unicode="&#xe925;" glyph-name="download" data-tags="download" d="M956.416 294.4c-15.36 0-28.672-12.288-28.672-28.672v-235.52h-831.488v235.52c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-249.856c0-23.552 21.504-41.984 49.152-41.984h846.848c27.648 0 49.152 18.432 49.152 41.984v249.856c0 15.36-12.288 28.672-27.648 28.672zM661.504 432.64c-7.168 0-14.336-3.072-19.456-8.192l-102.4-102.4v571.392c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-571.39 [...]
+<glyph unicode="&#xe926;" glyph-name="upload" data-tags="upload" d="M956.416 294.4c-15.36 0-28.672-12.288-28.672-28.672v-235.52h-831.488v235.52c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-249.856c0-23.552 21.504-41.984 49.152-41.984h846.848c27.648 0 49.152 18.432 49.152 41.984v249.856c0 15.36-12.288 28.672-27.648 28.672zM361.472 702.976c7.168 0 14.336 3.072 19.456 8.192l102.4 102.4v-572.416c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v572.416l101. [...]
+<glyph unicode="&#xe927;" glyph-name="zip" data-tags="zip" d="M842.752 745.984v134.144c0 23.552-19.456 44.032-44.032 44.032h-628.736c-23.552 0-44.032-19.456-44.032-44.032v-583.68c0-5.12 2.048-11.264 6.144-14.336l309.248-304.128c4.096-4.096 9.216-6.144 14.336-6.144h343.040c23.552 0 44.032 19.456 44.032 44.032v445.44c30.72 2.048 55.296 27.648 55.296 58.368v167.936c0 30.72-24.576 56.32-55.296 58.368zM430.080 68.096l-206.848 203.776h206.848v-203.776zM786.432 28.16h-300.032v261.12c0 21.504-16 [...]
+<glyph unicode="&#xe928;" glyph-name="rss-feed" data-tags="rss-feed" d="M51.2 939.52c-15.36 0-27.648-13.312-27.648-28.672s12.288-27.648 27.648-27.648c495.616 0 898.048-402.432 898.048-898.048 0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672c-1.024 526.336-429.056 954.368-955.392 954.368zM62.464 719.36c-15.36 0-28.672-12.288-28.672-28.672s12.288-27.648 28.672-27.648c367.616 0 665.6-299.008 665.6-665.6 0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672c-1.024 39 [...]
+<glyph unicode="&#xe929;" glyph-name="warning" data-tags="warning" d="M995.328 170.496l-451.584 602.112c-7.168 10.24-19.456 15.36-31.744 15.36s-23.552-6.144-31.744-15.36l-451.584-602.112c-9.216-12.288-10.24-27.648-4.096-40.96 7.168-13.312 20.48-21.504 34.816-21.504h903.168c15.36 0 28.672 8.192 34.816 21.504 8.192 12.288 6.144 28.672-2.048 40.96zM95.232 163.328l416.768 558.080 416.768-557.056h-833.536zM484.352 532.992v-145.408c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.67 [...]
+<glyph unicode="&#xe92a;" glyph-name="cloud-sync" data-tags="cloud-sync" d="M643.072 320c-13.312 8.192-30.72 5.12-38.912-8.192-17.408-26.624-48.128-43.008-80.896-43.008-25.6 0-49.152 9.216-66.56 26.624h28.672c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-81.92c-19.456 0-34.816-16.384-34.816-34.816v-86.016c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v18.432c27.648-23.552 62.464-35.84 98.304-35.84 52.224 0 99.328 25.6 128 67.584 7.168 12.288 4.096 29. [...]
+<glyph unicode="&#xe92b;" glyph-name="cloud-upload" data-tags="cloud-upload" d="M1001.472 382.464c0 73.728-27.648 145.408-77.824 200.704-2.048 2.048-3.072 3.072-5.12 4.096-44.032 46.080-101.376 76.8-163.84 86.016-33.792 56.32-86.016 98.304-148.48 120.832 0 0 0 0 0 0s0 0 0 0 0 0-1.024 0v0c-27.648 10.24-57.344 16.384-91.136 16.384-153.6 0-279.552-122.88-284.672-275.456-114.688-10.24-204.8-107.52-204.8-225.28 0-121.856 98.304-222.208 219.136-224.256 0 0 1.024 0 1.024 0h471.040c1.024 0 2.048 [...]
+<glyph unicode="&#xe92c;" glyph-name="cloud-check" data-tags="cloud-check" d="M929.792 584.192c-44.032 48.128-106.496 81.92-172.032 92.16-34.816 57.344-88.064 101.376-150.528 122.88-27.648 11.264-59.392 16.384-94.208 16.384-156.672 0-283.648-124.928-289.792-279.552-116.736-10.24-209.92-108.544-209.92-228.352 0-124.928 100.352-226.304 224.256-228.352v0h468.992c165.888 0 301.056 135.168 301.056 301.056 2.048 75.776-26.624 148.48-77.824 203.776zM708.608 135.68h-464.896c-95.232 0-173.056 77. [...]
+<glyph unicode="&#xe92d;" glyph-name="cog" data-tags="cog" d="M694.272 458.24c0 3.072 0 5.12-1.024 8.192 0 3.072-1.024 6.144-1.024 9.216s-1.024 7.168-2.048 10.24c0 2.048-1.024 3.072-1.024 5.12 0 1.024 0 1.024-1.024 2.048-1.024 3.072-2.048 7.168-3.072 10.24-1.024 2.048-1.024 5.12-2.048 7.168s-2.048 5.12-3.072 7.168c-1.024 3.072-3.072 6.144-4.096 10.24-1.024 2.048-2.048 3.072-2.048 5.12-2.048 4.096-4.096 8.192-6.144 11.264 0 0 0 1.024-1.024 1.024-1.024 1.024-1.024 2.048-2.048 2.048-2.048 4 [...]
+<glyph unicode="&#xe92e;" glyph-name="dashboard" data-tags="dashboard" d="M1011.712 239.104c-20.48 274.432-239.616 489.472-499.712 489.472s-479.232-215.040-499.712-489.472c-1.024-18.432 5.12-35.84 17.408-50.176 12.288-13.312 29.696-21.504 48.128-21.504h868.352c18.432 0 35.84 7.168 48.128 21.504 12.288 13.312 18.432 31.744 17.408 50.176zM953.344 227.84c-1.024-1.024-3.072-3.072-7.168-3.072h-380.928l-43.008 133.12c-3.072 9.216-16.384 9.216-19.456 0l-43.008-133.12h-381.952c-3.072 0-6.144 2.0 [...]
+<glyph unicode="&#xe92f;" glyph-name="database" data-tags="database" d="M964.608 761.344l-3.072 5.12c-31.744 101.376-203.776 163.84-449.536 163.84h-13.312c-40.96-1.024-83.968-3.072-128-8.192-40.96-6.144-75.776-11.264-112.64-21.504-28.672-8.192-61.44-18.432-91.136-33.792-32.768-15.36-69.632-36.864-92.16-74.752l-8.192-16.384c-3.072-4.096-10.24-12.288-10.24-24.576v-590.848c0-4.096-1.024-9.216 1.024-16.384 0-2.048 1.024-4.096 2.048-7.168 26.624-101.376 212.992-171.008 452.608-171.008 203.776 [...]
+<glyph unicode="&#xe930;" glyph-name="control-panel" data-tags="panel" d="M841.728 930.304h-659.456c-30.72 0-56.32-25.6-56.32-56.32v-850.944c0-30.72 25.6-56.32 56.32-56.32h660.48c30.72 0 56.32 25.6 56.32 56.32v849.92c-1.024 31.744-25.6 57.344-57.344 57.344zM841.728-5.632v0zM841.728 22.016h-660.48v850.944h660.48v-850.944zM352.256 663.040h44.032v-22.528c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v22.528h220.16c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28 [...]
+<glyph unicode="&#xe931;" glyph-name="plug" data-tags="plug" d="M736.256 806.4h-47.104v91.136c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-91.136h-238.592v91.136c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-91.136h-49.152c-45.056 0-82.944-37.888-82.944-82.944v-122.88c1.024-159.744 123.904-291.84 280.576-306.176v-295.936c0-15.36 12.288-28.672 28.672-28.672 15.36 0 28.672 12.288 28.672 28.672v295.936c71.68 6.144 138.24 37.888 190.464 89.088 56.32 5 [...]
+<glyph unicode="&#xe932;" glyph-name="power-switch" data-tags="power-switch" d="M629.76 727.552c-18.432 6.144-36.864-7.168-36.864-26.624v0c0-12.288 8.192-22.528 19.456-26.624 135.168-44.032 232.448-174.080 225.28-324.608-7.168-163.84-138.24-297.984-302.080-309.248-189.44-13.312-348.16 137.216-348.16 324.608 0 143.36 93.184 265.216 223.232 308.224 11.264 4.096 19.456 14.336 19.456 26.624 0 19.456-18.432 32.768-36.864 26.624-161.792-54.272-276.48-214.016-259.072-397.312 16.384-184.32 166.9 [...]
+<glyph unicode="&#xe933;" glyph-name="printer" data-tags="printer" d="M884.736 753.152h-78.848v131.072c0 26.624-22.528 49.152-49.152 49.152h-488.448c-26.624 0-49.152-22.528-49.152-49.152v-131.072h-79.872c-26.624 0-49.152-22.528-49.152-49.152v-319.488c0-26.624 22.528-49.152 49.152-49.152h79.872v-324.608c0-26.624 22.528-49.152 49.152-49.152h487.424c25.6 0 47.104 19.456 50.176 46.080v328.704h77.824c26.624 0 49.152 22.528 49.152 49.152v318.464c1.024 26.624-21.504 49.152-48.128 49.152zM275.45 [...]
+<glyph unicode="&#xe934;" glyph-name="layers" data-tags="layers" d="M956.416 260.608l-120.832 69.632 117.76 65.536c14.336 6.144 22.528 20.48 23.552 35.84 1.024 17.408-8.192 32.768-22.528 40.96l-132.096 76.8 133.12 72.704c14.336 6.144 22.528 20.48 23.552 35.84 1.024 17.408-8.192 32.768-22.528 40.96l-411.648 239.616c-14.336 9.216-31.744 9.216-45.056 0l-432.128-239.616c-14.336-8.192-22.528-22.528-22.528-38.912s8.192-30.72 22.528-38.912l137.216-71.68-136.192-75.776c-14.336-8.192-22.528-22.52 [...]
+<glyph unicode="&#xe935;" glyph-name="link" data-tags="link" d="M945.152 271.872l-132.096 132.096c-34.816 34.816-79.872 53.248-129.024 53.248-40.96 0-79.872-13.312-111.616-37.888l-89.088 90.112c24.576 31.744 37.888 70.656 37.888 111.616 0 49.152-18.432 94.208-53.248 129.024l-132.096 131.072c-33.792 34.816-79.872 53.248-129.024 53.248s-94.208-18.432-128-53.248c-34.816-33.792-53.248-79.872-53.248-128s18.432-94.208 53.248-129.024l132.096-132.096c34.816-34.816 79.872-53.248 129.024-53.248 36 [...]
+<glyph unicode="&#xe936;" glyph-name="laptop" data-tags="laptop" d="M976.896 95.744l-65.536 304.128c-2.048 7.168-5.12 14.336-9.216 19.456 4.096 7.168 6.144 15.36 6.144 23.552v366.592c0 26.624-21.504 49.152-49.152 49.152h-696.32c-26.624 0-49.152-21.504-49.152-49.152v-365.568c0-8.192 2.048-16.384 6.144-23.552-4.096-6.144-8.192-12.288-9.216-19.456l-62.464-305.152c-3.072-14.336 1.024-29.696 10.24-40.96s23.552-18.432 37.888-18.432h834.56c14.336 0 28.672 6.144 37.888 18.432s11.264 26.624 8.192 [...]
+<glyph unicode="&#xe937;" glyph-name="layout" data-tags="layout" d="M929.792 924.16h-835.584c-31.744 0-58.368-26.624-58.368-58.368v-835.584c0-31.744 26.624-58.368 58.368-58.368h834.56c30.72 0 57.344 24.576 59.392 56.32v837.632c0 31.744-26.624 58.368-58.368 58.368zM94.208 867.84h835.584c1.024 0 2.048-1.024 2.048-2.048v-149.504h-839.68v149.504c0 1.024 1.024 2.048 2.048 2.048zM373.76 659.968h558.080v-287.744h-558.080v287.744zM92.16 30.208v629.76h225.28v-631.808h-223.232c-1.024 0-2.048 1.024 [...]
+<glyph unicode="&#xe938;" glyph-name="microphone" data-tags="microphone" d="M710.656 934.4c-157.696 0-286.72-129.024-286.72-286.72 0-28.672 4.096-57.344 12.288-83.968l-371.712-371.712c-25.6-25.6-38.912-59.392-38.912-95.232s14.336-69.632 38.912-95.232v0c26.624-26.624 60.416-39.936 95.232-39.936s68.608 13.312 95.232 39.936l371.712 371.712c26.624-8.192 54.272-12.288 83.968-12.288 158.72 0 287.744 129.024 287.744 287.744s-129.024 285.696-287.744 285.696zM104.448 40.448v0c-14.336 15.36-22.528 [...]
+<glyph unicode="&#xe939;" glyph-name="magnet" data-tags="magnet" d="M880.64 815.616c-72.704 73.728-169.984 114.688-273.408 114.688 0 0-1.024 0-1.024 0-104.448 0-201.728-40.96-275.456-114.688l-286.72-284.672c-19.456-19.456-19.456-50.176 0-68.608l145.408-145.408c9.216-9.216 21.504-14.336 34.816-14.336s25.6 5.12 34.816 14.336l268.288 268.288c32.768 32.768 83.968 35.84 117.76 8.192 19.456-15.36 29.696-37.888 31.744-62.464 1.024-24.576-8.192-48.128-24.576-64.512l-271.36-272.384c-19.456-19.456 [...]
+<glyph unicode="&#xe93a;" glyph-name="mouse" data-tags="mouse" d="M512 935.424c-195.584 0-355.328-158.72-355.328-354.304v-266.24c0-195.584 159.744-355.328 355.328-355.328 96.256 0 186.368 36.864 252.928 105.472 66.56 66.56 102.4 155.648 102.4 249.856v266.24c0 195.584-159.744 354.304-355.328 354.304zM811.008 581.12v-26.624h-266.24v323.584c149.504-16.384 266.24-143.36 266.24-296.96zM488.448 878.080v-324.608h-275.456v27.648c0 156.672 121.856 285.696 275.456 296.96zM724.992 104.96c-56.32-57. [...]
+<glyph unicode="&#xe93b;" glyph-name="share-alt" data-tags="share-alt" d="M220.16 562.688c7.168 0 14.336 3.072 19.456 8.192 11.264 11.264 11.264 28.672 0 39.936l-97.28 99.328h204.8c93.184 0 168.96-75.776 168.96-168.96v-257.024c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v257.024c0 123.904-101.376 225.28-225.28 225.28h-204.8l96.256 96.256c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-163.84-164.864 163.84-166.912c6.144-5.12 13.312-8.192 20.48-8.192zM954. [...]
+<glyph unicode="&#xe93c;" glyph-name="bluetooth" data-tags="bluetooth" d="M822.272 250.368l-301.056 192.512c-3.072 2.048-5.12 3.072-8.192 4.096l308.224 198.656c0 0 1.024 1.024 1.024 1.024 14.336 10.24 22.528 25.6 22.528 43.008 0 18.432-9.216 34.816-24.576 44.032l-299.008 193.536c-16.384 10.24-36.864 11.264-54.272 2.048-16.384-9.216-26.624-27.648-26.624-47.104v-385.024c0 0 0-1.024 0-1.024l-219.136 141.312c-13.312 8.192-30.72 5.12-38.912-8.192s-5.12-30.72 8.192-38.912l220.16-142.336-218.11 [...]
+<glyph unicode="&#xe93d;" glyph-name="crop" data-tags="crop" d="M977.92 105.984h-66.56v702.464l47.104 47.104c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-48.128-49.152h-700.416v67.584c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-67.584h-64.512c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h64.512v-684.032h-67.584c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h67.584v-65.536c0-15.36 12.288-28.672 28.672-28.672s28.67 [...]
+<glyph unicode="&#xe93e;" glyph-name="heart-filled" data-tags="heart-filled" d="M512 38.4l398.336 401.408c48.128 48.128 71.68 109.568 71.68 173.056s-24.576 125.952-72.704 173.056c-95.232 95.232-252.928 95.232-348.16 0l-51.2-51.2-51.2 51.2c-48.128 46.080-110.592 70.656-173.056 70.656s-124.928-22.528-173.056-70.656c-95.232-95.232-95.232-252.928 0-348.16l399.36-399.36z" />
+<glyph unicode="&#xe93f;" glyph-name="cut" data-tags="cut" d="M947.2 203.264c-16.384 44.032-48.128 78.848-90.112 98.304s-90.112 21.504-133.12 6.144-74.752-46.080-94.208-82.944l-87.040 236.544 155.648 428.032c5.12 14.336-2.048 30.72-16.384 35.84s-30.72-2.048-35.84-16.384l-133.12-365.568-133.12 365.568c-5.12 14.336-21.504 22.528-35.84 16.384-14.336-5.12-22.528-21.504-16.384-35.84l155.648-428.032-87.040-238.592c-19.456 37.888-52.224 68.608-95.232 84.992-90.112 32.768-190.464-14.336-224.256- [...]
+<glyph unicode="&#xe940;" glyph-name="protection" data-tags="protection" d="M504.832 912.896l-352.256-102.4c-9.216-2.048-14.336-10.24-14.336-19.456v-291.84c0-232.448 147.456-439.296 366.592-514.048l9.216-3.072 9.216 3.072c217.088 74.752 363.52 281.6 363.52 514.048v290.816c0 9.216-6.144 17.408-14.336 19.456l-356.352 102.4c-4.096 2.048-7.168 2.048-11.264 1.024zM830.464 499.2c0-204.8-126.976-387.072-318.464-457.728-190.464 69.632-318.464 251.904-318.464 457.728v264.192l317.44 92.16 319.488- [...]
+<glyph unicode="&#xe941;" glyph-name="bolt-alt" data-tags="bolt-alt" d="M292.864-32.256c-6.144 0-13.312 2.048-19.456 5.12-17.408 9.216-24.576 28.672-18.432 48.128l137.216 408.576h-133.12c-13.312 0-25.6 7.168-33.792 17.408s-8.192 25.6-3.072 37.888l179.2 419.84c6.144 14.336 20.48 24.576 36.864 24.576h326.656c13.312 0 26.624-7.168 33.792-18.432s8.192-25.6 3.072-37.888l-95.232-212.992h52.224c15.36 0 28.672-8.192 35.84-22.528 7.168-13.312 5.12-29.696-4.096-41.984l-466.944-612.352c-8.192-10.24 [...]
+<glyph unicode="&#xe942;" glyph-name="bolt" data-tags="bolt" d="M391.168-50.688c-11.264 0-22.528 6.144-28.672 16.384-5.12 8.192-6.144 18.432-3.072 26.624l91.136 387.072h-199.68c-12.288 0-22.528 6.144-28.672 15.36-6.144 10.24-7.168 22.528-1.024 32.768l2.048 3.072 338.944 497.664c9.216 16.384 23.552 18.432 28.672 18.432 11.264 0 22.528-6.144 28.672-16.384 5.12-8.192 6.144-17.408 3.072-26.624l-70.656-311.296 222.208-1.024c11.264 0 22.528-6.144 28.672-15.36 6.144-10.24 7.168-22.528 1.024-32. [...]
+<glyph unicode="&#xe943;" glyph-name="infinite" data-tags="infinite" d="M771.072 216.576c-75.776 0-146.432 36.864-190.464 97.28v1.024l-68.608 89.088-72.704-95.232c-45.056-58.368-112.64-92.16-186.368-92.16-129.024 0-234.496 105.472-234.496 234.496s105.472 234.496 234.496 234.496c74.752 0 146.432-36.864 190.464-97.28l68.608-90.112 63.488 82.944c16.384 21.504 38.912 48.128 69.632 67.584 37.888 23.552 80.896 36.864 125.952 36.864 129.024 0 234.496-105.472 234.496-234.496 0-130.048-105.472-23 [...]
+<glyph unicode="&#xe944;" glyph-name="hand" data-tags="hand" d="M890.88 760.32c-18.432 18.432-41.984 27.648-67.584 27.648-14.336 0-27.648-3.072-38.912-8.192v10.24c0 25.6-10.24 49.152-27.648 67.584-18.432 18.432-41.984 27.648-67.584 27.648-17.408 0-33.792-5.12-47.104-12.288-5.12 9.216-11.264 18.432-18.432 26.624-18.432 18.432-41.984 27.648-67.584 27.648-46.080 0-83.968-32.768-93.184-75.776-14.336 7.168-31.744 10.24-48.128 9.216h-1.024c-49.152-4.096-87.040-47.104-87.040-97.28v-227.328c-14. [...]
+<glyph unicode="&#xe945;" glyph-name="flag" data-tags="flag" d="M785.408 427.52c0 1.024-1.024 3.072-1.024 4.096 0 0 0 0 0 0l-55.296 128c-1.024 3.072-1.024 5.12 0 8.192l55.296 128c1.024 2.048 1.024 4.096 2.048 6.144 0 2.048 0 3.072 0 5.12 0 0 0 0 0 0s0 0 0 0c0 2.048 0 3.072 0 5.12 0 1.024 0 1.024-1.024 2.048 0 1.024-1.024 2.048-1.024 3.072s-1.024 1.024-1.024 2.048-1.024 2.048-2.048 3.072c0 0-1.024 1.024-1.024 1.024-1.024 1.024-2.048 2.048-3.072 3.072 0 0 0 0-1.024 1.024s-2.048 2.048-3.072 [...]
+<glyph unicode="&#xe946;" glyph-name="lock" data-tags="lock" d="M776.192 614.912v57.344c0 145.408-118.784 263.168-264.192 263.168s-264.192-118.784-264.192-264.192v-57.344c-93.184-17.408-163.84-99.328-163.84-197.632v-268.288c0-104.448 84.992-189.44 189.44-189.44h476.16c104.448 0 189.44 84.992 189.44 189.44v269.312c1.024 98.304-70.656 180.224-162.816 197.632zM512 879.104c114.688 0 207.872-93.184 207.872-207.872v-53.248h-415.744v53.248c0 114.688 93.184 207.872 207.872 207.872zM883.712 150.0 [...]
+<glyph unicode="&#xe947;" glyph-name="zoom-out" data-tags="zoom-out" d="M965.632 101.888l-217.088 217.088c-18.432 18.432-50.176 19.456-69.632 2.048l-94.208 93.184c44.032 53.248 71.68 121.856 71.68 196.608 0 168.96-137.216 307.2-307.2 307.2s-307.2-137.216-307.2-307.2 137.216-307.2 307.2-307.2c73.728 0 142.336 26.624 195.584 70.656l94.208-93.184-1.024-1.024c-19.456-19.456-19.456-52.224 0-71.68l217.088-216.064c19.456-19.456 52.224-19.456 71.68 0l38.912 38.912c20.48 19.456 20.48 51.2 0 70.65 [...]
+<glyph unicode="&#xe948;" glyph-name="zoom-in" data-tags="zoom-in" d="M965.632 101.888l-217.088 217.088c-18.432 18.432-50.176 19.456-69.632 2.048l-94.208 93.184c44.032 53.248 71.68 121.856 71.68 196.608 0 168.96-137.216 307.2-307.2 307.2s-307.2-137.216-307.2-307.2 137.216-307.2 307.2-307.2c73.728 0 142.336 26.624 195.584 70.656l94.208-93.184-1.024-1.024c-19.456-19.456-19.456-52.224 0-71.68l217.088-216.064c19.456-19.456 52.224-19.456 71.68 0l38.912 38.912c20.48 19.456 20.48 51.2 0 70.656z [...]
+<glyph unicode="&#xe949;" glyph-name="pin-alt" data-tags="pin-alt" d="M737.28 440.832l-40.96 240.64c21.504 14.336 35.84 38.912 36.864 66.56v63.488c0 56.32-46.080 102.4-102.4 102.4h-239.616c-56.32 0-101.376-46.080-101.376-102.4v-63.488c0-28.672 15.36-54.272 37.888-67.584l-40.96-239.616c-27.648-20.48-46.080-54.272-46.080-91.136v-16.384c0-62.464 51.2-113.664 114.688-113.664h20.48l95.232-215.040 1.024-1.024c7.168-13.312 20.48-21.504 34.816-21.504 1.024 0 1.024 0 2.048 0 14.336 1.024 27.648 1 [...]
+<glyph unicode="&#xe94a;" glyph-name="more-alt" data-tags="more-filled" d="M296.96 452.096c0-72.955-59.141-132.096-132.096-132.096s-132.096 59.141-132.096 132.096c0 72.955 59.141 132.096 132.096 132.096s132.096-59.141 132.096-132.096zM642.048 452.096c0-72.955-59.141-132.096-132.096-132.096s-132.096 59.141-132.096 132.096c0 72.955 59.141 132.096 132.096 132.096s132.096-59.141 132.096-132.096zM988.16 452.096c0-72.955-59.141-132.096-132.096-132.096s-132.096 59.141-132.096 132.096c0 72.955 5 [...]
+<glyph unicode="&#xe94b;" glyph-name="check-box" data-tags="checkbox" d="M982.016 851.456c-11.264 11.264-28.672 11.264-39.936 0l-126.976-126.976v23.552c0 26.624-21.504 49.152-49.152 49.152h-684.032c-26.624 0-49.152-21.504-49.152-49.152v-663.552c0-26.624 21.504-49.152 49.152-49.152h685.056c26.624 0 49.152 21.504 49.152 49.152v560.128l166.912 166.912c10.24 11.264 10.24 28.672-1.024 39.936zM758.784 92.672h-669.696v647.168h669.696v-72.704l-131.072-130.048-113.664 113.664c-11.264 11.264-28.67 [...]
+<glyph unicode="&#xe94c;" glyph-name="check-mark-circle" data-tags="checkmark-circle" d="M512 936.448c-269.312 0-488.448-219.136-488.448-488.448s219.136-489.472 489.472-489.472c269.312 0 489.472 219.136 489.472 489.472-1.024 269.312-221.184 488.448-490.496 488.448zM512 14.848c-238.592 0-433.152 194.56-433.152 433.152s194.56 432.128 433.152 432.128 433.152-194.56 433.152-433.152-194.56-432.128-433.152-432.128zM714.752 625.152l-297.984-297.984-107.52 106.496c-11.264 11.264-28.672 11.264-39 [...]
+<glyph unicode="&#xe94d;" glyph-name="cross-circle" data-tags="cross-circle" d="M727.040 660.992c-11.264 11.264-28.672 11.264-39.936 0l-175.104-175.104-175.104 175.104c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l175.104-175.104-175.104-175.104c-11.264-11.264-11.264-28.672 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192l176.128 175.104 175.104-175.104c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936 [...]
+<glyph unicode="&#xe94e;" glyph-name="circle-minus" data-tags="circle-minus" d="M788.48 473.6h-551.936c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h551.936c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM512 936.448c-269.312 0-488.448-219.136-488.448-488.448s219.136-489.472 489.472-489.472c269.312 0 489.472 219.136 489.472 489.472-1.024 269.312-221.184 488.448-490.496 488.448zM512 14.848c-238.592 0-433.152 194.56-433.152 433.152s194.56 432.128 433.15 [...]
+<glyph unicode="&#xe94f;" glyph-name="star-filled" data-tags="star-filled" d="M991.232 581.12l-313.344 46.080-142.336 284.672c-10.24 19.456-38.912 19.456-48.128 0l-141.312-285.696-313.344-45.056c-22.528-3.072-31.744-31.744-14.336-46.080l226.304-222.208-53.248-312.32c-3.072-21.504 18.432-38.912 39.936-26.624l281.6 146.432 280.576-146.432c18.432-10.24 43.008 6.144 38.912 26.624l-53.248 312.32 226.304 222.208c16.384 15.36 8.192 43.008-14.336 46.080z" />
+<glyph unicode="&#xe950;" glyph-name="star" data-tags="star" d="M237.568-14.848c-8.192 0-15.36 2.048-22.528 7.168-12.288 8.192-17.408 22.528-15.36 37.888l48.128 285.696-207.872 202.752c-10.24 10.24-14.336 25.6-9.216 38.912 4.096 14.336 16.384 23.552 30.72 26.624l286.72 44.032 129.024 261.12c6.144 13.312 19.456 21.504 34.816 21.504 14.336 0 27.648-8.192 34.816-21.504l129.024-261.12 286.72-43.008c14.336-2.048 26.624-12.288 30.72-26.624s1.024-28.672-9.216-38.912l-207.872-202.752 48.128-285. [...]
+<glyph unicode="&#xe951;" glyph-name="close" data-tags="close" d="M551.936 448l440.32 441.344c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-440.32-441.344-441.344 440.32c-10.24 11.264-28.672 11.264-38.912 0-11.264-10.24-11.264-28.672 0-38.912l440.32-441.344-440.32-441.344c-11.264-11.264-11.264-28.672 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192l441.344 441.344 441.344-441.344c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11 [...]
+<glyph unicode="&#xe952;" glyph-name="star-empty" data-tags="star-empty" d="M465.92 828.928l36.864 73.728c4.096 7.168 14.336 7.168 18.432 0l36.864-73.728-46.080-22.528-46.080 22.528zM538.172 741.024l50.508 24.922 31.265-63.364-50.508-24.922-31.265 63.364zM688.128 551.424l-60.416 8.192-26.624 55.296 50.176 24.576 14.336-28.672 30.72-4.096zM758.37 541.184l8.099 55.734 69.921-10.16-8.099-55.734-69.921 10.16zM933.888 489.984l-35.84 35.84 1.024 9.216 6.144 41.984 81.92-12.288c8.192-1.024 11.2 [...]
+<glyph unicode="&#xe953;" glyph-name="star-half" data-tags="star-half" d="M512 199.168v0l-231.424-121.856 44.032 258.048-187.392 182.272 259.072 37.888 115.712 234.496 8.192 16.384 37.888 18.432-46.080 92.16-153.6-310.272-331.776-48.128c-4.096-1.024-6.144-6.144-3.072-8.192l240.64-234.496-56.32-330.752c-1.024-4.096 4.096-7.168 7.168-5.12l296.96 156.672 27.648-14.336 26.624 50.176-54.272 26.624zM538.061 736.911l50.508 24.922 31.265-63.364-50.508-24.922-31.265 63.364zM651.264 635.392l-50.17 [...]
+<glyph unicode="&#xe954;" glyph-name="question-circle" data-tags="question-circle" d="M523.264 723.456c-60.416 7.168-117.76-23.552-145.408-77.824-7.168-14.336-2.048-30.72 12.288-37.888s30.72-2.048 37.888 12.288c17.408 32.768 52.224 52.224 89.088 48.128 39.936-5.12 72.704-38.912 77.824-77.824 4.096-37.888-15.36-73.728-49.152-90.112-40.96-19.456-66.56-62.464-66.56-109.568v-119.808c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v119.808c0 24.576 14.336 48.128 34.816 58.368 5 [...]
+<glyph unicode="&#xe955;" glyph-name="thumbs-down" data-tags="thumbs-down" d="M861.184 842.24v0c-71.68 49.152-174.080 77.824-281.6 77.824-17.408 0-34.816 0-55.296-2.048-135.168-13.312-219.136-34.816-262.144-67.584-4.096 0-8.192 1.024-12.288 1.024h-120.832c-59.392 0-107.52-48.128-107.52-107.52v-330.752c0-60.416 48.128-109.568 107.52-109.568h120.832c6.144 0 13.312 1.024 20.48 2.048 3.072-2.048 6.144-3.072 10.24-4.096 25.6-10.24 115.712-90.112 222.208-264.192 22.528-38.912 62.464-61.44 105. [...]
+<glyph unicode="&#xe956;" glyph-name="thumbs-up" data-tags="thumbs-up" d="M972.8 542.208c-39.936 95.232-158.72 100.352-248.832 99.328 10.24 70.656 19.456 166.912 0 207.872s-59.392 67.584-105.472 70.656c-3.072 0-7.168 0-10.24 0-44.032 0-82.944-22.528-105.472-61.44-106.496-174.080-196.608-253.952-222.208-264.192-4.096-1.024-7.168-3.072-10.24-4.096-7.168 1.024-13.312 2.048-20.48 2.048h-120.832c-59.392 0-107.52-49.152-107.52-109.568v-330.752c0-59.392 48.128-107.52 107.52-107.52h120.832c4.096 [...]
+<glyph unicode="&#xe957;" glyph-name="minus" data-tags="minus" d="M904.192 419.328h-783.36c-16.384 0-28.672 13.312-28.672 28.672s12.288 28.672 28.672 28.672h783.36c15.36 0 28.672-12.288 28.672-28.672s-13.312-28.672-28.672-28.672z" />
+<glyph unicode="&#xe958;" glyph-name="more" data-tags="more" d="M176.128 586.24c-75.776 0-138.24-61.44-138.24-138.24 0-75.776 61.44-138.24 138.24-138.24 37.888 0 72.704 15.36 99.328 41.984 25.6 26.624 39.936 62.464 38.912 96.256 0 76.8-62.464 138.24-138.24 138.24zM234.496 391.68c-15.36-16.384-35.84-24.576-58.368-24.576-45.056 0-81.92 36.864-81.92 81.92s36.864 81.92 81.92 81.92 81.92-35.84 81.92-81.92c1.024-20.48-8.192-41.984-23.552-57.344zM512 586.24c-75.776 0-138.24-61.44-138.24-138.24  [...]
+<glyph unicode="&#xe959;" glyph-name="plus" data-tags="plus" d="M904.192 466.432h-363.52v362.496c0 16.384-13.312 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-363.52h-362.496c-16.384 1.024-28.672-12.288-28.672-27.648s12.288-28.672 28.672-28.672h363.52v-363.52c0-15.36 12.288-28.672 28.672-28.672s28.672 13.312 28.672 28.672v363.52h363.52c15.36 0 28.672 12.288 28.672 28.672s-14.336 28.672-29.696 28.672z" />
+<glyph unicode="&#xe95a;" glyph-name="ban" data-tags="na" d="M866.304 802.304c-195.584 195.584-513.024 195.584-708.608 0s-195.584-513.024 0-708.608c97.28-97.28 226.304-146.432 354.304-146.432s257.024 49.152 354.304 146.432c195.584 195.584 195.584 513.024 0 708.608zM197.632 762.368c87.040 87.040 200.704 130.048 314.368 130.048 105.472 0 209.92-36.864 293.888-110.592l-627.712-627.712c-153.6 174.080-147.456 441.344 19.456 608.256zM826.368 133.632c-166.912-166.912-434.176-173.056-608.256-19. [...]
+<glyph unicode="&#xe95b;" glyph-name="trash" data-tags="trash" d="M839.68 808.448h-165.888c-5.12 69.632-64.512 124.928-136.192 124.928h-56.32c-70.656 0-129.024-55.296-134.144-124.928h-162.816c-24.576 0-43.008-18.432-43.008-43.008l37.888-659.456c4.096-79.872 69.632-142.336 150.528-142.336h363.52c80.896 0 146.432 61.44 151.552 142.336l39.936 657.408v2.048c-1.024 23.552-20.48 43.008-45.056 43.008zM481.28 877.056h56.32c39.936 0 73.728-30.72 78.848-68.608h-212.992c5.12 38.912 37.888 68.608 77 [...]
+<glyph unicode="&#xe95c;" glyph-name="key" data-tags="key" d="M949.248 273.92l-179.2 179.2c-43.008 43.008-110.592 43.008-153.6 0l-29.696-29.696-473.088 474.112c-11.264 11.264-29.696 11.264-39.936 0-11.264-11.264-11.264-28.672 0-39.936l55.296-55.296-77.824-76.8c-11.264-11.264-11.264-28.672 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192l77.824 77.824 95.232-95.232-111.616-111.616c-11.264-11.264-11.264-28.672 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072  [...]
+<glyph unicode="&#xe95d;" glyph-name="pulse" data-tags="pulse" d="M570.368 113.152c-13.312 0-25.6 9.216-28.672 21.504l-184.32 584.704c-1.024 3.072-4.096 5.12-8.192 5.12h-2.048c-3.072 0-6.144-2.048-6.144-3.072l-1.024-2.048-187.392-456.704h-111.616c-15.36 0-28.672 12.288-28.672 28.672s12.288 28.672 28.672 28.672h73.728l172.032 421.888c9.216 25.6 34.816 41.984 63.488 40.96s53.248-19.456 61.44-45.056l160.768-509.952 74.752 208.896c9.216 23.552 31.744 39.936 57.344 43.008s49.152-11.264 62.464 [...]
+<glyph unicode="&#xe95e;" glyph-name="heart" data-tags="heart" d="M925.696 807.424c-51.2 51.2-118.784 78.848-191.488 78.848s-141.312-27.648-191.488-78.848l-30.72-30.72-30.72 30.72c-51.2 49.152-120.832 77.824-190.464 77.824-72.704 0-140.288-27.648-191.488-77.824-106.496-105.472-106.496-277.504 0-384l415.744-415.744 191.488 191.488 172.032 174.080 50.176 50.176c50.176 50.176 78.848 118.784 78.848 191.488-3.072 73.728-30.72 142.336-81.92 192.512zM885.76 465.408l-51.2-51.2-171.008-174.080-15 [...]
+<glyph unicode="&#xe95f;" glyph-name="help" data-tags="help" d="M501.76 182.784c-15.36 0-28.672 12.288-28.672 28.672v193.536c0 67.584 37.888 131.072 97.28 160.768 60.416 28.672 96.256 94.208 89.088 162.816-7.168 71.68-67.584 132.096-139.264 140.288-66.56 7.168-130.048-26.624-160.768-86.016-7.168-14.336-23.552-19.456-37.888-12.288s-19.456 23.552-12.288 37.888c40.96 80.896 126.976 125.952 217.088 116.736 99.328-12.288 178.176-92.16 189.44-190.464 10.24-92.16-38.912-180.224-119.808-219.136- [...]
+<glyph unicode="&#xe960;" glyph-name="paint-roller" data-tags="paint-roller" d="M884.736 824.832h-27.648v58.368c0 26.624-21.504 49.152-49.152 49.152h-498.688c-26.624 0-49.152-21.504-49.152-49.152v-58.368h-100.352c-26.624 0-49.152-21.504-49.152-49.152v-252.928c0-26.624 21.504-49.152 49.152-49.152h370.688v-105.472h-52.224c-11.264 0-20.48-9.216-20.48-20.48v-364.544c0-11.264 9.216-20.48 20.48-20.48h160.768c11.264 0 20.48 9.216 20.48 20.48v364.544c0 11.264-9.216 20.48-20.48 20.48h-51.2v114.68 [...]
+<glyph unicode="&#xe961;" glyph-name="ux" data-tags="ux" d="M797.696 322.048c21.504 0 38.912 17.408 38.912 38.912v164.864c0 21.504-17.408 38.912-38.912 38.912h-180.224c-21.504 0-38.912-17.408-38.912-38.912v-54.272h-134.144v54.272c0 21.504-17.408 38.912-38.912 38.912h-62.464v139.264h62.464c21.504 0 38.912 17.408 38.912 38.912v165.888c0 21.504-17.408 38.912-38.912 38.912h-179.2c-21.504-1.024-38.912-18.432-38.912-38.912v-165.888c0-21.504 17.408-38.912 38.912-38.912h62.464v-140.288h-62.464c- [...]
+<glyph unicode="&#xe962;" glyph-name="radio-button" data-tags="radio-button" d="M194.56 913.92c-67.584 0-122.88-55.296-122.88-122.88s55.296-122.88 122.88-122.88c67.584 0 122.88 55.296 122.88 122.88-1.024 67.584-55.296 122.88-122.88 122.88zM194.56 724.48c-36.864 0-66.56 29.696-66.56 66.56s29.696 66.56 66.56 66.56c36.864 0 66.56-29.696 66.56-66.56-1.024-36.864-30.72-66.56-66.56-66.56zM194.56 570.88c-67.584 0-122.88-55.296-122.88-122.88s55.296-122.88 122.88-122.88c67.584 0 122.88 55.296 122 [...]
+<glyph unicode="&#xe963;" glyph-name="brush-alt" data-tags="brush-alt" d="M959.488 824.832v0c-47.104 47.104-120.832 48.128-168.96 4.096l-482.304-443.392c-17.408 0-34.816-5.12-51.2-12.288-40.96-17.408-59.392-49.152-73.728-72.704-12.288-21.504-26.624-46.080-68.608-71.68l-84.992-53.248 84.992-51.2c33.792-20.48 151.552-87.040 251.904-87.040 38.912 0 71.68 10.24 96.256 28.672 51.2 38.912 58.368 83.968 57.344 109.568l443.392 482.304c43.008 47.104 41.984 118.784-4.096 166.912zM429.056 109.056c- [...]
+<glyph unicode="&#xe964;" glyph-name="slice" data-tags="slice" d="M980.992 115.2l-720.896 720.896c-14.336 14.336-39.936 14.336-54.272 0l-162.816-162.816c-7.168-7.168-11.264-16.384-11.264-27.648 0-10.24 4.096-19.456 11.264-27.648l525.312-525.312c7.168-7.168 17.408-11.264 27.648-11.264s19.456 4.096 27.648 11.264l22.528 22.528 54.272-54.272c7.168-7.168 17.408-11.264 27.648-11.264l226.304-2.048c0 0 0 0 0 0 15.36 0 29.696 9.216 35.84 23.552 5.12 16.384 2.048 32.768-9.216 44.032zM233.472 783.8 [...]
+<glyph unicode="&#xe965;" glyph-name="move" data-tags="move" d="M990.208 475.648l-124.928 124.928c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l84.992-84.992h-370.688v370.688l84.992-84.992c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-123.904 124.928c-15.36 15.36-38.912 15.36-54.272 0l-125.952-124.928c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 39.936 0l84.992 84.992v-369.664h-370.688l84.992 84.992c11.264 11.26 [...]
+<glyph unicode="&#xe966;" glyph-name="wheelchair" data-tags="wheelchair" d="M643.072 120.32c-52.224-57.344-126.976-90.112-203.776-90.112-151.552 0-275.456 123.904-275.456 275.456 0 87.040 41.984 169.984 111.616 222.208 12.288 9.216 15.36 26.624 6.144 38.912s-26.624 15.36-38.912 6.144c-84.992-62.464-135.168-162.816-135.168-267.264 0-183.296 149.504-331.776 331.776-331.776 93.184 0 183.296 39.936 245.76 108.544 10.24 11.264 9.216 29.696-2.048 39.936s-28.672 9.216-39.936-2.048zM872.448 184. [...]
+<glyph unicode="&#xe967;" glyph-name="vector" data-tags="vector" d="M926.72 684.544c-39.936 5.12-73.728-19.456-87.040-53.248h-245.76c-11.264 31.744-41.984 54.272-76.8 54.272s-65.536-22.528-76.8-54.272h-256c-12.288 33.792-47.104 57.344-87.040 53.248-36.864-4.096-67.584-34.816-71.68-71.68-5.12-49.152 32.768-91.136 80.896-91.136 35.84 0 65.536 22.528 76.8 54.272h139.264c-88.064-59.392-148.48-156.672-155.648-268.288h-27.648c-11.264 0-20.48-9.216-20.48-20.48v-55.296c0-11.264 9.216-20.48 20.48 [...]
+<glyph unicode="&#xe968;" glyph-name="ruler-pencil" data-tags="ruler-pencil" d="M454.656 934.4h-321.536c-23.552-2.048-40.96-20.48-40.96-43.008v-879.616c2.048-23.552 20.48-40.96 43.008-40.96h318.464c23.552 0 43.008 19.456 43.008 43.008v879.616c-1.024 23.552-19.456 40.96-41.984 40.96zM441.344 26.112h-292.864v37.888h66.56c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-66.56v84.992h124.928c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-124.928v87.040h67. [...]
+<glyph unicode="&#xe969;" glyph-name="ruler" data-tags="ruler" d="M732.16 907.776c-2.048 23.552-20.48 41.984-44.032 41.984h-355.328c-23.552-2.048-41.984-20.48-41.984-44.032v-917.504c2.048-23.552 20.48-41.984 44.032-41.984h353.28c24.576 0 44.032 19.456 44.032 44.032v917.504zM676.864 2.56h-329.728v41.984h92.16c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-92.16v91.136h152.576c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-152.576v93.184l93.184-1.024c0 [...]
+<glyph unicode="&#xe96a;" glyph-name="brush" data-tags="brush" d="M998.4 590.336l-343.040 343.040c-8.192 8.192-18.432 12.288-30.72 12.288-11.264 0-22.528-4.096-30.72-12.288l-283.648-285.696c-72.704-72.704-78.848-182.272-19.456-261.12l-245.76-245.76c-44.032-44.032-44.032-114.688 0-157.696 21.504-21.504 50.176-32.768 78.848-32.768s57.344 11.264 78.848 32.768l244.736 244.736c35.84-27.648 78.848-41.984 121.856-41.984 51.2 0 102.4 19.456 142.336 58.368l286.72 285.696c8.192 8.192 12.288 18.432 [...]
+<glyph unicode="&#xe96b;" glyph-name="eraser" data-tags="eraser" d="M959.488 504.32c23.552 23.552 23.552 60.416 0 84.992l-306.176 306.176c-11.264 11.264-26.624 17.408-41.984 17.408s-30.72-6.144-41.984-17.408l-447.488-446.464c-48.128-48.128-75.776-112.64-75.776-181.248s26.624-132.096 75.776-181.248l28.672-28.672c48.128-48.128 112.64-75.776 181.248-75.776 0 0 1.024 0 1.024 0 9.216 0 18.432 1.024 27.648 2.048h512c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-378.88c6.144 [...]
+<glyph unicode="&#xe96c;" glyph-name="ruler-alt" data-tags="ruler-alt" d="M1000.448 681.472l-254.976 254.976c-16.384 16.384-45.056 16.384-61.44 0l-67.584-67.584c0 0 0 0 0 0s0 0 0 0l-592.896-591.872c-8.192-8.192-13.312-19.456-13.312-30.72s4.096-22.528 13.312-30.72l254.976-254.976c8.192-8.192 19.456-13.312 30.72-13.312s22.528 5.12 30.72 13.312l659.456 659.456c8.192 8.192 13.312 19.456 13.312 30.72 1.024 11.264-4.096 22.528-12.288 30.72zM309.248 8.704l-236.544 237.568 30.72 30.72 66.56-66.5 [...]
+<glyph unicode="&#xe96d;" glyph-name="color-pallet" data-tags="pallet" d="M908.288 242.176l-3.072 1.024c-11.264 6.144-23.552 13.312-59.392 22.528h-2.048c-12.288 2.048-30.72 10.24-34.816 13.312l-1.024 2.048c-10.24 10.24-14.336 22.528-14.336 37.888 0 14.336 5.12 27.648 15.36 38.912l66.56 66.56c112.64 112.64 112.64 290.816 0 404.48-77.824 77.824-183.296 119.808-299.008 119.808-131.072 0-264.192-56.32-365.568-155.648-94.208-94.208-146.432-219.136-146.432-351.232 0-134.144 52.224-258.048 146. [...]
+<glyph unicode="&#xe96e;" glyph-name="paint-bucket" data-tags="paint-bucket" d="M934.912 358.912l-408.576 408.576v46.080c0 65.536-53.248 117.76-117.76 117.76s-117.76-53.248-117.76-117.76l1.024-232.448-199.68-199.68c-9.216-9.216-14.336-21.504-14.336-34.816s5.12-25.6 14.336-34.816l333.824-333.824c9.216-9.216 21.504-14.336 34.816-14.336 12.288 0 23.552 4.096 33.792 12.288l306.176 306.176 110.592 10.24c14.336 1.024 26.624 11.264 31.744 24.576 6.144 15.36 2.048 31.744-8.192 41.984zM347.136 81 [...]
+<glyph unicode="&#xe96f;" glyph-name="bulb" data-tags="bulb" d="M761.856 836.096v0c-73.728 69.632-171.008 105.472-271.36 99.328-187.392-11.264-336.896-167.936-339.968-357.376-1.024-123.904 57.344-236.544 158.72-306.176v-181.248c0-71.68 58.368-130.048 130.048-130.048h143.36c71.68 0 130.048 58.368 130.048 130.048v181.248c100.352 66.56 159.744 178.176 159.744 301.056 2.048 99.328-36.864 193.536-110.592 263.168zM582.656 16.896h-143.36c-40.96 0-73.728 33.792-73.728 73.728v167.936h291.84v-167. [...]
+<glyph unicode="&#xe970;" glyph-name="highlight-alt" data-tags="highlight-alt" d="M927.744 716.288l-133.12 133.12c-14.336 14.336-40.96 14.336-55.296 0l-466.944-467.968c-7.168-7.168-11.264-17.408-11.264-27.648 0-7.168 2.048-13.312 5.12-19.456l-91.136-91.136c-7.168-7.168-11.264-17.408-11.264-27.648 0-7.168 2.048-13.312 5.12-18.432l-81.92-81.92c-5.12-5.12-4.096-14.336 3.072-17.408l124.928-61.44c4.096-2.048 9.216-1.024 12.288 2.048l50.176 50.176c5.12-3.072 11.264-4.096 17.408-4.096 10.24 0 2 [...]
+<glyph unicode="&#xe971;" glyph-name="highlight" data-tags="highlight" d="M602.112 940.544h-180.224c-21.504 0-38.912-17.408-38.912-38.912v-631.808c0-17.408 11.264-31.744 27.648-36.864v-121.856c0-17.408 12.288-32.768 27.648-36.864v-108.544c0-7.168 7.168-12.288 14.336-10.24l125.952 43.008c4.096 1.024 7.168 5.12 7.168 10.24v65.536c15.36 5.12 26.624 19.456 26.624 36.864v122.88c15.36 5.12 27.648 19.456 27.648 36.864v630.784c0 21.504-16.384 38.912-37.888 38.912zM557.056 129.536h-89.088v102.4h8 [...]
+<glyph unicode="&#xe972;" glyph-name="handshake" data-tags="handshake" d="M988.16 370.176h-110.592c-4.096 0-7.168 3.072-7.168 7.168v305.152c0 4.096 3.072 7.168 7.168 7.168h110.592c15.36 0 28.672 12.288 28.672 28.672s-13.312 26.624-28.672 26.624h-110.592c-30.72 0-56.32-22.528-62.464-51.2h-162.816l-75.776 52.224c-21.504 14.336-46.080 22.528-71.68 22.528h-77.824c-30.72 0-60.416-9.216-86.016-27.648l-66.56-47.104c-11.264-7.168-19.456-17.408-26.624-28.672h-56.32v43.008c0 20.48-15.36 36.864-34. [...]
+<glyph unicode="&#xe973;" glyph-name="world" data-tags="world" d="M512 921.088c-261.12 0-473.088-211.968-473.088-473.088s211.968-474.112 474.112-474.112c261.12 0 474.112 211.968 474.112 474.112-1.024 261.12-214.016 473.088-475.136 473.088zM927.744 475.648h-180.224c-6.144 143.36-63.488 277.504-160.768 381.952 186.368-32.768 328.704-189.44 340.992-381.952zM512 42.496c-107.52 97.28-172.032 232.448-179.2 377.856h359.424c-8.192-145.408-72.704-280.576-180.224-377.856zM332.8 475.648c7.168 145.4 [...]
+<glyph unicode="&#xe974;" glyph-name="calculator" data-tags="calculator" d="M204.8 641.536h47.104v-47.104c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v47.104h47.104c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-47.104v46.080c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-47.104h-47.104c-15.36 0-28.672-12.288-28.672-28.672s13.312-27.648 28.672-27.648zM701.44 669.184l-33.792-33.792c-11.264-11.264-11.264-28.672 0-39.936 5.12-5.12 12. [...]
+<glyph unicode="&#xe975;" glyph-name="target-revenue" data-tags="target-revenue" d="M996.352 475.648h-102.4c-13.312 189.44-164.864 340.992-353.28 354.304v86.016c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-86.016c-188.416-13.312-339.968-164.864-353.28-354.304h-102.4c-15.36 0-27.648-12.288-27.648-27.648s12.288-28.672 28.672-28.672h102.4c12.288-188.416 163.84-339.968 353.28-353.28v-86.016c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v86.016c187.392 13 [...]
+<glyph unicode="&#xe976;" glyph-name="revenue" data-tags="revenue" d="M1004.544 291.328c-17.408 52.224-71.68 82.944-124.928 68.608l-239.616-61.44c1.024 5.12 1.024 10.24 1.024 16.384 0 52.224-41.984 95.232-95.232 95.232h-195.584c-11.264 31.744-40.96 54.272-76.8 54.272h-177.152c-45.056 0-80.896-36.864-80.896-81.92v-225.28c0-45.056 36.864-80.896 80.896-80.896h178.176c21.504 0 43.008 9.216 58.368 24.576 0 0 1.024 1.024 1.024 1.024l24.576-12.288c47.104-24.576 99.328-36.864 151.552-36.864 30.7 [...]
+<glyph unicode="&#xe977;" glyph-name="invention" data-tags="invention" d="M681.984 585.216c-50.176 47.104-116.736 71.68-186.368 67.584-129.024-7.168-230.4-115.712-232.448-244.736-1.024-82.944 36.864-158.72 103.424-205.824v-114.688c0-52.224 43.008-95.232 95.232-95.232h94.208c52.224 0 95.232 43.008 95.232 95.232v113.664c67.584 47.104 106.496 121.856 106.496 203.776 1.024 67.584-25.6 132.096-75.776 180.224v0zM557.056 47.616h-94.208c-22.528 0-38.912 17.408-38.912 38.912v101.376h173.056v-101. [...]
+<glyph unicode="&#xe978;" glyph-name="network" data-tags="network" d="M508.928 698.88c57.344 0 103.424 46.080 103.424 103.424s-47.104 102.4-103.424 102.4c-57.344 0-103.424-46.080-103.424-103.424s46.080-102.4 103.424-102.4zM508.928 848.384c25.6 0 47.104-20.48 47.104-47.104s-20.48-47.104-47.104-47.104-47.104 20.48-47.104 47.104 21.504 47.104 47.104 47.104zM347.136 555.52c6.144 0 13.312 2.048 18.432 7.168 39.936 34.816 90.112 54.272 143.36 54.272s103.424-19.456 143.36-54.272c11.264-10.24 29 [...]
+<glyph unicode="&#xe979;" glyph-name="credit-cards" data-tags="credit-cards" d="M964.608 606.72l-91.136 216.064c-7.168 16.384-19.456 28.672-35.84 35.84s-34.816 6.144-51.2 0l-575.488-243.712h-119.808c-36.864 0-66.56-29.696-66.56-66.56v-448.512c0-36.864 29.696-66.56 66.56-66.56h841.728c36.864 0 66.56 29.696 66.56 66.56v448.512c0 24.576-14.336 46.080-34.816 58.368zM808.96 806.4c3.072 1.024 6.144 1.024 8.192 0 1.024-1.024 4.096-2.048 5.12-5.12l78.848-186.368h-545.792l453.632 191.488zM91.136  [...]
+<glyph unicode="&#xe97a;" glyph-name="pie-chart" data-tags="pie-chart" d="M512 926.208c-264.192 0-478.208-214.016-478.208-478.208s215.040-479.232 479.232-479.232c264.192 0 479.232 215.040 479.232 479.232-1.024 264.192-216.064 478.208-480.256 478.208zM932.864 475.648h-392.192v393.216c209.92-13.312 378.88-182.272 392.192-393.216zM484.352 868.864v-407.552l-319.488-253.952c-47.104 68.608-74.752 151.552-74.752 240.64 0 223.232 174.080 406.528 394.24 420.864zM512 25.088c-123.904 0-234.496 53.2 [...]
+<glyph unicode="&#xe97b;" glyph-name="archive" data-tags="archive" d="M944.128 926.208h-864.256c-24.576 0-43.008-18.432-43.008-43.008v-176.128c0-24.576 18.432-43.008 43.008-43.008h11.264v-653.312c0-24.576 18.432-43.008 43.008-43.008h757.76c24.576 0 43.008 18.432 43.008 43.008v654.336h10.24c24.576 0 43.008 18.432 43.008 43.008v176.128c-1.024 23.552-19.456 41.984-44.032 41.984zM93.184 869.888h837.632v-148.48h-837.632v148.48zM877.568 26.112h-731.136v638.976h730.112v-638.976zM323.584 294.4h3 [...]
+<glyph unicode="&#xe97c;" glyph-name="magnifier" data-tags="magnifier" d="M656.384 611.84c0 81.92-31.744 158.72-90.112 217.088-119.808 119.808-314.368 119.808-433.152 0-58.368-58.368-90.112-135.168-90.112-217.088s31.744-158.72 90.112-217.088c58.368-58.368 135.168-90.112 217.088-90.112 72.704 0 141.312 24.576 195.584 70.656l94.208-94.208-1.024-1.024c-19.456-19.456-19.456-52.224 0-71.68l217.088-217.088c19.456-19.456 52.224-19.456 71.68 0l38.912 38.912c19.456 19.456 19.456 52.224 0 71.68l-2 [...]
+<glyph unicode="&#xe97d;" glyph-name="agenda" data-tags="agenda" d="M771.072 928.256h-518.144c-26.624 0-49.152-21.504-49.152-49.152v-753.664c0-19.456 11.264-35.84 28.672-44.032v-101.376c0-10.24 12.288-16.384 20.48-8.192l44.032 41.984 44.032-41.984c7.168-7.168 20.48-2.048 20.48 8.192v97.28h409.6c26.624 0 49.152 21.504 49.152 49.152v752.64c0 26.624-22.528 49.152-49.152 49.152zM763.904 694.784h-121.856v177.152h121.856v-177.152zM260.096 309.76h324.608v-177.152h-324.608v177.152zM260.096 366.0 [...]
+<glyph unicode="&#xe97e;" glyph-name="stats-up" data-tags="stats-up" d="M963.584 24.064h-875.52v875.52c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-931.84h931.84c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648zM219.136 226.816h218.112l128 128h229.376l124.928 124.928v-126.976c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v183.296c0 26.624-21.504 49.152-49.152 49.152h-180.224c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28 [...]
+<glyph unicode="&#xe97f;" glyph-name="tag" data-tags="tag" d="M914.432 765.44c-7.168 7.168-18.432 11.264-28.672 11.264l-111.616-4.096c-9.216 25.6-22.528 48.128-40.96 66.56-37.888 39.936-88.064 55.296-137.216 71.68-29.696 9.216-58.368 18.432-82.944 32.768-13.312 7.168-30.72 3.072-37.888-10.24s-3.072-30.72 10.24-37.888c29.696-16.384 62.464-27.648 93.184-37.888 44.032-14.336 86.016-27.648 113.664-57.344 8.192-8.192 15.36-18.432 20.48-29.696l-153.6-5.12c-10.24 0-19.456-4.096-26.624-11.264l-4 [...]
+<glyph unicode="&#xe980;" glyph-name="target" data-tags="target" d="M996.352 475.648h-102.4c-13.312 189.44-164.864 340.992-353.28 354.304v86.016c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-86.016c-188.416-13.312-339.968-164.864-353.28-354.304h-102.4c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h102.4c13.312-187.392 164.864-338.944 354.304-352.256v-86.016c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v86.016c187.392 13.312 338.944  [...]
+<glyph unicode="&#xe981;" glyph-name="stamp" data-tags="stamp" d="M764.928 381.44h-143.36l22.528 424.96c2.048 36.864-11.264 71.68-35.84 98.304s-59.392 40.96-96.256 40.96c-36.864 0-70.656-14.336-96.256-40.96s-37.888-61.44-35.84-98.304l22.528-424.96h-143.36c-105.472 0-190.464-86.016-190.464-190.464v-76.8c0-21.504 17.408-38.912 38.912-38.912h23.552v-39.936c0-41.984 34.816-76.8 76.8-76.8h608.256c41.984 0 76.8 34.816 76.8 76.8v39.936h23.552c21.504 0 38.912 17.408 38.912 38.912v76.8c0 104.448- [...]
+<glyph unicode="&#xe982;" glyph-name="clipboard" data-tags="clipboard" d="M807.936 824.832h-104.448v30.72c0 17.408-14.336 31.744-31.744 31.744h-123.904v24.576c0 19.456-16.384 35.84-35.84 35.84s-35.84-16.384-35.84-35.84v-25.6h-121.856c-17.408 0-31.744-14.336-31.744-31.744v-30.72h-106.496c-24.576 0-44.032-18.432-44.032-44.032v-788.48c0-24.576 18.432-44.032 44.032-44.032h590.848c24.576 0 44.032 19.456 44.032 44.032v788.48c1.024 26.624-18.432 45.056-43.008 45.056zM795.648 4.608h-567.296v763. [...]
+<glyph unicode="&#xe983;" glyph-name="licencse" data-tags="licencse" d="M950.272 798.208h-876.544c-29.696 0-54.272-24.576-54.272-54.272v-591.872c0-29.696 24.576-54.272 54.272-54.272h877.568c15.36 0 29.696 6.144 39.936 17.408 9.216 10.24 14.336 24.576 13.312 37.888v590.848c0 30.72-24.576 54.272-54.272 54.272zM948.224 154.112h-872.448v587.776h872.448v-587.776zM343.040 525.824c0-47.505-38.511-86.016-86.016-86.016s-86.016 38.511-86.016 86.016c0 47.505 38.511 86.016 86.016 86.016s86.016-38.51 [...]
+<glyph unicode="&#xe984;" glyph-name="paperclip" data-tags="paper-clip" d="M746.496 653.824c-15.36 0-28.672-12.288-28.672-28.672v-411.648c1.024-54.272-20.48-106.496-59.392-146.432-38.912-38.912-92.16-61.44-146.432-59.392-54.272 0-106.496 21.504-145.408 61.44-38.912 38.912-61.44 92.16-61.44 145.408v517.12c0 51.2 23.552 97.28 65.536 126.976 40.96 29.696 92.16 36.864 141.312 20.48h1.024c8.192-2.048 13.312-4.096 17.408-7.168l2.048-1.024c53.248-28.672 84.992-79.872 84.992-139.264v-488.448c0-3 [...]
+<glyph unicode="&#xe985;" glyph-name="stats-down" data-tags="stats-down" d="M963.584 25.088h-874.496v874.496c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-930.816h930.816c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648zM219.136 527.872h195.584l128-128h229.376l116.736-116.736h-141.312c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h180.224c27.648 0 49.152 21.504 49.152 49.152v182.272c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-2 [...]
+<glyph unicode="&#xe986;" glyph-name="bar-chart" data-tags="bar-chart" d="M962.56 25.088h-92.16v358.4c0 31.744-25.6 57.344-57.344 57.344h-138.24c-31.744 0-57.344-25.6-57.344-57.344v-357.376h-136.192v585.728c0 31.744-25.6 57.344-57.344 57.344h-138.24c-31.744 0-57.344-25.6-57.344-57.344v-586.752h-138.24v873.472c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-890.88c0-21.504 17.408-38.912 38.912-38.912h889.856c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.64 [...]
+<glyph unicode="&#xe987;" glyph-name="bullhorn" data-tags="bullhorn" d="M838.656 941.568c-61.44 0-113.664-35.84-138.24-88.064l1.024 2.048-408.576-34.816h-161.792c-54.272 0-98.304-44.032-98.304-98.304v-310.272c0-40.96 25.6-75.776 60.416-91.136l53.248-284.672c9.216-48.128 52.224-82.944 100.352-82.944 30.72 0 59.392 13.312 78.848 36.864s27.648 53.248 21.504 82.944l-44.032 239.616 397.312-33.792-1.024 2.048c24.576-52.224 76.8-88.064 138.24-88.064 83.968 0 152.576 68.608 152.576 152.576v443.3 [...]
+<glyph unicode="&#xe988;" glyph-name="calendar" data-tags="calendar" d="M241.664 411.136h-12.288c-13.312 0-23.552-9.216-23.552-23.552v-12.288c0-15.36 12.288-23.552 23.552-23.552h12.288c13.312 0 23.552 9.216 23.552 23.552v12.288c0 14.336-9.216 23.552-23.552 23.552zM430.080 411.136h-12.288c-13.312 0-23.552-9.216-23.552-23.552v-12.288c-1.024-15.36 8.192-23.552 23.552-23.552h12.288c13.312 0 23.552 9.216 23.552 23.552v12.288c-1.024 14.336-10.24 23.552-23.552 23.552zM613.376 411.136h-12.288c-1 [...]
+<glyph unicode="&#xe989;" glyph-name="quotation" data-tags="quotation" d="M933.888 700.928c-28.672 46.080-72.704 76.8-125.952 86.016-55.296 10.24-113.664-4.096-158.72-38.912-45.056-33.792-73.728-84.992-78.848-140.288s11.264-108.544 47.104-150.528c29.696-34.816 68.608-58.368 111.616-67.584l-16.384-258.048 2.048-5.12c4.096-11.264 14.336-18.432 25.6-19.456 1.024 0 1.024 0 2.048 0 11.264 0 21.504 6.144 25.6 15.36 9.216 18.432 20.48 38.912 32.768 62.464 55.296 103.424 130.048 245.76 154.624 3 [...]
+<glyph unicode="&#xe98a;" glyph-name="bus" data-tags="bus" d="M412.672 302.592c0-40.153-32.551-72.704-72.704-72.704s-72.704 32.551-72.704 72.704c0 40.153 32.551 72.704 72.704 72.704s72.704-32.551 72.704-72.704zM756.736 302.592c0-40.153-32.551-72.704-72.704-72.704s-72.704 32.551-72.704 72.704c0 40.153 32.551 72.704 72.704 72.704s72.704-32.551 72.704-72.704zM904.192 881.152h-32.768c-5.12 32.768-33.792 58.368-68.608 58.368h-583.68c-34.816 0-63.488-25.6-68.608-58.368h-31.744c-18.432 0-33.792 [...]
+<glyph unicode="&#xe98b;" glyph-name="car-alt" data-tags="car-alt" d="M209.92 352.768h118.784c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-118.784c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM665.6 352.768h118.784c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-118.784c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM950.272 630.272h-60.416c-1.024 0-2.048 0-3.072 0l-68.608 178.176c-10.24 26.624-35.84 44.032-63.4 [...]
+<glyph unicode="&#xe98c;" glyph-name="car" data-tags="car" d="M939.008 547.328h-6.144l-14.336 185.344c-7.168 95.232-88.064 168.96-184.32 168.96h-443.392c-95.232 0-176.128-74.752-184.32-168.96l-15.36-185.344h-6.144c-23.552 0-40.96-17.408-40.96-40.96v-328.704c0-23.552 17.408-40.96 40.96-40.96h25.6v-83.968c0-31.744 25.6-58.368 57.344-58.368h76.8c31.744 0 57.344 25.6 57.344 58.368v83.968h421.888v-83.968c0-31.744 25.6-58.368 58.368-58.368h76.8c31.744 0 57.344 25.6 57.344 58.368v83.968h22.528c [...]
+<glyph unicode="&#xe98d;" glyph-name="postcard" data-tags="postcard" d="M957.44 748.032h-890.88c-21.504 0-38.912-17.408-38.912-38.912v-523.264c0-21.504 17.408-38.912 38.912-38.912h890.88c21.504 0 38.912 17.408 38.912 38.912v523.264c-1.024 21.504-18.432 38.912-38.912 38.912zM939.008 204.288h-854.016v487.424h855.040v-487.424zM512 290.304c16.384 0 28.672 12.288 28.672 28.672v252.928c0 15.36-13.312 27.648-28.672 27.648s-28.672-12.288-28.672-28.672v-251.904c0-15.36 12.288-28.672 28.672-28.672 [...]
+<glyph unicode="&#xe98e;" glyph-name="road" data-tags="road" d="M994.304 100.864l-174.080 716.8c-5.12 21.504-24.576 36.864-47.104 36.864h-522.24c-22.528 0-41.984-15.36-47.104-36.864l-174.080-716.8c-3.072-14.336 0-29.696 9.216-41.984s23.552-18.432 37.888-18.432h870.4c15.36 0 28.672 7.168 37.888 18.432 10.24 12.288 13.312 27.648 9.216 41.984zM647.168 798.208l162.816-701.44h-595.968l162.816 701.44h270.336zM257.024 798.208h61.44l-162.816-700.416h-69.632l171.008 700.416zM868.352 97.792l-162.8 [...]
+<glyph unicode="&#xe98f;" glyph-name="scooter" data-tags="scooter" d="M790.528 853.504h-169.984c-12.288 51.2-59.392 89.088-113.664 89.088-55.296 0-101.376-37.888-113.664-89.088h-159.744c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h142.336c-58.368-29.696-97.28-91.136-97.28-158.72v-349.184c0-79.872 54.272-149.504 129.024-172.032v-70.656c0-52.224 41.984-94.208 94.208-94.208h9.216c52.224 0 94.208 41.984 94.208 94.208v70.656c74.752 21.504 129.024 91.136 129.024 172.032v350 [...]
+<glyph unicode="&#xe990;" glyph-name="helicopter" data-tags="helicopter" d="M957.44 636.416c-15.36 0-28.672-12.288-28.672-28.672v-35.84h-362.496v26.624c0 37.888-30.72 69.632-69.632 69.632h-78.848v67.584h289.792c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-641.024c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h279.552v-68.608c-171.008-8.192-307.2-150.528-307.2-323.584v-22.528c0-37.888 30.72-69.632 69.632-69.632h64.512v-92.16h-60.416c-4.096 0-7.168 3. [...]
+<glyph unicode="&#xe991;" glyph-name="train-alt" data-tags="train-alt" d="M719.872 891.392h-161.792c0 1.024 0 2.048 0 3.072v1.024c0 25.6-20.48 46.080-46.080 46.080s-46.080-20.48-46.080-46.080v-2.048c0-1.024 0-2.048 0-3.072h-162.816c-37.888 0-73.728-15.36-101.376-41.984-26.624-27.648-40.96-63.488-40.96-101.376v-555.008c0-27.648 22.528-51.2 50.176-51.2h72.704l-95.232-143.36c-8.192-13.312-5.12-30.72 8.192-38.912 5.12-3.072 10.24-5.12 15.36-5.12 9.216 0 18.432 4.096 23.552 12.288l116.736 175 [...]
+<glyph unicode="&#xe992;" glyph-name="ship" data-tags="ship" d="M284.672 237.056v-102.4c0-1.024 1.024-1.024 1.024-1.024l54.272 19.456c0 0 1.024 1.024 1.024 1.024v95.232l-135.168 291.84 300.032 100.352 311.296-100.352-135.168-291.84v-95.232c0 0 0-1.024 1.024-1.024l54.272-19.456c1.024 0 1.024 0 1.024 1.024v102.4l134.144 287.744c6.144 12.288 6.144 27.648 0 39.936s-16.384 22.528-29.696 26.624l-46.080 14.336v223.232c0 26.624-21.504 49.152-49.152 49.152h-177.152v28.672c0 10.24-8.192 17.408-17. [...]
+<glyph unicode="&#xe993;" glyph-name="bridge" data-tags="bridge" d="M984.064 480.768h-86.016c-74.752 139.264-224.256 227.328-388.096 227.328s-313.344-89.088-388.096-227.328h-81.92c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h46.080v-209.92c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v163.84c4.096 15.36 9.216 30.72 15.36 46.080h704.512c4.096-9.216 7.168-18.432 10.24-27.648v-182.272c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v210.9 [...]
+<glyph unicode="&#xe994;" glyph-name="plane" data-tags="plane" d="M991.232 344.576l-92.16 92.16c-11.264 11.264-27.648 14.336-43.008 8.192l-108.544-48.128-126.976 132.096 247.808 198.656c8.192 7.168 13.312 17.408 14.336 27.648 1.024 11.264-3.072 21.504-11.264 29.696l-130.048 129.024c-12.288 12.288-29.696 14.336-45.056 7.168l-303.104-159.744-133.12 136.192c-26.624 26.624-61.44 40.96-98.304 40.96s-72.704-14.336-98.304-40.96c-54.272-54.272-54.272-143.36 0-197.632l136.192-133.12-160.768-303.1 [...]
+<glyph unicode="&#xe995;" glyph-name="bubble" data-tags="bubble" d="M155.648 57.856c-5.12 0-10.24 1.024-15.36 3.072-15.36 6.144-24.576 21.504-24.576 37.888v153.6h-43.008c-22.528 0-39.936 18.432-39.936 40.96v504.832c0 22.528 18.432 39.936 39.936 39.936h877.568c22.528 0 40.96-18.432 40.96-39.936v-506.88c0-22.528-18.432-39.936-40.96-39.936h-568.32l-199.68-182.272c-7.168-7.168-16.384-11.264-26.624-11.264zM89.088 307.712h44.032c21.504 0 38.912-17.408 38.912-38.912v-134.144l177.152 161.792c7.1 [...]
+<glyph unicode="&#xe996;" glyph-name="bi-cycle" data-tags="bi-cycle" d="M218.112 414.208c-114.688 0-207.872-93.184-207.872-206.848s93.184-206.848 207.872-206.848c114.688 0 207.872 93.184 207.872 207.872 0 115.712-91.136 205.824-207.872 205.824zM218.112 56.832c-83.968 0-151.552 67.584-151.552 150.528 0 83.968 67.584 151.552 151.552 151.552 84.992 0 151.552-65.536 151.552-150.528 0-83.968-67.584-151.552-151.552-151.552zM805.888 414.208c-114.688 0-207.872-93.184-207.872-207.872 0-113.664 93 [...]
+<glyph unicode="&#xe997;" glyph-name="envelope" data-tags="envelope" d="M959.488 729.6h-894.976c-26.624 0-49.152-21.504-49.152-49.152v-465.92c0-26.624 21.504-49.152 49.152-49.152h896c26.624 0 49.152 21.504 49.152 49.152v465.92c-1.024 27.648-22.528 49.152-50.176 49.152zM512 461.312l-371.712 211.968h743.424l-371.712-211.968zM388.096 466.432l-316.416-218.112v399.36l316.416-181.248zM442.368 435.712l45.056-25.6c7.168-4.096 15.36-6.144 24.576-6.144 8.192 0 16.384 2.048 24.576 6.144l45.056 25.6 [...]
+<glyph unicode="&#xe998;" glyph-name="reply" data-tags="reply" d="M926.72 69.12h-3.072c-37.888 0-69.632 32.768-69.632 71.68 0 21.504-102.4 94.208-326.656 108.544v-68.608c0-59.392-48.128-107.52-107.52-107.52-26.624 0-50.176 9.216-70.656 26.624l-2.048 1.024c-2.048 2.048-10.24 9.216-23.552 21.504-60.416 56.32-219.136 202.752-271.36 258.048-10.24 10.24-25.6 28.672-25.6 56.32v13.312c0 27.648 9.216 52.224 27.648 70.656 35.84 34.816 119.808 113.664 187.392 177.152 49.152 46.080 99.328 93.184 10 [...]
+<glyph unicode="&#xe999;" glyph-name="support" data-tags="support" d="M1007.616 800.256c-3.072 25.6-21.504 45.056-45.056 45.056h-898.048c-26.624 0-49.152-22.528-49.152-49.152v-517.12c0-25.6 22.528-49.152 47.104-49.152h96.256v-141.312c0-15.36 9.216-29.696 23.552-34.816 5.12-2.048 10.24-3.072 15.36-3.072 10.24 0 19.456 4.096 26.624 11.264l2.048 2.048 111.616 166.912h623.616c24.576 0 46.080 22.528 46.080 49.152v520.192zM951.296 287.232h-622.592c-13.312 0-24.576-6.144-31.744-16.384l-81.92-12 [...]
+<glyph unicode="&#xe99a;" glyph-name="comment-reply" data-tags="comments-reply" d="M320.795 578.618c4.802-29.587-15.291-57.464-44.878-62.266s-57.464 15.291-62.266 44.878c-4.802 29.587 15.291 57.464 44.878 62.266s57.464-15.291 62.266-44.878zM559.104 569.856c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.298 54.272 54.272 54.272s54.272-24.298 54.272-54.272zM796.672 569.856c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.298 54.27 [...]
+<glyph unicode="&#xe99b;" glyph-name="pointer" data-tags="pointer" d="M513.024-38.4c-20.48 0-39.936 11.264-50.176 30.72l-430.080 861.184c-10.24 21.504-6.144 48.128 11.264 64.512s41.984 20.48 62.464 9.216l859.136-431.104c21.504-11.264 33.792-34.816 30.72-58.368-4.096-24.576-21.504-41.984-46.080-46.080l-329.728-56.32-53.248-327.68c-4.096-24.576-22.528-41.984-46.080-46.080-3.072 0-5.12 0-8.192 0zM84.992 876.032l427.008-856.064 55.296 339.968c2.048 14.336 13.312 25.6 27.648 27.648l344.064 60 [...]
+<glyph unicode="&#xe99c;" glyph-name="phone" data-tags="phone" d="M140.288 520.704h133.12c29.696 0 47.104 11.264 56.32 20.48 19.456 19.456 21.504 40.96 21.504 56.32v80.896l5.12 2.048h5.12l4.096 2.048c1.024 0 3.072 1.024 5.12 2.048 4.096 1.024 8.192 2.048 11.264 3.072 1.024 1.024 3.072 1.024 4.096 1.024l5.12 1.024c56.32 13.312 119.808 15.36 193.536 7.168 34.816-2.048 60.416-8.192 87.040-19.456v-77.824c0-48.128 29.696-77.824 77.824-77.824h133.12c8.192 0 31.744 0 55.296 20.48l1.024 1.024c15 [...]
+<glyph unicode="&#xe99d;" glyph-name="google" data-tags="google" d="M953.344 489.984h-430.080v-126.976h307.2c-15.36-176.128-160.768-252.928-299.008-252.928-177.152 0-333.824 138.24-333.824 337.92 0 192.512 149.504 337.92 333.824 337.92 142.336 0 226.304-92.16 226.304-92.16l88.064 92.16c0 0-115.712 126.976-318.464 126.976-265.216 0-468.992-223.232-468.992-464.896 0-234.496 192.512-464.896 476.16-464.896 249.856 0 430.080 168.96 430.080 422.912-3.072 53.248-11.264 83.968-11.264 83.968v0z" />
+<glyph unicode="&#xe99e;" glyph-name="comment-alt" data-tags="comments-alt" d="M1006.592 802.304c-4.096 25.6-21.504 43.008-45.056 43.008h-896c-26.624 0-48.128-22.528-48.128-48.128v-517.12c0-25.6 22.528-48.128 47.104-48.128h96.256v-142.336c0-15.36 9.216-29.696 23.552-35.84 5.12-2.048 10.24-3.072 15.36-3.072 10.24 0 19.456 4.096 26.624 11.264l2.048 2.048 111.616 166.912h622.592c24.576 0 46.080 22.528 46.080 48.128v519.168l-2.048 4.096zM951.296 287.232h-622.592c-13.312 0-24.576-6.144-31.744 [...]
+<glyph unicode="&#xe99f;" glyph-name="comment" data-tags="comments" d="M323.698 544.553c9.227-39.077-14.971-78.236-54.048-87.463s-78.236 14.971-87.463 54.048c-9.227 39.077 14.971 78.236 54.048 87.463s78.236-14.971 87.463-54.048zM566.531 579.146c28.392-28.392 28.392-74.426 0-102.818s-74.426-28.392-102.818 0c-28.392 28.392-28.392 74.426 0 102.818s74.426 28.392 102.818 0zM776.192 455.168c39.936 0 72.704 32.768 72.704 72.704 1.024 40.96-30.72 72.704-72.704 72.704-40.96 0-72.704-30.72-72.704- [...]
+<glyph unicode="&#xe9a0;" glyph-name="train" data-tags="train" d="M719.872 893.44h-161.792v9.216c0 20.48-16.384 36.864-36.864 36.864h-19.456c-20.48 0-36.864-16.384-36.864-36.864v-9.216h-160.768c-78.848 0-143.36-64.512-143.36-143.36v-556.032c0-28.672 22.528-51.2 51.2-51.2h54.272l-95.232-141.312c-8.192-13.312-6.144-30.72 6.144-39.936 5.12-4.096 11.264-5.12 16.384-5.12 9.216 0 18.432 4.096 23.552 12.288l116.736 174.080h321.536l116.736-174.080c5.12-8.192 14.336-12.288 23.552-12.288 6.144 0 1 [...]
+<glyph unicode="&#xe9a1;" glyph-name="coffee-cup" data-tags="coffee-cup" d="M886.784 528.896c-23.552 0-46.080-7.168-64.512-19.456v56.32c0 21.504-16.384 38.912-38.912 38.912h-649.216c-21.504 0-38.912-16.384-38.912-38.912v-198.656c0-133.12 80.896-247.808 195.584-296.96h-245.76c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h825.344c15.36 0 28.672 12.288 28.672 28.672s-12.288 27.648-28.672 27.648h-244.736c83.968 35.84 148.48 106.496 178.176 192.512 21.504-20.48 50.176-33.79 [...]
+<glyph unicode="&#xe9a2;" glyph-name="home" data-tags="home" d="M837.632-38.4h-196.608c-27.648 0-50.176 22.528-50.176 50.176v188.416c0 18.432-15.36 33.792-33.792 33.792h-91.136c-18.432 0-33.792-15.36-33.792-33.792v-187.392c0-27.648-22.528-50.176-50.176-50.176h-195.584c-21.504 0-38.912 17.408-38.912 38.912v569.344c0 10.24 4.096 20.48 11.264 27.648l325.632 324.608c15.36 15.36 39.936 15.36 55.296 0l325.632-325.632c7.168-7.168 11.264-17.408 11.264-27.648v-569.344c1.024-21.504-17.408-38.912-3 [...]
+<glyph unicode="&#xe9a3;" glyph-name="thought" data-tags="thought" d="M713.728 299.52c133.12 0 241.664 108.544 241.664 241.664 0 100.352-61.44 189.44-153.6 225.28-27.648 104.448-122.88 178.176-232.448 178.176-95.232 0-180.224-56.32-219.136-141.312-13.312 2.048-26.624 3.072-39.936 3.072-133.12 0-241.664-108.544-241.664-241.664 0-91.136 52.224-175.104 134.144-216.064 44.032-66.56 119.808-107.52 199.68-107.52 74.752 0 144.384 33.792 189.44 91.136 37.888-21.504 79.872-32.768 121.856-32.768zM [...]
+<glyph unicode="&#xe9a4;" glyph-name="user" data-tags="user" d="M512 376.32c135.168 0 245.76 110.592 245.76 245.76s-110.592 245.76-245.76 245.76c-135.168 0-245.76-109.568-245.76-245.76s110.592-245.76 245.76-245.76zM512 811.52c104.448 0 189.44-84.992 189.44-189.44s-84.992-189.44-189.44-189.44-189.44 84.992-189.44 189.44 84.992 189.44 189.44 189.44zM1002.496 77.312c-135.168 119.808-309.248 186.368-490.496 186.368s-355.328-66.56-490.496-186.368c-11.264-10.24-12.288-27.648-2.048-39.936 10.24 [...]
+<glyph unicode="&#xe9a5;" glyph-name="users" data-tags="users" d="M353.28 397.824c106.496 0 192.512 86.016 192.512 192.512s-86.016 192.512-192.512 192.512-192.512-86.016-192.512-192.512 86.016-192.512 192.512-192.512zM353.28 726.528c74.752 0 136.192-61.44 136.192-136.192s-61.44-136.192-136.192-136.192-136.192 61.44-136.192 136.192 60.416 136.192 136.192 136.192zM353.28 291.328c-124.928 0-244.736-46.080-337.92-128-11.264-10.24-12.288-27.648-2.048-39.936 10.24-11.264 27.648-12.288 39.936-2 [...]
+<glyph unicode="&#xe9a6;" glyph-name="wallet" data-tags="wallet" d="M947.2 635.392h-115.712v183.296c0 12.288-6.144 23.552-15.36 30.72s-22.528 9.216-33.792 6.144l-729.088-212.992c-9.216-2.048-14.336-10.24-14.336-19.456v-544.768c0-21.504 17.408-38.912 38.912-38.912h870.4c21.504 0 38.912 17.408 38.912 38.912v518.144c-1.024 21.504-18.432 38.912-39.936 38.912zM775.168 635.392h-546.816l546.816 159.744v-159.744zM95.232 95.744v483.328h834.56v-136.192h-257.024c-66.56 0-120.832-54.272-120.832-120. [...]
+<glyph unicode="&#xe9a7;" glyph-name="tshirt" data-tags="t-shirt" d="M784.384 18.944h-544.768c-22.528 0-41.984 18.432-43.008 40.96l-27.648 514.048h-99.328c-22.528 0-41.984 18.432-43.008 39.936l-13.312 218.112c0 24.576 18.432 44.032 43.008 44.032h310.272c20.48 0 37.888-15.36 41.984-35.84v-3.072c5.12-51.2 50.176-92.16 102.4-92.16s96.256 38.912 102.4 91.136c1.024 21.504 20.48 38.912 43.008 38.912h309.248c24.576 0 43.008-19.456 43.008-44.032v-2.048l-13.312-216.064c-1.024-21.504-20.48-39.936- [...]
+<glyph unicode="&#xe9a8;" glyph-name="medall-alt" data-tags="medall-alt" d="M512 386.56c71.68 0 129.024 58.368 129.024 129.024s-57.344 129.024-129.024 129.024c-71.68 0-129.024-58.368-129.024-129.024s57.344-129.024 129.024-129.024zM512 588.288c39.936 0 72.704-32.768 72.704-72.704s-32.768-72.704-72.704-72.704-72.704 32.768-72.704 72.704 32.768 72.704 72.704 72.704zM800.768 515.584c0 64.512-21.504 123.904-56.32 171.008v217.088c0 23.552-17.408 41.984-41.984 41.984h-380.928c-23.552 0-41.984-1 [...]
+<glyph unicode="&#xe9a9;" glyph-name="medall" data-tags="medall" d="M800.768 515.584c0 64.512-21.504 123.904-56.32 171.008v217.088c0 23.552-17.408 41.984-41.984 41.984h-380.928c-23.552 0-41.984-17.408-41.984-41.984v-217.088c-35.84-48.128-56.32-107.52-56.32-171.008 0-64.512 21.504-123.904 56.32-171.008v-351.232c0-15.36 8.192-28.672 20.48-36.864 6.144-4.096 13.312-5.12 20.48-5.12s14.336 2.048 20.48 6.144l171.008 95.232 168.96-96.256 3.072-1.024c13.312-6.144 28.672-5.12 40.96 3.072 11.264 7 [...]
+<glyph unicode="&#xe9aa;" glyph-name="notepad" data-tags="notepad" d="M808.96 945.664h-513.024c-45.056 0-80.896-35.84-80.896-80.896v-100.352h-52.224c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h52.224v-236.544h-52.224c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h52.224v-236.544h-52.224c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h52.224v-90.112c0-45.056 35.84-80.896 80.896-80.896h513.024c45.056 0 80.896 35.84 80.896 80.896v835.5 [...]
+<glyph unicode="&#xe9ab;" glyph-name="crown" data-tags="crown" d="M739.328 697.856l-219.136 181.248c-4.096 3.072-9.216 3.072-13.312 0l-223.232-186.368-258.048 172.032c-7.168 5.12-16.384-1.024-15.36-9.216l74.752-813.056c1.024-15.36 14.336-27.648 30.72-27.648h790.528c15.36 0 28.672 12.288 30.72 27.648l76.8 821.248c1.024 8.192-9.216 14.336-16.384 9.216l-258.048-175.104zM293.888 628.224l220.16 184.32 216.064-180.224c3.072-3.072 8.192-3.072 12.288-1.024l205.824 140.288-38.912-420.864h-795.648 [...]
+<glyph unicode="&#xe9ac;" glyph-name="ticket" data-tags="ticket" d="M965.632 544.256c19.456 1.024 35.84 18.432 35.84 37.888v139.264c0 21.504-17.408 38.912-38.912 38.912h-901.12c-21.504 0-38.912-17.408-38.912-38.912v-140.288c0-20.48 15.36-36.864 34.816-37.888 50.176-4.096 89.088-46.080 89.088-96.256s-38.912-91.136-89.088-95.232c-19.456-1.024-35.84-18.432-35.84-37.888v-138.24c0-21.504 17.408-38.912 38.912-38.912h901.12c21.504 0 38.912 17.408 38.912 38.912v138.24c0 20.48-15.36 36.864-34.816 [...]
+<glyph unicode="&#xe9ad;" glyph-name="ticket-alt" data-tags="ticketalt" d="M887.808 942.592h-751.616c-24.576 0-43.008-18.432-43.008-43.008v-900.096c0-18.432 11.264-34.816 28.672-40.96s36.864 0 48.128 15.36l70.656 108.544 87.040-112.64c8.192-10.24 20.48-16.384 32.768-16.384s24.576 5.12 31.744 15.36l104.448 117.76 108.544-117.76c8.192-10.24 20.48-15.36 33.792-14.336s24.576 7.168 31.744 17.408l90.112 113.664 93.184-113.664c11.264-14.336 30.72-20.48 47.104-14.336 17.408 6.144 28.672 21.504 2 [...]
+<glyph unicode="&#xe9ae;" glyph-name="certificate" data-tags="certificate" d="M949.248 379.392h-114.688v429.056c0 66.56-54.272 121.856-120.832 121.856v0h-1.024c-4.096 0-9.216 0-13.312 0h-494.592c-99.328 0-181.248-80.896-181.248-181.248v-67.584c0-28.672 23.552-52.224 52.224-52.224h100.352v-467.968c0-54.272 44.032-99.328 99.328-99.328h121.856v-65.536c0-12.288 7.168-24.576 18.432-29.696 5.12-3.072 10.24-4.096 16.384-4.096s13.312 2.048 18.432 6.144l71.68 48.128 71.68-48.128c10.24-7.168 23.55 [...]
+<glyph unicode="&#xe9af;" glyph-name="cup" data-tags="cup" d="M942.080 883.2h-165.888v3.072c0 26.624-21.504 49.152-49.152 49.152h-430.080c-26.624 0-49.152-21.504-49.152-49.152v-3.072h-165.888c-23.552 0-40.96-17.408-40.96-41.984v-13.312c0-116.736 89.088-293.888 210.944-311.296 15.36-97.28 83.968-176.128 174.080-207.872v-223.232h-163.84c-20.48 0-36.864-16.384-36.864-36.864v-51.2c0-20.48 16.384-36.864 36.864-36.864h509.952c20.48 0 36.864 16.384 36.864 36.864v52.224c0 20.48-16.384 36.864-36. [...]
+<glyph unicode="&#xe9b0;" glyph-name="library" data-tags="library" d="M946.176 799.232h-382.976c-19.456 0-36.864-7.168-51.2-18.432-14.336 11.264-31.744 18.432-51.2 18.432h-382.976c-26.624 0-49.152-21.504-49.152-49.152v-574.464c0-26.624 21.504-49.152 49.152-49.152h404.48v-2.048c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v2.048h408.576c26.624 0 49.152 21.504 49.152 49.152v575.488c-2.048 26.624-23.552 48.128-51.2 48.128zM84.992 742.912h375.808c12.288 0 23.552-10.24 23.55 [...]
+<glyph unicode="&#xe9b1;" glyph-name="school-bench-alt" data-tags="school-bench-alt" d="M519.168 635.392l-408.576 84.992c-20.48 3.072-40.96-3.072-57.344-16.384-15.36-13.312-24.576-32.768-24.576-54.272v-37.888c0-34.816 24.576-64.512 59.392-69.632l60.416-12.288c0-1.024 0-1.024 0-2.048v-417.792c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v408.576l196.608-40.96v-366.592c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v355.328l37.888-8.192h1.024c4.096-1.024 7 [...]
+<glyph unicode="&#xe9b2;" glyph-name="microscope" data-tags="microscope" d="M198.656-27.136h703.488c0 29.696-138.24 54.272-315.392 57.344v62.464c1.024 0 2.048 0 3.072 0 167.936 20.48 295.936 163.84 295.936 334.848 0 95.232-40.96 186.368-111.616 249.856-8.192 7.168-17.408 14.336-25.6 21.504l44.032 79.872c16.384 29.696 5.12 66.56-24.576 82.944l-100.352 55.296c-29.696 16.384-66.56 5.12-82.944-24.576l-196.608-361.472c-16.384-29.696-5.12-66.56 24.576-82.944l100.352-55.296c9.216-4.096 19.456-6 [...]
+<glyph unicode="&#xe9b3;" glyph-name="school-compass" data-tags="school-compass" d="M867.328 138.752l-114.688 253.952c38.912 35.84 69.632 80.896 90.112 132.096 5.12 14.336-2.048 30.72-16.384 36.864s-30.72-2.048-36.864-16.384c-14.336-36.864-35.84-70.656-62.464-98.304l-77.824 173.056c12.288 22.528 18.432 47.104 18.432 73.728 0 75.776-53.248 138.24-123.904 153.6v49.152c0 17.408-14.336 31.744-31.744 31.744s-31.744-14.336-31.744-31.744v-49.152c-70.656-15.36-123.904-77.824-123.904-153.6 0-26.6 [...]
+<glyph unicode="&#xe9b4;" glyph-name="school-bench" data-tags="school-bench" d="M617.472 577.024l-518.144 135.168c-15.36 4.096-30.72-5.12-34.816-20.48s5.12-30.72 20.48-34.816l67.584-17.408v-500.736c0-15.36 12.288-28.672 27.648-28.672s28.672 12.288 28.672 28.672v486.4l225.28-59.392v-427.008c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v412.672l111.616-29.696c2.048-1.024 5.12-1.024 7.168-1.024 12.288 0 23.552 8.192 27.648 21.504 3.072 15.36-6.144 30.72-20.48 34.816zM931.8 [...]
+<glyph unicode="&#xe9b5;" glyph-name="information" data-tags="information" d="M653.312 25.088h-112.64v669.696c0 23.552-18.432 41.984-41.984 41.984h-124.928c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h110.592v-655.36h-113.664c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h283.648c15.36 0 28.672 12.288 28.672 28.672s-13.312 29.696-29.696 29.696zM545.193 909.834c22.794-22.794 22.794-59.75 0-82.544s-59.75-22.794-82.544 0c-22.794 22.794-22.794 59.75 0 82 [...]
+<glyph unicode="&#xe9b6;" glyph-name="graduation" data-tags="graduation" d="M946.176 395.776v151.552l3.072 1.024c8.192 4.096 16.384 11.264 19.456 20.48 6.144 17.408-3.072 34.816-18.432 41.984l-425.984 187.392c-10.24 3.072-21.504 3.072-31.744 0l-433.152-186.368c-12.288-5.12-20.48-17.408-20.48-30.72s8.192-25.6 20.48-30.72l142.336-62.464v-210.944c0-100.352 80.896-181.248 181.248-181.248h242.688c100.352 0 181.248 80.896 181.248 181.248v206.848l82.944 36.864v-125.952l-36.864-36.864c-2.048-2.0 [...]
+<glyph unicode="&#xe9b7;" glyph-name="write" data-tags="write" d="M925.696 236.032l1.024 555.008c0 22.528-17.408 39.936-38.912 39.936h-2.048c-16.384 0-32.768 1.024-49.152 1.024v62.464c0 24.576-19.456 44.032-44.032 44.032h-651.264c-24.576 0-44.032-19.456-44.032-44.032v-607.232c0-3.072 1.024-5.12 3.072-7.168l325.632-319.488c2.048-2.048 4.096-3.072 7.168-3.072h358.4c24.576 0 44.032 19.456 44.032 44.032v48.128l89.088 179.2 1.024 7.168zM859.136 263.68c-15.36 0-28.672-12.288-28.672-28.672 0-13 [...]
+<glyph unicode="&#xe9b8;" glyph-name="pencil-alt" data-tags="pencil-alt" d="M999.424 782.848c0 11.264-4.096 21.504-12.288 29.696l-112.64 112.64c-7.168 9.216-17.408 15.36-27.648 16.384-11.264 1.024-23.552-3.072-31.744-12.288l-121.856-120.832h-627.712c-23.552 0-41.984-17.408-41.984-41.984v-770.048c0-23.552 17.408-41.984 41.984-41.984h769.024c23.552 0 41.984 17.408 41.984 41.984v645.12l111.616 111.616c7.168 8.192 11.264 18.432 11.264 29.696zM538.624 383.488l-16.384 16.384c-11.264 11.264-28. [...]
+<glyph unicode="&#xe9b9;" glyph-name="pencil" data-tags="pencil" d="M968.704 742.912c-18.432 18.432-35.84 35.84-53.248 54.272-34.816 33.792-70.656 69.632-106.496 104.448-9.216 10.24-21.504 16.384-33.792 16.384s-24.576-4.096-33.792-13.312l-605.184-605.184-92.16-280.576c-3.072-9.216-3.072-19.456 2.048-27.648 6.144-8.192 16.384-14.336 28.672-14.336h4.096l285.696 95.232 604.16 604.16c18.432 18.432 18.432 48.128 0 66.56zM173.056 231.936l18.432-18.432c5.12-5.12 12.288-8.192 19.456-8.192s14.336 [...]
+<glyph unicode="&#xe9ba;" glyph-name="pin" data-tags="pin" d="M753.664 700.928c0 133.12-108.544 241.664-241.664 241.664s-241.664-108.544-241.664-241.664c0-123.904 94.208-226.304 215.040-239.616v-479.232c0-15.36 12.288-28.672 28.672-28.672 15.36 0 28.672 12.288 28.672 28.672v479.232c117.76 14.336 210.944 116.736 210.944 239.616zM512 515.584c-102.4 0-185.344 82.944-185.344 185.344s82.944 185.344 185.344 185.344c102.4 0 185.344-82.944 185.344-185.344s-82.944-185.344-185.344-185.344zM574.909 [...]
+<glyph unicode="&#xe9bb;" glyph-name="blackboard" data-tags="black-board" d="M940.032 793.088h-401.408v77.824c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-77.824h-397.312c-29.696 0-54.272-24.576-54.272-54.272v-410.624c0-29.696 24.576-54.272 54.272-54.272h183.296l-137.216-235.52c-8.192-13.312-3.072-30.72 10.24-38.912 4.096-3.072 9.216-4.096 14.336-4.096 9.216 0 19.456 5.12 24.576 14.336l153.6 264.192h153.6v-249.856c0-15.36 12.288-28.672 28.672-28.672 15.36 0 28.672 12 [...]
+<glyph unicode="&#xe9bc;" glyph-name="book" data-tags="book" d="M288.768 876.032h540.672c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-540.672c-62.464 0-113.664-46.080-120.832-106.496-1.024-2.048-1.024-5.12-1.024-8.192v-765.952c0-49.152 39.936-89.088 89.088-89.088h553.984c20.48 0 37.888 17.408 37.888 37.888v705.536c0 20.48-17.408 37.888-37.888 37.888h-521.216c-35.84 0-66.56 30.72-66.56 66.56s30.72 65.536 66.56 65.536zM288.768 687.616h502.784v-668.672h-535.552c-18.432  [...]
+<glyph unicode="&#xe9bd;" glyph-name="shuffle" data-tags="shuffle" d="M950.272 232.96l-121.856 120.832c-11.264 11.264-28.672 11.264-39.936 0-10.24-10.24-10.24-28.672 0-39.936l80.896-80.896h-119.808l-177.152 215.040 177.152 214.016h119.808l-80.896-79.872c-10.24-11.264-10.24-29.696 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192l122.88 120.832c15.36 15.36 15.36 38.912 0 54.272l-121.856 121.856c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l80.896-80.89 [...]
+<glyph unicode="&#xe9be;" glyph-name="volume-mute" data-tags="mute" d="M689.152 81.408l-190.464 131.072v43.008c0 6.144-4.096 10.24-10.24 10.24h-35.84c-6.144 0-10.24-4.096-10.24-10.24v-28.672h-53.248c-6.144 0-10.24-4.096-10.24-10.24v-35.84c0-6.144 4.096-10.24 10.24-10.24h72.704l223.232-153.6c6.144-4.096 14.336-7.168 21.504-7.168 9.216 0 19.456 4.096 26.624 11.264 8.192 7.168 11.264 18.432 11.264 28.672v400.384c0 6.144-4.096 10.24-10.24 10.24h-35.84c-6.144 0-10.24-4.096-10.24-10.24v-368.64 [...]
+<glyph unicode="&#xe9bf;" glyph-name="backward" data-tags="backward" d="M164.864-31.232c15.36 0 28.672 12.288 28.672 28.672v406.528l632.832-428.032c12.288-8.192 27.648-9.216 40.96-2.048s21.504 20.48 21.504 34.816v878.592c0 14.336-8.192 27.648-21.504 34.816-6.144 3.072-12.288 5.12-18.432 5.12-8.192 0-15.36-2.048-22.528-7.168l-632.832-428.032v406.528c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-901.12c0-15.36 12.288-28.672 27.648-28.672zM830.464 855.552v-815.104l-602.1 [...]
+<glyph unicode="&#xe9c0;" glyph-name="forward" data-tags="forward" d="M859.136 926.208c-15.36 0-28.672-12.288-28.672-28.672v-406.528l-631.808 429.056c-12.288 8.192-27.648 9.216-40.96 2.048s-21.504-20.48-21.504-34.816v-878.592c0-14.336 8.192-27.648 21.504-34.816 6.144-3.072 12.288-5.12 18.432-5.12 8.192 0 15.36 2.048 22.528 7.168l632.832 428.032v-406.528c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v901.12c-2.048 15.36-14.336 27.648-29.696 27.648zM193.536 40.448v815.104l [...]
+<glyph unicode="&#xe9c1;" glyph-name="stop" data-tags="stop" d="M788.48 122.368h-552.96c-26.624 0-49.152 21.504-49.152 49.152v552.96c0 26.624 21.504 49.152 49.152 49.152h552.96c26.624 0 49.152-21.504 49.152-49.152v-552.96c0-26.624-22.528-49.152-49.152-49.152zM243.712 178.688h537.6v537.6h-537.6v-537.6z" />
+<glyph unicode="&#xe9c2;" glyph-name="play" data-tags="play" d="M187.392-30.208c-6.144 0-12.288 2.048-18.432 5.12-13.312 7.168-21.504 20.48-21.504 34.816v877.568c0 14.336 8.192 27.648 21.504 34.816s28.672 6.144 40.96-2.048l649.216-439.296c11.264-7.168 17.408-19.456 17.408-32.768s-6.144-25.6-17.408-32.768l-649.216-439.296c-7.168-4.096-14.336-6.144-22.528-6.144zM204.8 855.552v-815.104l602.112 407.552-602.112 407.552zM178.176 872.96c0 0 0 0 0 0v0z" />
+<glyph unicode="&#xe9c3;" glyph-name="pause" data-tags="pause" d="M376.832 767.488h-205.824c-21.504 0-38.912-17.408-38.912-38.912v-563.2c0-21.504 17.408-38.912 38.912-38.912h205.824c21.504 0 38.912 17.408 38.912 38.912v563.2c-1.024 22.528-17.408 38.912-38.912 38.912zM358.4 183.808h-169.984v527.36h169.984v-527.36zM852.992 767.488h-205.824c-21.504 0-38.912-17.408-38.912-38.912v-563.2c0-21.504 17.408-38.912 38.912-38.912h205.824c21.504 0 38.912 17.408 38.912 38.912v563.2c0 22.528-17.408 38. [...]
+<glyph unicode="&#xe9c4;" glyph-name="music" data-tags="music" d="M989.184 857.6c-11.264 10.24-26.624 15.36-43.008 14.336l-647.168-65.536c-26.624-4.096-47.104-27.648-47.104-54.272v-546.816c-24.576 13.312-55.296 20.48-88.064 20.48-80.896 0-145.408-44.032-145.408-100.352s63.488-100.352 145.408-100.352c80.896 0 144.384 44.032 144.384 100.352v0 413.696l643.072 66.56v-362.496c-24.576 13.312-55.296 20.48-89.088 20.48-81.92 0-145.408-44.032-145.408-100.352s63.488-100.352 145.408-100.352c77.824  [...]
+<glyph unicode="&#xe9c5;" glyph-name="frame-expand" data-tags="frame-expand" d="M291.84 926.208h-220.16c-21.504 0-37.888-16.384-37.888-37.888v-219.136c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v200.704h201.728c15.36 0 28.672 12.288 28.672 28.672s-14.336 27.648-29.696 27.648zM952.32 926.208h-220.16c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h201.728v-201.728c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v221.184c0 21.504-17.408 37 [...]
+<glyph unicode="&#xe9c6;" glyph-name="video" data-tags="video-play" d="M965.632 481.792c-12.288 7.168-26.624 8.192-38.912 2.048l-185.344-91.136v54.272c0 21.504-17.408 38.912-38.912 38.912h-97.28c67.584 24.576 115.712 89.088 115.712 163.84 0 96.256-78.848 175.104-175.104 175.104s-175.104-78.848-175.104-175.104c0-75.776 48.128-139.264 115.712-163.84h-251.904c44.032 19.456 74.752 63.488 74.752 113.664 0 68.608-56.32 124.928-124.928 124.928s-123.904-56.32-123.904-124.928c0-51.2 30.72-94.208  [...]
+<glyph unicode="&#xe9c7;" glyph-name="volume-high" data-tags="volume-high" d="M523.264 882.176c-12.288 6.144-27.648 6.144-39.936-2.048l-222.208-154.624h-188.416c-26.624 0-49.152-21.504-49.152-49.152v-458.752c0-26.624 21.504-49.152 49.152-49.152h187.392l223.232-154.624c6.144-4.096 14.336-7.168 21.504-7.168 6.144 0 12.288 1.024 17.408 4.096 12.288 6.144 20.48 19.456 20.48 33.792v803.84c1.024 14.336-6.144 27.648-19.456 33.792zM80.896 669.184h160.768v-443.392h-160.768v443.392zM487.424 81.408 [...]
+<glyph unicode="&#xe9c8;" glyph-name="volume-low" data-tags="volume-low" d="M216.064 725.504c-26.624 0-49.152-21.504-49.152-49.152v-458.752c0-26.624 21.504-49.152 49.152-49.152h187.392l250.88-174.080c13.312-9.216 31.744 0 31.744 16.384v872.448c0 16.384-18.432 26.624-31.744 16.384l-250.88-174.080h-187.392zM223.232 669.184h160.768v-443.392h-160.768v443.392zM630.784 81.408l-190.464 132.096v468.992l189.44 131.072v-732.16zM772.096 556.544c-11.264-11.264-11.264-28.672 0-39.936 37.888-37.888 37 [...]
+<glyph unicode="&#xe9c9;" glyph-name="volume-medium" data-tags="volume-medium" d="M145.408 725.504c-26.624 0-49.152-21.504-49.152-49.152v-458.752c0-26.624 21.504-49.152 49.152-49.152h187.392l250.88-174.080c13.312-9.216 31.744 0 31.744 16.384v872.448c0 16.384-18.432 26.624-31.744 16.384l-250.88-174.080h-187.392zM152.576 669.184h160.768v-443.392h-160.768v443.392zM560.128 81.408l-190.464 132.096v468.992l189.44 131.072v-732.16zM701.44 556.544c-11.264-11.264-11.264-28.672 0-39.936 37.888-37.8 [...]
+<glyph unicode="&#xe9ca;" glyph-name="volume" data-tags="volume" d="M751.616 882.176c-12.288 6.144-27.648 6.144-39.936-2.048l-223.232-154.624h-187.392c-26.624 0-49.152-21.504-49.152-49.152v-458.752c0-26.624 21.504-49.152 49.152-49.152h187.392l223.232-154.624c6.144-4.096 14.336-7.168 21.504-7.168 6.144 0 12.288 1.024 17.408 4.096 12.288 6.144 20.48 19.456 20.48 33.792v803.84c1.024 14.336-7.168 27.648-19.456 33.792zM308.224 669.184h160.768v-443.392h-160.768v443.392zM715.776 81.408l-190.464 [...]
+<glyph unicode="&#xe9cb;" glyph-name="camera" data-tags="camera" d="M994.304 657.92c-9.216 11.264-23.552 18.432-39.936 18.432h-200.704v31.744c0 28.672-22.528 50.176-50.176 50.176h-381.952c-28.672 0-50.176-22.528-50.176-50.176v-31.744h-200.704c-28.672 0-50.176-22.528-50.176-50.176v-437.248c0-28.672 22.528-50.176 50.176-50.176h883.712c28.672 0 50.176 22.528 50.176 50.176v434.176c1.024 12.288-2.048 24.576-10.24 34.816zM947.2 194.048h-871.424v425.984h222.208c16.384 0 29.696 12.288 29.696 29. [...]
+<glyph unicode="&#xe9cc;" glyph-name="invest-monitor" data-tags="invest-monitor" d="M243.712 360.96h-143.36c-11.264 0-20.48-9.216-20.48-20.48v-291.84c0-11.264 9.216-20.48 20.48-20.48h143.36c11.264 0 20.48 9.216 20.48 20.48v291.84c0 11.264-9.216 20.48-20.48 20.48zM583.68 473.6h-143.36c-11.264 0-20.48-9.216-20.48-20.48v-409.6c0-11.264 9.216-20.48 20.48-20.48h143.36c11.264 0 20.48 9.216 20.48 20.48v409.6c0 11.264-9.216 20.48-20.48 20.48zM924.672 320h-143.36c-11.264 0-20.48-9.216-20.48-20.48 [...]
+<glyph unicode="&#xe9cd;" glyph-name="grow" data-tags="grow" d="M878.592 360.96l-239.616-61.44c1.024 5.12 1.024 10.24 1.024 16.384 0 52.224-41.984 95.232-95.232 95.232h-194.56c-11.264 31.744-40.96 54.272-76.8 54.272h-177.152c-45.056 0-80.896-36.864-80.896-81.92v-225.28c0-45.056 36.864-80.896 80.896-80.896h178.176c21.504 0 43.008 9.216 58.368 24.576 0 0 1.024 1.024 1.024 1.024l24.576-12.288c47.104-24.576 99.328-36.864 151.552-36.864 30.72 0 62.464 4.096 93.184 13.312l63.488 18.432c0 0 0 0 [...]
+<glyph unicode="&#xe9ce;" glyph-name="money-location" data-tags="money-location" d="M512 942.592c-186.368 0-337.92-151.552-337.92-337.92 0-174.080 277.504-564.224 293.888-586.752l35.84-51.2c4.096-6.144 13.312-6.144 16.384 0l35.84 52.224c1.024 1.024 2.048 3.072 4.096 6.144 108.544 155.648 289.792 438.272 289.792 579.584 0 186.368-151.552 337.92-337.92 337.92zM514.048 55.808c-1.024-1.024-2.048-2.048-2.048-3.072-39.936 53.248-281.6 408.576-281.6 551.936 0 154.624 125.952 281.6 281.6 281.6s2 [...]
+<glyph unicode="&#xe9cf;" glyph-name="cloudnetwork" data-tags="cloudnetwork" d="M894.976 212.48c-49.152 0-91.136-33.792-103.424-79.872h-58.368v178.176c0 1.024 0 2.048 0 2.048 108.544 24.576 190.464 120.832 190.464 237.568 0 60.416-22.528 118.784-63.488 163.84-1.024 2.048-3.072 3.072-5.12 4.096-34.816 36.864-80.896 61.44-131.072 69.632-27.648 45.056-69.632 78.848-119.808 97.28 0 0 0 0 0 0s0 0 0 0 0 0-1.024 0v0c-24.576 9.216-49.152 13.312-76.8 13.312-124.928 0-227.328-98.304-233.472-221.18 [...]
+<glyph unicode="&#xe9d0;" glyph-name="diamond" data-tags="diamond" d="M512-6.656c-15.36 0-29.696 7.168-38.912 19.456l-375.808 500.736c-11.264 15.36-13.312 36.864-3.072 53.248l187.392 325.632c8.192 15.36 24.576 24.576 41.984 24.576h376.832c17.408 0 33.792-9.216 41.984-24.576l187.392-324.608c10.24-17.408 8.192-37.888-3.072-53.248l-375.808-501.76c-9.216-12.288-23.552-19.456-38.912-19.456zM145.408 543.232l366.592-488.448 366.592 488.448-182.272 316.416h-368.64l-182.272-316.416zM142.336 539.1 [...]
+<glyph unicode="&#xe9d1;" glyph-name="customer" data-tags="customer" d="M1004.544 270.848c-17.408 52.224-71.68 82.944-124.928 68.608l-239.616-61.44c1.024 5.12 1.024 10.24 1.024 16.384 0 52.224-41.984 95.232-95.232 95.232h-195.584c-11.264 31.744-40.96 54.272-76.8 54.272h-177.152c-45.056 0-80.896-36.864-80.896-81.92v-225.28c0-45.056 36.864-80.896 80.896-80.896h178.176c21.504 0 43.008 9.216 58.368 24.576 0 0 1.024 1.024 1.024 1.024l24.576-12.288c47.104-24.576 99.328-36.864 151.552-36.864 30 [...]
+<glyph unicode="&#xe9d2;" glyph-name="domain" data-tags="domain" d="M316.416 546.304c-13.312 4.096-26.624-2.048-33.792-14.336l-44.032-81.92-26.624 60.416c-14.336 32.768-60.416 32.768-74.752 0l-26.624-60.416-44.032 81.92c-8.192 15.36-28.672 19.456-43.008 8.192-10.24-8.192-12.288-23.552-6.144-35.84l78.848-146.432c8.192-15.36 29.696-14.336 36.864 1.024l41.984 96.256 41.984-96.256c7.168-15.36 28.672-16.384 36.864-1.024l78.848 147.456c8.192 16.384 1.024 35.84-16.384 40.96zM653.312 546.304c-13 [...]
+<glyph unicode="&#xe9d3;" glyph-name="target-audience" data-tags="target-audience" d="M996.352 475.648h-102.4c-13.312 189.44-164.864 340.992-353.28 354.304v86.016c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-86.016c-188.416-13.312-339.968-164.864-353.28-354.304h-102.4c-15.36 0-27.648-12.288-27.648-27.648s12.288-28.672 28.672-28.672h102.4c12.288-188.416 163.84-339.968 353.28-353.28v-86.016c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v86.016c187.392  [...]
+<glyph unicode="&#xe9d4;" glyph-name="seo" data-tags="seo" d="M261.12 457.216c-15.36 0-28.672-12.288-28.672-28.672 0-15.36 12.288-27.648 28.672-27.648h65.536c27.648 0 50.176 22.528 50.176 50.176v66.56c0 27.648-22.528 50.176-50.176 50.176h-31.744v54.272h59.392c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-65.536c-27.648 0-50.176-22.528-50.176-50.176v-65.536c0-27.648 22.528-50.176 50.176-50.176h31.744v-55.296h-59.392zM478.208 400.896h80.896c15.36 0 28.672 12.288 28.672  [...]
+<glyph unicode="&#xe9d5;" glyph-name="keyword-research" data-tags="keyword-research" d="M266.24 700.928h125.952c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-125.952c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM463.872 639.488h-197.632c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h197.632c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM443.392 521.728h-177.152c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672  [...]
+<glyph unicode="&#xe9d6;" glyph-name="seo-monitoring" data-tags="seo-monitoring" d="M220.16 397.824c26.624 0 49.152 21.504 49.152 49.152 0 0 0 0 0 0 38.912 27.648 96.256 70.656 134.144 99.328 4.096-1.024 9.216-2.048 14.336-2.048 13.312 0 25.6 6.144 34.816 14.336l110.592-33.792c7.168-17.408 24.576-29.696 45.056-29.696 26.624 0 47.104 20.48 48.128 46.080l129.024 79.872c6.144-2.048 12.288-4.096 19.456-4.096 26.624 0 49.152 21.504 49.152 49.152s-23.552 48.128-50.176 48.128c-25.6 0-46.080-20. [...]
+<glyph unicode="&#xe9d7;" glyph-name="seo-consulting" data-tags="seo-consulting" d="M388.096 581.12c0-69.632 57.344-126.976 126.976-126.976s126.976 56.32 126.976 126.976c0 69.632-57.344 126.976-126.976 126.976s-126.976-57.344-126.976-126.976zM587.776 581.12c0-39.936-32.768-72.704-72.704-72.704s-72.704 32.768-72.704 72.704c0 39.936 32.768 72.704 72.704 72.704s72.704-32.768 72.704-72.704zM1000.448 330.24l-87.040 87.040c-4.096 4.096-10.24 4.096-14.336 0l-88.064-87.040c-10.24-10.24-12.288-27 [...]
+<glyph unicode="&#xe9d8;" glyph-name="money-protection" data-tags="money-protection" d="M503.808 938.496l-373.76-108.544c-9.216-2.048-14.336-10.24-14.336-19.456v-309.248c0-245.76 155.648-464.896 387.072-543.744l9.216-3.072 9.216 3.072c231.424 79.872 386.048 299.008 386.048 543.744v309.248c0 9.216-6.144 17.408-14.336 19.456l-376.832 108.544c-4.096 1.024-8.192 1.024-12.288 0zM851.968 502.272c0-218.112-136.192-413.696-339.968-488.448-203.776 74.752-339.968 269.312-339.968 487.424v282.624l33 [...]
+<glyph unicode="&#xe9d9;" glyph-name="offer" data-tags="offer" d="M954.368 519.68l-73.728 31.744c-8.192 3.072-11.264 9.216-12.288 13.312s-2.048 10.24 2.048 17.408l40.96 68.608c16.384 26.624 14.336 59.392-4.096 84.992s-49.152 36.864-79.872 29.696l-77.824-17.408c-8.192-2.048-14.336 1.024-17.408 3.072s-8.192 7.168-9.216 15.36l-6.144 79.872c-3.072 31.744-23.552 57.344-53.248 66.56-29.696 10.24-61.44 1.024-81.92-22.528l-53.248-60.416c-5.12-6.144-12.288-7.168-16.384-7.168s-10.24 1.024-16.384 7 [...]
+<glyph unicode="&#xe9da;" glyph-name="delivery" data-tags="delivery" d="M885.76 779.776h-465.92c-37.888 0-69.632-30.72-69.632-69.632v-74.752h-167.936c-19.456 0-36.864-11.264-44.032-29.696l-27.648-65.536-40.96-96.256v-166.912c0-26.624 21.504-49.152 49.152-49.152h11.264c0-1.024 0-2.048 0-3.072 0-60.416 49.152-110.592 110.592-110.592s110.592 49.152 110.592 110.592c0 1.024 0 2.048 0 3.072h300.032c0-1.024 0-2.048 0-3.072 0-60.416 49.152-110.592 110.592-110.592s108.544 52.224 108.544 112.64c0  [...]
+<glyph unicode="&#xe9db;" glyph-name="investment" data-tags="investment" d="M264.192 501.248c0 15.36-12.288 28.672-28.672 28.672h-84.992c1.024 2.048 3.072 5.12 3.072 8.192 41.984 169.984 193.536 288.768 367.616 288.768s325.632-117.76 367.616-286.72c4.096-15.36 19.456-24.576 33.792-20.48 15.36 4.096 24.576 19.456 20.48 33.792-48.128 194.56-222.208 329.728-421.888 329.728-193.536-1.024-361.472-128-416.768-312.32v90.112c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-149.5 [...]
+<glyph unicode="&#xe9dc;" glyph-name="shopping-basket" data-tags="shopping-basket" d="M941.056 595.456h-72.704l-60.416 297.984c-3.072 15.36-18.432 25.6-33.792 22.528s-24.576-18.432-21.504-32.768l58.368-286.72h-598.016l58.368 286.72c3.072 15.36-7.168 29.696-21.504 32.768-15.36 3.072-30.72-7.168-33.792-22.528l-60.416-297.984h-72.704c-26.624 0-49.152-21.504-49.152-49.152v-91.136c0-26.624 21.504-48.128 49.152-48.128h22.528l89.088-389.12c5.12-22.528 25.6-38.912 48.128-38.912h538.624c23.552 0  [...]
+<glyph unicode="&#xe9dd;" glyph-name="coin" data-tags="coin" d="M580.608 475.648h-137.216c-35.84 0-65.536 29.696-65.536 65.536 0 17.408 7.168 33.792 19.456 46.080s28.672 19.456 46.080 19.456h198.656c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-93.184v43.008c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-43.008h-49.152c-32.768 0-62.464-12.288-86.016-35.84-22.528-22.528-35.84-53.248-35.84-86.016 0-66.56 54.272-121.856 121.856-121.856h137.216c35.84 0  [...]
+<glyph unicode="&#xe9de;" glyph-name="cart-full" data-tags="cart-full" d="M924.672 945.664h-95.232c-20.48 0-36.864-15.36-38.912-35.84l-19.456-225.28h-112.64v198.656c0 27.648-22.528 50.176-50.176 50.176h-204.8c-22.528 0-41.984-15.36-48.128-36.864h-199.68c-27.648 0-50.176-22.528-50.176-50.176v-162.816c-10.24-1.024-18.432-5.12-25.6-13.312s-10.24-20.48-9.216-31.744l64.512-427.008c3.072-19.456 19.456-32.768 38.912-32.768h574.464c20.48 0 36.864 15.36 38.912 35.84l14.336 172.032 43.008 502.784h [...]
+<glyph unicode="&#xe9df;" glyph-name="cart" data-tags="cart" d="M927.744 934.4h-81.92c-19.456 0-35.84-14.336-37.888-34.816l-19.456-194.56h-671.744c-15.36 0-28.672-7.168-38.912-18.432-9.216-12.288-12.288-27.648-8.192-41.984l109.568-429.056c5.12-21.504 24.576-36.864 47.104-36.864h521.216c3.072 0 7.168 0 10.24 1.024 2.048 0 3.072-1.024 5.12-1.024 1.024 0 2.048 0 3.072 0 14.336 0 26.624 11.264 27.648 25.6l2.048 17.408c0 0 0 0 0 0l50.176 482.304h-1.024l17.408 174.080h65.536c15.36 0 28.672 12. [...]
+<glyph unicode="&#xe9e0;" glyph-name="burger" data-tags="burger" d="M918.528 590.336c-12.288 150.528-139.264 270.336-292.864 270.336h-227.328c-78.848 0-152.576-30.72-207.872-86.016-50.176-50.176-79.872-114.688-84.992-183.296-49.152-25.6-81.92-75.776-81.92-135.168v-13.312c0-58.368 33.792-109.568 81.92-134.144 11.264-152.576 138.24-273.408 292.864-273.408h227.328c78.848 0 152.576 30.72 207.872 86.016 50.176 50.176 80.896 116.736 84.992 187.392 48.128 25.6 81.92 75.776 81.92 134.144v13.312c [...]
+<glyph unicode="&#xe9e1;" glyph-name="restaurant" data-tags="restaurant" d="M898.048 768.512l-62.464 112.64c-7.168 12.288-19.456 19.456-33.792 19.456h-579.584c-14.336 0-26.624-7.168-33.792-19.456l-62.464-112.64-91.136-164.864c-6.144-11.264-8.192-24.576-5.12-36.864v0c4.096-17.408 11.264-34.816 20.48-51.2v-483.328c0-21.504 17.408-38.912 38.912-38.912h151.552c11.264 0 20.48 9.216 20.48 20.48v233.472h98.304v-231.424c0-11.264 9.216-20.48 20.48-20.48h556.032c21.504 0 38.912 17.408 38.912 38.91 [...]
+<glyph unicode="&#xe9e2;" glyph-name="service" data-tags="service" d="M927.744 308.736c-7.168 214.016-176.128 387.072-388.096 401.408v12.288h26.624c13.312 0 25.6 9.216 28.672 22.528 3.072 18.432-10.24 33.792-27.648 33.792h-110.592c-13.312 0-25.6-9.216-28.672-22.528-3.072-18.432 10.24-33.792 27.648-33.792h27.648v-12.288c-210.944-14.336-379.904-187.392-387.072-401.408h-47.104c-11.264 0-20.48-9.216-20.48-20.48v-82.944c0-49.152 39.936-88.064 88.064-88.064h790.528c49.152 0 88.064 39.936 88.06 [...]
+<glyph unicode="&#xe9e3;" glyph-name="chef-hat" data-tags="chef-hat" d="M764.928 749.056c-34.816 109.568-136.192 184.32-252.928 184.32s-218.112-74.752-252.928-184.32c-129.024-25.6-224.256-140.288-224.256-273.408v-2.048c1.024-101.376 77.824-186.368 179.2-199.68l5.12-256c0-30.72 24.576-55.296 55.296-55.296h475.136c30.72 0 56.32 24.576 55.296 55.296l7.168 256c100.352 13.312 176.128 99.328 176.128 201.728 1.024 133.12-94.208 247.808-223.232 273.408zM275.456 18.944l-2.048 90.112h478.208l-2.04 [...]
+<glyph unicode="&#xe9e4;" glyph-name="cake" data-tags="cake" d="M936.96 500.224h-38.912v323.584c0 32.768-26.624 59.392-59.392 59.392h-654.336c-32.768 0-59.392-26.624-59.392-59.392v-323.584h-37.888c-32.768 0-59.392-26.624-59.392-58.368v-368.64c0-32.768 26.624-59.392 59.392-59.392h849.92c32.768 0 59.392 26.624 59.392 59.392v368.64c0 31.744-26.624 58.368-59.392 58.368zM184.32 825.856h655.36c1.024 0 3.072-1.024 3.072-3.072v-103.424l-58.368-28.672c-49.152-23.552-93.184-25.6-139.264-6.144-18.4 [...]
+<glyph unicode="&#xe9e5;" glyph-name="pizza" data-tags="pizza" d="M802.816 738.816c-116.736 115.712-276.48 168.96-439.296 146.432l-10.24-1.024-7.168-7.168-4.096-5.12-272.384-852.992c-2.048-8.192 5.12-15.36 13.312-13.312l854.016 272.384 12.288 12.288 1.024 9.216c21.504 162.816-31.744 322.56-147.456 439.296zM762.88 698.88c99.328-99.328 147.456-234.496 133.12-373.76l-51.2-16.384c1.024 124.928-48.128 245.76-137.216 334.848s-209.92 138.24-334.848 137.216l16.384 51.2c138.24 13.312 274.432-33.7 [...]
+<glyph unicode="&#xe9e6;" glyph-name="teabag" data-tags="teabag" d="M219.136 458.24h132.096c15.36 0 27.648 12.288 27.648 27.648v25.6c0 15.36-12.288 27.648-27.648 27.648h-132.096c-15.36 0-27.648-12.288-27.648-27.648v-25.6c0-15.36 12.288-27.648 27.648-27.648zM989.184 241.152l-78.848 73.728v292.864c0 180.224-146.432 326.656-326.656 326.656-163.84 0-300.032-112.64-322.56-269.312h-162.816c-23.552 0-43.008-15.36-49.152-37.888l-28.672-114.688c-1.024-4.096-1.024-8.192-1.024-12.288v-487.424c0-27. [...]
+<glyph unicode="&#xe9e7;" glyph-name="dinner" data-tags="dinner" d="M721.92 934.4h-52.224c-27.648 0-51.2-22.528-51.2-51.2v-849.92c0-39.936 32.768-73.728 73.728-73.728h46.080c39.936 0 73.728 32.768 73.728 73.728v335.872h33.792c27.648 0 51.2 22.528 51.2 51.2v342.016c-2.048 95.232-79.872 172.032-175.104 172.032zM738.304 17.92h-46.080c-9.216 0-17.408 7.168-17.408 17.408v333.824h79.872v-334.848c1.024-9.216-6.144-16.384-16.384-16.384zM839.68 425.472h-163.84v452.608h47.104c63.488 0 116.736-52.2 [...]
+<glyph unicode="&#xe9e8;" glyph-name="taxi" data-tags="taxi" d="M936.96 563.712l-90.112 216.064c-15.36 36.864-50.176 60.416-90.112 60.416h-140.288l-23.552 56.32c-3.072 7.168-10.24 12.288-18.432 12.288h-124.928c-8.192 0-15.36-5.12-18.432-12.288l-23.552-56.32h-141.312c-39.936 0-74.752-23.552-90.112-60.416l-89.088-216.064c-23.552 0-40.96-17.408-40.96-40.96v-326.656c0-23.552 17.408-40.96 40.96-40.96h22.528v-80.896c0-31.744 25.6-58.368 57.344-58.368h76.8c31.744 0 57.344 25.6 57.344 58.368v80. [...]
+<glyph unicode="&#xe9e9;" glyph-name="caravan" data-tags="caravan" d="M296.96 628.224h-105.472c-21.504 0-38.912-17.408-38.912-38.912v-112.64c0-21.504 17.408-38.912 38.912-38.912h105.472c21.504 0 38.912 17.408 38.912 38.912v112.64c0 21.504-17.408 38.912-38.912 38.912zM279.552 495.104h-69.632v76.8h69.632v-76.8zM973.824 385.536c-15.36 0-28.672-12.288-28.672-28.672v-36.864h-44.032v228.352c0 7.168-2.048 14.336-6.144 20.48l-123.904 200.704c-7.168 11.264-19.456 18.432-32.768 18.432h-662.528c-21 [...]
+<glyph unicode="&#xe9ea;" glyph-name="pyramids" data-tags="pyramids" d="M1000.448 197.12l-343.040 543.744c-7.168 11.264-19.456 18.432-32.768 18.432 0 0 0 0 0 0-13.312 0-25.6-7.168-32.768-18.432l-165.888-267.264-82.944 132.096c-7.168 11.264-19.456 18.432-32.768 18.432 0 0 0 0 0 0-13.312 0-25.6-7.168-32.768-18.432l-254.976-409.6c-7.168-12.288-8.192-27.648-1.024-39.936s19.456-20.48 33.792-20.48h912.384c14.336 0 27.648 8.192 33.792 20.48 7.168 13.312 7.168 28.672-1.024 40.96zM624.64 687.616l [...]
+<glyph unicode="&#xe9eb;" glyph-name="surfboard" data-tags="surfboard" d="M678.912 911.872l-12.288 6.144-12.288-6.144c-53.248-26.624-101.376-71.68-141.312-130.048-39.936 59.392-88.064 103.424-142.336 130.048l-12.288 6.144-12.288-6.144c-151.552-74.752-252.928-286.72-252.928-526.336 0-145.408 36.864-281.6 103.424-386.048 9.216-14.336 24.576-22.528 40.96-22.528h548.864c16.384 0 31.744 8.192 40.96 22.528 66.56 103.424 103.424 240.64 103.424 386.048 0 239.616-101.376 451.584-251.904 526.336zM [...]
+<glyph unicode="&#xe9ec;" glyph-name="travel" data-tags="travel" d="M205.824 755.2c0 14.336-11.264 25.6-25.6 25.6s-25.6-11.264-25.6-25.6 11.264-25.6 25.6-25.6c14.336 1.024 25.6 12.288 25.6 25.6zM842.752 412.16c-76.8 0-139.264-62.464-139.264-139.264 0-48.128 50.176-134.144 84.992-188.416h-487.424c-24.576 0-48.128 9.216-65.536 27.648-17.408 17.408-26.624 40.96-26.624 65.536 0 51.2 41.984 92.16 93.184 92.16h159.744c38.912 0 75.776 15.36 103.424 43.008s43.008 64.512 43.008 103.424c0 80.896-6 [...]
+<glyph unicode="&#xe9ed;" glyph-name="island" data-tags="island" d="M968.704 100.864c-11.264 11.264-28.672 11.264-39.936 0-9.216-9.216-22.528-15.36-35.84-15.36s-26.624 5.12-35.84 15.36l-15.36 15.36c-20.48 20.48-47.104 31.744-75.776 31.744s-55.296-11.264-75.776-31.744l-11.264-11.264c-20.48-19.456-52.224-19.456-72.704 0l-20.48 20.48c-41.984 41.984-110.592 41.984-151.552 0l-5.12-5.12c-20.48-19.456-52.224-19.456-72.704 0-22.528 20.48-51.2 30.72-78.848 30.72-2.048 21.504-4.096 81.92 12.288 16 [...]
+<glyph unicode="&#xe9ee;" glyph-name="mashroom" data-tags="mashroom" d="M905.216 545.28c0 9.216-1.024 18.432-2.048 28.672-5.12 47.104-19.456 93.184-40.96 135.168-1.024 1.024-1.024 2.048-2.048 4.096-67.584 130.048-201.728 210.944-348.16 210.944s-280.576-80.896-348.16-210.944c-15.36-28.672-26.624-58.368-34.816-90.112-4.096-15.36-6.144-31.744-8.192-47.104-2.048-22.528-4.096-40.96 8.192-60.416 8.192-14.336 18.432-27.648 29.696-38.912 25.6-26.624 57.344-48.128 90.112-64.512 39.936-20.48 82.94 [...]
+<glyph unicode="&#xe9ef;" glyph-name="sprout" data-tags="sprout" d="M994.304 753.152l-3.072 19.456-19.456 3.072c-10.24 2.048-254.976 41.984-386.048-89.088-21.504-21.504-38.912-47.104-52.224-73.728-8.192 74.752-31.744 160.768-93.184 221.184v0c-132.096 132.096-376.832 92.16-387.072 90.112l-19.456-3.072-4.096-20.48c-2.048-10.24-41.984-254.976 89.088-386.048 80.896-80.896 203.776-96.256 289.792-96.256 32.768 0 59.392 2.048 76.8 4.096v-429.056c0-15.36 12.288-28.672 28.672-28.672 15.36 0 27.64 [...]
+<glyph unicode="&#xe9f0;" glyph-name="tree" data-tags="tree" d="M742.4 548.352c0 180.224-94.208 379.904-230.4 379.904s-230.4-199.68-230.4-379.904c0-181.248 87.040-325.632 201.728-346.112v-205.824c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v205.824c114.688 20.48 201.728 164.864 201.728 346.112zM539.648 259.584v109.568c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-109.568c-79.872 23.552-144.384 146.432-144.384 288.768 0 165.888 83.968 323.584 174.080 [...]
+<glyph unicode="&#xe9f1;" glyph-name="trees" data-tags="trees" d="M208.896 736.768c-112.64 0-188.416-158.72-188.416-307.2 0-144.384 68.608-260.096 159.744-279.552v-158.72c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v159.744c92.16 19.456 159.744 135.168 159.744 279.552 0 147.456-75.776 306.176-188.416 306.176zM237.568 209.408v78.848c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-78.848c-57.344 23.552-102.4 114.688-102.4 221.184 0 129.024 64.512 250.88 [...]
+<glyph unicode="&#xe9f2;" glyph-name="flower" data-tags="flower" d="M814.080 612.864c-36.864 0-100.352-18.432-191.488-55.296 0 0-1.024 1.024-1.024 1.024 36.864 92.16 55.296 154.624 55.296 191.488 0 105.472-73.728 191.488-164.864 191.488s-164.864-86.016-164.864-191.488c0-36.864 18.432-99.328 55.296-191.488 0 0-1.024-1.024-1.024-1.024-91.136 36.864-154.624 55.296-191.488 55.296-105.472 0-191.488-73.728-191.488-164.864s86.016-164.864 191.488-164.864c36.864 0 99.328 18.432 191.488 55.296 0 0 [...]
+<glyph unicode="&#xe9f3;" glyph-name="bug" data-tags="bug" d="M897.024 344.576h-129.024c-2.048 37.888-8.192 73.728-19.456 106.496 0 0 0 0 0 0l116.736 116.736c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-100.352-100.352c-25.6 51.2-62.464 93.184-105.472 118.784 21.504 3.072 41.984 13.312 58.368 29.696l1.024 1.024c18.432 20.48 27.648 47.104 24.576 74.752-9.216 101.376-92.16 177.152-192.512 177.152s-184.32-75.776-194.56-176.128c-3.072-27.648 6.144-55.296 24.576-75.776 15.36- [...]
+<glyph unicode="&#xe9f4;" glyph-name="leaf" data-tags="leaf" d="M977.92 20.992l-118.784 117.76 2.048 2.048c73.728 83.968 109.568 190.464 98.304 291.84-32.768 267.264-459.776 413.696-813.056 489.472l-3.072 1.024h-3.072c-24.576 2.048-50.176-5.12-69.632-19.456l-9.216-9.216c-19.456-21.504-27.648-50.176-20.48-77.824 75.776-354.304 222.208-783.36 490.496-811.008 14.336-2.048 27.648-2.048 40.96-2.048 11.264 0 23.552 0 34.816 2.048 72.704 6.144 149.504 40.96 210.944 95.232l119.808-119.808c5.12-5 [...]
+<glyph unicode="&#xe9f5;" glyph-name="fresh-juice" data-tags="fresh-juice" d="M606.208 637.44v12.288c0 35.84-29.696 65.536-65.536 65.536h-142.336l18.432 102.4c1.024 4.096 5.12 8.192 9.216 8.192h159.744c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-159.744c-31.744 0-59.392-22.528-64.512-54.272l-20.48-112.64h-250.88c-35.84 0-65.536-29.696-65.536-65.536v-12.288c0-33.792 25.6-61.44 58.368-64.512l24.576-464.896c3.072-52.224 46.080-94.208 99.328-94.208h218.112c52.224 0 96.2 [...]
+<glyph unicode="&#xe9f6;" glyph-name="heart-monitor" data-tags="heart-monitor" d="M600.064 468.48h-60.416c-10.24 0-18.432-4.096-25.6-11.264l-7.168-9.216-15.36 55.296c-3.072 14.336-15.36 24.576-29.696 26.624s-29.696-5.12-36.864-18.432l-22.528-43.008h-19.456c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h31.744c12.288 0 24.576 7.168 30.72 17.408l5.12 9.216 12.288-47.104c4.096-14.336 15.36-24.576 29.696-25.6 2.048 0 3.072 0 5.12 0 11.264 0 21.504 5.12 28.672 15.36l23.552 3 [...]
+<glyph unicode="&#xe9f7;" glyph-name="dumbbell" data-tags="dumbbell" d="M944.128 516.608v35.84c0 44.032-35.84 79.872-79.872 79.872h-55.296c-44.032 0-79.872-35.84-79.872-79.872v-34.816h-38.912c-11.264 0-20.48-9.216-20.48-20.48v-24.576h-315.392v24.576c0 11.264-9.216 20.48-20.48 20.48h-38.912v41.984c0 39.936-32.768 72.704-72.704 72.704h-68.608c-39.936 0-72.704-32.768-72.704-72.704v-43.008c-16.384-3.072-28.672-17.408-28.672-34.816v-68.608c0-17.408 12.288-31.744 28.672-34.816v-43.008c-1.024-3 [...]
+<glyph unicode="&#xe9f8;" glyph-name="skipping-rope" data-tags="skipping-rope" d="M1007.616 375.296c-8.192 23.552-24.576 41.984-46.080 53.248s-47.104 12.288-69.632 5.12l-132.096-45.056c-12.288-4.096-22.528-13.312-27.648-24.576-6.144-11.264-6.144-24.576-2.048-36.864l5.12-14.336-336.896-113.664c-21.504-7.168-44.032-6.144-64.512 4.096s-34.816 27.648-41.984 48.128c-7.168 21.504-6.144 44.032 4.096 64.512s27.648 34.816 48.128 41.984l370.688 124.928c73.728 24.576 112.64 104.448 88.064 178.176s- [...]
+<glyph unicode="&#xe9f9;" glyph-name="slim" data-tags="slim" d="M224.256 599.552l-45.056 55.296c-10.24 12.288-27.648 13.312-39.936 4.096-12.288-10.24-13.312-27.648-4.096-39.936l18.432-21.504h-114.688c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h110.592l-22.528-26.624c-10.24-12.288-8.192-29.696 3.072-39.936 5.12-4.096 11.264-6.144 18.432-6.144 8.192 0 16.384 3.072 21.504 10.24l53.248 63.488c15.36 16.384 15.36 41.984 1.024 58.368zM985.088 592.384h-110.592l22.528 26.624c [...]
+<glyph unicode="&#xe9fa;" glyph-name="weight" data-tags="weight" d="M833.536 884.224h-643.072c-87.040 0-158.72-70.656-158.72-158.72v-555.008c0-87.040 70.656-158.72 158.72-158.72h643.072c87.040 0 158.72 70.656 158.72 158.72v555.008c0 87.040-71.68 158.72-158.72 158.72zM935.936 170.496c0-56.32-46.080-102.4-102.4-102.4h-643.072c-56.32 0-102.4 46.080-102.4 102.4v555.008c0 56.32 46.080 102.4 102.4 102.4h643.072c56.32 0 102.4-46.080 102.4-102.4v-555.008zM512 732.672c-113.664 0-207.872-88.064-21 [...]
+<glyph unicode="&#xe9fb;" glyph-name="basketball" data-tags="basketball" d="M922.624 740.864c-63.488 90.112-152.576 154.624-258.048 188.416-69.632 22.528-141.312 28.672-214.016 19.456-83.968-11.264-163.84-41.984-231.424-90.112-69.632-49.152-124.928-114.688-160.768-189.44-32.768-68.608-50.176-138.24-51.2-208.896-2.048-110.592 30.72-216.064 94.208-305.152 65.536-91.136 154.624-156.672 258.048-188.416 50.176-15.36 101.376-23.552 152.576-23.552 20.48 0 40.96 1.024 61.44 4.096 83.968 11.264 1 [...]
+<glyph unicode="&#xe9fc;" glyph-name="first-aid" data-tags="first-aid" d="M413.696 464.384h69.632v-69.632c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v69.632h69.632c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-69.632v69.632c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-69.632h-69.632c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672zM956.416 724.48h-263.168v65.536c0 53.248-43.008 96.256-96.256 96.256h-172.032c-53. [...]
+<glyph unicode="&#xe9fd;" glyph-name="ambulance" data-tags="ambulance" d="M928.768 774.656h-535.552c-27.648 0-50.176-22.528-50.176-50.176v-58.368h-65.536v19.456c0 11.264-9.216 20.48-20.48 20.48h-30.72c-11.264 0-20.48-9.216-20.48-20.48v-19.456h-41.984c-19.456 0-37.888-12.288-45.056-29.696l-16.384-37.888-56.32-133.12v-175.104c0-27.648 22.528-50.176 50.176-50.176h13.312c0-1.024 0-3.072 0-4.096 0-63.488 51.2-114.688 114.688-114.688s114.688 51.2 114.688 114.688c0 1.024 0 3.072 0 4.096h322.56c [...]
+<glyph unicode="&#xe9fe;" glyph-name="hospital" data-tags="hospital" d="M865.28 596.48l-326.656 326.656c-7.168 7.168-17.408 12.288-27.648 12.288s-20.48-4.096-27.648-11.264l-326.656-327.68c-9.216-9.216-11.264-19.456-11.264-26.624v-568.32c0-21.504 17.408-38.912 39.936-38.912h198.656c27.648 0 50.176 21.504 50.176 49.152v187.392c0 18.432 15.36 33.792 33.792 33.792h91.136c18.432 0 33.792-15.36 33.792-33.792v-189.44c0-27.648 21.504-49.152 49.152-49.152h196.608c21.504 0 39.936 17.408 39.936 38. [...]
+<glyph unicode="&#xe9ff;" glyph-name="syringe" data-tags="syringe" d="M968.704 735.744l-194.56 194.56c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l76.8-76.8-91.136-91.136-62.464 62.464c-19.456 19.456-50.176 19.456-68.608 0l-366.592-367.616c-9.216-9.216-14.336-21.504-14.336-34.816s5.12-25.6 14.336-34.816l13.312-12.288-65.536-65.536c-7.168-7.168-11.264-16.384-11.264-27.648s4.096-19.456 11.264-27.648l26.624-26.624-116.736-115.712-32.768-114.688 190.464 190.464 26.624-26.624 [...]
+<glyph unicode="&#xea00;" glyph-name="capsule" data-tags="capsule" d="M915.456 851.456c-51.2 50.176-117.76 77.824-189.44 77.824s-138.24-27.648-189.44-77.824l-428.032-428.032c-50.176-51.2-77.824-117.76-77.824-189.44s27.648-138.24 77.824-189.44c50.176-50.176 117.76-77.824 189.44-77.824s138.24 27.648 189.44 77.824l428.032 428.032c50.176 50.176 77.824 117.76 77.824 189.44s-27.648 138.24-77.824 189.44zM447.488 84.48c-81.92-81.92-216.064-81.92-297.984 0s-81.92 216.064 0 297.984l194.56 194.56 2 [...]
+<glyph unicode="&#xea01;" glyph-name="stethoscope" data-tags="stethoscope" d="M909.312 916.992h-98.304c-6.144 11.264-17.408 19.456-31.744 19.456-19.456 0-35.84-16.384-35.84-35.84v-44.032c0-19.456 16.384-35.84 35.84-35.84s35.84 16.384 35.84 35.84v4.096h87.040v-287.744c0-105.472-86.016-191.488-191.488-191.488h-18.432c-105.472 0-191.488 86.016-191.488 191.488v287.744h88.064v-4.096c0-19.456 16.384-35.84 35.84-35.84s35.84 16.384 35.84 35.84v44.032c0 19.456-16.384 35.84-35.84 35.84-13.312 0-25 [...]
+<glyph unicode="&#xea02;" glyph-name="wheelbarrow" data-tags="wheelbarrow" d="M920.576 266.752c-19.456 3.072-38.912 0-54.272-8.192l-57.344 55.296c50.176 31.744 90.112 80.896 110.592 140.288l41.984 121.856c4.096 11.264 2.048 24.576-5.12 34.816s-18.432 16.384-31.744 16.384h-624.64l-53.248 163.84c-1.024 4.096-5.12 7.168-10.24 7.168h-175.104c-15.36 0-28.672-11.264-29.696-26.624 1.024-16.384 13.312-29.696 29.696-29.696h135.168c4.096 0 8.192-3.072 10.24-7.168l45.056-140.288v-448.512c0-15.36 8. [...]
+<glyph unicode="&#xea03;" glyph-name="shovel" data-tags="shovel" d="M969.728 718.336l-186.368 186.368c-10.24 10.24-27.648 12.288-38.912 2.048-13.312-11.264-13.312-29.696-2.048-41.984l33.792-33.792c0 0 0 0 0 0-13.312-11.264-14.336-29.696-2.048-41.984l20.48-20.48-335.872-333.824-94.208 93.184c-8.192 8.192-20.48 8.192-28.672 0l-237.568-236.544c-70.656-70.656-70.656-186.368 0-257.024 33.792-33.792 79.872-53.248 128-53.248s94.208 18.432 128 53.248l236.544 236.544c8.192 8.192 8.192 20.48 0 28. [...]
+<glyph unicode="&#xea04;" glyph-name="construction-hammer" data-tags="construction-hammer" d="M968.704 497.152l-401.408 401.408c-11.264 11.264-28.672 14.336-41.984 8.192l-233.472-94.208c-11.264-5.12-20.48-15.36-22.528-28.672-2.048-12.288 2.048-25.6 10.24-34.816l195.584-195.584-420.864-420.864c-7.168-7.168-11.264-17.408-11.264-27.648s4.096-19.456 11.264-26.624l81.92-81.92c7.168-7.168 17.408-11.264 27.648-11.264s19.456 4.096 27.648 11.264l420.864 420.864 139.264-139.264c7.168-7.168 17.408- [...]
+<glyph unicode="&#xea05;" glyph-name="brick" data-tags="brick" d="M948.224 475.648h-102.4v113.664c0 26.624-21.504 49.152-49.152 49.152h-568.32c-26.624 0-49.152-21.504-49.152-49.152v-113.664h-103.424c-26.624 0-49.152-21.504-49.152-49.152v-120.832c0-26.624 21.504-49.152 49.152-49.152h872.448c26.624 0 49.152 21.504 49.152 49.152v121.856c-1.024 26.624-22.528 48.128-49.152 48.128zM541.696 582.144h247.808v-105.472h-247.808v105.472zM237.568 582.144h247.808v-105.472h-248.832v105.472zM331.776 313 [...]
+<glyph unicode="&#xea06;" glyph-name="helmet" data-tags="helmet" d="M916.48 356.864c0 1.024 0 1.024 0 2.048 0 222.208-181.248 403.456-404.48 403.456s-404.48-181.248-404.48-403.456c0-1.024 0-1.024 0-2.048-48.128-13.312-82.944-57.344-82.944-109.568 0-62.464 51.2-114.688 114.688-114.688h745.472c62.464 0 114.688 51.2 114.688 114.688 0 52.224-35.84 96.256-82.944 109.568zM372.736 677.376v-70.656c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v90.112c17.408 4.096 35.84 7.168 55. [...]
+<glyph unicode="&#xea07;" glyph-name="trowel" data-tags="trowel" d="M724.992 285.184l-5.12-5.12-108.544 108.544 193.536 193.536c9.216 9.216 13.312 22.528 10.24 34.816s-11.264 23.552-23.552 27.648l-707.584 280.576c-16.384 7.168-35.84 1.024-46.080-14.336-7.168-10.24-8.192-24.576-3.072-36.864l279.552-705.536c5.12-12.288 15.36-20.48 27.648-23.552 3.072-1.024 5.12-1.024 8.192-1.024 10.24 0 19.456 4.096 27.648 11.264l193.536 193.536 108.544-108.544-5.12-5.12c-8.192-8.192-8.192-20.48 0-28.672l2 [...]
+<glyph unicode="&#xea08;" glyph-name="construction" data-tags="construction" d="M965.632 754.176l-579.584 124.928c-6.144 14.336-20.48 24.576-37.888 24.576h-159.744c-23.552 0-40.96-17.408-40.96-40.96v-235.52c0-23.552 17.408-40.96 40.96-40.96h51.2v-316.416h-173.056c-23.552 0-40.96-17.408-40.96-40.96v-192.512c0-23.552 17.408-40.96 40.96-40.96h400.384c22.528 0 40.96 18.432 40.96 40.96v190.464c0 23.552-17.408 40.96-40.96 40.96h-171.008v316.416h52.224c14.336 0 27.648 8.192 34.816 21.504h467.96 [...]
+<glyph unicode="&#xea09;" glyph-name="apartment" data-tags="apartment" d="M769.024 717.312h22.528c5.12 0 7.168 2.048 7.168 7.168v22.528c0 4.096-2.048 7.168-7.168 7.168h-22.528c-5.12 0-7.168-2.048-7.168-7.168v-22.528c-1.024-3.072 3.072-7.168 7.168-7.168zM769.024 339.456h22.528c5.12 0 7.168 2.048 7.168 7.168v22.528c0 4.096-2.048 7.168-7.168 7.168h-22.528c-5.12 0-7.168-2.048-7.168-7.168v-22.528c-1.024-4.096 3.072-7.168 7.168-7.168zM769.024 151.040h22.528c5.12 0 7.168 2.048 7.168 7.168v23.55 [...]
+<glyph unicode="&#xea0a;" glyph-name="juice" data-tags="juice" d="M833.536 927.232h-206.848c-21.504 0-40.96-14.336-47.104-35.84l-48.128-171.008h-320.512c-14.336 0-26.624-6.144-35.84-16.384s-13.312-24.576-12.288-37.888l73.728-654.336c3.072-24.576 23.552-43.008 48.128-43.008h391.168c24.576 0 45.056 18.432 48.128 43.008l73.728 654.336c2.048 13.312-3.072 27.648-12.288 37.888s-22.528 16.384-35.84 16.384h-159.744l41.984 150.528h200.704c0 0 0 0 0 0 15.36 0 27.648 12.288 28.672 27.648 0 15.36-12 [...]
+<glyph unicode="&#xea0b;" glyph-name="spray" data-tags="spray" d="M612.352 439.808c-13.312 116.736-106.496 206.848-221.184 220.16v48.128h29.696c6.144 0 10.24 4.096 10.24 10.24v86.016c0 6.144-4.096 10.24-10.24 10.24h-114.688c-6.144 0-10.24-4.096-10.24-10.24v-86.016c0-6.144 4.096-10.24 10.24-10.24h29.696v-48.128c-114.688-13.312-207.872-103.424-221.184-219.136-1.024-9.216-2.048-19.456-2.048-29.696 0-3.072 0-7.168 0-10.24 0-2.048 0-4.096 0-6.144v-375.808c0-32.768 26.624-59.392 59.392-59.392h [...]
+<glyph unicode="&#xea0c;" glyph-name="candy-cane" data-tags="candy-cane" d="M905.216 759.296c-39.936 78.848-106.496 138.24-190.464 166.912-83.968 27.648-173.056 21.504-251.904-17.408s-138.24-106.496-165.888-190.464l-205.824-609.28c-20.48-62.464 12.288-129.024 74.752-150.528v0c12.288-4.096 25.6-6.144 37.888-6.144 49.152 0 96.256 31.744 112.64 80.896l204.8 606.208c16.384 48.128 65.536 75.776 111.616 63.488 25.6-7.168 48.128-24.576 59.392-48.128 11.264-22.528 12.288-47.104 5.12-70.656l-77.8 [...]
+<glyph unicode="&#xea0d;" glyph-name="candy" data-tags="candy" d="M954.368 756.224l-134.144 134.144c-12.288 12.288-29.696 18.432-48.128 17.408-17.408-2.048-33.792-11.264-43.008-26.624l-83.968-132.096c-76.8 23.552-163.84 5.12-224.256-55.296l-160.768-160.768c-60.416-60.416-78.848-145.408-56.32-222.208l-124.928-79.872c-15.36-9.216-24.576-25.6-26.624-43.008s4.096-34.816 16.384-48.128l134.144-134.144c11.264-11.264 25.6-17.408 41.984-17.408 2.048 0 4.096 0 6.144 0 17.408 2.048 33.792 11.264 43 [...]
+<glyph unicode="&#xea0e;" glyph-name="fireworks" data-tags="fireworks" d="M806.912 336.384c0 10.24-4.096 19.456-11.264 27.648l-413.696 413.696 22.528 22.528c10.24 10.24 13.312 24.576 9.216 38.912-4.096 13.312-16.384 23.552-29.696 25.6l-290.816 50.176c-12.288 2.048-24.576-2.048-33.792-10.24-8.192-9.216-12.288-21.504-10.24-33.792l49.152-294.912c2.048-14.336 12.288-25.6 26.624-30.72 4.096-1.024 8.192-2.048 11.264-2.048 10.24 0 20.48 4.096 27.648 11.264l21.504 21.504 411.648-411.648c7.168-7. [...]
+<glyph unicode="&#xea0f;" glyph-name="flags" data-tags="flags" d="M1020.928 574.976c-4.096 15.36-19.456 23.552-34.816 20.48-101.376-26.624-276.48-41.984-467.968-41.984-198.656 0-381.952 17.408-479.232 45.056-15.36 4.096-30.72-4.096-34.816-19.456-3.072-12.288 2.048-24.576 12.288-31.744l77.824-198.656c5.12-13.312 17.408-22.528 30.72-24.576 2.048 0 4.096 0 5.12 0 12.288 0 23.552 5.12 31.744 15.36l129.024 164.864c26.624-2.048 55.296-4.096 83.968-5.12l102.4-182.272c7.168-12.288 20.48-19.456 3 [...]
+<glyph unicode="&#xea10;" glyph-name="baloon" data-tags="baloon" d="M873.472 680.448c0 141.312-96.256 256-214.016 256-76.8 0-146.432-48.128-184.32-125.952-29.696 16.384-62.464 25.6-96.256 25.6-125.952 0-229.376-123.904-229.376-275.456 0-132.096 77.824-276.48 187.392-307.2l-16.384-62.464h20.48c-3.072-11.264-5.12-21.504-5.12-26.624 1.024-24.576 7.168-48.128 13.312-69.632 2.048-8.192 5.12-16.384 7.168-25.6 7.168-29.696 5.12-52.224-4.096-66.56-8.192-13.312-5.12-30.72 8.192-38.912 5.12-3.072  [...]
+<glyph unicode="&#xea11;" glyph-name="cloud" data-tags="cloud" d="M709.632 78.336h-472.064c-124.928 2.048-226.304 104.448-226.304 229.376 0 120.832 93.184 219.136 210.944 229.376 5.12 155.648 133.12 280.576 289.792 280.576 34.816 0 67.584-5.12 94.208-16.384 63.488-21.504 116.736-65.536 151.552-122.88 66.56-10.24 130.048-44.032 173.056-93.184 51.2-56.32 79.872-129.024 79.872-203.776 1.024-166.912-134.144-303.104-301.056-303.104zM241.664 134.656h467.968c136.192 0 245.76 110.592 245.76 245. [...]
+<glyph unicode="&#xea12;" glyph-name="night" data-tags="night" d="M415.744-16.896c-46.080 0-93.184 7.168-138.24 21.504-41.984 13.312-81.92 31.744-117.76 55.296-15.36 10.24-21.504 27.648-17.408 45.056 5.12 17.408 19.456 28.672 37.888 29.696 175.104 6.144 326.656 121.856 378.88 289.792 46.080 150.528 4.096 311.296-109.568 419.84-13.312 12.288-16.384 30.72-8.192 47.104s24.576 25.6 43.008 22.528c27.648-4.096 55.296-11.264 82.944-20.48 233.472-79.872 365.568-327.68 300.032-566.272-33.792-122. [...]
+<glyph unicode="&#xea13;" glyph-name="cloudy-sun" data-tags="cloudy-sun" d="M815.104 577.024c0 100.352-80.896 181.248-181.248 181.248-56.32 0-108.544-26.624-143.36-69.632-17.408 4.096-35.84 6.144-55.296 6.144-130.048 0-236.544-102.4-242.688-230.4-97.28-10.24-173.056-92.16-173.056-192.512 0-105.472 84.992-191.488 190.464-193.536h387.072c140.288 1.024 253.952 113.664 253.952 253.952 0 58.368-20.48 113.664-57.344 158.72 14.336 26.624 21.504 56.32 21.504 86.016zM758.784 577.024c0-15.36-3.072 [...]
+<glyph unicode="&#xea14;" glyph-name="rain" data-tags="rain" d="M863.232 659.968c-12.288 10.24-26.624 19.456-40.96 26.624-26.624 14.336-54.272 23.552-83.968 28.672-31.744 52.224-81.92 91.136-140.288 111.616h-1.024c-5.12 2.048-54.272 15.36-82.944 15.36-143.36 0-261.12-113.664-267.264-256-107.52-10.24-192.512-100.352-192.512-210.944 0-116.736 95.232-211.968 211.968-211.968 15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672c-86.016 0-155.648 69.632-155.648 155.648s69.632 155.6 [...]
+<glyph unicode="&#xea15;" glyph-name="thunder" data-tags="thunder" d="M863.232 659.968c-12.288 10.24-26.624 19.456-40.96 26.624-26.624 14.336-54.272 23.552-83.968 28.672-31.744 52.224-81.92 91.136-140.288 111.616h-1.024c-5.12 2.048-54.272 15.36-82.944 15.36-143.36 0-261.12-113.664-267.264-256-107.52-10.24-192.512-100.352-192.512-210.944 0-116.736 95.232-211.968 211.968-211.968 15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672c-86.016 0-155.648 69.632-155.648 155.648s69.632 [...]
+<glyph unicode="&#xea16;" glyph-name="drop" data-tags="drop" d="M513.024-35.328c-166.912 0-306.176 135.168-310.272 301.056v29.696c0 77.824 18.432 161.792 55.296 248.832 51.2 123.904 137.216 265.216 232.448 376.832 6.144 7.168 14.336 10.24 22.528 10.24 9.216 0 17.408-4.096 22.528-10.24v0c48.128-55.296 164.864-202.752 232.448-380.928 35.84-89.088 53.248-169.984 53.248-245.76v-28.672c-2.048-166.912-140.288-301.056-308.224-301.056zM513.024 860.672c-82.944-103.424-157.696-228.352-202.752-337. [...]
+<glyph unicode="&#xea17;" glyph-name="sun" data-tags="sun" d="M512 666.112c-120.832 0-218.112-98.304-218.112-218.112 0-120.832 98.304-218.112 218.112-218.112 120.832 0 218.112 98.304 218.112 218.112 0 120.832-97.28 218.112-218.112 218.112zM512 286.208c-89.088 0-161.792 72.704-161.792 161.792s72.704 161.792 161.792 161.792 161.792-72.704 161.792-161.792-72.704-161.792-161.792-161.792zM512 805.376c15.36 0 28.672 12.288 28.672 28.672v74.752c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312 [...]
+<glyph unicode="&#xea18;" glyph-name="thunder-alt" data-tags="thunder-alt" d="M588.8 563.712h-101.376c-4.096 0-8.192-3.072-9.216-7.168l-52.224-143.36c-1.024-3.072 1.024-7.168 5.12-7.168h35.84l-33.792-163.84c-2.048-11.264 12.288-17.408 18.432-8.192l131.072 195.584c2.048 3.072 0 8.192-4.096 8.192h-30.72l50.176 111.616c3.072 6.144-2.048 14.336-9.216 14.336zM1001.472 382.464c0 73.728-27.648 145.408-77.824 200.704-2.048 2.048-3.072 3.072-5.12 4.096-44.032 46.080-101.376 76.8-163.84 86.016-33. [...]
+<glyph unicode="&#xea19;" glyph-name="text-align-center" data-tags="text-allign-center" d="M190.464 802.304h643.072c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672h-643.072c-16.384 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM120.832 546.304h782.336c16.384 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672h-782.336c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM237.568 348.672c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28. [...]
+<glyph unicode="&#xea1a;" glyph-name="spell-check" data-tags="spell-check" d="M371.712 480.768c-5.12 10.24-12.288 14.336-21.504 14.336h-93.184c-10.24 0-19.456-5.12-21.504-14.336l-178.176-412.672c-7.168-17.408 5.12-33.792 21.504-33.792h70.656c10.24 0 19.456 7.168 21.504 14.336l26.624 65.536h201.728l24.576-65.536c2.048-10.24 12.288-14.336 21.504-14.336h75.776c19.456 2.048 31.744 19.456 24.576 33.792l-174.080 412.672zM237.568 210.432l63.488 165.888 63.488-165.888h-126.976zM960.512 853.504c- [...]
+<glyph unicode="&#xea1b;" glyph-name="text-format" data-tags="text-format" d="M130.048 239.104h91.136c12.288 0 25.6 9.216 28.672 18.432l33.792 83.968h254.976l30.72-83.968c3.072-12.288 16.384-18.432 28.672-18.432h96.256c25.6 3.072 40.96 25.6 30.72 44.032l-223.232 523.264c-5.12 13.312-15.36 18.432-28.672 18.432h-116.736c-12.288 0-25.6-5.12-28.672-18.432l-225.28-525.312c-9.216-20.48 5.12-41.984 27.648-41.984zM411.648 673.28l80.896-210.944h-161.792l80.896 210.944zM803.84 92.672h-696.32c-15.3 [...]
+<glyph unicode="&#xea1c;" glyph-name="text-format-remove" data-tags="text-format-remove" d="M89.088 256.512h91.136c12.288 0 25.6 9.216 28.672 18.432l33.792 83.968h254.976l30.72-83.968c3.072-12.288 16.384-18.432 28.672-18.432h96.256c25.6 3.072 40.96 25.6 30.72 44.032l-223.232 523.264c-5.12 13.312-15.36 18.432-28.672 18.432h-116.736c-12.288 0-25.6-5.12-28.672-18.432l-225.28-524.288c-9.216-21.504 5.12-43.008 27.648-43.008zM370.688 691.712l80.896-210.944h-161.792l80.896 210.944zM977.92 305.6 [...]
+<glyph unicode="&#xea1d;" glyph-name="italic" data-tags="italic" d="M756.736 931.328h-359.424c-16.384 0-28.672-12.288-28.672-27.648s12.288-28.672 28.672-28.672h149.504l-125.952-854.016h-153.6c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h360.448c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-150.528l125.952 854.016h153.6c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648z" />
+<glyph unicode="&#xea1e;" glyph-name="line-dotted" data-tags="line-dotted" d="M143.36 481.792h-48.128c-18.432 0-33.792-14.336-33.792-33.792s14.336-33.792 33.792-33.792h48.128c18.432 0 33.792 14.336 33.792 33.792s-16.384 33.792-33.792 33.792zM405.504 481.792h-49.152c-18.432 0-33.792-14.336-33.792-33.792s14.336-33.792 33.792-33.792h49.152c18.432 0 33.792 14.336 33.792 33.792s-16.384 33.792-33.792 33.792zM667.648 481.792h-49.152c-18.432 0-33.792-14.336-33.792-33.792s14.336-33.792 33.792-33. [...]
+<glyph unicode="&#xea1f;" glyph-name="sort-alpha-asc" data-tags="sort-alpha-asc" d="M945.152 672.256l-91.136 218.112c-3.072 5.12-6.144 8.192-11.264 8.192h-49.152c-5.12 0-10.24-3.072-11.264-8.192l-94.208-218.112c-4.096-9.216 3.072-18.432 11.264-18.432h37.888c5.12 0 10.24 4.096 11.264 8.192l14.336 34.816h105.472l13.312-34.816c1.024-5.12 6.144-8.192 11.264-8.192h38.912c11.264 2.048 17.408 11.264 13.312 18.432zM782.336 747.008l33.792 88.064 33.792-88.064h-67.584zM911.36 48.64h-117.76l125.952 [...]
+<glyph unicode="&#xea20;" glyph-name="text-align-left" data-tags="text-allign-left" d="M694.272 802.304h-643.072c-15.36 0-28.672 12.288-28.672 28.672s13.312 27.648 28.672 27.648h643.072c15.36 0 28.672-12.288 28.672-28.672s-13.312-27.648-28.672-27.648zM51.2 603.648h782.336c15.36 0 28.672-12.288 28.672-28.672s-12.288-28.672-28.672-28.672h-782.336c-15.36 0-28.672 12.288-28.672 28.672s13.312 28.672 28.672 28.672zM51.2 348.672h548.864c15.36 0 28.672-12.288 28.672-28.672s-12.288-28.672-28.672- [...]
+<glyph unicode="&#xea21;" glyph-name="text-align-right" data-tags="text-allign-right" d="M329.728 802.304h643.072c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-643.072c-15.36 0-28.672-12.288-28.672-28.672s13.312-27.648 28.672-27.648zM972.8 603.648h-782.336c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h782.336c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM972.8 348.672h-548.864c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28 [...]
+<glyph unicode="&#xea22;" glyph-name="text-align-justify" data-tags="text-allign-justify" d="M51.2 803.328h921.6c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-921.6c-15.36 0-28.672-12.288-28.672-28.672s13.312-27.648 28.672-27.648zM972.8 603.648h-921.6c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h921.6c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM972.8 348.672h-921.6c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.6 [...]
+<glyph unicode="&#xea23;" glyph-name="bold" data-tags="bold" d="M676.864 487.936c74.752 26.624 118.784 96.256 118.784 187.392 0 69.632-21.504 130.048-74.752 172.032-48.128 49.152-112.64 70.656-189.44 70.656h-331.776c-22.528 0-39.936-17.408-39.936-39.936v-861.184c0-22.528 17.408-39.936 39.936-39.936h378.88c81.92 0 151.552 26.624 204.8 81.92 53.248 53.248 81.92 118.784 81.92 199.68-1.024 116.736-70.656 207.872-188.416 229.376zM364.544 736.768h134.144c60.416 0 103.424-43.008 103.424-96.256s [...]
+<glyph unicode="&#xea24;" glyph-name="page-break" data-tags="page-break" d="M752.64 907.776h-481.28c-21.504 0-38.912-17.408-38.912-38.912v-226.304c0-21.504 17.408-38.912 38.912-38.912h482.304c21.504 0 38.912 17.408 38.912 38.912v227.328c-1.024 20.48-18.432 37.888-39.936 37.888zM735.232 660.992h-446.464v190.464h446.464v-190.464zM752.64 291.328h-481.28c-21.504 0-38.912-17.408-38.912-38.912v-226.304c0-21.504 17.408-38.912 38.912-38.912h482.304c21.504 0 38.912 17.408 38.912 38.912v226.304c-1 [...]
+<glyph unicode="&#xea25;" glyph-name="strikethrough" data-tags="strikethrough" d="M934.912 659.968h-394.24v230.4h244.736c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-545.792c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h244.736v-230.4h-395.264c-15.36 0-27.648-12.288-27.648-27.648s12.288-28.672 28.672-28.672h394.24v-626.688c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v626.688h394.24c15.36 0 28.672 12.288 28.672 28.672s-14.336 27.6 [...]
+<glyph unicode="&#xea26;" glyph-name="text-size" data-tags="text-size" d="M991.232 238.080l-185.344 440.32c-5.12 11.264-13.312 15.36-22.528 15.36h-99.328c-11.264 0-20.48-5.12-22.528-15.36l-190.464-440.32c-7.168-18.432 5.12-35.84 22.528-35.84h75.776c11.264 0 20.48 7.168 22.528 15.36l28.672 69.632h214.016l26.624-69.632c2.048-11.264 13.312-15.36 22.528-15.36h80.896c21.504 2.048 33.792 19.456 26.624 35.84zM662.528 388.608l67.584 177.152 67.584-177.152h-135.168zM323.584 222.72l-103.424 245.76 [...]
+<glyph unicode="&#xea27;" glyph-name="line-dashed" data-tags="line-dashed" d="M672.768 475.648h-99.328c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h99.328c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM450.56 475.648h-99.328c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h99.328c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM228.352 475.648h-99.328c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h9 [...]
+<glyph unicode="&#xea28;" glyph-name="line-double" data-tags="line-double" d="M904.192 572.928h-784.384c-16.384 0-28.672 13.312-28.672 28.672s12.288 28.672 28.672 28.672h783.36c15.36 0 28.672-12.288 28.672-28.672s-12.288-28.672-27.648-28.672zM904.192 265.728h-784.384c-16.384 0-28.672 13.312-28.672 28.672s12.288 28.672 28.672 28.672h783.36c15.36 0 28.672-12.288 28.672-28.672s-12.288-28.672-27.648-28.672z" />
+<glyph unicode="&#xea29;" glyph-name="direction-ltr" data-tags="direction-ltr" d="M407.552 556.544c10.24 0 18.432 0 24.576 0v-226.304c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v538.624h133.12v-539.648c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v539.648h210.944c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-481.28c0 0 0 0 0 0s-1.024 0-1.024 0c-101.376 0-184.32-82.944-184.32-184.32-1.024-101.376 80.896-184.32 183.296-184.32zM407.5 [...]
+<glyph unicode="&#xea2a;" glyph-name="direction-rtl" data-tags="direction-rtl" d="M407.552 556.544c10.24 0 18.432 0 24.576 0v-226.304c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v538.624h133.12v-539.648c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v539.648h210.944c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-481.28c0 0 0 0 0 0s-1.024 0-1.024 0c-101.376 0-184.32-82.944-184.32-184.32-1.024-101.376 80.896-184.32 183.296-184.32zM407.5 [...]
+<glyph unicode="&#xea2b;" glyph-name="list" data-tags="list" d="M343.040 702.976h623.616c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-623.616c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM966.656 475.648h-623.616c-15.36 0-28.672-12.288-28.672-28.672 0-15.36 12.288-27.648 28.672-27.648h623.616c15.36 0 28.672 12.288 28.672 27.648-1.024 16.384-13.312 28.672-28.672 28.672zM966.656 193.024h-623.616c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28. [...]
+<glyph unicode="&#xea2c;" glyph-name="sort-amount-asc" data-tags="sort-amount-asc" d="M340.992 261.632l-106.496-107.52v666.624c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-666.624l-106.496 107.52c-11.264 11.264-28.672 11.264-39.936 0-10.24-11.264-10.24-28.672 1.024-39.936l175.104-175.104 175.104 175.104c11.264 11.264 11.264 28.672 0 39.936-12.288 10.24-29.696 10.24-40.96 0zM481.28 745.984h172.032c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-172.0 [...]
+<glyph unicode="&#xea2d;" glyph-name="indent-decrease" data-tags="indent-decrease" d="M108.544 871.936h806.912c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-806.912c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM915.456 24.064h-806.912c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h806.912c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM302.080 622.080l-178.176-139.264c-10.24-8.192-15.36-19.456-15.36-32.768s6.144- [...]
+<glyph unicode="&#xea2e;" glyph-name="indent-increase" data-tags="indent-increase" d="M915.456 871.936h-806.912c-15.36 0-28.672 12.288-28.672 28.672s12.288 28.672 28.672 28.672h806.912c15.36 0 28.672-12.288 28.672-28.672s-13.312-28.672-28.672-28.672zM108.544 24.064h806.912c15.36 0 28.672-12.288 28.672-28.672s-12.288-28.672-28.672-28.672h-806.912c-15.36 0-28.672 12.288-28.672 28.672s13.312 28.672 28.672 28.672zM678.912 626.176c-14.336-7.168-22.528-21.504-22.528-36.864v-278.528c0-15.36 9.2 [...]
+<glyph unicode="&#xea2f;" glyph-name="line-spacing" data-tags="line-spacing" d="M347.136 653.824c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 20.48 8.192c11.264 11.264 11.264 28.672 0 39.936l-177.152 175.104-175.104-175.104c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 39.936 0l107.52 107.52v-625.664l-107.52 106.496c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l175.104-175.104 176.128 175.104c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-107.52-1 [...]
+<glyph unicode="&#xea30;" glyph-name="pilcrow" data-tags="pilcrow" d="M783.36 928.256h-361.472c-3.072 0-6.144-1.024-9.216-2.048-112.64-13.312-199.68-109.568-199.68-225.28 0-109.568 77.824-200.704 181.248-222.208v-483.328c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v876.544h132.096v-876.544c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v876.544h143.36c15.36 0 28.672 12.288 28.672 28.672s-14.336 27.648-29.696 27.648zM268.288 700.928c0 77.824 53.248 144.3 [...]
+<glyph unicode="&#xea31;" glyph-name="underline" data-tags="underline" d="M512 134.656c197.632 0 359.424 160.768 359.424 359.424v409.6c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-409.6c0-166.912-136.192-303.104-303.104-303.104s-303.104 136.192-303.104 303.104v409.6c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-409.6c2.048-198.656 163.84-359.424 361.472-359.424zM927.744 22.016h-831.488c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.6 [...]
+<glyph unicode="&#xea32;" glyph-name="dollar" data-tags="dollar" d="M613.376 475.648h-202.752c-77.824 0-141.312 63.488-141.312 141.312 0 37.888 14.336 73.728 40.96 100.352s62.464 40.96 100.352 40.96h315.392c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-168.96v67.584c0 15.36-12.288 28.672-27.648 28.672s-28.672-12.288-28.672-28.672v-67.584h-90.112c-53.248 0-102.4-20.48-140.288-58.368-36.864-37.888-58.368-87.040-58.368-140.288 0-109.568 89.088-197.632 197.632-197.632h203 [...]
+<glyph unicode="&#xea33;" glyph-name="rupee" data-tags="rupee" d="M734.208 620.032h-129.024c-4.096 46.080-26.624 90.112-62.464 126.976h192.512c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-445.44c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h157.696c57.344-31.744 94.208-77.824 100.352-126.976h-258.048c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h251.904c-21.504-60.416-88.064-110.592-176.128-131.072-10.24-2.048-18.432-10.24-21.504 [...]
+<glyph unicode="&#xea34;" glyph-name="pound" data-tags="pound" d="M835.584 98.816h-484.352c57.344 45.056 96.256 113.664 101.376 190.464 0 2.048 1.024 4.096 1.024 6.144v131.072h309.248c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-310.272v119.808c0 114.688 93.184 207.872 207.872 207.872 45.056 0 88.064-14.336 123.904-40.96 12.288-9.216 29.696-7.168 38.912 6.144 9.216 12.288 7.168 29.696-6.144 38.912-44.032 33.792-99.328 52.224-156.672 52.224-144.384 0-262.144-117.76-26 [...]
+<glyph unicode="&#xea35;" glyph-name="yen" data-tags="yen" d="M540.672 443.904l250.88 391.168c8.192 13.312 4.096 30.72-8.192 38.912-13.312 8.192-30.72 4.096-38.912-8.192l-232.448-363.52-232.448 362.496c-8.192 13.312-25.6 17.408-38.912 8.192-13.312-8.192-17.408-25.6-8.192-38.912l250.88-391.168c0-1.024 1.024-3.072 1.024-4.096v-33.792h-196.608c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h196.608v-89.088h-196.608c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-2 [...]
+<glyph unicode="&#xea36;" glyph-name="euro" data-tags="euro" d="M811.008 107.008c-7.168 14.336-24.576 19.456-37.888 12.288-34.816-18.432-72.704-26.624-110.592-26.624-131.072 0-242.688 108.544-277.504 256h272.384c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-281.6c-1.024 14.336-2.048 28.672-2.048 44.032s1.024 29.696 2.048 44.032h281.6c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-272.384c34.816 147.456 146.432 256 277.504 256 33.792 0 67.584-7.168 9 [...]
+<glyph unicode="&#xea37;" glyph-name="emoji-happy" data-tags="happy" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368 443.392-198.656 443.392-443.392c0-242.688-199.68-442.368-443.392-442.368zM410.624 606.72c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.298 54.272 54.27 [...]
+<glyph unicode="&#xea38;" glyph-name="emoji-tounge" data-tags="tounge" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368c243.712 0 443.392-198.656 443.392-443.392 0-242.688-199.68-442.368-443.392-442.368zM410.624 606.72c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.298  [...]
+<glyph unicode="&#xea39;" glyph-name="emoji-cool" data-tags="cool" d="M512 946.688c-192.512 0-360.448-109.568-443.392-269.312-1.024-2.048-2.048-4.096-3.072-6.144-33.792-67.584-52.224-143.36-52.224-223.232 0-275.456 224.256-499.712 499.712-499.712s498.688 224.256 498.688 499.712-224.256 498.688-499.712 498.688zM512 890.368c155.648 0 291.84-80.896 370.688-201.728h-741.376c78.848 121.856 215.040 201.728 370.688 201.728zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392 0 65.536 14.336 129 [...]
+<glyph unicode="&#xea3a;" glyph-name="emoji-friendly" data-tags="friendly" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368c243.712 0 443.392-198.656 443.392-443.392 0-242.688-199.68-442.368-443.392-442.368zM410.624 606.72c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24. [...]
+<glyph unicode="&#xea3b;" glyph-name="emoji-neutral" data-tags="neutral" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368c243.712 0 443.392-198.656 443.392-443.392 0-242.688-199.68-442.368-443.392-442.368zM410.624 606.72c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.29 [...]
+<glyph unicode="&#xea3c;" glyph-name="emoji-sad" data-tags="sad" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368c243.712 0 443.392-198.656 443.392-443.392 0-242.688-199.68-442.368-443.392-442.368zM410.624 606.72c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.298 54.272 [...]
+<glyph unicode="&#xea3d;" glyph-name="emoji-smile" data-tags="smile" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368c243.712 0 443.392-198.656 443.392-443.392 0-242.688-199.68-442.368-443.392-442.368zM410.624 606.72c0-29.974-24.298-54.272-54.272-54.272s-54.272 24.298-54.272 54.272c0 29.974 24.298 54 [...]
+<glyph unicode="&#xea3e;" glyph-name="emoji-suspect" data-tags="suspect" d="M512 946.688c-275.456 0-498.688-223.232-498.688-498.688s223.232-499.712 498.688-499.712 499.712 224.256 499.712 499.712-224.256 498.688-499.712 498.688zM512 4.608c-243.712 0-442.368 199.68-442.368 443.392s198.656 442.368 442.368 442.368c243.712 0 443.392-198.656 443.392-443.392 0-242.688-199.68-442.368-443.392-442.368zM712.704 335.36h-401.408c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h400.38 [...]
+<glyph unicode="&#xea3f;" glyph-name="direction-alt" data-tags="direction-alt" d="M866.304 753.152l-103.424 66.56c-6.144 5.12-15.36 8.192-23.552 8.192h-205.824v90.112c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-91.136h-148.48c-23.552 0-41.984-18.432-41.984-41.984v-135.168c0-23.552 18.432-41.984 41.984-41.984h150.528v-66.56h-193.536c-4.096 0-7.168-1.024-10.24-1.024h-5.12l-112.64-72.704c-11.264-8.192-18.432-20.48-18.432-34.816s7.168-27.648 19.456-35.84l103.424-66.56c6 [...]
+<glyph unicode="&#xea40;" glyph-name="enter" data-tags="enter" d="M942.080 950.784h-455.68c-23.552 0-41.984-18.432-41.984-41.984v-209.92c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v195.584h428.032v-891.904h-429.056v195.584c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-209.92c0-23.552 18.432-43.008 41.984-43.008h456.704c23.552 0 43.008 18.432 43.008 43.008v919.552c0 23.552-18.432 43.008-43.008 43.008zM615.424 317.952c-10.24-10.24-12.288-27.648-2.048 [...]
+<glyph unicode="&#xea41;" glyph-name="exit-down" data-tags="exit-down" d="M946.176 451.072h-125.952c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h107.52v-358.4h-831.488v358.4h118.784c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-137.216c-21.504 0-38.912-16.384-38.912-38.912v-384c0-26.624 21.504-49.152 49.152-49.152h846.848c26.624 0 49.152 21.504 49.152 49.152v385.024c0 21.504-16.384 37.888-37.888 37.888zM510.976 239.104l171.008 171.008c11.264 11.264 [...]
+<glyph unicode="&#xea42;" glyph-name="exit" data-tags="exit" d="M948.224 950.784h-455.68c-23.552 0-41.984-18.432-41.984-41.984v-209.92c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v195.584h428.032v-891.904h-429.056v195.584c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-209.92c0-23.552 18.432-43.008 41.984-43.008h455.68c23.552 0 43.008 18.432 43.008 43.008v919.552c0 23.552-19.456 43.008-43.008 43.008zM140.288 421.376h651.264c15.36 0 28.672 12.288 28.67 [...]
+<glyph unicode="&#xea43;" glyph-name="chevron-up" data-tags="chevron-up" d="M999.424 239.104l-454.656 452.608c-9.216 9.216-21.504 13.312-33.792 13.312s-24.576-5.12-33.792-13.312l-452.608-452.608c-11.264-11.264-11.264-28.672 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192l446.464 446.464 448.512-446.464c11.264-11.264 28.672-11.264 39.936 0 12.288 11.264 12.288 28.672 1.024 39.936z" />
+<glyph unicode="&#xea44;" glyph-name="chevron-left" data-tags="chevron-left" d="M720.896 935.424l-452.608-454.656c-9.216-9.216-13.312-21.504-13.312-33.792s5.12-24.576 13.312-33.792l452.608-452.608c11.264-11.264 28.672-11.264 39.936 0 5.12 5.12 8.192 12.288 8.192 19.456s-3.072 14.336-8.192 19.456l-446.464 447.488 446.464 448.512c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0z" />
+<glyph unicode="&#xea45;" glyph-name="chevron-down" data-tags="chevron-down" d="M24.576 656.896l454.656-452.608c9.216-9.216 21.504-13.312 33.792-13.312s24.576 5.12 33.792 13.312l452.608 452.608c11.264 11.264 11.264 28.672 0 39.936-5.12 5.12-12.288 8.192-19.456 8.192s-14.336-3.072-19.456-8.192l-447.488-446.464-448.512 446.464c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936z" />
+<glyph unicode="&#xea46;" glyph-name="chevron-right" data-tags="chevron-right" d="M303.104-39.424l452.608 454.656c9.216 9.216 13.312 21.504 13.312 33.792s-5.12 24.576-13.312 33.792l-452.608 452.608c-11.264 11.264-28.672 11.264-39.936 0-5.12-5.12-8.192-12.288-8.192-19.456s3.072-14.336 8.192-19.456l446.464-446.464-446.464-449.536c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 39.936 0z" />
+<glyph unicode="&#xea47;" glyph-name="arrow-down" data-tags="arrow-down" d="M484.352 911.872v-848.896l-101.376 102.4c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l169.984-169.984 19.456 19.456 149.504 150.528c5.12 5.12 8.192 12.288 8.192 19.456s-3.072 14.336-8.192 19.456c-11.264 11.264-28.672 11.264-39.936 0l-101.376-101.376v848.896c0 15.36-12.288 27.648-28.672 27.648-15.36 0-27.648-12.288-27.648-27.648z" />
+<glyph unicode="&#xea48;" glyph-name="arrows-horizontal" data-tags="arrows-horizontal" d="M220.16 324.096l-84.992 84.992h775.168l-86.016-86.016c-5.12-5.12-8.192-12.288-8.192-19.456 0-8.192 3.072-15.36 10.24-21.504 11.264-10.24 28.672-8.192 38.912 2.048l138.24 139.264c8.192 8.192 8.192 20.48 0 28.672l-139.264 139.264c-9.216 9.216-24.576 12.288-35.84 4.096-15.36-10.24-16.384-30.72-4.096-43.008l86.016-86.016h-775.168l84.992 84.992c11.264 11.264 12.288 28.672 2.048 39.936-11.264 12.288-29.69 [...]
+<glyph unicode="&#xea49;" glyph-name="arrows-vertical" data-tags="arrows-vertical" d="M625.664 145.92l-84.992-84.992v774.144l86.016-86.016c5.12-5.12 12.288-8.192 19.456-8.192 8.192 0 15.36 3.072 21.504 10.24 10.24 11.264 8.192 28.672-2.048 38.912l-139.264 139.264c-8.192 8.192-20.48 8.192-28.672 0l-139.264-139.264c-9.216-9.216-12.288-24.576-4.096-35.84 10.24-15.36 30.72-16.384 43.008-4.096l86.016 86.016v-775.168l-84.992 84.992c-11.264 11.264-28.672 12.288-39.936 2.048-12.288-11.264-12.288 [...]
+<glyph unicode="&#xea4a;" glyph-name="direction" data-tags="direction" d="M790.528 688.64l-102.4 65.536c-8.192 7.168-17.408 8.192-24.576 8.192h-202.752v151.552c0 15.36-12.288 28.672-28.672 28.672s-27.648-13.312-27.648-28.672v-151.552h-148.48c-23.552 0-40.96-17.408-40.96-40.96v-134.144c0-23.552 17.408-40.96 40.96-40.96h148.48v-564.224c0-15.36 12.288-28.672 28.672-28.672s27.648 13.312 27.648 28.672v564.224h202.752c5.12 0 15.36 0 23.552 6.144l103.424 65.536c12.288 7.168 19.456 20.48 19.456  [...]
+<glyph unicode="&#xea4b;" glyph-name="arrow-left" data-tags="arrow-left" d="M980.992 474.624h-848.896l101.376 101.376c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-168.96-168.96 19.456-19.456c0 0 0 0 0 0l149.504-149.504c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-101.376 101.376h848.896c15.36 0 28.672 12.288 28.672 28.672 0 14.336-12.288 26.624-27.648 26.624z" />
+<glyph unicode="&#xea4c;" glyph-name="arrow-right" data-tags="arrow-right" d="M52.224 418.304h848.896l-102.4-101.376c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 39.936 0l169.984 169.984-19.456 19.456c0 0 0 0 0 0l-150.528 149.504c-5.12 5.12-12.288 8.192-19.456 8.192s-14.336-3.072-19.456-8.192c-11.264-11.264-11.264-28.672 0-39.936l101.376-101.376h-848.896c-15.36 0-27.648-12.288-27.648-28.672 0-15.36 12.288-27.648 27.648-27.648z" />
+<glyph unicode="&#xea4d;" glyph-name="arrow-up" data-tags="arrow-up" d="M544.768-17.92v848.896l101.376-101.376c11.264-11.264 28.672-11.264 39.936 0s11.264 28.672 0 39.936l-169.984 168.96-19.456-19.456c0 0 0 0 0 0l-149.504-149.504c-5.12-5.12-8.192-12.288-8.192-19.456s3.072-14.336 8.192-19.456c11.264-11.264 28.672-11.264 39.936 0l101.376 101.376v-848.896c0-15.36 12.288-28.672 28.672-28.672 14.336 0 27.648 12.288 27.648 27.648z" />
+<glyph unicode="&#xea4e;" glyph-name="arrow-down-circle" data-tags="arrow-down-circle" d="M589.824 267.776l-49.152-49.152v526.336c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-526.336l-49.152 49.152c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l117.76-116.736 116.736 116.736c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-38.912 0zM512 936.448c-269.312 0-488.448-219.136-488.448-488.448s219.136-489.472 489.472-489.472c269.312 0 489.472 219.136 489.4 [...]
+<glyph unicode="&#xea4f;" glyph-name="anchor" data-tags="anchor" d="M847.872 210.432l-82.944 82.944c-8.192 8.192-20.48 8.192-28.672 0l-87.040-87.040c-11.264-11.264-11.264-28.672 0-39.936v0c11.264-11.264 28.672-11.264 39.936 0l29.696 29.696c-10.24-95.232-83.968-169.984-178.176-183.296 0 0 0 0 0 0v569.344h147.456c13.312 0 25.6 9.216 28.672 22.528 3.072 18.432-10.24 33.792-27.648 33.792h-148.48v58.368c55.296 13.312 97.28 63.488 96.256 123.904-2.048 64.512-55.296 118.784-119.808 120.832-70.6 [...]
+<glyph unicode="&#xea50;" glyph-name="arrow-left-circle" data-tags="arrow-left-circle" d="M331.776 370.176l-49.152 49.152h526.336c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-526.336l49.152 49.152c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-116.736-117.76 116.736-116.736c11.264-11.264 28.672-11.264 39.936 0s11.264 28.672 0 38.912zM1001.472 448c0 269.312-220.16 488.448-489.472 488.448s-488.448-219.136-488.448-488.448c0-269.312 219.136-489.472 489.472 [...]
+<glyph unicode="&#xea51;" glyph-name="arrow-right-circle" data-tags="arrow-right-circle" d="M692.224 525.824l49.152-49.152h-526.336c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h526.336l-49.152-49.152c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 39.936 0l116.736 117.76-116.736 116.736c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-38.912zM23.552 448c0-269.312 219.136-489.472 489.472-489.472 269.312 0 489.472 219.136 489.472 489.472-1.024 269.312-221.184  [...]
+<glyph unicode="&#xea52;" glyph-name="arrow-up-circle" data-tags="arrow-up-circle" d="M434.176 628.224l49.152 49.152v-526.336c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v526.336l49.152-49.152c11.264-11.264 28.672-11.264 39.936 0s11.264 28.672 0 39.936l-117.76 116.736-116.736-116.736c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 38.912 0zM512-41.472c269.312 0 489.472 219.136 489.472 489.472 0 269.312-220.16 488.448-489.472 488.448s-488.448-219.136-488.448-488.448 [...]
+<glyph unicode="&#xea53;" glyph-name="angle-double-down" data-tags="angle-double-down" d="M512 67.072l437.248 437.248c11.264 11.264 28.672 11.264 39.936 0s11.264-28.672 0-39.936l-449.536-449.536c-7.168-7.168-17.408-11.264-27.648-11.264s-20.48 4.096-27.648 11.264l-449.536 449.536c-5.12 5.12-8.192 12.288-8.192 19.456s3.072 14.336 8.192 19.456c11.264 11.264 28.672 11.264 39.936 0l437.248-436.224zM512 446.976l437.248 437.248c11.264 11.264 28.672 11.264 39.936 0s11.264-28.672 0-39.936l-449.53 [...]
+<glyph unicode="&#xea54;" glyph-name="angle-double-left" data-tags="angle-double-left" d="M131.072 448l437.248 437.248c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-449.536-449.536c-7.168-7.168-11.264-17.408-11.264-27.648s4.096-20.48 11.264-27.648l449.536-449.536c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-436.224 437.248zM510.976 448l437.248 437.248c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-449.5 [...]
+<glyph unicode="&#xea55;" glyph-name="angle-double-right" data-tags="angle-double-right" d="M892.928 448l-437.248 437.248c-11.264 11.264-11.264 28.672 0 39.936s28.672 11.264 39.936 0l449.536-449.536c7.168-7.168 11.264-17.408 11.264-27.648s-4.096-20.48-11.264-27.648l-449.536-449.536c-5.12-5.12-12.288-8.192-19.456-8.192s-14.336 3.072-19.456 8.192c-11.264 11.264-11.264 28.672 0 39.936l436.224 437.248zM513.024 448l-437.248 437.248c-11.264 11.264-11.264 28.672 0 39.936s28.672 11.264 39.936 0l [...]
+<glyph unicode="&#xea56;" glyph-name="angle-double-up" data-tags="angle-double-up" d="M512 828.928l-437.248-437.248c-11.264-11.264-28.672-11.264-39.936 0s-11.264 28.672 0 39.936l449.536 449.536c7.168 7.168 17.408 11.264 27.648 11.264s20.48-4.096 27.648-11.264l449.536-449.536c5.12-5.12 8.192-12.288 8.192-19.456s-3.072-14.336-8.192-19.456c-11.264-11.264-28.672-11.264-39.936 0l-437.248 436.224zM512 449.024l-437.248-437.248c-11.264-11.264-28.672-11.264-39.936 0s-11.264 28.672 0 39.936l449.53 [...]
+<glyph unicode="&#xea57;" glyph-name="arrow-top-left" data-tags="arrow-top-left" d="M960.512 39.424l-808.96 808.96h211.968c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-308.224v-308.224c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v211.968l808.96-808.96c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c10.24 11.264 10.24 28.672 0 39.936z" />
+<glyph unicode="&#xea58;" glyph-name="arrow-top-right" data-tags="arrow-top-right" d="M63.488 39.424l808.96 808.96h-211.968c-15.36 0-28.672 12.288-28.672 28.672s12.288 28.672 28.672 28.672h308.224v-308.224c0-15.36-12.288-28.672-28.672-28.672s-28.672 12.288-28.672 28.672v210.944l-808.96-808.96c-5.12-5.12-12.288-8.192-19.456-8.192s-14.336 3.072-19.456 8.192c-10.24 11.264-10.24 28.672 0 39.936z" />
+<glyph unicode="&#xea59;" glyph-name="chevron-down-circle" data-tags="chevron-down-circle" d="M233.472 594.432c11.264 11.264 28.672 11.264 39.936 0l237.568-238.592 239.616 238.592c11.264 11.264 28.672 11.264 39.936 0s11.264-28.672 0-39.936l-251.904-249.856c-7.168-7.168-17.408-11.264-27.648-11.264s-20.48 4.096-27.648 11.264l-249.856 249.856c-6.144 6.144-8.192 13.312-8.192 20.48s2.048 14.336 8.192 19.456zM498.688 343.552v0c0 1.024 0 1.024 0 0zM512 949.76c276.48 0 501.76-225.28 501.76-501.7 [...]
+<glyph unicode="&#xea5a;" glyph-name="chevron-left-circle" data-tags="chevron-left-circle" d="M638.976 161.28c-7.168 0-14.336 3.072-19.456 8.192l-250.88 249.856c-7.168 7.168-11.264 17.408-11.264 27.648s4.096 20.48 11.264 27.648l250.88 251.904c11.264 11.264 28.672 11.264 39.936 0s11.264-28.672 0-39.936l-239.616-239.616 238.592-238.592c11.264-11.264 11.264-28.672 0-39.936-5.12-5.12-12.288-7.168-19.456-7.168zM408.576 434.688v0c0 0 0 0 0 0zM512-53.76c-276.48 0-501.76 225.28-501.76 501.76s225 [...]
+<glyph unicode="&#xea5b;" glyph-name="chevron-right-circle" data-tags="chevron-right-circle" d="M365.568 169.472c-11.264 11.264-11.264 28.672 0 39.936l238.592 237.568-238.592 239.616c-11.264 11.264-11.264 28.672 0 39.936s28.672 11.264 39.936 0l249.856-251.904c7.168-7.168 11.264-17.408 11.264-27.648s-4.096-20.48-11.264-27.648l-249.856-249.856c-6.144-6.144-13.312-8.192-20.48-8.192s-14.336 2.048-19.456 8.192zM616.448 434.688v0c-1.024 0-1.024 0 0 0zM10.24 448c0 276.48 225.28 501.76 501.76 50 [...]
+<glyph unicode="&#xea5c;" glyph-name="chevron-up-circle" data-tags="chevron-up-circle" d="M790.528 301.568c-11.264-11.264-28.672-11.264-39.936 0l-237.568 238.592-239.616-238.592c-11.264-11.264-28.672-11.264-39.936 0s-11.264 28.672 0 39.936l251.904 249.856c7.168 7.168 17.408 11.264 27.648 11.264s20.48-4.096 27.648-11.264l250.88-250.88c5.12-5.12 8.192-12.288 8.192-19.456s-3.072-14.336-9.216-19.456zM525.312 552.448v0c0-1.024 0-1.024 0 0zM512-53.76c-276.48 0-501.76 225.28-501.76 501.76s225.2 [...]
+<glyph unicode="&#xea5d;" glyph-name="shift-left" data-tags="shift-left" d="M67.584 898.56c-15.36 0-27.648-13.312-27.648-28.672v-843.776c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v843.776c-1.024 15.36-14.336 28.672-29.696 28.672zM956.416 475.648h-609.28l101.376 102.4c11.264 11.264 11.264 28.672 0 39.936s-28.672 11.264-39.936 0l-167.936-169.984 168.96-168.96c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c11.264 11.264 11.264 28.672 0 39.936l-100.352 100 [...]
+<glyph unicode="&#xea5e;" glyph-name="shift-right" data-tags="shift-right" d="M956.416-2.56c15.36 0 28.672 12.288 28.672 28.672v843.776c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-843.776c0-15.36 13.312-28.672 28.672-28.672zM67.584 419.328h609.28l-101.376-102.4c-11.264-11.264-11.264-28.672 0-39.936s28.672-11.264 39.936 0l167.936 171.008-167.936 168.96c-5.12 5.12-12.288 8.192-19.456 8.192s-14.336-3.072-19.456-8.192c-11.264-11.264-11.264-28.672 0-39.936l100.352-100.35 [...]
+<glyph unicode="&#xea5f;" glyph-name="exit-up" data-tags="exit-up" d="M946.176 445.952h-124.928c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h106.496v-358.4h-831.488v358.4h119.808c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-138.24c-21.504 0-38.912-17.408-38.912-38.912v-384c0-26.624 21.504-49.152 49.152-49.152h846.848c26.624 0 49.152 21.504 49.152 49.152v384c0 21.504-17.408 38.912-37.888 38.912zM381.952 711.168l102.4 102.4v-541.696c0-15.36 12.288-2 [...]
+<glyph unicode="&#xea60;" glyph-name="pointer-down" data-tags="pointer-down" d="M927.744 295.424c-24.576-24.576-56.32-36.864-89.088-34.816-11.264 0-21.504 2.048-31.744 4.096-22.528-28.672-58.368-46.080-95.232-46.080-13.312 0-26.624 2.048-38.912 7.168-24.576-29.696-61.44-47.104-99.328-47.104-6.144 0-11.264 0-17.408 1.024v-103.424c0-35.84-14.336-68.608-39.936-93.184-22.528-22.528-54.272-34.816-88.064-34.816h-3.072c-69.632 0-128 60.416-128 132.096v243.712c-4.096-3.072-8.192-5.12-11.264-7.16 [...]
+<glyph unicode="&#xea61;" glyph-name="pointer-left" data-tags="pointer-left" d="M358.4 33.28c-24.576 24.576-36.864 56.32-34.816 89.088 0 11.264 2.048 21.504 4.096 31.744-28.672 22.528-46.080 58.368-46.080 95.232 0 13.312 2.048 26.624 7.168 38.912-29.696 24.576-47.104 61.44-47.104 99.328 0 6.144 0 11.264 1.024 17.408h-103.424c-35.84 0-68.608 14.336-93.184 39.936-22.528 22.528-34.816 54.272-34.816 88.064v3.072c0 69.632 60.416 128 132.096 128h244.736c-3.072 4.096-5.12 8.192-7.168 11.264-24. [...]
+<glyph unicode="&#xea62;" glyph-name="pointer-right" data-tags="pointer-right" d="M575.488-5.632h-242.688c-286.72 20.48-320.512 214.016-320.512 357.376 0 134.144 66.56 257.024 173.056 318.464 6.144 4.096 15.36 9.216 28.672 17.408 11.264 7.168 25.6 15.36 40.96 24.576l40.96 26.624c50.176 31.744 89.088 56.32 120.832 75.776l3.072 2.048 5.12 2.048c15.36 8.192 28.672 17.408 37.888 26.624 19.456 25.6 43.008 38.912 58.368 46.080 27.648 14.336 76.8 16.384 113.664-6.144 32.768-19.456 48.128-49.152 [...]
+<glyph unicode="&#xea63;" glyph-name="pointer-up" data-tags="pointer-up" d="M96.256 600.576c24.576 24.576 56.32 36.864 89.088 34.816 11.264 0 21.504-2.048 31.744-4.096 22.528 28.672 58.368 46.080 95.232 46.080 13.312 0 26.624-2.048 38.912-7.168 24.576 29.696 61.44 47.104 99.328 47.104 6.144 0 11.264 0 17.408-1.024v103.424c0 35.84 14.336 68.608 39.936 93.184 22.528 22.528 54.272 34.816 88.064 34.816h3.072c69.632 0 128-60.416 128-132.096v-244.736c4.096 3.072 8.192 5.12 11.264 7.168 35.84 2 [...]
+<glyph unicode="&#xea64;" glyph-name="spinner-arrow" data-tags="spinner-arrow" d="M733.184 642.56c3.072-13.312 15.36-22.528 28.672-22.528h169.984c6.144 0 10.24 4.096 10.24 10.24v169.984c0 13.312-9.216 25.6-22.528 28.672-18.432 3.072-33.792-10.24-33.792-27.648v-80.896c-83.968 109.568-215.040 176.128-356.352 176.128-246.784-1.024-447.488-201.728-447.488-448.512s200.704-448.512 448.512-448.512c171.008 0 329.728 99.328 403.456 253.952 6.144 12.288 3.072 27.648-8.192 35.84-14.336 11.264-34.81 [...]
+<glyph unicode="&#xea65;" glyph-name="spinner-solid" data-tags="spinner-solid" d="M930.816 364.032c-38.912-193.536-205.824-334.848-406.528-337.92-225.28-4.096-416.768 174.080-429.056 399.36-13.312 242.688 180.224 444.416 420.864 444.416 194.56 0 363.52-134.144 409.6-319.488 3.072-12.288 14.336-21.504 27.648-21.504v0c18.432 0 31.744 17.408 27.648 35.84-53.248 209.92-243.712 361.472-464.896 361.472-278.528 0-501.76-239.616-477.184-523.264 21.504-235.52 215.040-421.888 450.56-434.176 243.71 [...]
+<glyph unicode="&#xea66;" glyph-name="spinner" data-tags="spinner" d="M624.64 817.664c0-62.209-50.431-112.64-112.64-112.64s-112.64 50.431-112.64 112.64c0 62.209 50.431 112.64 112.64 112.64s112.64-50.431 112.64-112.64zM574.464 29.184c0-34.498-27.966-62.464-62.464-62.464s-62.464 27.966-62.464 62.464c0 34.498 27.966 62.464 62.464 62.464s62.464-27.966 62.464-62.464zM905.216 464.384c-22.528 0-40.96-18.432-40.96-40.96s18.432-40.96 40.96-40.96c22.528 0 40.96 18.432 40.96 40.96s-18.432 40.96-40. [...]
+<glyph unicode="&#xea67;" glyph-name="ycombinator" data-tags="ycombinator" d="M25.6 934.4v-972.8h972.8v972.8h-972.8zM544.768 380.416v-200.704h-64.512v200.704l-168.96 317.44h77.824c0 0 122.88-252.928 125.952-256 3.072 10.24 126.976 256 126.976 256h71.68l-168.96-317.44z" />
+<glyph unicode="&#xea68;" glyph-name="producthunt" data-tags="producthunt" d="M576.512 593.408v0h-138.24v-145.408h138.24c39.936 0 72.704 32.768 72.704 72.704 1.024 40.96-31.744 72.704-72.704 72.704zM512 934.4c-268.288 0-486.4-218.112-486.4-486.4s218.112-486.4 486.4-486.4 486.4 218.112 486.4 486.4-218.112 486.4-486.4 486.4zM576.512 350.72v0h-138.24v-145.408h-97.28v485.376h235.52c94.208 0 169.984-75.776 169.984-169.984 1.024-94.208-75.776-169.984-169.984-169.984z" />
+<glyph unicode="&#xea69;" glyph-name="lineicons-alt" data-tags="lineicons-alt" d="M187.392 507.392c-11.264 0-23.552-3.072-32.768-10.24-8.192-5.12-13.312-12.288-18.432-18.432l-8.192-10.24-10.24 12.288c-11.264 15.36-30.72 25.6-50.176 25.6-33.792 0-61.44-27.648-61.44-61.44s27.648-61.44 61.44-61.44c19.456 0 36.864 9.216 49.152 24.576l11.264 13.312 10.24-13.312c11.264-15.36 30.72-25.6 50.176-25.6 33.792 0 61.44 27.648 61.44 61.44-1.024 35.84-28.672 63.488-62.464 63.488zM94.208 425.472c-7.168- [...]
+<glyph unicode="&#xea6a;" glyph-name="lineicons" data-tags="lineicons" d="M717.824 382.464c109.568 0 199.68 89.088 199.68 199.68s-89.088 199.68-199.68 199.68c-38.912 0-74.752-10.24-106.496-30.72-25.6-17.408-45.056-39.936-59.392-57.344l-45.056-59.392-50.176 63.488c-37.888 52.224-97.28 82.944-161.792 82.944-109.568 0-199.68-89.088-199.68-199.68s89.088-199.68 199.68-199.68c62.464 0 119.808 28.672 158.72 77.824l53.248 68.608 49.152-63.488c37.888-51.2 97.28-81.92 161.792-81.92zM404.48 499.2c- [...]
+<glyph unicode="&#xea6b;" glyph-name="microsoft" data-tags="microsoft" d="M25.6 471.552c154.624 0 308.224 0 462.848 0 0 154.624 0 308.224 0 462.848h-462.848v-462.848zM998.4 471.552c0 154.624 0 308.224 0 462.848h-462.848c0-154.624 0-308.224 0-462.848 154.624 0 308.224 0 462.848 0zM25.6-38.4h462.848c0 154.624 0 308.224 0 462.848-154.624 0-308.224 0-462.848 0v-462.848zM535.552-38.4h462.848c0 154.624 0 308.224 0 462.848-154.624 0-308.224 0-462.848 0 0-154.624 0-308.224 0-462.848z" />
+<glyph unicode="&#xea6c;" glyph-name="paypal-original" data-tags="paypal-original" d="M866.304 643.584c-1.024 1.024-2.048 2.048-3.072 3.072-38.912-191.488-166.912-291.84-372.736-291.84h-82.944l-48.128-307.2h-43.008l-5.12-34.816c-2.048-13.312 8.192-24.576 21.504-24.576h148.48c17.408 0 32.768 13.312 35.84 30.72l1.024 7.168 27.648 178.176 2.048 10.24c3.072 17.408 17.408 30.72 35.84 30.72h22.528c144.384 0 257.024 58.368 290.816 228.352 12.288 68.608 5.12 128-30.72 169.984zM407.552 355.84v0 0 [...]
+<glyph unicode="&#xea6d;" glyph-name="java" data-tags="java" d="M448.512 463.36c20.48-21.504 41.984-41.984 64.512-61.44-20.48 43.008-57.344 77.824-72.704 123.904-9.216 26.624-6.144 57.344 8.192 81.92 16.384 30.72 43.008 53.248 69.632 74.752 22.528 18.432 45.056 37.888 64.512 60.416 23.552 27.648 44.032 60.416 51.2 97.28 6.144 32.768-1.024 68.608-23.552 94.208 5.12-23.552 7.168-49.152 2.048-72.704-6.144-32.768-25.6-61.44-49.152-86.016-41.984-44.032-95.232-74.752-137.216-117.76-15.36-16.38 [...]
+<glyph unicode="&#xea6e;" glyph-name="windows" data-tags="windows" d="M998.4 473.6c0 153.6 0 308.224 0 461.824-176.128-24.576-351.232-49.152-527.36-76.8v0c0-130.048 0-259.072 0-389.12 176.128 1.024 351.232 3.072 527.36 4.096zM25.6 797.184v-329.728c132.096 0 265.216 2.048 397.312 2.048 0 128 0 254.976 0 382.976-132.096-17.408-265.216-34.816-397.312-55.296zM25.6 426.496v-330.752c132.096-18.432 265.216-34.816 397.312-54.272 0 128 0 256 0 384-132.096-1.024-265.216 1.024-397.312 1.024zM470.01 [...]
+<glyph unicode="&#xea6f;" glyph-name="files" data-tags="files" d="M966.656 936.448h-489.472c-21.504 0-39.936-17.408-39.936-39.936v-185.344h-379.904c-21.504 0-39.936-17.408-39.936-39.936v-455.68c0-3.072 1.024-5.12 3.072-7.168l245.76-244.736c2.048-2.048 4.096-3.072 7.168-3.072h270.336c21.504 0 39.936 17.408 39.936 39.936v289.792l102.4-101.376c2.048-2.048 4.096-3.072 7.168-3.072h272.384c21.504 0 38.912 17.408 38.912 38.912v671.744c2.048 21.504-16.384 39.936-37.888 39.936zM253.952 55.808l-13 [...]
+<glyph unicode="&#xea70;" glyph-name="flickr" data-tags="flickr" d="M451.584 448c0-102.363-82.981-185.344-185.344-185.344s-185.344 82.981-185.344 185.344c0 102.363 82.981 185.344 185.344 185.344s185.344-82.981 185.344-185.344zM943.104 448c0-102.363-82.981-185.344-185.344-185.344s-185.344 82.981-185.344 185.344c0 102.363 82.981 185.344 185.344 185.344s185.344-82.981 185.344-185.344z" />
+<glyph unicode="&#xea71;" glyph-name="drupal-original" data-tags="drupal-original" d="M723.968 753.152c-1.024 0-1.024 1.024-2.048 1.024-41.984 26.624-82.944 38.912-123.904 62.464-6.144 3.072-11.264 7.168-17.408 10.24-28.672 20.48-69.632 67.584-103.424 107.52 0 0 0 0 0 0s0 0 0 0c-2.048-19.456-5.12-35.84-9.216-50.176-8.192-27.648-21.504-44.032-34.816-56.32-1.024-1.024-3.072-2.048-4.096-3.072-48.128-37.888-77.824-49.152-118.784-71.68-3.072-2.048-9.216-5.12-15.36-9.216-24.576-15.36-68.608-45 [...]
+<glyph unicode="&#xea72;" glyph-name="android-original" data-tags="android-original" d="M241.414 216.707c0-36.316 29.172-65.488 65.488-65.488h43.46v-133.953c0-33.34 27.386-60.726 60.726-60.726s60.726 27.386 60.726 60.726v133.953h80.967v-133.953c0-33.34 27.386-60.726 60.726-60.726s60.726 27.386 60.726 60.726v133.953h43.46c36.316 0 65.488 29.172 65.488 65.488v392.633h-541.767v-392.633zM645.060 848.372l42.865 77.395c2.381 4.167 0.893 9.526-3.274 11.609-1.191 0.595-2.679 1.191-4.167 1.191-2. [...]
+<glyph unicode="&#xea73;" glyph-name="github-original" data-tags="github-original" d="M512 922.112c-268.288 0-486.4-217.088-486.4-486.4 0-215.040 139.264-397.312 332.8-461.824 24.576-4.096 32.768 10.24 32.768 23.552 0 11.264 0 41.984-1.024 82.944-135.168-29.696-163.84 65.536-163.84 65.536-22.528 56.32-54.272 70.656-54.272 70.656-44.032 29.696 3.072 29.696 3.072 29.696 49.152-3.072 74.752-50.176 74.752-50.176 43.008-74.752 113.664-53.248 141.312-39.936 4.096 31.744 17.408 53.248 30.72 65. [...]
+<glyph unicode="&#xea74;" glyph-name="amazon-original" data-tags="amazon-original" d="M877.568 230.912c-115.712-49.152-241.664-72.704-355.328-72.704-168.96 0-333.824 46.080-465.92 123.904-11.264 7.168-20.48-5.12-10.24-14.336 121.856-110.592 284.672-178.176 464.896-178.176 129.024 0 278.528 40.96 380.928 116.736 17.408 13.312 3.072 31.744-14.336 24.576zM978.944 289.28c-11.264 14.336-107.52 25.6-166.912-15.36-9.216-6.144-7.168-15.36 3.072-14.336 32.768 4.096 107.52 13.312 120.832-4.096s-14 [...]
+<glyph unicode="&#xea75;" glyph-name="steam" data-tags="steam" d="M510.976 914.944c-244.736 0-446.464-189.44-464.896-429.056l249.856-103.424c21.504 14.336 47.104 22.528 74.752 22.528 2.048 0 5.12 0 7.168 0l111.616 161.792c0 1.024 0 1.024 0 2.048 0 96.256 78.848 176.128 176.128 176.128s176.128-78.848 176.128-176.128c0-97.28-78.848-176.128-176.128-176.128-1.024 0-3.072 0-4.096 0l-158.72-113.664c0-2.048 0-4.096 0-6.144 0-72.704-59.392-132.096-132.096-132.096-63.488 0-117.76 46.080-130.048 1 [...]
+<glyph unicode="&#xea76;" glyph-name="shopify" data-tags="shopify" d="M644.096-31.232l289.792 62.464c0 0-104.448 706.56-105.472 711.68s-5.12 7.168-8.192 8.192c-3.072 0-77.824 6.144-77.824 6.144s-51.2 51.2-57.344 56.32c-1.024 1.024-3.072 2.048-5.12 3.072l-35.84-847.872zM667.648 816.64c-1.024 0-2.048 0-3.072-1.024-1.024 0-11.264-3.072-28.672-9.216-17.408 49.152-47.104 95.232-100.352 95.232-1.024 0-3.072 0-4.096 0-15.36 20.48-33.792 28.672-50.176 28.672-124.928 0-184.32-154.624-202.752-233. [...]
+<glyph unicode="&#xea77;" glyph-name="snapchat" data-tags="snapchat" d="M521.216 885.248c36.864 0 162.816-10.24 222.208-143.36 19.456-44.032 14.336-123.904 10.24-187.392-1.024-10.24-1.024-19.456-2.048-29.696v-4.096l3.072-3.072c1.024-1.024 11.264-12.288 33.792-12.288v0 0c15.36 1.024 31.744 5.12 50.176 13.312 3.072 1.024 6.144 2.048 10.24 2.048s9.216-1.024 12.288-2.048h1.024c9.216-3.072 16.384-9.216 16.384-15.36 0-3.072-2.048-15.36-36.864-28.672-3.072-1.024-8.192-3.072-12.288-4.096-22.528- [...]
+<glyph unicode="&#xea78;" glyph-name="souncloud-original" data-tags="souncloud-original" d="M36.864 472.576c-2.048 0-4.096-2.048-4.096-4.096l-7.168-54.272 7.168-53.248c0-2.048 2.048-4.096 4.096-4.096s3.072 2.048 4.096 4.096v0 0c0 0 0 0 0 0l8.192 53.248-8.192 54.272c-1.024 2.048-2.048 4.096-4.096 4.096zM76.8 502.272c0 2.048-2.048 4.096-4.096 4.096s-4.096-2.048-4.096-4.096c0 0-9.216-87.040-9.216-87.040l9.216-84.992c0-2.048 2.048-4.096 4.096-4.096s4.096 2.048 4.096 4.096l11.264 84.992-11.26 [...]
+<glyph unicode="&#xea79;" glyph-name="telegram" data-tags="telegram" d="M856.064 792.064c-92.16 92.16-214.016 142.336-344.064 142.336s-251.904-50.176-344.064-142.336c-92.16-92.16-142.336-214.016-142.336-344.064s50.176-251.904 142.336-344.064c92.16-92.16 214.016-142.336 344.064-142.336s251.904 50.176 344.064 142.336c92.16 92.16 142.336 214.016 142.336 344.064s-50.176 251.904-142.336 344.064zM512 8.704c-242.688 0-439.296 196.608-439.296 439.296s196.608 439.296 439.296 439.296c242.688 0 439 [...]
+<glyph unicode="&#xea7a;" glyph-name="twitch" data-tags="twitch" d="M115.712 930.304l-64.512-165.888v-676.864h230.4v-122.88h130.048l122.88 122.88h187.392l250.88 252.928v589.824h-857.088zM886.784 383.488l-144.384-144.384h-230.4l-122.88-122.88v122.88h-194.56v605.184h691.2v-460.8zM742.4 678.4v-251.904h-86.016v251.904h86.016zM512 678.4v-251.904h-86.016v251.904h86.016z" />
+<glyph unicode="&#xea7b;" glyph-name="twitter-original" data-tags="twitter-original" d="M331.776 52.736c367.616 0 568.32 304.128 568.32 568.32 0 8.192 0 17.408-1.024 25.6 38.912 28.672 72.704 63.488 99.328 103.424-35.84-16.384-74.752-26.624-114.688-31.744 40.96 24.576 72.704 63.488 88.064 110.592-38.912-22.528-80.896-39.936-126.976-48.128-36.864 38.912-88.064 63.488-145.408 63.488-110.592 0-199.68-89.088-199.68-199.68 0-15.36 2.048-30.72 5.12-45.056-165.888 7.168-313.344 86.016-411.648 2 [...]
+<glyph unicode="&#xea7c;" glyph-name="vimeo" data-tags="vimeo" d="M998.4 674.304c-4.096-95.232-70.656-225.28-198.656-390.144-132.096-172.032-244.736-258.048-335.872-258.048-56.32 0-104.448 52.224-144.384 157.696-26.624 96.256-52.224 192.512-78.848 288.768-28.672 104.448-60.416 157.696-94.208 157.696-7.168 0-32.768-15.36-76.8-46.080l-44.032 58.368c48.128 41.984 95.232 84.992 142.336 126.976 64.512 55.296 111.616 84.992 144.384 87.040 75.776 7.168 121.856-45.056 140.288-155.648 18.432-119. [...]
+<glyph unicode="&#xea7d;" glyph-name="vk" data-tags="vk" d="M661.504 934.4h-299.008c-272.384 0-336.896-64.512-336.896-336.896v-299.008c0-272.384 64.512-336.896 336.896-336.896h299.008c272.384 0 336.896 64.512 336.896 336.896v299.008c0 272.384-64.512 336.896-336.896 336.896zM811.008 240.128h-70.656c-26.624 0-34.816 21.504-82.944 69.632-41.984 40.96-60.416 46.080-70.656 46.080-14.336 0-18.432-3.072-18.432-23.552v-63.488c0-17.408-5.12-27.648-51.2-27.648-74.752 0-157.696 45.056-216.064 130.0 [...]
+<glyph unicode="&#xea7e;" glyph-name="wechat" data-tags="wechat" d="M884.736 152.064c59.392 43.008 98.304 107.52 98.304 179.2 0 131.072-126.976 236.544-283.648 236.544s-283.648-105.472-283.648-236.544c0-131.072 126.976-236.544 283.648-236.544 32.768 0 63.488 5.12 92.16 13.312 3.072 1.024 5.12 1.024 8.192 1.024 5.12 0 10.24-2.048 15.36-4.096l62.464-35.84c2.048-1.024 3.072-2.048 5.12-2.048 5.12 0 9.216 4.096 9.216 9.216 0 2.048-1.024 5.12-1.024 7.168 0 1.024-8.192 29.696-12.288 48.128-1.02 [...]
+<glyph unicode="&#xea7f;" glyph-name="whatsapp" data-tags="whatsapp" d="M838.656 776.704c-87.040 86.016-201.728 134.144-324.608 134.144-252.928 0-458.752-205.824-458.752-458.752 0-80.896 21.504-159.744 61.44-229.376l-65.536-237.568 243.712 63.488c66.56-36.864 142.336-56.32 219.136-56.32v0c0 0 0 0 0 0 252.928 1.024 458.752 206.848 458.752 459.776 0 121.856-48.128 237.568-134.144 324.608zM514.048 70.144v0c-68.608 0-136.192 18.432-194.56 53.248l-14.336 8.192-144.384-37.888 38.912 140.288-9. [...]
+<glyph unicode="&#xea80;" glyph-name="yahoo" data-tags="yahoo" d="M936.96 853.504v0 0c0 0-7.168 1.024-11.264 1.024-26.624 0-52.224-15.36-52.224-54.272-15.36-197.632-31.744-395.264-58.368-583.68v0c0 0 0 0 0 0s0 0 0 0v0c16.384 3.072 28.672-1.024 40.96-6.144v0c30.72 191.488 102.4 477.184 120.832 558.080 3.072 11.264 6.144 24.576 6.144 34.816 0 28.672-18.432 46.080-46.080 50.176zM697.344 862.72v0c-38.912-9.216-74.752-9.216-109.568 0-30.72-57.344-145.408-244.736-218.112-364.544-73.728 122.88- [...]
+<glyph unicode="&#xea81;" glyph-name="youtube" data-tags="youtube" d="M977.92 682.496c-11.264 41.984-44.032 74.752-86.016 86.016-75.776 20.48-379.904 20.48-379.904 20.48s-304.128 0-379.904-20.48c-41.984-11.264-74.752-44.032-86.016-86.016-20.48-75.776-20.48-234.496-20.48-234.496s0-158.72 20.48-234.496c11.264-41.984 44.032-74.752 86.016-86.016 75.776-20.48 379.904-20.48 379.904-20.48s304.128 0 379.904 20.48c41.984 11.264 74.752 44.032 86.016 86.016 20.48 75.776 20.48 234.496 20.48 234.496s [...]
+<glyph unicode="&#xea82;" glyph-name="stackoverflow" data-tags="stackoverflow" d="M771.072 83.456h-555.008v237.568h-78.848v-316.416h711.68v316.416h-77.824zM587.347 844.314l63.323 46.978 235.498-317.437-63.323-46.978-235.498 317.437zM454.131 703.832l50.415 60.626 303.918-252.732-50.415-60.626-303.918 252.732zM295.936 242.176h395.264v-78.848h-395.264v78.848zM746.496 432.64l-358.4 167.936-33.792-72.704 358.4-166.912zM707.584 340.48l-387.072 80.896-17.408-77.824 387.072-80.896z" />
+<glyph unicode="&#xea83;" glyph-name="spotify-original" data-tags="spotify-original" d="M512 934.4c-268.288 0-486.4-218.112-486.4-486.4s218.112-486.4 486.4-486.4c268.288 0 486.4 218.112 486.4 486.4s-218.112 486.4-486.4 486.4zM735.232 232.96c-9.216-14.336-27.648-18.432-41.984-10.24-114.688 69.632-258.048 86.016-427.008 47.104-16.384-4.096-32.768 6.144-35.84 22.528-4.096 16.384 6.144 32.768 22.528 35.84 185.344 41.984 344.064 24.576 472.064-54.272 14.336-8.192 18.432-26.624 10.24-40.96zM79 [...]
+<glyph unicode="&#xea84;" glyph-name="slideshare" data-tags="slideshare" d="M966.656 472.576c-6.144 5.12-14.336 5.12-21.504 2.048-6.144-3.072-12.288-6.144-19.456-10.24 0 4.096 0 7.168 0 10.24 0 115.712 0 231.424 0 347.136 0 23.552-5.12 45.056-20.48 64.512-12.288 16.384-29.696 25.6-49.152 30.72-1.024 0-3.072 1.024-4.096 1.024-227.328 0-454.656 0-681.984 0-10.24-4.096-22.528-8.192-31.744-14.336-23.552-14.336-35.84-36.864-39.936-63.488-1.024-9.216-1.024-18.432-1.024-26.624 0-113.664 0-226.3 [...]
+<glyph unicode="&#xea85;" glyph-name="slack" data-tags="slack" d="M430.978 486.752l123.312 41.303 39.677-118.457-123.312-41.303-39.677 118.457zM430.978 486.751l123.312 41.303 39.677-118.457-123.312-41.303-39.677 118.457zM933.888 574.976c-94.208 316.416-231.424 390.144-548.864 294.912-316.416-94.208-390.144-231.424-294.912-548.864 95.232-316.416 232.448-390.144 548.864-295.936 316.416 95.232 390.144 232.448 294.912 549.888zM774.144 369.152l-59.392-20.48 20.48-61.44c8.192-24.576-5.12-52.22 [...]
+<glyph unicode="&#xea86;" glyph-name="skype" data-tags="skype" d="M83.968 444.928c2.048 20.48 3.072 38.912 5.12 57.344 1.024 8.192 0 14.336-4.096 22.528-32.768 59.392-40.96 121.856-24.576 187.392 17.408 73.728 59.392 129.024 125.952 164.864 82.944 44.032 166.912 43.008 250.88-2.048 6.144-3.072 12.288-4.096 19.456-3.072 106.496 13.312 205.824-9.216 294.912-69.632 93.184-63.488 152.576-151.552 178.176-262.144 11.264-49.152 12.288-98.304 6.144-147.456-1.024-6.144-1.024-12.288 3.072-18.432 3 [...]
+<glyph unicode="&#xea87;" glyph-name="pinterest" data-tags="pinterest" d="M20.48 448c0 0 0 0 0 0 0-8.192 0-15.36 1.024-22.528 0-2.048 0-5.12 0-7.168 0-5.12 1.024-11.264 1.024-16.384 0-2.048 0-5.12 1.024-7.168 1.024-6.144 1.024-12.288 2.048-18.432 0-1.024 0-3.072 1.024-4.096 1.024-7.168 2.048-14.336 4.096-21.504 0-2.048 1.024-4.096 1.024-6.144 1.024-5.12 2.048-10.24 3.072-15.36 1.024-2.048 1.024-5.12 2.048-7.168 1.024-5.12 3.072-10.24 4.096-15.36 1.024-2.048 1.024-4.096 2.048-6.144 2.048- [...]
+<glyph unicode="&#xea88;" glyph-name="reddit" data-tags="reddit" d="M436.224 388.608c0-35.063-28.425-63.488-63.488-63.488s-63.488 28.425-63.488 63.488c0 35.063 28.425 63.488 63.488 63.488s63.488-28.425 63.488-63.488zM714.752 388.608c0-35.063-28.425-63.488-63.488-63.488s-63.488 28.425-63.488 63.488c0 35.063 28.425 63.488 63.488 63.488s63.488-28.425 63.488-63.488zM512 161.28c68.608 0 117.76 15.36 148.48 46.080 7.168 7.168 7.168 18.432 0 24.576-7.168 7.168-18.432 7.168-24.576 0-24.576-24.57 [...]
+<glyph unicode="&#xea89;" glyph-name="line" data-tags="line" d="M963.072 511.693c0 201.933-202.342 366.080-451.072 366.080s-451.072-164.25-451.072-366.080c0-180.941 160.461-332.493 377.242-361.165 14.643-3.174 34.714-9.728 39.731-22.221 4.506-11.366 2.97-29.286 1.434-40.755 0 0-5.325-31.846-6.451-38.605-1.946-11.366-9.114-44.646 39.117-24.269 48.128 20.275 259.789 152.986 354.406 261.939v0c65.331 71.578 96.666 144.384 96.666 225.075zM352.87 403.968c0-4.813-3.891-8.806-8.806-8.806h-126.36 [...]
+<glyph unicode="&#xea8a;" glyph-name="linkedin-original" data-tags="linkedin-original" d="M860.979 857.6h-698.163c-33.382 0-60.416-26.419-60.416-59.085v-701.030c0-32.666 27.136-59.085 60.416-59.085h698.163c33.382 0 60.621 26.522 60.621 59.085v701.030c0 32.666-27.238 59.085-60.621 59.085zM345.395 159.539h-121.651v390.963h121.651v-390.963zM284.672 603.955c-39.014 0-70.451 31.539-70.451 70.451s31.437 70.451 70.451 70.451c38.912 0 70.451-31.539 70.451-70.451-0.102-38.912-31.642-70.451-70.451 [...]
+<glyph unicode="&#xea8b;" glyph-name="megento" data-tags="megento" d="M512.307 891.085l-384-221.696v-442.982l109.67-63.283-0.717 442.88 274.432 158.618 274.33-158.618v-442.675l109.67 63.078v443.392zM566.886 163.123l-54.886-31.744-54.989 31.539v443.085l-109.67-63.283 0.102-442.88 164.557-94.925 164.557 94.925v442.88l-109.67 63.283z" />
+<glyph unicode="&#xea8c;" glyph-name="instagram-original" data-tags="instagram-original" d="M949.658 629.555c-2.15 46.899-9.626 78.848-20.48 106.906-11.264 28.979-26.317 53.555-50.79 78.029s-49.050 39.526-78.029 50.79c-28.058 10.854-60.006 18.33-106.906 20.48-46.899 2.048-61.85 2.56-181.453 2.56s-134.554-0.512-181.555-2.662c-46.899-2.15-78.848-9.626-106.906-20.48-28.979-11.264-53.555-26.317-78.029-50.79s-39.526-49.050-50.79-78.029c-10.854-28.058-18.33-60.006-20.48-106.906-2.048-46.899-2. [...]
+<glyph unicode="&#xea8d;" glyph-name="behance-original" data-tags="behance-original" d="M420.352 478.925c26.214 12.39 45.773 28.365 59.187 47.821 13.21 19.456 19.866 43.827 19.866 73.011 0 26.931-4.403 49.766-13.21 67.994-9.011 18.534-21.709 33.178-37.786 44.237-16.384 11.059-35.84 19.046-58.573 23.859-22.835 4.915-47.923 7.373-75.571 7.373h-273.306v-579.482h280.883c25.907 0 51.302 3.277 75.776 9.728 24.678 6.451 46.694 16.486 65.946 30.003 19.046 13.517 34.509 30.925 45.875 52.429 11.26 [...]
+<glyph unicode="&#xea8e;" glyph-name="blogger" data-tags="blogger" d="M964.403 515.686c-3.584 16.282-13.722 31.334-25.293 37.683-3.584 1.946-26.419 4.403-50.79 5.53-40.858 1.843-45.363 2.56-58.266 10.138-20.48 11.981-26.112 24.883-26.112 60.006-0.102 67.072-28.058 129.331-83.149 185.549-39.322 40.038-83.149 67.174-133.222 82.33-11.981 3.686-38.81 4.915-128.614 5.939-141.005 1.638-172.237-1.229-220.262-20.378-88.474-35.226-151.962-109.466-175.206-204.698-4.301-17.818-5.222-46.49-6.246-211 [...]
+<glyph unicode="&#xea8f;" glyph-name="bootstrap" data-tags="bootstrap" d="M561.050 416.563h-162.714v-164.352h162.714c27.955 0 49.766 7.168 65.126 21.811 15.462 14.438 23.245 35.021 23.245 61.542 0 26.112-7.68 45.978-23.245 60.109s-37.069 20.89-65.126 20.89zM603.75 501.453c14.746 12.698 22.118 30.618 22.118 54.17 0 26.522-6.656 45.158-19.866 55.91s-32.358 16.179-57.446 16.179h-150.221v-145.101h150.221c22.118 0 40.448 6.144 55.194 18.842zM812.442 898.56h-600.781c-82.637 0-150.221-67.584-15 [...]
+<glyph unicode="&#xea90;" glyph-name="dribbble" data-tags="dribbble" d="M512 901.325c-250.266 0-453.325-203.059-453.325-453.325s203.059-453.325 453.325-453.325c249.754 0 453.325 203.059 453.325 453.325s-203.571 453.325-453.325 453.325zM811.418 692.326c54.067-65.843 86.528-149.914 87.552-240.947-12.8 2.458-140.595 28.467-269.414 12.288-2.97 6.349-5.427 13.312-8.397 20.173-7.885 18.637-16.691 37.888-25.6 56.013 142.643 58.061 207.462 141.722 215.859 152.474zM512 834.458c98.304 0 188.314-36 [...]
+<glyph unicode="&#xea91;" glyph-name="dropbox-original" data-tags="dropbox-original" d="M68.198 400.794l221.901-141.312 221.901 141.312-221.901 141.312zM289.382 212.582l222.003-141.312 221.901 141.312-221.901 141.312zM512 400.794l221.901-141.312 221.901 141.312-221.901 141.312zM290.099 824.73l-221.901-141.312 221.901-141.312 221.901 141.312zM955.802 683.418l-221.901 141.312-221.901-141.312 221.901-141.312z" />
+<glyph unicode="&#xea92;" glyph-name="envato" data-tags="envato" d="M796.467 901.734c-27.034 14.95-104.448 5.734-197.427-23.040-162.714-111.309-300.032-275.149-309.658-538.317-1.741-6.246-17.818 0.819-20.992 2.765-43.93 84.275-61.338 172.954-24.678 300.851 6.861 11.366-15.565 25.395-19.558 21.402-8.090-8.090-41.677-43.827-63.898-82.534-110.592-191.795-38.298-437.453 155.136-544.973 193.331-107.725 437.555-38.195 545.178 155.238 124.621 223.232 9.011 667.75-64.102 708.608z" />
+<glyph unicode="&#xea93;" glyph-name="facebook-messenger" data-tags="facebook-messenger" d="M512 888.32c-247.808 0-440.32-182.272-440.32-427.008 0-128 52.224-239.616 138.24-315.392 7.168-6.144 11.264-15.36 12.288-24.576l2.048-78.848c1.024-24.576 26.624-40.96 49.152-31.744l87.040 38.912c7.168 3.072 15.36 4.096 23.552 2.048 39.936-11.264 82.944-17.408 128-17.408 247.808 0 440.32 182.272 440.32 427.008s-192.512 427.008-440.32 427.008zM776.192 559.616l-129.024-204.8c-20.48-32.768-64.512-40.9 [...]
+<glyph unicode="&#xea94;" glyph-name="facebook-original" data-tags="facebook-original" d="M876.134 857.6h-728.269c-25.088 0-45.466-20.378-45.466-45.466v-728.166c0-25.088 20.378-45.466 45.466-45.466h392.090v316.621h-106.394v124.006h106.394v91.034c0 105.779 64.614 163.533 159.334 163.533 31.846 0.102 63.693-1.536 95.334-4.915v-110.182h-65.331c-51.302 0-61.338-24.474-61.338-60.314v-78.95h122.778l-15.974-124.006h-106.803v-316.928h208.077c25.088 0 45.466 20.378 45.466 45.466v728.269c0.102 25. [...]
+<glyph unicode="&#xea95;" glyph-name="500px" data-tags="px" d="M570.47 834.15c-57.651 0-118.989-11.674-164.045-31.13-4.813-1.843-7.68-5.734-8.294-11.162-0.614-5.12 0.819-11.878 4.198-20.685 2.765-7.168 10.24-26.112 24.576-20.582 46.080 17.613 97.075 27.238 143.462 27.238 52.634 0 103.629-10.342 151.654-30.618 38.195-16.179 74.138-39.424 113.357-73.421 2.867-2.458 5.837-3.686 9.011-3.686 7.68 0 14.95 7.475 21.197 14.541 10.445 11.776 17.613 21.504 7.373 31.232-37.376 35.43-78.336 61.85-12 [...]
+<glyph unicode="&#xea96;" glyph-name="wordpress" data-tags="wordpress" d="M930.816 696.832c-13.312 22.528-29.696 45.056-46.080 64.512-93.184 110.592-229.376 174.080-372.736 174.080-190.464 0-364.544-111.616-443.392-284.672-2.048-4.096-4.096-9.216-6.144-13.312-3.072-8.192-7.168-18.432-11.264-28.672 0-2.048-1.024-5.12-1.024-7.168-16.384-49.152-24.576-101.376-24.576-153.6 0-172.032 88.064-327.68 235.52-416.768l7.168-4.096c9.216-5.12 18.432-10.24 26.624-14.336 4.096-2.048 8.192-4.096 12.288- [...]
+<glyph unicode="&#xea97;" glyph-name="twitter" data-tags="twitter" d="M347.136 38.4c-84.992 0-206.848 16.384-309.248 93.184-18.432 13.312-24.576 37.888-15.36 59.392 8.192 21.504 30.72 32.768 53.248 28.672 0 0 74.752-12.288 142.336 11.264-36.864 22.528-74.752 60.416-95.232 124.928-3.072 10.24-3.072 20.48 0 30.72-33.792 33.792-66.56 87.040-65.536 167.936 0 14.336 7.168 27.648 17.408 36.864-20.48 50.176-32.768 123.904 14.336 204.8 8.192 13.312 22.528 22.528 37.888 24.576 16.384 1.024 31.744 [...]
+<glyph unicode="&#xea98;" glyph-name="dropbox" data-tags="dropbox" d="M968.704 464.384l-158.72 104.448 158.72 105.472c10.24 7.168 17.408 19.456 17.408 31.744 0 13.312-6.144 24.576-17.408 31.744l-228.352 151.552c-13.312 8.192-29.696 8.192-41.984 0l-186.368-122.88-186.368 122.88c-13.312 8.192-29.696 8.192-41.984 0l-228.352-151.552c-11.264-7.168-17.408-19.456-17.408-31.744 0-13.312 6.144-24.576 17.408-31.744l159.744-105.472-159.744-105.472c-11.264-7.168-17.408-19.456-17.408-31.744 0-13.312  [...]
+<glyph unicode="&#xea99;" glyph-name="facebook-filled" data-tags="facebook-filled" d="M626.688 719.36h118.784c22.528 0 40.96 18.432 40.96 40.96v101.376c0 22.528-18.432 40.96-40.96 40.96h-159.744c-101.376 0-182.272-81.92-182.272-182.272v0-139.264c0-6.144-4.096-10.24-10.24-10.24h-114.688c-22.528 0-40.96-18.432-40.96-40.96v-101.376c0-22.528 18.432-40.96 40.96-40.96h114.688c6.144 0 10.24-4.096 10.24-10.24v-343.040c0-22.528 18.432-40.96 40.96-40.96h101.376c22.528 0 40.96 18.432 40.96 40.96v34 [...]
+<glyph unicode="&#xea9a;" glyph-name="facebook" data-tags="facebook" d="M584.704-45.568h-136.192c-32.768 0-60.416 27.648-60.416 60.416v367.616h-112.64c-32.768 0-60.416 27.648-60.416 60.416v105.472c0 32.768 27.648 60.416 60.416 60.416h111.616v95.232c0 141.312 93.184 236.544 232.448 236.544h103.424c32.768 0 60.416-27.648 60.416-60.416v-124.928c0-32.768-27.648-60.416-60.416-60.416h-71.68c-2.048 0-4.096 0-5.12 0 0-2.048 0-3.072 0-4.096v-81.92h102.4c18.432 0 35.84-8.192 47.104-22.528s16.384-3 [...]
+<glyph unicode="&#xea9b;" glyph-name="git" data-tags="git" d="M984.064 463.36l-456.704 456.704c-8.192 8.192-21.504 8.192-29.696 0l-125.952-124.928 116.736-116.736c9.216 4.096 19.456 6.144 29.696 6.144 43.008 0 76.8-34.816 76.8-76.8 0-10.24-2.048-20.48-6.144-29.696l92.16-92.16c9.216 4.096 19.456 6.144 29.696 6.144 43.008 0 76.8-34.816 76.8-76.8 0-43.008-34.816-76.8-76.8-76.8-43.008 0-76.8 34.816-76.8 76.8 0 10.24 2.048 20.48 6.144 29.696l-92.16 92.16c0 0-1.024 0-1.024 0v-177.152c28.672-11 [...]
+<glyph unicode="&#xea9c;" glyph-name="github" data-tags="github" d="M1000.448 466.432c-12.288 249.856-218.112 453.632-468.992 462.848-134.144 5.12-262.144-43.008-358.4-136.192-97.28-93.184-150.528-218.112-150.528-352.256 0-221.184 148.48-414.72 361.472-472.064 5.12-1.024 10.24-2.048 15.36-2.048 13.312 0 25.6 4.096 35.84 12.288 14.336 11.264 23.552 28.672 23.552 47.104v53.248c0 14.336 1.024 78.848 1.024 90.112 1.024 10.24 5.12 18.432 9.216 25.6l1.024 1.024c7.168 10.24 8.192 23.552 3.072 3 [...]
+<glyph unicode="&#xea9d;" glyph-name="firefox" data-tags="firefox" d="M512-23.040c-78.848 0-157.696 19.456-228.352 56.32-115.712 61.44-201.728 163.84-240.64 288.768-36.864 120.832-26.624 248.832 28.672 362.496-21.504 63.488-6.144 133.12 39.936 182.272 9.216 9.216 21.504 14.336 33.792 14.336 0 0 0 0 0 0 25.6 0 46.080-20.48 47.104-45.056 3.072-21.504 10.24-41.984 20.48-61.44l1.024-2.048c1.024-2.048 2.048-4.096 3.072-6.144 20.48 2.048 39.936 2.048 60.416 1.024 32.768 41.984 81.92 69.632 135 [...]
+<glyph unicode="&#xea9e;" glyph-name="amazon" data-tags="amazon" d="M478.208 376.32c2.048 0 4.096 0 7.168 1.024s5.12 1.024 6.144 1.024c24.576 6.144 44.032 22.528 57.344 48.128 6.144 11.264 11.264 23.552 14.336 36.864s5.12 23.552 5.12 32.768c0 8.192 0 21.504 0 40.96v22.528c-33.792 0-60.416-2.048-77.824-7.168-52.224-14.336-77.824-47.104-77.824-98.304 0-22.528 6.144-40.96 17.408-55.296 13.312-15.36 28.672-22.528 48.128-22.528zM506.88 497.152c2.048 0 4.096 1.024 6.144 1.024 0 0 0-1.024 0-1.0 [...]
+<glyph unicode="&#xea9f;" glyph-name="drupal" data-tags="drupal" d="M630.784 748.032c-20.48 6.144-39.936 20.48-53.248 38.912-6.144 8.192-13.312 18.432-21.504 30.72l-75.776 110.592c-6.144 9.216-18.432 14.336-29.696 12.288s-20.48-11.264-22.528-22.528l-25.6-120.832c-8.192-30.72-29.696-55.296-60.416-68.608-147.456-63.488-242.688-208.896-242.688-368.64 0-223.232 185.344-405.504 412.672-405.504s412.672 182.272 412.672 405.504c0 176.128-120.832 334.848-293.888 388.096zM512 10.752c-196.608 0-356 [...]
+<glyph unicode="&#xeaa0;" glyph-name="folder" data-tags="folder" d="M948.224 802.304h-381.952l-29.696 54.272-1.024 2.048c-11.264 17.408-31.744 27.648-51.2 27.648h-408.576c-32.768 0-59.392-26.624-59.392-59.392v-758.784c0-32.768 26.624-59.392 59.392-59.392h871.424c32.768 0 59.392 26.624 59.392 59.392v675.84c0 31.744-26.624 58.368-58.368 58.368zM948.224 745.984c2.048 0 3.072-2.048 3.072-3.072v-144.384c-1.024 0-2.048 0-3.072 0h-269.312c-1.024 0-2.048 0-4.096 2.048l-78.848 144.384h352.256zM95 [...]
+<glyph unicode="&#xeaa1;" glyph-name="linkedin" data-tags="linkedin" d="M245.76 570.88h-141.312c-26.624 0-49.152-21.504-49.152-49.152v-478.208c0-26.624 21.504-49.152 49.152-49.152h141.312c26.624 0 49.152 21.504 49.152 49.152v478.208c0 26.624-22.528 49.152-49.152 49.152zM238.592 50.688h-125.952v463.872h125.952v-463.872zM816.128 568.832c-43.008 5.12-91.136-2.048-134.144-21.504-19.456-9.216-38.912-20.48-57.344-33.792v9.216c0 26.624-21.504 49.152-49.152 49.152h-141.312c-26.624 0-49.152-21.50 [...]
+<glyph unicode="&#xeaa2;" glyph-name="bitbucket" data-tags="bitbucket" d="M512 842.24c-96.256 0-209.92-21.504-209.92-81.92s112.64-81.92 209.92-81.92c96.256 0 209.92 21.504 209.92 81.92s-113.664 81.92-209.92 81.92zM512 734.72c-78.848 0-130.048 15.36-148.48 25.6 18.432 11.264 69.632 25.6 148.48 25.6s130.048-15.36 148.48-25.6c-18.432-11.264-69.632-25.6-148.48-25.6zM512 937.472c-180.224 0-374.784-40.96-374.784-131.072v-2.048l58.368-437.248c4.096-29.696 24.576-53.248 53.248-61.44 91.136-24.57 [...]
+<glyph unicode="&#xeaa3;" glyph-name="quora" data-tags="quora" d="M902.144 103.936l-14.336 5.12c-22.528 8.192-39.936 17.408-52.224 27.648 0 0 0 0 0 0 96.256 82.944 141.312 188.416 141.312 332.8 0 128-51.2 246.784-142.336 335.872-91.136 88.064-212.992 134.144-340.992 130.048-241.664-9.216-438.272-205.824-447.488-447.488-5.12-128 40.96-248.832 130.048-340.992s207.872-142.336 335.872-142.336c54.272 0 106.496 9.216 156.672 27.648 39.936-47.104 91.136-69.632 156.672-69.632 16.384 0 31.744 1.0 [...]
+<glyph unicode="&#xeaa4;" glyph-name="medium" data-tags="medium" d="M17.408 54.784l95.232 128c0 0 26.624 20.48 26.624 109.568s0 397.312 0 397.312 5.12 35.84-29.696 77.824c-33.792 41.984-66.56 81.92-66.56 81.92h271.36l225.28-488.448 197.632 488.448h268.288l-83.968-95.232v-609.28l84.992-88.064h-375.808l81.92 80.896 4.096 539.648-253.952-631.808-278.528 612.352-5.12-391.168c0 0-3.072-43.008 23.552-80.896 26.624-35.84 101.376-132.096 101.376-132.096h-286.72z" />
+<glyph unicode="&#xeaa5;" glyph-name="css" data-tags="css" d="M986.112 921.088c-8.192 9.216-19.456 14.336-30.72 14.336-109.568 1.024-756.736 0-885.76 0-12.288 0-23.552-5.12-30.72-14.336-8.192-9.216-12.288-20.48-10.24-32.768l78.848-802.816c1.024-16.384 13.312-30.72 29.696-34.816l351.232-86.016c7.168-1.024 14.336-2.048 21.504-2.048s15.36 1.024 22.528 2.048l351.232 86.016c14.336 3.072 28.672 16.384 29.696 33.792l82.944 803.84c2.048 11.264-2.048 23.552-10.24 32.768zM858.112 101.888l-338.944- [...]
+<glyph unicode="&#xeaa6;" glyph-name="instagram-filled" data-tags="instagram-filled" d="M777.216 763.392c-9.216 0-16.384-3.072-23.552-9.216-7.168-5.12-9.216-15.36-9.216-23.552 0-9.216 3.072-16.384 9.216-23.552 12.288-12.288 35.84-12.288 48.128 0 7.168 5.12 9.216 15.36 9.216 24.576 0 8.192-4.096 16.384-9.216 22.528-6.144 6.144-16.384 9.216-24.576 9.216zM513.024 629.248c-101.376 0-181.248-81.92-181.248-181.248s79.872-181.248 181.248-181.248c99.328 0 181.248 81.92 181.248 181.248 0 100.352- [...]
+<glyph unicode="&#xeaa7;" glyph-name="instagram" data-tags="instagram" d="M512 684.544c-131.072 0-236.544-106.496-236.544-236.544s105.472-236.544 236.544-236.544c130.048 0 235.52 106.496 235.52 236.544s-105.472 236.544-235.52 236.544zM512 267.776c-99.328 0-180.224 80.896-180.224 180.224s80.896 180.224 180.224 180.224c99.328 0 179.2-80.896 179.2-180.224s-79.872-180.224-179.2-180.224zM787.456 793.088c-18.432 0-35.84-7.168-48.128-20.48-13.312-13.312-20.48-29.696-20.48-48.128s7.168-35.84 20. [...]
+<glyph unicode="&#xeaa8;" glyph-name="bitcoin" data-tags="bitcoin" d="M711.68 452.096c66.56 36.864 111.616 108.544 111.616 189.44 0 119.808-97.28 217.088-217.088 217.088h-28.672v43.008c0 15.36-12.288 28.672-28.672 28.672s-26.624-12.288-26.624-28.672v-43.008h-87.040v43.008c0 15.36-12.288 28.672-28.672 28.672s-27.648-12.288-27.648-28.672v-43.008h-151.552c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h49.152v-708.608h-49.152c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.6 [...]
+<glyph unicode="&#xeaa9;" glyph-name="stripe" data-tags="stripe" d="M496.64 545.28h78.848v-222.208h-78.848v222.208zM471.040 548.352c-25.6 7.168-40.96 1.024-55.296-22.528-3.072 4.096-5.12 9.216-8.192 15.36-3.072 4.096-4.096 5.12-8.192 4.096-17.408 0-33.792 0-50.176 0-1.024 0-4.096 0-4.096 0v-222.208h78.848v139.264c0 15.36 3.072 19.456 18.432 21.504 4.096 0 8.192 1.024 13.312 0 8.192-1.024 15.36-3.072 23.552-3.072 0 21.504 0 40.96 0 59.392-3.072 5.12-4.096 7.168-8.192 8.192zM281.6 495.104h [...]
+<glyph unicode="&#xeaaa;" glyph-name="wordpress-filled" data-tags="wordpress-filled" d="M514.048 935.424c-268.288 0-486.4-219.136-486.4-487.424s218.112-487.424 486.4-487.424 487.424 219.136 487.424 487.424-219.136 487.424-487.424 487.424zM946.176 448c0-162.816-90.112-305.152-223.232-377.856l126.976 323.584c7.168 16.384 50.176 122.88 66.56 214.016 19.456-49.152 29.696-104.448 29.696-159.744zM613.376 662.016h-231.424c-9.216 0-16.384-8.192-16.384-16.384s8.192-16.384 16.384-16.384h32.768l59. [...]
+<glyph unicode="&#xeaab;" glyph-name="harddrive" data-tags="harddrive" d="M320.512 202.24c-5.12-5.12-7.168-11.264-10.24-19.456-7.168-27.648 7.168-57.344 34.816-64.512 27.648-9.216 56.32 7.168 64.512 34.816l72.704 237.568-161.792-188.416zM751.616 137.728c0-16.401-13.295-29.696-29.696-29.696s-29.696 13.295-29.696 29.696c0 16.401 13.295 29.696 29.696 29.696s29.696-13.295 29.696-29.696zM549.888 462.336c0-19.794-16.046-35.84-35.84-35.84s-35.84 16.046-35.84 35.84c0 19.794 16.046 35.84 35.84 35 [...]
+<glyph unicode="&#xeaac;" glyph-name="google-plus" data-tags="google-plus-original" d="M637.952 505.344h-269.312c-11.264 0-20.48-9.216-20.48-20.48v-83.968c0-11.264 9.216-20.48 20.48-20.48h156.672c-22.528-74.752-86.016-128-177.152-128-112.64 0-204.8 96.256-195.584 210.944 7.168 104.448 99.328 186.368 203.776 182.272 39.936-1.024 76.8-15.36 107.52-36.864 8.192-6.144 19.456-5.12 26.624 2.048l62.464 62.464c8.192 8.192 8.192 23.552-2.048 30.72-55.296 44.032-125.952 70.656-201.728 70.656-180.2 [...]
+<glyph unicode="&#xeaad;" glyph-name="html" data-tags="html" d="M986.112 921.088c-8.192 9.216-19.456 14.336-30.72 14.336-109.568 1.024-756.736 0-885.76 0-12.288 0-23.552-5.12-30.72-14.336-8.192-9.216-12.288-20.48-10.24-32.768l78.848-802.816c1.024-16.384 13.312-30.72 29.696-34.816l351.232-86.016c7.168-1.024 14.336-2.048 21.504-2.048s15.36 1.024 22.528 2.048l351.232 86.016c14.336 3.072 28.672 16.384 29.696 33.792l82.944 803.84c2.048 11.264-2.048 23.552-10.24 32.768zM858.112 101.888l-338.94 [...]
+<glyph unicode="&#xeaae;" glyph-name="mastercard" data-tags="mastercard" d="M947.2 734.72h-870.4c-26.624 0-49.152-21.504-49.152-49.152v-475.136c0-26.624 21.504-49.152 49.152-49.152h870.4c26.624 0 49.152 21.504 49.152 49.152v475.136c0 26.624-22.528 49.152-49.152 49.152zM940.032 217.6h-855.040v460.8h855.040v-460.8zM420.864 290.304c29.696 0 58.368 8.192 82.944 23.552 27.648-18.432 58.368-29.696 92.16-29.696 90.112 0 163.84 73.728 163.84 163.84s-73.728 163.84-163.84 163.84c-33.792 0-66.56-10 [...]
+<glyph unicode="&#xeaaf;" glyph-name="visa" data-tags="visa" d="M466.944 339.456l34.816 220.16h-56.32l-35.84-220.16zM663.552 411.136c0 24.576-14.336 44.032-47.104 60.416-20.48 10.24-31.744 17.408-31.744 27.648 0 8.192 10.24 18.432 32.768 18.432 18.432 0 31.744-4.096 43.008-8.192l6.144-1.024 7.168 47.104c-11.264 4.096-28.672 8.192-50.176 8.192-56.32 0-96.256-29.696-96.256-72.704 0-31.744 27.648-50.176 50.176-60.416 21.504-10.24 29.696-17.408 29.696-27.648 0-14.336-17.408-21.504-34.816-21. [...]
+<glyph unicode="&#xeab0;" glyph-name="apple" data-tags="apple" d="M880.64 238.080c-24.576 7.168-47.104 25.6-67.584 55.296s-30.72 62.464-30.72 100.352c0 33.792 9.216 63.488 28.672 92.16 10.24 15.36 28.672 34.816 54.272 56.32l21.504 17.408-17.408 21.504c-19.456 24.576-39.936 44.032-60.416 57.344-37.888 25.6-79.872 38.912-126.976 38.912-27.648 0-60.416-6.144-99.328-19.456-40.96-14.336-58.368-16.384-65.536-16.384-4.096 0-18.432 1.024-64.512 14.336-39.936 11.264-72.704 16.384-100.352 16.384-6 [...]
+<glyph unicode="&#xeab1;" glyph-name="behance" data-tags="behance" d="M459.776 600.576c0 99.328-80.896 181.248-181.248 181.248h-204.8c-26.624 0-49.152-21.504-49.152-49.152v-570.368c0-26.624 21.504-49.152 49.152-49.152h205.824c99.328 0 181.248 80.896 181.248 181.248 0 64.512-33.792 120.832-83.968 152.576 49.152 32.768 82.944 89.088 82.944 153.6zM403.456 295.424c0-68.608-56.32-124.928-124.928-124.928h-197.632v248.832h197.632c0 0 0 0 0 0 69.632 0 124.928-55.296 124.928-123.904zM279.552 475. [...]
+<glyph unicode="&#xeab2;" glyph-name="chrome" data-tags="chrome" d="M512 940.544c-271.36 0-492.544-221.184-492.544-492.544s221.184-492.544 492.544-492.544c271.36 0 492.544 221.184 492.544 492.544s-221.184 492.544-492.544 492.544zM948.224 448c0-27.648-3.072-55.296-8.192-81.92l-309.248 219.136c-31.744 27.648-73.728 44.032-118.784 44.032-18.432 0-35.84-3.072-52.224-8.192l129.024 256c203.776-36.864 359.424-215.040 359.424-429.056zM387.072 448c0 17.408 3.072 33.792 10.24 49.152l7.168 13.312c2 [...]
+<glyph unicode="&#xeab3;" glyph-name="paypal" data-tags="paypal" d="M833.536 772.608c-15.36 97.28-91.136 160.768-194.56 160.768h-322.56c-22.528 0-41.984-15.36-47.104-36.864l-184.32-732.16c-4.096-14.336 0-29.696 9.216-41.984s23.552-18.432 37.888-18.432h78.848l-20.48-80.896c-4.096-14.336 0-29.696 9.216-41.984s23.552-18.432 37.888-18.432h197.632c22.528 0 41.984 15.36 47.104 36.864l70.656 294.912h83.968c64.512 0 131.072 25.6 187.392 71.68 55.296 45.056 95.232 105.472 110.592 171.008v0c23.552 [...]
+<glyph unicode="&#xeab4;" glyph-name="playstore" data-tags="playstore" d="M935.936 482.816l-814.080 397.312c-12.288 6.144-25.6 5.12-36.864-2.048s-18.432-19.456-18.432-32.768v-795.648c0-13.312 7.168-25.6 18.432-32.768 6.144-4.096 13.312-6.144 20.48-6.144 6.144 0 11.264 1.024 16.384 4.096l814.080 397.312c13.312 6.144 21.504 19.456 21.504 34.816s-8.192 28.672-21.504 35.84zM122.88 107.008v678.912l297.984-345.088-297.984-333.824zM457.728 398.848l95.232-109.568-339.968-165.888 244.736 275.456z [...]
+<glyph unicode="&#xeab5;" glyph-name="soundcloud" data-tags="soundcloud" d="M971.776 403.968c0 53.248-19.456 103.424-55.296 141.312 0 0 0 0 0 0s0 0 0 0 0 0 0 0 0 0 0 0c-29.696 32.768-69.632 55.296-114.688 63.488-25.6 37.888-62.464 66.56-104.448 80.896 0 0 0 0-1.024 0 0 0 0 0-1.024 0-27.648 8.192-51.2 11.264-74.752 9.216-20.48-1.024-35.84-18.432-35.84-37.888v-430.080c0-21.504 17.408-38.912 38.912-38.912h149.504c4.096 0 8.192 1.024 11.264 2.048 104.448 13.312 187.392 102.4 187.392 209.92zM [...]
+<glyph unicode="&#xeab6;" glyph-name="spotify" data-tags="spotify" d="M696.32 227.84c-125.952 60.416-268.288 74.752-401.408 39.936-15.36-4.096-23.552-19.456-20.48-34.816 4.096-15.36 19.456-23.552 34.816-20.48 119.808 31.744 247.808 19.456 362.496-35.84 4.096-2.048 8.192-3.072 12.288-3.072 10.24 0 20.48 6.144 25.6 16.384 7.168 14.336 1.024 30.72-13.312 37.888zM749.568 409.088c-96.256 45.056-201.728 68.608-307.2 68.608-59.392 0-113.664-6.144-164.864-19.456-15.36-4.096-24.576-19.456-20.48-3 [...]
+<glyph unicode="&#xeab7;" glyph-name="android" data-tags="android" d="M449.536 751.104c0-14.704-11.92-26.624-26.624-26.624s-26.624 11.92-26.624 26.624c0 14.704 11.92 26.624 26.624 26.624s26.624-11.92 26.624-26.624zM611.328 751.104c0-14.704-11.92-26.624-26.624-26.624s-26.624 11.92-26.624 26.624c0 14.704 11.92 26.624 26.624 26.624s26.624-11.92 26.624-26.624zM875.52 663.040h-12.288c-12.288 0-23.552-2.048-33.792-6.144l-3.072 10.24c-19.456 62.464-57.344 114.688-105.472 153.6l73.728 76.8c11.26 [...]
+<glyph unicode="&#xeab8;" glyph-name="menu" data-tags="menu" d="M56.32 635.392h911.36c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-911.36c-15.36 0-28.672-12.288-28.672-28.672s13.312-28.672 28.672-28.672zM967.68 475.648h-911.36c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h911.36c15.36 0 28.672 12.288 28.672 28.672s-13.312 28.672-28.672 28.672zM967.68 260.608h-911.36c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h911.36c15.36 0 28. [...]
+<glyph unicode="&#xeab9;" glyph-name="save" data-tags="save" d="M932.864 771.584l-156.672 146.432c-9.216 7.168-20.48 11.264-31.744 11.264h-619.52c-26.624 0-49.152-21.504-49.152-49.152v-863.232c0-26.624 21.504-49.152 49.152-49.152h774.144c26.624 0 49.152 21.504 49.152 49.152v718.848c-1.024 14.336-5.12 26.624-15.36 35.84zM289.792 871.936h340.992v-103.424h-340.992v103.424zM680.96 24.064h-368.64v312.32h368.64v-312.32zM890.88 24.064h-153.6v320.512c0 26.624-21.504 49.152-49.152 49.152h-382.976 [...]
+<glyph unicode="&#xeaba;" glyph-name="share" data-tags="share" d="M480.256 256.512c15.36 0 28.672 12.288 28.672 28.672v256c0 93.184 75.776 168.96 168.96 168.96h204.8l-97.28-99.328c-11.264-11.264-10.24-28.672 0-39.936 5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 20.48 8.192l163.84 166.912-163.84 163.84c-11.264 11.264-28.672 11.264-39.936 0s-11.264-28.672 0-39.936l96.256-96.256h-204.8c-123.904 0-225.28-100.352-225.28-225.28v-257.024c1.024-14.336 13.312-26.624 28.672-26.624zM936.96 321. [...]
+<glyph unicode="&#xeabb;" glyph-name="inbox" data-tags="inbox" d="M953.344 451.072c-15.36 0-28.672-12.288-28.672-28.672v-274.432c0-61.44-48.128-110.592-110.592-110.592h-605.184c-61.44 0-110.592 48.128-110.592 110.592v275.456c0 15.36-12.288 28.672-28.672 28.672s-28.672-12.288-28.672-28.672v-274.432c0-92.16 74.752-166.912 166.912-166.912h606.208c92.16 0 166.912 74.752 166.912 166.912v274.432c1.024 15.36-12.288 27.648-27.648 27.648zM510.976 239.104l169.984 169.984c11.264 11.264 11.264 28.67 [...]
+<glyph unicode="&#xeabc;" glyph-name="shield" data-tags="shield" d="M513.024-17.92l-9.216 3.072c-219.136 74.752-366.592 281.6-366.592 514.048v299.008c0 4.096 3.072 8.192 7.168 10.24l363.52 105.472c2.048 1.024 4.096 1.024 6.144 0l366.592-105.472c4.096-1.024 7.168-5.12 7.168-10.24v-299.008c0-231.424-146.432-438.272-365.568-514.048l-9.216-3.072zM200.704 765.44c-4.096-1.024-7.168-5.12-7.168-10.24v-256c0-204.8 128-388.096 318.464-457.728 191.488 70.656 318.464 252.928 318.464 457.728v257.024c [...]
+<glyph unicode="&#xeabd;" glyph-name="hourglass" data-tags="hourglass" d="M781.312 23.040h-28.672v181.248c0 73.728-31.744 141.312-88.064 186.368l-1.024 1.024c-15.36 11.264-24.576 31.744-24.576 53.248v9.216c0 20.48 10.24 40.96 25.6 54.272 56.32 45.056 88.064 113.664 88.064 186.368v178.176h28.672c15.36 0 28.672 12.288 28.672 28.672s-13.312 27.648-28.672 27.648h-538.624c-15.36 0-27.648-12.288-27.648-27.648s12.288-28.672 28.672-28.672h28.672v-178.176c0-73.728 31.744-141.312 88.064-186.368l1. [...]
+<glyph unicode="&#xeabe;" glyph-name="select" data-tags="select" d="M971.776 37.376l-56.32 56.32 56.32 32.768-163.84 61.44v26.624h-56.32v-18.432h-18.432v-56.32h55.296l55.296-142.336 32.768 56.32 55.296-55.296c5.12-5.12 12.288-8.192 19.456-8.192s14.336 3.072 19.456 8.192c12.288 10.24 12.288 27.648 1.024 38.912zM205.824 196.096h88.064v-56.32h-88.064v56.32zM381.952 196.096h88.064v-56.32h-88.064v56.32zM559.104 196.096h88.064v-56.32h-88.064v56.32zM100.352 213.504h-56.32v-73.728h73.728v56.32h- [...]
+<glyph unicode="&#xeabf;" glyph-name="briefcase" data-tags="briefcase" d="M916.48 674.304h-221.184v64.512c0 53.248-43.008 96.256-96.256 96.256h-173.056c-53.248 0-96.256-43.008-96.256-96.256v-64.512h-222.208c-48.128 0-88.064-39.936-88.064-88.064v-437.248c0-48.128 39.936-88.064 88.064-88.064h808.96c48.128 0 88.064 39.936 88.064 88.064v437.248c0 48.128-39.936 88.064-88.064 88.064zM385.024 738.816c0 22.528 18.432 39.936 39.936 39.936h173.056c22.528 0 39.936-18.432 39.936-39.936v-64.512h-252. [...]
+<glyph unicode="&#xeac0;" glyph-name="funnel" data-tags="funnel" d="M409.6-36.352c-8.192 0-15.36 2.048-22.528 6.144-13.312 8.192-20.48 21.504-20.48 36.864v536.576l-264.192 319.488c-10.24 14.336-12.288 31.744-4.096 46.080 7.168 14.336 22.528 23.552 39.936 23.552h749.568c17.408 0 32.768-10.24 39.936-26.624 7.168-15.36 4.096-32.768-6.144-45.056l-261.12-315.392v-401.408c0-8.192-2.048-20.48-14.336-31.744l-4.096-4.096-209.92-138.24c-7.168-4.096-14.336-6.144-22.528-6.144zM412.672 574.976c6.144- [...]
+<glyph unicode="&#xeac1;" glyph-name="phone-handset" data-tags="phone-handset" d="M765.952-49.664h-13.312c-71.68 3.072-193.536 54.272-198.656 56.32h-1.024c-102.4 48.128-196.608 115.712-280.576 199.68-20.48 20.48-40.96 41.984-62.464 66.56-81.92 98.304-134.144 187.392-166.912 280.576-9.216 24.576-15.36 47.104-20.48 67.584-14.336 60.416-6.144 123.904 20.48 179.2 8.192 16.384 16.384 27.648 24.576 36.864l69.632 69.632c21.504 24.576 54.272 38.912 88.064 38.912h3.072c34.816-2.048 63.488-14.336  [...]
+<glyph unicode="&#xeac2;" glyph-name="gift" data-tags="gift" d="M892.928 673.28h-162.816c54.272 16.384 101.376 40.96 114.688 78.848 13.312 34.816-1.024 71.68-40.96 109.568-44.032 41.984-89.088 57.344-134.144 45.056-81.92-21.504-135.168-128-158.72-188.416-23.552 60.416-76.8 166.912-158.72 188.416-46.080 12.288-91.136-3.072-135.168-45.056v0c-39.936-37.888-54.272-74.752-40.96-109.568 14.336-37.888 61.44-62.464 114.688-78.848h-159.744c-21.504 0-38.912-17.408-38.912-39.936v-194.56c0-16.384 9. [...]
+<glyph unicode="&#xeac3;" glyph-name="eye" data-tags="eye" d="M961.536 482.816c-105.472 118.784-270.336 187.392-451.584 187.392-182.272-3.072-346.112-70.656-451.584-188.416l-29.696-34.816 30.72-33.792c106.496-118.784 271.36-187.392 451.584-187.392 182.272 0 347.136 68.608 451.584 187.392l32.768 34.816-33.792 34.816zM510.976 282.112c-163.84 0-311.296 60.416-407.552 165.888 95.232 102.4 242.688 162.816 406.528 164.864 163.84 0 312.32-60.416 407.552-165.888-94.208-104.448-242.688-164.864-40 [...]
+<glyph unicode="&#xeac4;" glyph-name="gallery" data-tags="gallery" d="M465.92 430.592c0-36.76-29.8-66.56-66.56-66.56s-66.56 29.8-66.56 66.56c0 36.76 29.8 66.56 66.56 66.56s66.56-29.8 66.56-66.56zM954.368 904.704h-475.136c-23.552 0-40.96-17.408-40.96-40.96v-231.424h-368.64c-23.552 0-40.96-17.408-40.96-41.984v-557.056c0-23.552 17.408-41.984 40.96-41.984h475.136c23.552 0 40.96 18.432 40.96 41.984v230.4h368.64c22.528 0 40.96 18.432 40.96 40.96v559.104c1.024 23.552-17.408 40.96-40.96 40.96zM4 [...]
+<glyph unicode="&#xeac5;" glyph-name="image" data-tags="image" d="M894.976 937.472h-765.952c-24.576 0-43.008-18.432-43.008-41.984v-894.976c0-24.576 18.432-41.984 43.008-41.984h765.952c23.552 0 43.008 20.48 43.008 44.032v892.928c0 24.576-18.432 41.984-43.008 41.984zM881.664 881.152v-453.632c-11.264-7.168-20.48-13.312-30.72-20.48-23.552-15.36-46.080-35.84-67.584-55.296-60.416-53.248-117.76-104.448-193.536-75.776-15.36 5.12-29.696 18.432-44.032 30.72l-7.168 6.144c-37.888 30.72-80.896 66.56- [...]
+<glyph unicode="&#xeac6;" glyph-name="full-screen" data-tags="full-screen" d="M975.872 271.872c-15.36 0-28.672-12.288-28.672-28.672v-192.512l-395.264 397.312 394.24 395.264v-191.488c0-15.36 12.288-28.672 28.672-28.672s28.672 12.288 28.672 28.672v288.768h-288.768c-15.36 0-28.672-12.288-28.672-28.672s12.288-28.672 28.672-28.672h193.536l-396.288-395.264-395.264 396.288h192.512c15.36 0 28.672 12.288 28.672 28.672s-12.288 28.672-28.672 28.672h-260.096c0 0 0 0 0 0h-28.672v-27.648c0 0 0 0 0 0v- [...]
+<glyph unicode="&#xeac7;" glyph-name="hammer" data-tags="hammer" d="M892.928 856.576l-99.328 75.776c-10.24 9.216-23.552 10.24-30.72 10.24h-602.112c-26.624 0-49.152-21.504-49.152-49.152v-153.6c0-26.624 21.504-49.152 49.152-49.152h266.24v-265.216h-68.608c-11.264 0-20.48-9.216-20.48-20.48v-432.128c0-11.264 9.216-20.48 20.48-20.48h194.56c11.264 0 20.48 9.216 20.48 20.48v433.152c0 11.264-9.216 20.48-20.48 20.48h-69.632v265.216h280.576c9.216 0 19.456 3.072 27.648 9.216l102.4 77.824c11.264 9.21 [...]
+<glyph unicode="&#xeac8;" glyph-name="twitter-filled" data-tags="twitter-filled" d="M884.736 705.024l58.368 73.728c17.408 19.456 22.528 33.792 24.576 43.008-45.056-28.672-88.064-36.864-118.784-37.888h-12.288l-7.168 8.192c-36.864 32.768-82.944 51.2-133.12 51.2-107.52 0-194.56-88.064-194.56-194.56 0-8.192 0-15.36 1.024-22.528l5.12-31.744-32.768 1.024c-199.68 5.12-360.448 174.080-388.096 204.8-43.008-79.872-19.456-152.576 8.192-198.656l52.224-87.040-82.944 45.056c1.024-64.512 26.624-115.712 [...]
+<glyph unicode="&#xeac9;" glyph-name="joomla" data-tags="joomla" d="M893.952 262.656c13.312 64.512-1.024 132.096-39.936 185.344 38.912 53.248 54.272 120.832 39.936 185.344 19.456 7.168 37.888 19.456 53.248 34.816 59.392 59.392 59.392 155.648 0 214.016-29.696 28.672-67.584 44.032-107.52 44.032-40.96 0-78.848-15.36-107.52-44.032-15.36-15.36-26.624-32.768-34.816-53.248-64.512 13.312-132.096-1.024-185.344-39.936-53.248 38.912-120.832 54.272-185.344 39.936-7.168 19.456-19.456 37.888-34.816 53 [...]
+<glyph unicode="&#xeaca;" glyph-name="linkedin-filled" data-tags="linkedin-filled" d="M0 960v-1024h1024v1024h-1024zM294.912 43.52c0-26.624-21.504-49.152-49.152-49.152h-141.312c-26.624 0-49.152 21.504-49.152 49.152v478.208c0 26.624 21.504 49.152 49.152 49.152h141.312c26.624 0 49.152-21.504 49.152-49.152v-478.208zM175.104 644.608c-70.656 0-128 57.344-128 128s57.344 128 128 128c70.656 0 128-57.344 128-128s-56.32-128-128-128zM976.896 43.52c0-26.624-21.504-49.152-49.152-49.152h-140.288c-26.62 [...]
+<glyph unicode="&#xeacb;" glyph-name="amex" data-tags="amex" d="M200.704 387.584h80.896l11.264-45.056h65.536v173.056h4.096l50.176-163.84h35.84l49.152 163.84h4.096v-173.056h33.792v210.944h-59.392l-48.128-163.84-48.128 163.84h-59.392v-197.632l-49.152 197.632h-68.608l-51.2-209.92h33.792l15.36 44.032zM233.472 525.824h15.36l25.6-107.52h-67.584l26.624 107.52zM740.352 343.552h3.072l46.080 78.848 45.056-78.848h37.888l-61.44 103.424 61.44 107.52h-37.888l-46.080-82.944-45.056 82.944h-176.128v-208. [...]
+</font></defs></svg>
\ No newline at end of file
diff --git a/assets/images/achievements1-9eb1dec5b2fa480e897cf1c12d1425d8.png b/assets/images/achievements1-9eb1dec5b2fa480e897cf1c12d1425d8.png
new file mode 100644
index 00000000..a8f4cdfb
Binary files /dev/null and b/assets/images/achievements1-9eb1dec5b2fa480e897cf1c12d1425d8.png differ
diff --git a/assets/images/achievements2-5aa9b3c14892f9b1d8b054e82f3b4ad3.png b/assets/images/achievements2-5aa9b3c14892f9b1d8b054e82f3b4ad3.png
new file mode 100644
index 00000000..7038243d
Binary files /dev/null and b/assets/images/achievements2-5aa9b3c14892f9b1d8b054e82f3b4ad3.png differ
diff --git a/assets/images/add_dependency-281888d96a8f3ce6e9af01efef9de643.png b/assets/images/add_dependency-281888d96a8f3ce6e9af01efef9de643.png
new file mode 100644
index 00000000..21f76a46
Binary files /dev/null and b/assets/images/add_dependency-281888d96a8f3ce6e9af01efef9de643.png differ
diff --git a/assets/images/add_projectconfiguration-26b97212de577a0cbc46b59f1eceea0b.png b/assets/images/add_projectconfiguration-26b97212de577a0cbc46b59f1eceea0b.png
new file mode 100644
index 00000000..df24d752
Binary files /dev/null and b/assets/images/add_projectconfiguration-26b97212de577a0cbc46b59f1eceea0b.png differ
diff --git a/assets/images/advanced-e5c462ae9a888deddb5939a7c8065732.png b/assets/images/advanced-e5c462ae9a888deddb5939a7c8065732.png
new file mode 100644
index 00000000..17b9f5af
Binary files /dev/null and b/assets/images/advanced-e5c462ae9a888deddb5939a7c8065732.png differ
diff --git a/assets/images/after_the_transformation-8b3717c58b603d12e8e87c8267068672.png b/assets/images/after_the_transformation-8b3717c58b603d12e8e87c8267068672.png
new file mode 100644
index 00000000..e011dd6a
Binary files /dev/null and b/assets/images/after_the_transformation-8b3717c58b603d12e8e87c8267068672.png differ
diff --git a/assets/images/alarm-609ca86190f86b8ad9a8c4d212705add.png b/assets/images/alarm-609ca86190f86b8ad9a8c4d212705add.png
new file mode 100644
index 00000000..9720adf7
Binary files /dev/null and b/assets/images/alarm-609ca86190f86b8ad9a8c4d212705add.png differ
diff --git a/assets/images/alarm-8fa330c6a2d27cfd62878dcd20cd524c.png b/assets/images/alarm-8fa330c6a2d27cfd62878dcd20cd524c.png
new file mode 100644
index 00000000..6eace6a0
Binary files /dev/null and b/assets/images/alarm-8fa330c6a2d27cfd62878dcd20cd524c.png differ
diff --git a/assets/images/alarm-c2104c1839a1b4bb668d48f092f25faa.png b/assets/images/alarm-c2104c1839a1b4bb668d48f092f25faa.png
new file mode 100644
index 00000000..e283edb9
Binary files /dev/null and b/assets/images/alarm-c2104c1839a1b4bb668d48f092f25faa.png differ
diff --git a/assets/images/alarm_eamil-29b2875dbfcbeb071fef815ab751786a.png b/assets/images/alarm_eamil-29b2875dbfcbeb071fef815ab751786a.png
new file mode 100644
index 00000000..0347ac39
Binary files /dev/null and b/assets/images/alarm_eamil-29b2875dbfcbeb071fef815ab751786a.png differ
diff --git a/assets/images/alarm_email-fd4c9ba1995ec69b7557bd1378dce737.png b/assets/images/alarm_email-fd4c9ba1995ec69b7557bd1378dce737.png
new file mode 100644
index 00000000..49c5a6ef
Binary files /dev/null and b/assets/images/alarm_email-fd4c9ba1995ec69b7557bd1378dce737.png differ
diff --git a/assets/images/alarm_information-b67199a66276ada93c1dba47a7581dc9.png b/assets/images/alarm_information-b67199a66276ada93c1dba47a7581dc9.png
new file mode 100644
index 00000000..84ecc5cc
Binary files /dev/null and b/assets/images/alarm_information-b67199a66276ada93c1dba47a7581dc9.png differ
diff --git a/assets/images/alert_add_ding_talk-b3caec1ffb7d3d854b81ae1cb2b03240.png b/assets/images/alert_add_ding_talk-b3caec1ffb7d3d854b81ae1cb2b03240.png
new file mode 100644
index 00000000..d87906c5
Binary files /dev/null and b/assets/images/alert_add_ding_talk-b3caec1ffb7d3d854b81ae1cb2b03240.png differ
diff --git a/assets/images/alert_add_email-ce05ec3b962e3da8715421bd4ba067b6.png b/assets/images/alert_add_email-ce05ec3b962e3da8715421bd4ba067b6.png
new file mode 100644
index 00000000..53188f3d
Binary files /dev/null and b/assets/images/alert_add_email-ce05ec3b962e3da8715421bd4ba067b6.png differ
diff --git a/assets/images/alert_add_example-cff0970a99cd0619307c145f53b97489.png b/assets/images/alert_add_example-cff0970a99cd0619307c145f53b97489.png
new file mode 100644
index 00000000..ad09ad95
Binary files /dev/null and b/assets/images/alert_add_example-cff0970a99cd0619307c145f53b97489.png differ
diff --git a/assets/images/alert_add_lark-d2ab4845e83ef632194e1f742891f5e9.png b/assets/images/alert_add_lark-d2ab4845e83ef632194e1f742891f5e9.png
new file mode 100644
index 00000000..92fa8f25
Binary files /dev/null and b/assets/images/alert_add_lark-d2ab4845e83ef632194e1f742891f5e9.png differ
diff --git a/assets/images/alert_add_setting-cf588ab5ece868ab22b6e1e6e4ba261f.png b/assets/images/alert_add_setting-cf588ab5ece868ab22b6e1e6e4ba261f.png
new file mode 100644
index 00000000..34cb94b7
Binary files /dev/null and b/assets/images/alert_add_setting-cf588ab5ece868ab22b6e1e6e4ba261f.png differ
diff --git a/assets/images/alert_add_wecom-63b035f6ca0c4399c8e3546b8d87834d.png b/assets/images/alert_add_wecom-63b035f6ca0c4399c8e3546b8d87834d.png
new file mode 100644
index 00000000..c70f157c
Binary files /dev/null and b/assets/images/alert_add_wecom-63b035f6ca0c4399c8e3546b8d87834d.png differ
diff --git a/assets/images/alert_application_example-c31cb94e6de97e1a980100e28ef1dfb4.png b/assets/images/alert_application_example-c31cb94e6de97e1a980100e28ef1dfb4.png
new file mode 100644
index 00000000..69b5c7b1
Binary files /dev/null and b/assets/images/alert_application_example-c31cb94e6de97e1a980100e28ef1dfb4.png differ
diff --git a/assets/images/alert_conf_delete-4de431dcb0c2771fa0f982f9f5400303.png b/assets/images/alert_conf_delete-4de431dcb0c2771fa0f982f9f5400303.png
new file mode 100644
index 00000000..af4ddb8e
Binary files /dev/null and b/assets/images/alert_conf_delete-4de431dcb0c2771fa0f982f9f5400303.png differ
diff --git a/assets/images/alert_conf_mail_sender-817f2078cfe746f369903506b4e21c67.png b/assets/images/alert_conf_mail_sender-817f2078cfe746f369903506b4e21c67.png
new file mode 100644
index 00000000..c0d0c01b
Binary files /dev/null and b/assets/images/alert_conf_mail_sender-817f2078cfe746f369903506b4e21c67.png differ
diff --git a/assets/images/alert_delete_success-2bbd348dbe458d95b505211eedb1ef2e.png b/assets/images/alert_delete_success-2bbd348dbe458d95b505211eedb1ef2e.png
new file mode 100644
index 00000000..cd9ffbe1
Binary files /dev/null and b/assets/images/alert_delete_success-2bbd348dbe458d95b505211eedb1ef2e.png differ
diff --git a/assets/images/alert_edit-9362d5ea6791b866c0fcdb106b04fda5.png b/assets/images/alert_edit-9362d5ea6791b866c0fcdb106b04fda5.png
new file mode 100644
index 00000000..8ed2cb60
Binary files /dev/null and b/assets/images/alert_edit-9362d5ea6791b866c0fcdb106b04fda5.png differ
diff --git a/assets/images/alert_send_test-7cd2e3cce6cfc5a7949bc382c82bddde.png b/assets/images/alert_send_test-7cd2e3cce6cfc5a7949bc382c82bddde.png
new file mode 100644
index 00000000..cb7d34d1
Binary files /dev/null and b/assets/images/alert_send_test-7cd2e3cce6cfc5a7949bc382c82bddde.png differ
diff --git a/assets/images/alert_send_test_success-3394a1b85454dd88f5504e2cb2e7772b.png b/assets/images/alert_send_test_success-3394a1b85454dd88f5504e2cb2e7772b.png
new file mode 100644
index 00000000..4ad39181
Binary files /dev/null and b/assets/images/alert_send_test_success-3394a1b85454dd88f5504e2cb2e7772b.png differ
diff --git a/assets/images/alert_test_ding_talk-00a51843a9faf5a5dc793a12580db8af.png b/assets/images/alert_test_ding_talk-00a51843a9faf5a5dc793a12580db8af.png
new file mode 100644
index 00000000..19ceb6f8
Binary files /dev/null and b/assets/images/alert_test_ding_talk-00a51843a9faf5a5dc793a12580db8af.png differ
diff --git a/assets/images/alert_test_email-2c342e2867b99c5bb4b60796aab9a203.png b/assets/images/alert_test_email-2c342e2867b99c5bb4b60796aab9a203.png
new file mode 100644
index 00000000..f4c39cd3
Binary files /dev/null and b/assets/images/alert_test_email-2c342e2867b99c5bb4b60796aab9a203.png differ
diff --git a/assets/images/alert_test_lark-8786b1c7559ecd42b93f95a74662b9af.png b/assets/images/alert_test_lark-8786b1c7559ecd42b93f95a74662b9af.png
new file mode 100644
index 00000000..231afbb7
Binary files /dev/null and b/assets/images/alert_test_lark-8786b1c7559ecd42b93f95a74662b9af.png differ
diff --git a/assets/images/alert_test_wechat-2cc8875b55d42a6ad43b5094c38394ac.png b/assets/images/alert_test_wechat-2cc8875b55d42a6ad43b5094c38394ac.png
new file mode 100644
index 00000000..445a4c16
Binary files /dev/null and b/assets/images/alert_test_wechat-2cc8875b55d42a6ad43b5094c38394ac.png differ
diff --git a/assets/images/aliyun-43dec052b5792743675fb5a0e5980ebc.png b/assets/images/aliyun-43dec052b5792743675fb5a0e5980ebc.png
new file mode 100644
index 00000000..689e8dbc
Binary files /dev/null and b/assets/images/aliyun-43dec052b5792743675fb5a0e5980ebc.png differ
diff --git a/assets/images/all_datastream-f095c45ce30fe21e178eac323c6a7a37.jpg b/assets/images/all_datastream-f095c45ce30fe21e178eac323c6a7a37.jpg
new file mode 100644
index 00000000..0080895c
Binary files /dev/null and b/assets/images/all_datastream-f095c45ce30fe21e178eac323c6a7a37.jpg differ
diff --git a/assets/images/api_copy-ceff34954a24abe2b3e04bc6d10d4f26.png b/assets/images/api_copy-ceff34954a24abe2b3e04bc6d10d4f26.png
new file mode 100644
index 00000000..89419eaa
Binary files /dev/null and b/assets/images/api_copy-ceff34954a24abe2b3e04bc6d10d4f26.png differ
diff --git a/assets/images/application-b12eb5d36d548a02e52ec12a28ddcec0.png b/assets/images/application-b12eb5d36d548a02e52ec12a28ddcec0.png
new file mode 100644
index 00000000..7586a155
Binary files /dev/null and b/assets/images/application-b12eb5d36d548a02e52ec12a28ddcec0.png differ
diff --git a/assets/images/application-c99d4b0512fdb7d214e5429769629930.png b/assets/images/application-c99d4b0512fdb7d214e5429769629930.png
new file mode 100644
index 00000000..8e4f0878
Binary files /dev/null and b/assets/images/application-c99d4b0512fdb7d214e5429769629930.png differ
diff --git a/assets/images/application_interface-51c8f96e343842f32b56c3c889064cba.png b/assets/images/application_interface-51c8f96e343842f32b56c3c889064cba.png
new file mode 100644
index 00000000..99e873be
Binary files /dev/null and b/assets/images/application_interface-51c8f96e343842f32b56c3c889064cba.png differ
diff --git a/assets/images/application_job-5518b58af2b481d7bdb36a7bae252c41.png b/assets/images/application_job-5518b58af2b481d7bdb36a7bae252c41.png
new file mode 100644
index 00000000..7f9ea7ee
Binary files /dev/null and b/assets/images/application_job-5518b58af2b481d7bdb36a7bae252c41.png differ
diff --git a/assets/images/application_setting-48542837b22debfeca15eddaf6ea93a0.png b/assets/images/application_setting-48542837b22debfeca15eddaf6ea93a0.png
new file mode 100644
index 00000000..254b30ab
Binary files /dev/null and b/assets/images/application_setting-48542837b22debfeca15eddaf6ea93a0.png differ
diff --git a/assets/images/arthas-31f8df2a167d53420d2b4a828003a449.png b/assets/images/arthas-31f8df2a167d53420d2b4a828003a449.png
new file mode 100644
index 00000000..f38aa87a
Binary files /dev/null and b/assets/images/arthas-31f8df2a167d53420d2b4a828003a449.png differ
diff --git a/assets/images/arthas_log-fbc7dc0891690e569c6ad63359fc52fd.png b/assets/images/arthas_log-fbc7dc0891690e569c6ad63359fc52fd.png
new file mode 100644
index 00000000..99e6575b
Binary files /dev/null and b/assets/images/arthas_log-fbc7dc0891690e569c6ad63359fc52fd.png differ
diff --git a/assets/images/author-487ad3c1ad9a397cd4c2614f54976368.png b/assets/images/author-487ad3c1ad9a397cd4c2614f54976368.png
new file mode 100644
index 00000000..dbb68d38
Binary files /dev/null and b/assets/images/author-487ad3c1ad9a397cd4c2614f54976368.png differ
diff --git a/assets/images/author-c3dabbb31d7cea1b5164a75a94ca3008.png b/assets/images/author-c3dabbb31d7cea1b5164a75a94ca3008.png
new file mode 100644
index 00000000..6d074a85
Binary files /dev/null and b/assets/images/author-c3dabbb31d7cea1b5164a75a94ca3008.png differ
diff --git a/assets/images/autor-4fee09aa3abf8842dcdbb7ada1aa9409.png b/assets/images/autor-4fee09aa3abf8842dcdbb7ada1aa9409.png
new file mode 100644
index 00000000..be766a66
Binary files /dev/null and b/assets/images/autor-4fee09aa3abf8842dcdbb7ada1aa9409.png differ
diff --git a/assets/images/call_link-da9d24e3a1993590cf25da174d5fb676.png b/assets/images/call_link-da9d24e3a1993590cf25da174d5fb676.png
new file mode 100644
index 00000000..636c75db
Binary files /dev/null and b/assets/images/call_link-da9d24e3a1993590cf25da174d5fb676.png differ
diff --git a/assets/images/canal_job-fbfcee343ac2473e1b22d199da463ad4.png b/assets/images/canal_job-fbfcee343ac2473e1b22d199da463ad4.png
new file mode 100644
index 00000000..b1cfbe3b
Binary files /dev/null and b/assets/images/canal_job-fbfcee343ac2473e1b22d199da463ad4.png differ
diff --git a/assets/images/capability-2f9e6fd6a844689944e87e108221d5d9.png b/assets/images/capability-2f9e6fd6a844689944e87e108221d5d9.png
new file mode 100644
index 00000000..abace805
Binary files /dev/null and b/assets/images/capability-2f9e6fd6a844689944e87e108221d5d9.png differ
diff --git a/assets/images/certificate-2f5b95ebb0816ead327ec169c12996b6.png b/assets/images/certificate-2f5b95ebb0816ead327ec169c12996b6.png
new file mode 100644
index 00000000..5a789ff0
Binary files /dev/null and b/assets/images/certificate-2f5b95ebb0816ead327ec169c12996b6.png differ
diff --git a/assets/images/challenges-2c1babbcd18fc83fb47c4447fa413a95.png b/assets/images/challenges-2c1babbcd18fc83fb47c4447fa413a95.png
new file mode 100644
index 00000000..474a52e4
Binary files /dev/null and b/assets/images/challenges-2c1babbcd18fc83fb47c4447fa413a95.png differ
diff --git a/assets/images/checkpoint-acf7379b24a3bac6695a517b425f466b.png b/assets/images/checkpoint-acf7379b24a3bac6695a517b425f466b.png
new file mode 100644
index 00000000..8c1863b3
Binary files /dev/null and b/assets/images/checkpoint-acf7379b24a3bac6695a517b425f466b.png differ
diff --git a/assets/images/checkpoint-e9edd22da076247770a0b40595626fb7.png b/assets/images/checkpoint-e9edd22da076247770a0b40595626fb7.png
new file mode 100644
index 00000000..4dfd2499
Binary files /dev/null and b/assets/images/checkpoint-e9edd22da076247770a0b40595626fb7.png differ
diff --git a/assets/images/checkpoint_configuration-861a4f0439b1a0f8aade35e10e6b60c5.png b/assets/images/checkpoint_configuration-861a4f0439b1a0f8aade35e10e6b60c5.png
new file mode 100644
index 00000000..c5e89506
Binary files /dev/null and b/assets/images/checkpoint_configuration-861a4f0439b1a0f8aade35e10e6b60c5.png differ
diff --git a/assets/images/cluster-96bd791c1c4f3d6144fbd1d134d89cd6.png b/assets/images/cluster-96bd791c1c4f3d6144fbd1d134d89cd6.png
new file mode 100644
index 00000000..cc9ca434
Binary files /dev/null and b/assets/images/cluster-96bd791c1c4f3d6144fbd1d134d89cd6.png differ
diff --git a/assets/images/code1-1a9d0a485d9f0939bcd7732fd87bf103.png b/assets/images/code1-1a9d0a485d9f0939bcd7732fd87bf103.png
new file mode 100644
index 00000000..c78e82b7
Binary files /dev/null and b/assets/images/code1-1a9d0a485d9f0939bcd7732fd87bf103.png differ
diff --git a/assets/images/code2-648eebe0861d540b9c3781536bdd1704.png b/assets/images/code2-648eebe0861d540b9c3781536bdd1704.png
new file mode 100644
index 00000000..19e5d7bb
Binary files /dev/null and b/assets/images/code2-648eebe0861d540b9c3781536bdd1704.png differ
diff --git a/assets/images/code_notebook-542046feb8a312b5f6c057af551421c6.png b/assets/images/code_notebook-542046feb8a312b5f6c057af551421c6.png
new file mode 100644
index 00000000..40bdd070
Binary files /dev/null and b/assets/images/code_notebook-542046feb8a312b5f6c057af551421c6.png differ
diff --git a/assets/images/coder1-3782709e13fa240eb6c400a7faa1e905.png b/assets/images/coder1-3782709e13fa240eb6c400a7faa1e905.png
new file mode 100644
index 00000000..fec42438
Binary files /dev/null and b/assets/images/coder1-3782709e13fa240eb6c400a7faa1e905.png differ
diff --git a/assets/images/coder2-134fadb297b49b5f597b40d7a12ecfbf.png b/assets/images/coder2-134fadb297b49b5f597b40d7a12ecfbf.png
new file mode 100644
index 00000000..e1fd005f
Binary files /dev/null and b/assets/images/coder2-134fadb297b49b5f597b40d7a12ecfbf.png differ
diff --git a/assets/images/conf-42f135b00a0b3048efb6aa939efd30ac.png b/assets/images/conf-42f135b00a0b3048efb6aa939efd30ac.png
new file mode 100644
index 00000000..76888fe5
Binary files /dev/null and b/assets/images/conf-42f135b00a0b3048efb6aa939efd30ac.png differ
diff --git a/assets/images/conf-ff77bc47a1f6af137a3326cc05cfdfee.png b/assets/images/conf-ff77bc47a1f6af137a3326cc05cfdfee.png
new file mode 100644
index 00000000..8b5876b8
Binary files /dev/null and b/assets/images/conf-ff77bc47a1f6af137a3326cc05cfdfee.png differ
diff --git a/assets/images/connectors-399832ebea5ac259c19088bb4290efc2.png b/assets/images/connectors-399832ebea5ac259c19088bb4290efc2.png
new file mode 100644
index 00000000..5dd5777d
Binary files /dev/null and b/assets/images/connectors-399832ebea5ac259c19088bb4290efc2.png differ
diff --git a/assets/images/connectors-d405c391d0cfdd753e7b329433275117.png b/assets/images/connectors-d405c391d0cfdd753e7b329433275117.png
new file mode 100644
index 00000000..2bef306a
Binary files /dev/null and b/assets/images/connectors-d405c391d0cfdd753e7b329433275117.png differ
diff --git a/assets/images/contribution_and_enhancement_en-2d749c52f2c4255dff234b275433f25c.png b/assets/images/contribution_and_enhancement_en-2d749c52f2c4255dff234b275433f25c.png
new file mode 100644
index 00000000..7b27927f
Binary files /dev/null and b/assets/images/contribution_and_enhancement_en-2d749c52f2c4255dff234b275433f25c.png differ
diff --git a/assets/images/cover-87ff8832da8f5d9398ed5a1e2f283d0d.png b/assets/images/cover-87ff8832da8f5d9398ed5a1e2f283d0d.png
new file mode 100644
index 00000000..a4f8a27c
Binary files /dev/null and b/assets/images/cover-87ff8832da8f5d9398ed5a1e2f283d0d.png differ
diff --git a/assets/images/cover-cfb54d18805b5d425d6bbd2659db2533.png b/assets/images/cover-cfb54d18805b5d425d6bbd2659db2533.png
new file mode 100644
index 00000000..49aecae5
Binary files /dev/null and b/assets/images/cover-cfb54d18805b5d425d6bbd2659db2533.png differ
diff --git a/assets/images/create_badge_label-a6542822bd5a1e9274ca0017d25a9ccd.png b/assets/images/create_badge_label-a6542822bd5a1e9274ca0017d25a9ccd.png
new file mode 100644
index 00000000..dbb6c145
Binary files /dev/null and b/assets/images/create_badge_label-a6542822bd5a1e9274ca0017d25a9ccd.png differ
diff --git a/assets/images/dashboard-78745d8d3ebe422b166a17631bfbe622.png b/assets/images/dashboard-78745d8d3ebe422b166a17631bfbe622.png
new file mode 100644
index 00000000..8754a5c8
Binary files /dev/null and b/assets/images/dashboard-78745d8d3ebe422b166a17631bfbe622.png differ
diff --git a/assets/images/data_access_platform-a2d62b477382c15128b76c60e9c6be53.png b/assets/images/data_access_platform-a2d62b477382c15128b76c60e9c6be53.png
new file mode 100644
index 00000000..b473883b
Binary files /dev/null and b/assets/images/data_access_platform-a2d62b477382c15128b76c60e9c6be53.png differ
diff --git a/assets/images/data_aggregation-e5caba8eee38a8444df6cb3382a1d978.png b/assets/images/data_aggregation-e5caba8eee38a8444df6cb3382a1d978.png
new file mode 100644
index 00000000..bd345f66
Binary files /dev/null and b/assets/images/data_aggregation-e5caba8eee38a8444df6cb3382a1d978.png differ
diff --git a/assets/images/data_merging-b8ac385c5de9f96c13163aa65e382496.png b/assets/images/data_merging-b8ac385c5de9f96c13163aa65e382496.png
new file mode 100644
index 00000000..1413fd06
Binary files /dev/null and b/assets/images/data_merging-b8ac385c5de9f96c13163aa65e382496.png differ
diff --git a/assets/images/data_processing_processes_en-8cfb9567159e06c1ffd041785a699342.png b/assets/images/data_processing_processes_en-8cfb9567159e06c1ffd041785a699342.png
new file mode 100644
index 00000000..442e9dc8
Binary files /dev/null and b/assets/images/data_processing_processes_en-8cfb9567159e06c1ffd041785a699342.png differ
diff --git a/assets/images/data_source-5f9b710b4186a08571192ae81ab350d1.png b/assets/images/data_source-5f9b710b4186a08571192ae81ab350d1.png
new file mode 100644
index 00000000..9a704a06
Binary files /dev/null and b/assets/images/data_source-5f9b710b4186a08571192ae81ab350d1.png differ
diff --git a/assets/images/dependency-172169d43c50f455fb7e2c7e08de32a2.png b/assets/images/dependency-172169d43c50f455fb7e2c7e08de32a2.png
new file mode 100644
index 00000000..3bf4b37c
Binary files /dev/null and b/assets/images/dependency-172169d43c50f455fb7e2c7e08de32a2.png differ
diff --git a/assets/images/dependency-a3b9ff29795acb8a1fd4ed6bb773d53e.png b/assets/images/dependency-a3b9ff29795acb8a1fd4ed6bb773d53e.png
new file mode 100644
index 00000000..ef350410
Binary files /dev/null and b/assets/images/dependency-a3b9ff29795acb8a1fd4ed6bb773d53e.png differ
diff --git a/assets/images/deploy-d486a5c0eb238a9f2a6ce5f2b3013500.png b/assets/images/deploy-d486a5c0eb238a9f2a6ce5f2b3013500.png
new file mode 100644
index 00000000..a9b38619
Binary files /dev/null and b/assets/images/deploy-d486a5c0eb238a9f2a6ce5f2b3013500.png differ
diff --git a/assets/images/detail-e9ee4c14e45068bea5e1edabec596bee.png b/assets/images/detail-e9ee4c14e45068bea5e1edabec596bee.png
new file mode 100644
index 00000000..8cd9022f
Binary files /dev/null and b/assets/images/detail-e9ee4c14e45068bea5e1edabec596bee.png differ
diff --git a/assets/images/development_efficiency_en-5beb07a0a515b5b2f304a6f8099096cc.png b/assets/images/development_efficiency_en-5beb07a0a515b5b2f304a6f8099096cc.png
new file mode 100644
index 00000000..df702d49
Binary files /dev/null and b/assets/images/development_efficiency_en-5beb07a0a515b5b2f304a6f8099096cc.png differ
diff --git a/assets/images/development_process-476918cfd29159983fe26b36ef487895.png b/assets/images/development_process-476918cfd29159983fe26b36ef487895.png
new file mode 100644
index 00000000..ba5b07cd
Binary files /dev/null and b/assets/images/development_process-476918cfd29159983fe26b36ef487895.png differ
diff --git a/assets/images/devops_platform_en-02d9f0b165baf303a20d7c9a8eb091c6.png b/assets/images/devops_platform_en-02d9f0b165baf303a20d7c9a8eb091c6.png
new file mode 100644
index 00000000..a97efb26
Binary files /dev/null and b/assets/images/devops_platform_en-02d9f0b165baf303a20d7c9a8eb091c6.png differ
diff --git a/assets/images/difficulties_en-51da13514ddd61386799291d4c9d85d1.png b/assets/images/difficulties_en-51da13514ddd61386799291d4c9d85d1.png
new file mode 100644
index 00000000..026d610d
Binary files /dev/null and b/assets/images/difficulties_en-51da13514ddd61386799291d4c9d85d1.png differ
diff --git a/assets/images/docker_register_setting-55ff0f03235a1708b428b016d8ccc8a2.png b/assets/images/docker_register_setting-55ff0f03235a1708b428b016d8ccc8a2.png
new file mode 100644
index 00000000..594b73fc
Binary files /dev/null and b/assets/images/docker_register_setting-55ff0f03235a1708b428b016d8ccc8a2.png differ
diff --git a/assets/images/docker_setting-80acf43cf64fd390e4d50da8830671c0.png b/assets/images/docker_setting-80acf43cf64fd390e4d50da8830671c0.png
new file mode 100644
index 00000000..19194275
Binary files /dev/null and b/assets/images/docker_setting-80acf43cf64fd390e4d50da8830671c0.png differ
diff --git a/assets/images/dockersystem_setting-60d5b7d9e930185cf1a9a404beab9dc0.png b/assets/images/dockersystem_setting-60d5b7d9e930185cf1a9a404beab9dc0.png
new file mode 100644
index 00000000..b04921fd
Binary files /dev/null and b/assets/images/dockersystem_setting-60d5b7d9e930185cf1a9a404beab9dc0.png differ
diff --git a/assets/images/doris-4baaea78343b928b0a798ae9238c489f.png b/assets/images/doris-4baaea78343b928b0a798ae9238c489f.png
new file mode 100644
index 00000000..7812764b
Binary files /dev/null and b/assets/images/doris-4baaea78343b928b0a798ae9238c489f.png differ
diff --git a/assets/images/dwd_business_order-a017b7fa6dac855794cf9720a0421090.png b/assets/images/dwd_business_order-a017b7fa6dac855794cf9720a0421090.png
new file mode 100644
index 00000000..10e3a7c5
Binary files /dev/null and b/assets/images/dwd_business_order-a017b7fa6dac855794cf9720a0421090.png differ
diff --git a/assets/images/dwd_orders-8343ec8277c69354f8ee7cac0c4c9f91.png b/assets/images/dwd_orders-8343ec8277c69354f8ee7cac0c4c9f91.png
new file mode 100644
index 00000000..8e186974
Binary files /dev/null and b/assets/images/dwd_orders-8343ec8277c69354f8ee7cac0c4c9f91.png differ
diff --git a/assets/images/dwm_business_order_count-1abbcf7d6b31f15e49f2e035ecfdb8d7.png b/assets/images/dwm_business_order_count-1abbcf7d6b31f15e49f2e035ecfdb8d7.png
new file mode 100644
index 00000000..b6c0d290
Binary files /dev/null and b/assets/images/dwm_business_order_count-1abbcf7d6b31f15e49f2e035ecfdb8d7.png differ
diff --git a/assets/images/dws_business_order_count_op-72bb62943dcef89451b47db142cfe689.png b/assets/images/dws_business_order_count_op-72bb62943dcef89451b47db142cfe689.png
new file mode 100644
index 00000000..1e155006
Binary files /dev/null and b/assets/images/dws_business_order_count_op-72bb62943dcef89451b47db142cfe689.png differ
diff --git a/assets/images/dynamic_properties-33cd67364d80285f0e480974a60d52ff.jpg b/assets/images/dynamic_properties-33cd67364d80285f0e480974a60d52ff.jpg
new file mode 100644
index 00000000..a62f8dd1
Binary files /dev/null and b/assets/images/dynamic_properties-33cd67364d80285f0e480974a60d52ff.jpg differ
diff --git a/assets/images/earnings-40d9739c55527d669e4f90c739571049.png b/assets/images/earnings-40d9739c55527d669e4f90c739571049.png
new file mode 100644
index 00000000..9f1ad5d4
Binary files /dev/null and b/assets/images/earnings-40d9739c55527d669e4f90c739571049.png differ
diff --git a/assets/images/email_setting-7b8ddba6688c75cfad32f5d16e93354f.png b/assets/images/email_setting-7b8ddba6688c75cfad32f5d16e93354f.png
new file mode 100644
index 00000000..55cc3676
Binary files /dev/null and b/assets/images/email_setting-7b8ddba6688c75cfad32f5d16e93354f.png differ
diff --git a/assets/images/enterprise-c8641726b9205b14e3e330d10e73bb68.png b/assets/images/enterprise-c8641726b9205b14e3e330d10e73bb68.png
new file mode 100644
index 00000000..fce2c7eb
Binary files /dev/null and b/assets/images/enterprise-c8641726b9205b14e3e330d10e73bb68.png differ
diff --git a/assets/images/execution_mode-1182aeb8efe9572ec98c2a2b95293dc1.png b/assets/images/execution_mode-1182aeb8efe9572ec98c2a2b95293dc1.png
new file mode 100644
index 00000000..42fb9f47
Binary files /dev/null and b/assets/images/execution_mode-1182aeb8efe9572ec98c2a2b95293dc1.png differ
diff --git a/assets/images/extended_parameters-75c3f87809d0675c2fc82bc8d2ec096e.jpg b/assets/images/extended_parameters-75c3f87809d0675c2fc82bc8d2ec096e.jpg
new file mode 100644
index 00000000..5cafc4db
Binary files /dev/null and b/assets/images/extended_parameters-75c3f87809d0675c2fc82bc8d2ec096e.jpg differ
diff --git a/assets/images/field_desensitization-3005c6f1d9c2f7ad0530d09a5a9aecea.png b/assets/images/field_desensitization-3005c6f1d9c2f7ad0530d09a5a9aecea.png
new file mode 100644
index 00000000..4367d7c5
Binary files /dev/null and b/assets/images/field_desensitization-3005c6f1d9c2f7ad0530d09a5a9aecea.png differ
diff --git a/assets/images/field_desensitization_table-e200cbbf0081e2d416411659a188bb90.png b/assets/images/field_desensitization_table-e200cbbf0081e2d416411659a188bb90.png
new file mode 100644
index 00000000..30fcb070
Binary files /dev/null and b/assets/images/field_desensitization_table-e200cbbf0081e2d416411659a188bb90.png differ
diff --git a/assets/images/first_initialization-f270b827e85b0ff840bf3db25686349c.png b/assets/images/first_initialization-f270b827e85b0ff840bf3db25686349c.png
new file mode 100644
index 00000000..af63d434
Binary files /dev/null and b/assets/images/first_initialization-f270b827e85b0ff840bf3db25686349c.png differ
diff --git a/assets/images/flink_cdc-318444c917eb66f591a5c75db9662e78.png b/assets/images/flink_cdc-318444c917eb66f591a5c75db9662e78.png
new file mode 100644
index 00000000..60148094
Binary files /dev/null and b/assets/images/flink_cdc-318444c917eb66f591a5c75db9662e78.png differ
diff --git a/assets/images/flink_conf-1c8b9773c6678621a140320ae2a8525f.jpg b/assets/images/flink_conf-1c8b9773c6678621a140320ae2a8525f.jpg
new file mode 100644
index 00000000..b5eb7214
Binary files /dev/null and b/assets/images/flink_conf-1c8b9773c6678621a140320ae2a8525f.jpg differ
diff --git a/assets/images/flink_conf-db4fdbcbac08f9e19eaf550c1332de25.png b/assets/images/flink_conf-db4fdbcbac08f9e19eaf550c1332de25.png
new file mode 100644
index 00000000..82fb0204
Binary files /dev/null and b/assets/images/flink_conf-db4fdbcbac08f9e19eaf550c1332de25.png differ
diff --git a/assets/images/flink_dashboard-4bcca1ae4f103249bd7c6c48625a4959.png b/assets/images/flink_dashboard-4bcca1ae4f103249bd7c6c48625a4959.png
new file mode 100644
index 00000000..4b882a33
Binary files /dev/null and b/assets/images/flink_dashboard-4bcca1ae4f103249bd7c6c48625a4959.png differ
diff --git a/assets/images/flink_home-0a6f4f2014cc87b074ef259088af2b98.png b/assets/images/flink_home-0a6f4f2014cc87b074ef259088af2b98.png
new file mode 100644
index 00000000..7bed4374
Binary files /dev/null and b/assets/images/flink_home-0a6f4f2014cc87b074ef259088af2b98.png differ
diff --git a/assets/images/flink_home-effa79b6d882bdee8a3963543b193a0b.png b/assets/images/flink_home-effa79b6d882bdee8a3963543b193a0b.png
new file mode 100644
index 00000000..2f6e8e18
Binary files /dev/null and b/assets/images/flink_home-effa79b6d882bdee8a3963543b193a0b.png differ
diff --git a/assets/images/flink_job-2769695ec6b0a9446b8d5f4828976b7d.png b/assets/images/flink_job-2769695ec6b0a9446b8d5f4828976b7d.png
new file mode 100644
index 00000000..3094ddaf
Binary files /dev/null and b/assets/images/flink_job-2769695ec6b0a9446b8d5f4828976b7d.png differ
diff --git a/assets/images/flink_parameters-ff7790882a753bd88fbf5db9b775a0e3.png b/assets/images/flink_parameters-ff7790882a753bd88fbf5db9b775a0e3.png
new file mode 100644
index 00000000..681f01a8
Binary files /dev/null and b/assets/images/flink_parameters-ff7790882a753bd88fbf5db9b775a0e3.png differ
diff --git a/assets/images/flink_shaded-f21909c81059b2ea4ebd8307998cbc26.png b/assets/images/flink_shaded-f21909c81059b2ea4ebd8307998cbc26.png
new file mode 100644
index 00000000..5e0310b2
Binary files /dev/null and b/assets/images/flink_shaded-f21909c81059b2ea4ebd8307998cbc26.png differ
diff --git a/assets/images/flink_sql-13f6952f92585140c5fc640b490918b0.png b/assets/images/flink_sql-13f6952f92585140c5fc640b490918b0.png
new file mode 100644
index 00000000..a3c02ab6
Binary files /dev/null and b/assets/images/flink_sql-13f6952f92585140c5fc640b490918b0.png differ
diff --git a/assets/images/flink_sql-a8811954a9f765640bb08ad9cd139a15.png b/assets/images/flink_sql-a8811954a9f765640bb08ad9cd139a15.png
new file mode 100644
index 00000000..9528fb8b
Binary files /dev/null and b/assets/images/flink_sql-a8811954a9f765640bb08ad9cd139a15.png differ
diff --git a/assets/images/flink_sql_version-a02b0f0eac9c5d6c0281b7471e438b78.png b/assets/images/flink_sql_version-a02b0f0eac9c5d6c0281b7471e438b78.png
new file mode 100644
index 00000000..6bb987d1
Binary files /dev/null and b/assets/images/flink_sql_version-a02b0f0eac9c5d6c0281b7471e438b78.png differ
diff --git a/assets/images/flink_system-02dee8b704254087aae900731ae47076.png b/assets/images/flink_system-02dee8b704254087aae900731ae47076.png
new file mode 100644
index 00000000..32bd1ae9
Binary files /dev/null and b/assets/images/flink_system-02dee8b704254087aae900731ae47076.png differ
diff --git a/assets/images/flink_ui-1a5557a19b30e92802eab1b75cc4a574.png b/assets/images/flink_ui-1a5557a19b30e92802eab1b75cc4a574.png
new file mode 100644
index 00000000..4c332fe7
Binary files /dev/null and b/assets/images/flink_ui-1a5557a19b30e92802eab1b75cc4a574.png differ
diff --git a/assets/images/flink_webui-ca719f066a60a19004af7d6761eae27d.png b/assets/images/flink_webui-ca719f066a60a19004af7d6761eae27d.png
new file mode 100644
index 00000000..75a207cc
Binary files /dev/null and b/assets/images/flink_webui-ca719f066a60a19004af7d6761eae27d.png differ
diff --git a/assets/images/flinksql-13b242feb3803b15e6698635a79065b4.png b/assets/images/flinksql-13b242feb3803b15e6698635a79065b4.png
new file mode 100644
index 00000000..36e8dc7a
Binary files /dev/null and b/assets/images/flinksql-13b242feb3803b15e6698635a79065b4.png differ
diff --git a/assets/images/flinkversion_setting-b170a43882590683ea0c7f109f909396.png b/assets/images/flinkversion_setting-b170a43882590683ea0c7f109f909396.png
new file mode 100644
index 00000000..e5abc531
Binary files /dev/null and b/assets/images/flinkversion_setting-b170a43882590683ea0c7f109f909396.png differ
diff --git a/assets/images/flow-c2227ba0cc1f59f78e2164fdb3657223.png b/assets/images/flow-c2227ba0cc1f59f78e2164fdb3657223.png
new file mode 100644
index 00000000..aa2171b3
Binary files /dev/null and b/assets/images/flow-c2227ba0cc1f59f78e2164fdb3657223.png differ
diff --git a/assets/images/fontawesome-webfont-c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg b/assets/images/fontawesome-webfont-c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg
new file mode 100644
index 00000000..855c845e
--- /dev/null
+++ b/assets/images/fontawesome-webfont-c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg
@@ -0,0 +1,2671 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg>
+<metadata>
+Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016
+ By ,,,
+Copyright Dave Gandy 2016. All rights reserved.
+</metadata>
+<defs>
+<font id="FontAwesome" horiz-adv-x="1536" >
+  <font-face 
+    font-family="FontAwesome"
+    font-weight="400"
+    font-stretch="normal"
+    units-per-em="1792"
+    panose-1="0 0 0 0 0 0 0 0 0 0"
+    ascent="1536"
+    descent="-256"
+    bbox="-1.02083 -256.962 2304.6 1537.02"
+    underline-thickness="0"
+    underline-position="0"
+    unicode-range="U+0020-F500"
+  />
+<missing-glyph horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".notdef" horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".null" horiz-adv-x="0" 
+ />
+    <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" 
+ />
+    <glyph glyph-name="space" unicode=" " horiz-adv-x="448" 
+ />
+    <glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="infinity" unicode="&#x221e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="notequal" unicode="&#x2260;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="glass" unicode="&#xf000;" horiz-adv-x="1792" 
+d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+    <glyph glyph-name="music" unicode="&#xf001;" 
+d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89
+t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="search" unicode="&#xf002;" horiz-adv-x="1664" 
+d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5
+t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="envelope" unicode="&#xf003;" horiz-adv-x="1792" 
+d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13
+t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z
+M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="heart" unicode="&#xf004;" horiz-adv-x="1792" 
+d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600
+q-18 -18 -44 -18z" />
+    <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="1664" 
+d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455
+l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="star_empty" unicode="&#xf006;" horiz-adv-x="1664" 
+d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500
+l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="1280" 
+d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5
+t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="film" unicode="&#xf008;" horiz-adv-x="1920" 
+d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128
+q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45
+t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128
+q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19
+t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="th_large" unicode="&#xf009;" horiz-adv-x="1664" 
+d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38
+h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="th" unicode="&#xf00a;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="th_list" unicode="&#xf00b;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ok" unicode="&#xf00c;" horiz-adv-x="1792" 
+d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+    <glyph glyph-name="remove" unicode="&#xf00d;" horiz-adv-x="1408" 
+d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68
+t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+    <glyph glyph-name="zoom_in" unicode="&#xf00e;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224
+q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5
+t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="zoom_out" unicode="&#xf010;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z
+M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z
+" />
+    <glyph glyph-name="off" unicode="&#xf011;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5
+t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+    <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="1792" 
+d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="cog" unicode="&#xf013;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38
+q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13
+l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22
+q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+    <glyph glyph-name="trash" unicode="&#xf014;" horiz-adv-x="1408" 
+d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832
+q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="1664" 
+d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5
+l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+    <glyph glyph-name="file_alt" unicode="&#xf016;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+" />
+    <glyph glyph-name="time" unicode="&#xf017;" 
+d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="1920" 
+d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256
+q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+    <glyph glyph-name="download_alt" unicode="&#xf019;" horiz-adv-x="1664" 
+d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136
+q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+    <glyph glyph-name="download" unicode="&#xf01a;" 
+d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273
+t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="upload" unicode="&#xf01b;" 
+d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198
+t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="inbox" unicode="&#xf01c;" 
+d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552
+q25 -61 25 -123z" />
+    <glyph glyph-name="play_circle" unicode="&#xf01d;" 
+d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="repeat" unicode="&#xf01e;" 
+d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9
+l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+    <glyph glyph-name="refresh" unicode="&#xf021;" 
+d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117
+q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5
+q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="list_alt" unicode="&#xf022;" horiz-adv-x="1792" 
+d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z
+M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5
+t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="1152" 
+d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="flag" unicode="&#xf024;" horiz-adv-x="1792" 
+d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48
+t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="headphones" unicode="&#xf025;" horiz-adv-x="1664" 
+d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78
+t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5
+t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+    <glyph glyph-name="volume_off" unicode="&#xf026;" horiz-adv-x="768" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="volume_down" unicode="&#xf027;" horiz-adv-x="1152" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+    <glyph glyph-name="volume_up" unicode="&#xf028;" horiz-adv-x="1664" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5
+t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289
+t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+    <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="1408" 
+d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z
+M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+    <glyph glyph-name="barcode" unicode="&#xf02a;" horiz-adv-x="1792" 
+d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z
+M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+    <glyph glyph-name="tag" unicode="&#xf02b;" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="1920" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="1664" 
+d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23
+q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906
+q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5
+t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+    <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="1280" 
+d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="print" unicode="&#xf02f;" horiz-adv-x="1664" 
+d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68
+v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+    <glyph glyph-name="camera" unicode="&#xf030;" horiz-adv-x="1920" 
+d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136
+q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="1664" 
+d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57
+q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5
+q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+    <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="1408" 
+d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142
+q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5
+t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5
+t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+    <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="1024" 
+d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5
+q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+    <glyph glyph-name="text_height" unicode="&#xf034;" horiz-adv-x="1792" 
+d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2
+t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5
+q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+    <glyph glyph-name="text_width" unicode="&#xf035;" 
+d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1
+t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5
+t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49
+t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+    <glyph glyph-name="align_left" unicode="&#xf036;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_center" unicode="&#xf037;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19
+h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_right" unicode="&#xf038;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_justify" unicode="&#xf039;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="list" unicode="&#xf03a;" horiz-adv-x="1792" 
+d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5
+t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344
+q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192
+q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_left" unicode="&#xf03b;" horiz-adv-x="1792" 
+d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_right" unicode="&#xf03c;" horiz-adv-x="1792" 
+d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="facetime_video" unicode="&#xf03d;" horiz-adv-x="1792" 
+d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5
+q39 -17 39 -59z" />
+    <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" 
+d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216
+q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="pencil" unicode="&#xf040;" 
+d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38
+q53 0 91 -38l235 -234q37 -39 37 -91z" />
+    <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" 
+d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+    <glyph glyph-name="adjust" unicode="&#xf042;" 
+d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" 
+d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362
+q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+    <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="1792" 
+d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92
+l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+    <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" 
+d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832
+q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5
+t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" 
+d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832
+q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110
+q24 -24 24 -57t-24 -57z" />
+    <glyph glyph-name="move" unicode="&#xf047;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45
+t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" 
+d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" />
+    <glyph glyph-name="fast_backward" unicode="&#xf049;" horiz-adv-x="1792" 
+d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710
+q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" 
+d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" 
+d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+    <glyph glyph-name="pause" unicode="&#xf04c;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="stop" unicode="&#xf04d;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="fast_forward" unicode="&#xf050;" horiz-adv-x="1792" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710
+q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" />
+    <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" 
+d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+    <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" 
+d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" 
+d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="plus_sign" unicode="&#xf055;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5
+t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="minus_sign" unicode="&#xf056;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="remove_sign" unicode="&#xf057;" 
+d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19
+q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_sign" unicode="&#xf058;" 
+d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="question_sign" unicode="&#xf059;" 
+d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59
+q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="info_sign" unicode="&#xf05a;" 
+d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23
+t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="screenshot" unicode="&#xf05b;" 
+d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109
+q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143
+q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="remove_circle" unicode="&#xf05c;" 
+d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5
+t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_circle" unicode="&#xf05d;" 
+d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198
+t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ban_circle" unicode="&#xf05e;" 
+d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61
+t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+    <glyph glyph-name="arrow_left" unicode="&#xf060;" 
+d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5
+t32.5 -90.5z" />
+    <glyph glyph-name="arrow_right" unicode="&#xf061;" 
+d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+    <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" 
+d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651
+q37 -39 37 -91z" />
+    <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" 
+d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+    <glyph glyph-name="share_alt" unicode="&#xf064;" horiz-adv-x="1792" 
+d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22
+t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+    <glyph glyph-name="resize_full" unicode="&#xf065;" 
+d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332
+q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="resize_small" unicode="&#xf066;" 
+d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45
+t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+    <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="asterisk" unicode="&#xf069;" horiz-adv-x="1664" 
+d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154
+q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+    <glyph glyph-name="exclamation_sign" unicode="&#xf06a;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192
+q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+    <glyph glyph-name="gift" unicode="&#xf06b;" 
+d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320
+q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5
+t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="1792" 
+d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268
+q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5
+t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+    <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="1408" 
+d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1
+q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+    <glyph glyph-name="eye_open" unicode="&#xf06e;" horiz-adv-x="1792" 
+d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5
+t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+    <glyph glyph-name="eye_close" unicode="&#xf070;" horiz-adv-x="1792" 
+d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9
+q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5
+q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z
+" />
+    <glyph glyph-name="warning_sign" unicode="&#xf071;" horiz-adv-x="1792" 
+d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185
+q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+    <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="1408" 
+d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9
+q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+    <glyph glyph-name="calendar" unicode="&#xf073;" horiz-adv-x="1664" 
+d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z
+M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64
+q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47
+h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="random" unicode="&#xf074;" horiz-adv-x="1792" 
+d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1
+t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5
+v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111
+t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="comment" unicode="&#xf075;" horiz-adv-x="1792" 
+d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281
+q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="magnet" unicode="&#xf076;" 
+d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384
+q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="chevron_up" unicode="&#xf077;" horiz-adv-x="1792" 
+d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="chevron_down" unicode="&#xf078;" horiz-adv-x="1792" 
+d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="1920" 
+d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21
+zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z
+" />
+    <glyph glyph-name="shopping_cart" unicode="&#xf07a;" horiz-adv-x="1664" 
+d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45
+t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="folder_close" unicode="&#xf07b;" horiz-adv-x="1664" 
+d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open" unicode="&#xf07c;" horiz-adv-x="1920" 
+d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5
+t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="resize_vertical" unicode="&#xf07d;" horiz-adv-x="768" 
+d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="resize_horizontal" unicode="&#xf07e;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="bar_chart" unicode="&#xf080;" horiz-adv-x="2048" 
+d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+    <glyph glyph-name="twitter_sign" unicode="&#xf081;" 
+d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4
+q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5
+t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="facebook_sign" unicode="&#xf082;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="camera_retro" unicode="&#xf083;" horiz-adv-x="1792" 
+d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5
+t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280
+q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="key" unicode="&#xf084;" horiz-adv-x="1792" 
+d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26
+l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5
+t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+    <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="1920" 
+d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5
+l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7
+l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31
+q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20
+t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68
+q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70
+q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+    <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="1792" 
+d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224
+q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7
+q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+    <glyph glyph-name="thumbs_up_alt" unicode="&#xf087;" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5
+t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769
+q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128
+q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="thumbs_down_alt" unicode="&#xf088;" 
+d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5
+t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z
+M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5
+h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" />
+    <glyph glyph-name="star_half" unicode="&#xf089;" horiz-adv-x="896" 
+d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+    <glyph glyph-name="heart_empty" unicode="&#xf08a;" horiz-adv-x="1792" 
+d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559
+q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5
+q224 0 351 -124t127 -344z" />
+    <glyph glyph-name="signout" unicode="&#xf08b;" horiz-adv-x="1664" 
+d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704
+q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+    <glyph glyph-name="linkedin_sign" unicode="&#xf08c;" 
+d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5
+q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="pushpin" unicode="&#xf08d;" horiz-adv-x="1152" 
+d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38
+t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+    <glyph glyph-name="external_link" unicode="&#xf08e;" horiz-adv-x="1792" 
+d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="signin" unicode="&#xf090;" 
+d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5
+q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="1664" 
+d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91
+t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96
+q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="github_sign" unicode="&#xf092;" 
+d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4
+q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4
+t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16
+q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="upload_alt" unicode="&#xf093;" horiz-adv-x="1664" 
+d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92
+t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+    <glyph glyph-name="lemon" unicode="&#xf094;" 
+d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5
+q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44
+q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5
+q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" />
+    <glyph glyph-name="phone" unicode="&#xf095;" horiz-adv-x="1408" 
+d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186
+q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14
+t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+    <glyph glyph-name="check_empty" unicode="&#xf096;" horiz-adv-x="1408" 
+d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="bookmark_empty" unicode="&#xf097;" horiz-adv-x="1280" 
+d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289
+q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="phone_sign" unicode="&#xf098;" 
+d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5
+t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5
+t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z
+" />
+    <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="1664" 
+d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41
+q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+    <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="1024" 
+d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+    <glyph glyph-name="github" unicode="&#xf09b;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24
+q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5
+t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12
+q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z
+M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" />
+    <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="1664" 
+d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5
+t316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="credit_card" unicode="&#xf09d;" horiz-adv-x="1920" 
+d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608
+q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+    <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="1408" 
+d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5
+t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294
+q187 -186 294 -425.5t120 -501.5z" />
+    <glyph glyph-name="hdd" unicode="&#xf0a0;" 
+d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5
+h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75
+l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+    <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="1792" 
+d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5
+t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+    <glyph glyph-name="bell" unicode="&#xf0a2;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z
+M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5
+t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="certificate" unicode="&#xf0a3;" 
+d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70
+l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70
+l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+    <glyph glyph-name="hand_right" unicode="&#xf0a4;" horiz-adv-x="1792" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106
+q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43
+q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5
+t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="hand_left" unicode="&#xf0a5;" horiz-adv-x="1792" 
+d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5
+t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z
+M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67
+q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="hand_up" unicode="&#xf0a6;" 
+d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576
+q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5
+t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76
+q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+    <glyph glyph-name="hand_down" unicode="&#xf0a7;" 
+d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33
+t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580
+q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100
+q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+    <glyph glyph-name="circle_arrow_left" unicode="&#xf0a8;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_right" unicode="&#xf0a9;" 
+d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_up" unicode="&#xf0aa;" 
+d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_down" unicode="&#xf0ab;" 
+d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="globe" unicode="&#xf0ac;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11
+q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5
+q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5
+q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5
+t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3
+q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25
+q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5
+t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5
+t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21
+q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5
+q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3
+q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5
+t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5
+q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7
+q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+    <glyph glyph-name="wrench" unicode="&#xf0ad;" horiz-adv-x="1664" 
+d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5
+t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+    <glyph glyph-name="tasks" unicode="&#xf0ae;" horiz-adv-x="1792" 
+d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19
+t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="filter" unicode="&#xf0b0;" horiz-adv-x="1408" 
+d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+    <glyph glyph-name="briefcase" unicode="&#xf0b1;" horiz-adv-x="1792" 
+d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68
+t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="fullscreen" unicode="&#xf0b2;" 
+d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144
+l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z
+" />
+    <glyph glyph-name="group" unicode="&#xf0c0;" horiz-adv-x="1920" 
+d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75
+t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5
+t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+    <glyph glyph-name="link" unicode="&#xf0c1;" horiz-adv-x="1664" 
+d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26
+l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15
+t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207
+q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+    <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="1920" 
+d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z
+" />
+    <glyph glyph-name="beaker" unicode="&#xf0c3;" horiz-adv-x="1664" 
+d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+    <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="1792" 
+d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84
+q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148
+q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108
+q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6
+q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+    <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="1792" 
+d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299
+h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+    <glyph glyph-name="paper_clip" unicode="&#xf0c6;" horiz-adv-x="1408" 
+d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181
+l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235
+z" />
+    <glyph glyph-name="save" unicode="&#xf0c7;" 
+d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5
+h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="sign_blank" unicode="&#xf0c8;" 
+d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="reorder" unicode="&#xf0c9;" 
+d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45
+t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ul" unicode="&#xf0ca;" horiz-adv-x="1792" 
+d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z
+M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="ol" unicode="&#xf0cb;" horiz-adv-x="1792" 
+d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362
+q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5
+t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216
+q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="strikethrough" unicode="&#xf0cc;" horiz-adv-x="1792" 
+d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6
+l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23
+l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+    <glyph glyph-name="underline" unicode="&#xf0cd;" 
+d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47
+q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41
+q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472
+q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+    <glyph glyph-name="table" unicode="&#xf0ce;" horiz-adv-x="1664" 
+d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23
+v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192
+q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192
+q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113
+z" />
+    <glyph glyph-name="magic" unicode="&#xf0d0;" horiz-adv-x="1664" 
+d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276
+l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+    <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="1792" 
+d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5
+t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38
+t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="pinterest" unicode="&#xf0d2;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134
+q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33
+q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="pinterest_sign" unicode="&#xf0d3;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5
+t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5
+t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="google_plus_sign" unicode="&#xf0d4;" 
+d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585
+h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="google_plus" unicode="&#xf0d5;" horiz-adv-x="2304" 
+d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62
+q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
+    <glyph glyph-name="money" unicode="&#xf0d6;" horiz-adv-x="1920" 
+d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384
+v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_down" unicode="&#xf0d7;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_up" unicode="&#xf0d8;" horiz-adv-x="1024" 
+d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="caret_left" unicode="&#xf0d9;" horiz-adv-x="640" 
+d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="caret_right" unicode="&#xf0da;" horiz-adv-x="640" 
+d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="columns" unicode="&#xf0db;" horiz-adv-x="1664" 
+d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="sort_down" unicode="&#xf0dd;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="sort_up" unicode="&#xf0de;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="envelope_alt" unicode="&#xf0e0;" horiz-adv-x="1792" 
+d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123
+q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+    <glyph glyph-name="linkedin" unicode="&#xf0e1;" 
+d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329
+q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+    <glyph glyph-name="undo" unicode="&#xf0e2;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+    <glyph glyph-name="legal" unicode="&#xf0e3;" horiz-adv-x="1792" 
+d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5
+t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14
+q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28
+q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+    <glyph glyph-name="dashboard" unicode="&#xf0e4;" horiz-adv-x="1792" 
+d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5
+t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5
+t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29
+q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="comment_alt" unicode="&#xf0e5;" horiz-adv-x="1792" 
+d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640
+q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5
+t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="comments_alt" unicode="&#xf0e6;" horiz-adv-x="1792" 
+d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257
+t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5
+t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129
+q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+    <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="896" 
+d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+    <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="1792" 
+d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="1664" 
+d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97
+q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69
+q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+    <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="1792" 
+d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28
+h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="light_bulb" unicode="&#xf0eb;" horiz-adv-x="1024" 
+d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134
+q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47
+q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5
+t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+    <glyph glyph-name="exchange" unicode="&#xf0ec;" horiz-adv-x="1792" 
+d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9
+q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="cloud_download" unicode="&#xf0ed;" horiz-adv-x="1920" 
+d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="cloud_upload" unicode="&#xf0ee;" horiz-adv-x="1920" 
+d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="user_md" unicode="&#xf0f0;" horiz-adv-x="1408" 
+d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56
+t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68
+t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="stethoscope" unicode="&#xf0f1;" horiz-adv-x="1408" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48
+t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252
+t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="suitcase" unicode="&#xf0f2;" horiz-adv-x="1792" 
+d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66
+t66 -158z" />
+    <glyph glyph-name="bell_alt" unicode="&#xf0f3;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5
+t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="1920" 
+d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45
+t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="food" unicode="&#xf0f5;" horiz-adv-x="1408" 
+d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45
+t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="file_text_alt" unicode="&#xf0f6;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704
+q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
+    <glyph glyph-name="building" unicode="&#xf0f7;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5
+t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320
+v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="1920" 
+d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152
+q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="medkit" unicode="&#xf0fa;" horiz-adv-x="1792" 
+d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32
+q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="fighter_jet" unicode="&#xf0fb;" horiz-adv-x="1920" 
+d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96
+q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" />
+    <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="1664" 
+d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+    <glyph glyph-name="h_sign" unicode="&#xf0fd;" 
+d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="f0fe" unicode="&#xf0fe;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="double_angle_left" unicode="&#xf100;" horiz-adv-x="1024" 
+d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_right" unicode="&#xf101;" horiz-adv-x="1024" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23
+l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_up" unicode="&#xf102;" horiz-adv-x="1152" 
+d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393
+q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_down" unicode="&#xf103;" horiz-adv-x="1152" 
+d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_left" unicode="&#xf104;" horiz-adv-x="640" 
+d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_right" unicode="&#xf105;" horiz-adv-x="640" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_up" unicode="&#xf106;" horiz-adv-x="1152" 
+d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_down" unicode="&#xf107;" horiz-adv-x="1152" 
+d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="1920" 
+d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19
+t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="1920" 
+d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z
+M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+    <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="1152" 
+d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832
+q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="mobile_phone" unicode="&#xf10b;" horiz-adv-x="768" 
+d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136
+q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="circle_blank" unicode="&#xf10c;" 
+d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103
+t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="quote_left" unicode="&#xf10d;" horiz-adv-x="1664" 
+d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z
+M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="quote_right" unicode="&#xf10e;" horiz-adv-x="1664" 
+d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216
+v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="spinner" unicode="&#xf110;" horiz-adv-x="1792" 
+d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z
+M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5
+q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="circle" unicode="&#xf111;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="reply" unicode="&#xf112;" horiz-adv-x="1792" 
+d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19
+l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+    <glyph glyph-name="github_alt" unicode="&#xf113;" horiz-adv-x="1664" 
+d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320
+q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86
+t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218
+q0 -87 -27 -168q136 -160 136 -398z" />
+    <glyph glyph-name="folder_close_alt" unicode="&#xf114;" horiz-adv-x="1664" 
+d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320
+q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open_alt" unicode="&#xf115;" horiz-adv-x="1920" 
+d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68
+v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z
+" />
+    <glyph glyph-name="expand_alt" unicode="&#xf116;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="collapse_alt" unicode="&#xf117;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="smile" unicode="&#xf118;" 
+d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5
+t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="frown" unicode="&#xf119;" 
+d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204
+t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="meh" unicode="&#xf11a;" 
+d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="1920" 
+d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150
+t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+    <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="1920" 
+d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16
+h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16
+h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96
+q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896
+h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="flag_alt" unicode="&#xf11d;" horiz-adv-x="1792" 
+d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9
+h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102
+q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="flag_checkered" unicode="&#xf11e;" horiz-adv-x="1792" 
+d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2
+q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266
+q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8
+q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="1664" 
+d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="1920" 
+d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5
+l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+    <glyph glyph-name="reply_all" unicode="&#xf122;" horiz-adv-x="1792" 
+d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1
+q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+    <glyph glyph-name="star_half_empty" unicode="&#xf123;" horiz-adv-x="1664" 
+d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5
+l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+    <glyph glyph-name="location_arrow" unicode="&#xf124;" horiz-adv-x="1408" 
+d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+    <glyph glyph-name="crop" unicode="&#xf125;" horiz-adv-x="1664" 
+d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="code_fork" unicode="&#xf126;" horiz-adv-x="1024" 
+d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5
+q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497
+q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="unlink" unicode="&#xf127;" horiz-adv-x="1664" 
+d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320
+q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18
+l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9
+t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="1024" 
+d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5
+t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+    <glyph glyph-name="_279" unicode="&#xf129;" horiz-adv-x="640" 
+d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192
+q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="640" 
+d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+    <glyph glyph-name="superscript" unicode="&#xf12b;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5
+t-65.5 -51.5t-30.5 -63h232v80h126z" />
+    <glyph glyph-name="subscript" unicode="&#xf12c;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73
+h232v80h126z" />
+    <glyph glyph-name="_283" unicode="&#xf12d;" horiz-adv-x="1920" 
+d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+    <glyph glyph-name="puzzle_piece" unicode="&#xf12e;" horiz-adv-x="1664" 
+d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5
+t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89
+q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117
+q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+    <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="1152" 
+d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5
+t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+    <glyph glyph-name="microphone_off" unicode="&#xf131;" horiz-adv-x="1408" 
+d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128
+q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23
+t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+    <glyph glyph-name="shield" unicode="&#xf132;" horiz-adv-x="1280" 
+d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150
+t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="calendar_empty" unicode="&#xf133;" horiz-adv-x="1664" 
+d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="fire_extinguisher" unicode="&#xf134;" horiz-adv-x="1408" 
+d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800
+q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113
+q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+    <glyph glyph-name="rocket" unicode="&#xf135;" horiz-adv-x="1664" 
+d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1
+q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+    <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="1792" 
+d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+    <glyph glyph-name="chevron_sign_left" unicode="&#xf137;" 
+d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_right" unicode="&#xf138;" 
+d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_up" unicode="&#xf139;" 
+d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_down" unicode="&#xf13a;" 
+d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="1408" 
+d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+    <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="1792" 
+d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+    <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="1792" 
+d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352
+q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19
+t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="unlock_alt" unicode="&#xf13e;" horiz-adv-x="1152" 
+d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181
+v-320h736z" />
+    <glyph glyph-name="bullseye" unicode="&#xf140;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150
+t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ellipsis_horizontal" unicode="&#xf141;" horiz-adv-x="1408" 
+d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ellipsis_vertical" unicode="&#xf142;" horiz-adv-x="384" 
+d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="_303" unicode="&#xf143;" 
+d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128
+q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="play_sign" unicode="&#xf144;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56
+q16 -8 32 -8q17 0 32 9z" />
+    <glyph glyph-name="ticket" unicode="&#xf145;" horiz-adv-x="1792" 
+d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136
+t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+    <glyph glyph-name="minus_sign_alt" unicode="&#xf146;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="check_minus" unicode="&#xf147;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5
+t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="level_up" unicode="&#xf148;" horiz-adv-x="1024" 
+d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+    <glyph glyph-name="level_down" unicode="&#xf149;" horiz-adv-x="1024" 
+d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+    <glyph glyph-name="check_sign" unicode="&#xf14a;" 
+d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5
+t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="edit_sign" unicode="&#xf14b;" 
+d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_312" unicode="&#xf14c;" 
+d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960
+q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="share_sign" unicode="&#xf14d;" 
+d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5
+t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="compass" unicode="&#xf14e;" 
+d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="collapse" unicode="&#xf150;" 
+d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="collapse_top" unicode="&#xf151;" 
+d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_317" unicode="&#xf152;" 
+d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="eur" unicode="&#xf153;" horiz-adv-x="1024" 
+d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9
+t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26
+l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+    <glyph glyph-name="gbp" unicode="&#xf154;" horiz-adv-x="1024" 
+d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7
+q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+    <glyph glyph-name="usd" unicode="&#xf155;" horiz-adv-x="1024" 
+d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43
+t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5
+t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50
+t53 -63.5t31.5 -76.5t13 -94z" />
+    <glyph glyph-name="inr" unicode="&#xf156;" horiz-adv-x="898" 
+d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102
+q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="jpy" unicode="&#xf157;" horiz-adv-x="1027" 
+d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61
+l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+    <glyph glyph-name="rub" unicode="&#xf158;" horiz-adv-x="1280" 
+d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128
+q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+    <glyph glyph-name="krw" unicode="&#xf159;" horiz-adv-x="1792" 
+d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23
+t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28
+q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="1280" 
+d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164
+l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30
+t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+    <glyph glyph-name="file" unicode="&#xf15b;" 
+d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+    <glyph glyph-name="file_text" unicode="&#xf15c;" 
+d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+    <glyph glyph-name="sort_by_alphabet" unicode="&#xf15d;" horiz-adv-x="1664" 
+d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23
+v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162
+l230 -662h70z" />
+    <glyph glyph-name="_329" unicode="&#xf15e;" horiz-adv-x="1664" 
+d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150
+v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248
+v119h121z" />
+    <glyph glyph-name="sort_by_attributes" unicode="&#xf160;" horiz-adv-x="1792" 
+d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832
+q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_attributes_alt" unicode="&#xf161;" horiz-adv-x="1792" 
+d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192
+q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_order" unicode="&#xf162;" 
+d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23
+zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5
+t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+    <glyph glyph-name="sort_by_order_alt" unicode="&#xf163;" 
+d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9
+t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13
+q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+    <glyph glyph-name="_334" unicode="&#xf164;" horiz-adv-x="1664" 
+d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76
+q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5
+t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+    <glyph glyph-name="_335" unicode="&#xf165;" horiz-adv-x="1664" 
+d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135
+t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121
+t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+    <glyph glyph-name="youtube_sign" unicode="&#xf166;" 
+d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15
+q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38
+q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5
+q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38
+q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5
+h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube" unicode="&#xf167;" 
+d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73
+q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51
+q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99
+q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51
+q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+    <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="1408" 
+d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942
+q25 45 64 45h241q22 0 31 -15z" />
+    <glyph glyph-name="xing_sign" unicode="&#xf169;" 
+d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1
+l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube_play" unicode="&#xf16a;" horiz-adv-x="1792" 
+d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5
+l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136
+q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" />
+    <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="1792" 
+d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+    <glyph glyph-name="stackexchange" unicode="&#xf16c;" 
+d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
+    <glyph glyph-name="instagram" unicode="&#xf16d;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270
+q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5
+t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317
+q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" />
+    <glyph glyph-name="flickr" unicode="&#xf16e;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150
+t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+    <glyph glyph-name="adn" unicode="&#xf170;" 
+d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f171" unicode="&#xf171;" horiz-adv-x="1408" 
+d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22
+t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18
+t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5
+t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+    <glyph glyph-name="bitbucket_sign" unicode="&#xf172;" 
+d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5
+t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z
+M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="1024" 
+d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14
+q78 2 134 29z" />
+    <glyph glyph-name="tumblr_sign" unicode="&#xf174;" 
+d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="long_arrow_down" unicode="&#xf175;" horiz-adv-x="768" 
+d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+    <glyph glyph-name="long_arrow_up" unicode="&#xf176;" horiz-adv-x="768" 
+d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+    <glyph glyph-name="long_arrow_left" unicode="&#xf177;" horiz-adv-x="1792" 
+d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="long_arrow_right" unicode="&#xf178;" horiz-adv-x="1792" 
+d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+    <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="1408" 
+d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65
+q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+    <glyph glyph-name="windows" unicode="&#xf17a;" horiz-adv-x="1664" 
+d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+    <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="1408" 
+d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30
+t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5
+h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+    <glyph glyph-name="linux" unicode="&#xf17c;" 
+d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z
+M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7
+q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15
+q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5
+t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19
+q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63
+q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92
+q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152
+q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4
+t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5
+t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43
+q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49
+t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54
+q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5
+t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5
+t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+    <glyph glyph-name="dribble" unicode="&#xf17d;" 
+d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81
+t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19
+q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6
+t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="skype" unicode="&#xf17e;" 
+d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5
+t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5
+q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80
+q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+    <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="1280" 
+d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z
+M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324
+l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
+    <glyph glyph-name="trello" unicode="&#xf181;" 
+d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408
+q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="1280" 
+d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43
+q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="1024" 
+d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z
+M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="gittip" unicode="&#xf184;" 
+d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="sun" unicode="&#xf185;" horiz-adv-x="1792" 
+d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4
+l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94
+q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+    <glyph glyph-name="_366" unicode="&#xf186;" 
+d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61
+t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+    <glyph glyph-name="archive" unicode="&#xf187;" horiz-adv-x="1792" 
+d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536
+q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="bug" unicode="&#xf188;" horiz-adv-x="1664" 
+d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207
+q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19
+t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+    <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="1920" 
+d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58
+t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6
+q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24
+q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2
+q39 5 64 -2.5t31 -16.5z" />
+    <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="1792" 
+d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12
+q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422
+q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178
+q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z
+M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+    <glyph glyph-name="renren" unicode="&#xf18b;" 
+d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495
+q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+    <glyph glyph-name="_372" unicode="&#xf18c;" horiz-adv-x="1408" 
+d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5
+t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56
+t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5
+t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+    <glyph glyph-name="stack_exchange" unicode="&#xf18d;" horiz-adv-x="1280" 
+d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z
+" />
+    <glyph glyph-name="_374" unicode="&#xf18e;" 
+d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="arrow_circle_alt_left" unicode="&#xf190;" 
+d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_376" unicode="&#xf191;" 
+d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="dot_circle_alt" unicode="&#xf192;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5
+t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_378" unicode="&#xf193;" horiz-adv-x="1664" 
+d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128
+q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+    <glyph glyph-name="vimeo_square" unicode="&#xf194;" 
+d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179
+q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_380" unicode="&#xf195;" horiz-adv-x="1152" 
+d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160
+q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="plus_square_o" unicode="&#xf196;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832
+q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_382" unicode="&#xf197;" horiz-adv-x="2176" 
+d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40
+t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29
+q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
+    <glyph glyph-name="_383" unicode="&#xf198;" horiz-adv-x="1664" 
+d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9
+q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102
+t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
+    <glyph glyph-name="_384" unicode="&#xf199;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69
+q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13
+t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
+    <glyph glyph-name="_385" unicode="&#xf19a;" horiz-adv-x="1792" 
+d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5
+t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21
+t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286
+t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273
+t273 -182.5t331.5 -68z" />
+    <glyph glyph-name="_386" unicode="&#xf19b;" horiz-adv-x="1792" 
+d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+    <glyph glyph-name="_387" unicode="&#xf19c;" horiz-adv-x="2048" 
+d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64
+q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+    <glyph glyph-name="_388" unicode="&#xf19d;" horiz-adv-x="2304" 
+d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433
+q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+    <glyph glyph-name="_389" unicode="&#xf19e;" 
+d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0
+q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+    <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" 
+d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5
+t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
+    <glyph glyph-name="f1a1" unicode="&#xf1a1;" horiz-adv-x="1792" 
+d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26
+t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37
+q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191
+t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_392" unicode="&#xf1a2;" 
+d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54
+q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83
+q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_393" unicode="&#xf1a3;" 
+d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150
+v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103
+t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f1a4" unicode="&#xf1a4;" horiz-adv-x="1920" 
+d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328
+v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+    <glyph glyph-name="_395" unicode="&#xf1a5;" 
+d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="_396" unicode="&#xf1a6;" horiz-adv-x="2048" 
+d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123
+v-369h123z" />
+    <glyph glyph-name="_397" unicode="&#xf1a7;" 
+d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101
+v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_398" unicode="&#xf1a8;" horiz-adv-x="2038" 
+d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14
+q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24
+q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33
+q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5
+t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43
+q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5
+t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13
+t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
+    <glyph glyph-name="_399" unicode="&#xf1a9;" 
+d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10
+q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14
+q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14
+t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44
+q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
+    <glyph glyph-name="_400" unicode="&#xf1aa;" 
+d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z
+M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5
+t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5
+q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126
+t135.5 51q85 0 145 -60.5t60 -145.5z" />
+    <glyph glyph-name="f1ab" unicode="&#xf1ab;" 
+d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5
+q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28
+q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z
+M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11
+q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5
+q20 0 20 -21v-418z" />
+    <glyph glyph-name="_402" unicode="&#xf1ac;" horiz-adv-x="1792" 
+d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48
+l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23
+t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128
+q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128
+q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
+    <glyph glyph-name="_403" unicode="&#xf1ad;" 
+d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9
+t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9
+t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9
+t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
+    <glyph glyph-name="_404" unicode="&#xf1ae;" horiz-adv-x="1280" 
+d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152
+q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="uniF1B1" unicode="&#xf1b0;" horiz-adv-x="1664" 
+d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5
+q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819
+q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5
+t100.5 134t141.5 55.5z" />
+    <glyph glyph-name="_406" unicode="&#xf1b1;" horiz-adv-x="768" 
+d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+    <glyph glyph-name="_407" unicode="&#xf1b2;" horiz-adv-x="1792" 
+d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z
+" />
+    <glyph glyph-name="_408" unicode="&#xf1b3;" horiz-adv-x="2304" 
+d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67
+t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70
+v-400l434 -186q36 -16 57 -48t21 -70z" />
+    <glyph glyph-name="_409" unicode="&#xf1b4;" horiz-adv-x="2048" 
+d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658
+q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204
+q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
+    <glyph glyph-name="_410" unicode="&#xf1b5;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5
+t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217
+t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
+    <glyph glyph-name="_411" unicode="&#xf1b6;" horiz-adv-x="1792" 
+d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5
+q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89
+q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
+    <glyph glyph-name="_412" unicode="&#xf1b7;" 
+d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5
+q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5
+q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z
+" />
+    <glyph glyph-name="_413" unicode="&#xf1b8;" horiz-adv-x="1792" 
+d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188
+l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5
+t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1
+q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
+    <glyph glyph-name="_414" unicode="&#xf1b9;" horiz-adv-x="2048" 
+d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384
+q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5
+l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_415" unicode="&#xf1ba;" horiz-adv-x="2048" 
+d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5
+t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z
+M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
+    <glyph glyph-name="_416" unicode="&#xf1bb;" 
+d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384
+q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+    <glyph glyph-name="_417" unicode="&#xf1bc;" 
+d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64
+q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37
+q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_418" unicode="&#xf1bd;" horiz-adv-x="1024" 
+d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+    <glyph glyph-name="_419" unicode="&#xf1be;" horiz-adv-x="2304" 
+d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11
+q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245
+q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785
+l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242
+q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236
+q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786
+q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
+    <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" 
+d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127
+t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5
+t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
+    <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197
+q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8
+q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
+    <glyph glyph-name="_422" unicode="&#xf1c2;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5
+t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" />
+    <glyph glyph-name="_423" unicode="&#xf1c3;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107
+h-290v-107h68l189 -272l-194 -283h-68z" />
+    <glyph glyph-name="_424" unicode="&#xf1c4;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+    <glyph glyph-name="_425" unicode="&#xf1c5;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+    <glyph glyph-name="_426" unicode="&#xf1c6;" 
+d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400
+v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79
+q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
+    <glyph glyph-name="_427" unicode="&#xf1c7;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5
+q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
+    <glyph glyph-name="_428" unicode="&#xf1c8;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+    <glyph glyph-name="_429" unicode="&#xf1c9;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243
+l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
+    <glyph glyph-name="_430" unicode="&#xf1ca;" 
+d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406
+q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
+    <glyph glyph-name="_431" unicode="&#xf1cb;" horiz-adv-x="1792" 
+d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546
+q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+    <glyph glyph-name="_432" unicode="&#xf1cc;" horiz-adv-x="2048" 
+d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94
+q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55
+t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" />
+    <glyph glyph-name="_433" unicode="&#xf1cd;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194
+q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5
+t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
+    <glyph glyph-name="_434" unicode="&#xf1ce;" horiz-adv-x="1792" 
+d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5
+t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
+    <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" horiz-adv-x="1792" 
+d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41
+t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170
+t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136
+q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
+    <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" horiz-adv-x="1792" 
+d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251
+l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162
+q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33
+q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5
+t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" 
+d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85
+q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392
+q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072
+q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_438" unicode="&#xf1d3;" horiz-adv-x="1792" 
+d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58
+q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47
+q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171
+v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
+    <glyph glyph-name="_439" unicode="&#xf1d4;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" horiz-adv-x="1280" 
+d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5
+t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153
+t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
+    <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" horiz-adv-x="1792" 
+d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5
+q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20
+t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5
+t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
+    <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" horiz-adv-x="2048" 
+d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25
+q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5
+q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109
+q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
+    <glyph glyph-name="_443" unicode="&#xf1d8;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+    <glyph glyph-name="_444" unicode="&#xf1d9;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137
+l863 639l-478 -797z" />
+    <glyph glyph-name="_445" unicode="&#xf1da;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23
+t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_446" unicode="&#xf1db;" 
+d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_447" unicode="&#xf1dc;" horiz-adv-x="1792" 
+d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15
+t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2
+t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160
+q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5
+q0 -26 -12 -48t-36 -22z" />
+    <glyph glyph-name="_448" unicode="&#xf1dd;" horiz-adv-x="1280" 
+d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179
+q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+    <glyph glyph-name="_449" unicode="&#xf1de;" 
+d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256
+q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
+    <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" 
+d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5
+t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+    <glyph glyph-name="_451" unicode="&#xf1e1;" 
+d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5
+t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_452" unicode="&#xf1e2;" horiz-adv-x="1792" 
+d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5
+t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91
+q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9
+t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="_453" unicode="&#xf1e3;" horiz-adv-x="1792" 
+d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323
+l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
+    <glyph glyph-name="_454" unicode="&#xf1e4;" horiz-adv-x="1792" 
+d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5
+t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
+    <glyph glyph-name="_455" unicode="&#xf1e5;" horiz-adv-x="1792" 
+d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z
+M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_456" unicode="&#xf1e6;" horiz-adv-x="1792" 
+d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234
+l401 400q38 37 91 37t90 -37z" />
+    <glyph glyph-name="_457" unicode="&#xf1e7;" horiz-adv-x="1792" 
+d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5
+t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z
+M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7
+t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
+    <glyph glyph-name="_458" unicode="&#xf1e8;" horiz-adv-x="1792" 
+d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+    <glyph glyph-name="_459" unicode="&#xf1e9;" 
+d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36
+q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5
+t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87
+q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
+    <glyph glyph-name="_460" unicode="&#xf1ea;" horiz-adv-x="2048" 
+d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19
+t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+    <glyph glyph-name="_461" unicode="&#xf1eb;" horiz-adv-x="2048" 
+d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121
+q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z
+M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
+    <glyph glyph-name="_462" unicode="&#xf1ec;" horiz-adv-x="1792" 
+d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5
+t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38
+h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_463" unicode="&#xf1ed;" 
+d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246
+q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598
+q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
+    <glyph glyph-name="_464" unicode="&#xf1ee;" horiz-adv-x="1792" 
+d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640
+q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" />
+    <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" horiz-adv-x="2304" 
+d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27
+q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128
+q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_466" unicode="&#xf1f1;" horiz-adv-x="2304" 
+d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249
+q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z
+M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32
+h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4
+q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75
+q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14
+q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22
+q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12
+q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122
+h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5
+t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_467" unicode="&#xf1f2;" horiz-adv-x="2304" 
+d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42
+q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604
+v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569
+q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73
+t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
+    <glyph glyph-name="f1f3" unicode="&#xf1f3;" horiz-adv-x="2304" 
+d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z
+M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260
+l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279
+v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040
+q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168
+q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5
+t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21
+h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5
+t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
+    <glyph glyph-name="_469" unicode="&#xf1f4;" horiz-adv-x="2304" 
+d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16
+t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76
+q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59
+t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489
+l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66
+q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_470" unicode="&#xf1f5;" horiz-adv-x="2304" 
+d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109
+q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118
+q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151
+q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31
+q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_471" unicode="&#xf1f6;" horiz-adv-x="2048" 
+d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5
+l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5
+l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_472" unicode="&#xf1f7;" horiz-adv-x="2048" 
+d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128
+q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161
+q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_473" unicode="&#xf1f8;" horiz-adv-x="1408" 
+d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167
+q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_474" unicode="&#xf1f9;" 
+d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5
+t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5
+t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_475" unicode="&#xf1fa;" 
+d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53
+q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24
+t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61
+t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
+    <glyph glyph-name="_476" unicode="&#xf1fb;" horiz-adv-x="1792" 
+d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10
+t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+    <glyph glyph-name="f1fc" unicode="&#xf1fc;" horiz-adv-x="1792" 
+d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5
+t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+    <glyph glyph-name="_478" unicode="&#xf1fd;" horiz-adv-x="1792" 
+d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5
+t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38
+t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448
+h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5
+q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
+    <glyph glyph-name="_479" unicode="&#xf1fe;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+    <glyph glyph-name="_480" unicode="&#xf200;" horiz-adv-x="1792" 
+d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_481" unicode="&#xf201;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="_482" unicode="&#xf202;" horiz-adv-x="1792" 
+d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20
+q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50
+t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1
+q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
+    <glyph glyph-name="_483" unicode="&#xf203;" 
+d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73
+q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110
+q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_484" unicode="&#xf204;" horiz-adv-x="2048" 
+d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5
+t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5
+t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
+    <glyph glyph-name="_485" unicode="&#xf205;" horiz-adv-x="2048" 
+d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5
+t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+    <glyph glyph-name="_486" unicode="&#xf206;" horiz-adv-x="2304" 
+d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94
+q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469
+q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400
+q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="_487" unicode="&#xf207;" 
+d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5
+h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
+    <glyph glyph-name="_488" unicode="&#xf208;" horiz-adv-x="2048" 
+d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327
+q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5
+q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
+    <glyph glyph-name="_489" unicode="&#xf209;" horiz-adv-x="1280" 
+d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119
+t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5
+t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14
+q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88
+q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5
+t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
+    <glyph glyph-name="_490" unicode="&#xf20a;" horiz-adv-x="2048" 
+d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206
+q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307
+t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14
+t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
+    <glyph glyph-name="_491" unicode="&#xf20b;" 
+d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5
+t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_492" unicode="&#xf20c;" 
+d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55
+q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410
+q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
+    <glyph glyph-name="_493" unicode="&#xf20d;" 
+d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+    <glyph glyph-name="_494" unicode="&#xf20e;" horiz-adv-x="2048" 
+d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335
+q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5
+q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438
+h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66
+l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946
+l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82
+zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
+    <glyph glyph-name="f210" unicode="&#xf210;" 
+d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+    <glyph glyph-name="_496" unicode="&#xf211;" 
+d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384
+q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+    <glyph glyph-name="f212" unicode="&#xf212;" horiz-adv-x="2048" 
+d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021
+q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25
+q209 0 374 -102q172 107 374 102z" />
+    <glyph glyph-name="_498" unicode="&#xf213;" horiz-adv-x="2048" 
+d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101
+q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284
+q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
+    <glyph glyph-name="_499" unicode="&#xf214;" 
+d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34
+l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114
+v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z
+M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378
+v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51
+h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5
+t-43 -34t-16.5 -53.5z" />
+    <glyph glyph-name="_500" unicode="&#xf215;" horiz-adv-x="2048" 
+d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832
+q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+    <glyph glyph-name="_501" unicode="&#xf216;" horiz-adv-x="2048" 
+d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5
+t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113
+t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5
+q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
+    <glyph glyph-name="_502" unicode="&#xf217;" horiz-adv-x="1664" 
+d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_503" unicode="&#xf218;" horiz-adv-x="1664" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_504" unicode="&#xf219;" horiz-adv-x="2048" 
+d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20
+l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+    <glyph glyph-name="_505" unicode="&#xf21a;" horiz-adv-x="2048" 
+d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83
+q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314
+v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
+    <glyph glyph-name="_506" unicode="&#xf21b;" 
+d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14
+t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5
+q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31
+t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
+    <glyph glyph-name="_507" unicode="&#xf21c;" horiz-adv-x="2304" 
+d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5
+t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105
+l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226
+t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
+    <glyph glyph-name="_508" unicode="&#xf21d;" 
+d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12
+q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384
+q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5
+t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_509" unicode="&#xf21e;" horiz-adv-x="1792" 
+d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221
+q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124
+t127 -344z" />
+    <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292
+q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+    <glyph glyph-name="_511" unicode="&#xf222;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5
+q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_512" unicode="&#xf223;" horiz-adv-x="1280" 
+d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5
+t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_513" unicode="&#xf224;" 
+d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_514" unicode="&#xf225;" horiz-adv-x="1792" 
+d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9
+t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_515" unicode="&#xf226;" horiz-adv-x="1792" 
+d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23
+t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391
+q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391
+q0 -226 -154 -391q103 -57 218 -57z" />
+    <glyph glyph-name="_516" unicode="&#xf227;" horiz-adv-x="1920" 
+d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230
+q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9
+t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128
+q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
+    <glyph glyph-name="_517" unicode="&#xf228;" horiz-adv-x="2048" 
+d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23
+t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9
+t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5
+t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
+    <glyph glyph-name="_518" unicode="&#xf229;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5
+t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_519" unicode="&#xf22a;" horiz-adv-x="1280" 
+d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22
+t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5
+t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_520" unicode="&#xf22b;" horiz-adv-x="2048" 
+d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5
+t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5
+t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_521" unicode="&#xf22c;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_522" unicode="&#xf22d;" horiz-adv-x="1280" 
+d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123
+t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
+    <glyph glyph-name="_523" unicode="&#xf22e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_524" unicode="&#xf22f;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_525" unicode="&#xf230;" 
+d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+    <glyph glyph-name="_526" unicode="&#xf231;" horiz-adv-x="1280" 
+d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5
+l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5
+q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
+    <glyph glyph-name="_527" unicode="&#xf232;" 
+d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5
+t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233
+l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
+    <glyph glyph-name="_528" unicode="&#xf233;" horiz-adv-x="1792" 
+d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216
+q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+    <glyph glyph-name="_529" unicode="&#xf234;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5
+t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
+    <glyph glyph-name="_530" unicode="&#xf235;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136
+q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69
+t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
+    <glyph glyph-name="_531" unicode="&#xf236;" horiz-adv-x="2048" 
+d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704
+q-26 0 -45 -19t-19 -45v-384h1152z" />
+    <glyph glyph-name="_532" unicode="&#xf237;" 
+d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+    <glyph glyph-name="_533" unicode="&#xf238;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56
+t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+    <glyph glyph-name="_534" unicode="&#xf239;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47
+t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+    <glyph glyph-name="_535" unicode="&#xf23a;" horiz-adv-x="1792" 
+d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116
+q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
+    <glyph glyph-name="_536" unicode="&#xf23b;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
+    <glyph glyph-name="_537" unicode="&#xf23c;" horiz-adv-x="2296" 
+d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5
+q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5
+q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42
+q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37
+q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5
+q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139
+q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8
+t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132
+q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132
+q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z
+M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86
+t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103
+q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4
+l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130
+t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150
+q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12
+q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
+    <glyph glyph-name="_538" unicode="&#xf23d;" horiz-adv-x="2304" 
+d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5
+t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5
+t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
+    <glyph glyph-name="_539" unicode="&#xf23e;" horiz-adv-x="1792" 
+d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348
+t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23
+t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512
+q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
+    <glyph glyph-name="_540" unicode="&#xf240;" horiz-adv-x="2304" 
+d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113
+v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="_541" unicode="&#xf241;" horiz-adv-x="2304" 
+d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_542" unicode="&#xf242;" horiz-adv-x="2304" 
+d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_543" unicode="&#xf243;" horiz-adv-x="2304" 
+d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_544" unicode="&#xf244;" horiz-adv-x="2304" 
+d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23
+v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_545" unicode="&#xf245;" horiz-adv-x="1280" 
+d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
+    <glyph glyph-name="_546" unicode="&#xf246;" horiz-adv-x="1024" 
+d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
+    <glyph glyph-name="_547" unicode="&#xf247;" horiz-adv-x="2048" 
+d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128
+h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
+    <glyph glyph-name="_548" unicode="&#xf248;" horiz-adv-x="2304" 
+d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256
+v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
+    <glyph glyph-name="_549" unicode="&#xf249;" 
+d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
+    <glyph glyph-name="_550" unicode="&#xf24a;" 
+d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="_551" unicode="&#xf24b;" horiz-adv-x="2304" 
+d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5
+t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88
+t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90
+t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_552" unicode="&#xf24c;" horiz-adv-x="2304" 
+d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294
+t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z
+M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_553" unicode="&#xf24d;" horiz-adv-x="1792" 
+d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113
+zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_554" unicode="&#xf24e;" horiz-adv-x="2304" 
+d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91
+t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5
+t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
+    <glyph glyph-name="_555" unicode="&#xf250;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5
+t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_556" unicode="&#xf251;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
+    <glyph glyph-name="_557" unicode="&#xf252;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
+    <glyph glyph-name="_558" unicode="&#xf253;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196
+h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_559" unicode="&#xf254;" 
+d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87
+t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9
+h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
+    <glyph glyph-name="_560" unicode="&#xf255;" 
+d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25
+q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27
+t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21
+q72 69 174 69z" />
+    <glyph glyph-name="_561" unicode="&#xf256;" horiz-adv-x="1792" 
+d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33
+t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52
+h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
+    <glyph glyph-name="_562" unicode="&#xf257;" horiz-adv-x="1792" 
+d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668
+q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17
+t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5
+t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5
+q0 -42 -23 -78t-61 -53l-310 -141h91z" />
+    <glyph glyph-name="_563" unicode="&#xf258;" horiz-adv-x="2048" 
+d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32
+q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68
+q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
+    <glyph glyph-name="_564" unicode="&#xf259;" horiz-adv-x="2048" 
+d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79
+t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24
+q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26
+l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" />
+    <glyph glyph-name="_565" unicode="&#xf25a;" horiz-adv-x="1792" 
+d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5
+q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5
+v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32
+v-384h32z" />
+    <glyph glyph-name="_566" unicode="&#xf25b;" 
+d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181
+v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46
+q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5
+q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308
+q0 -53 37.5 -90.5t90.5 -37.5h668z" />
+    <glyph glyph-name="_567" unicode="&#xf25c;" horiz-adv-x="1973" 
+d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5
+t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141
+q13 0 22 -8.5t10 -20.5z" />
+    <glyph glyph-name="_568" unicode="&#xf25d;" horiz-adv-x="1792" 
+d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109
+t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640
+q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_569" unicode="&#xf25e;" horiz-adv-x="1792" 
+d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78
+q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5
+t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376
+q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
+    <glyph glyph-name="f260" unicode="&#xf260;" horiz-adv-x="2048" 
+d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
+    <glyph glyph-name="f261" unicode="&#xf261;" horiz-adv-x="1792" 
+d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_572" unicode="&#xf262;" horiz-adv-x="2304" 
+d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57
+t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197
+t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5
+t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5
+t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5
+q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
+    <glyph glyph-name="f263" unicode="&#xf263;" horiz-adv-x="1280" 
+d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5
+t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94
+q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
+    <glyph glyph-name="_574" unicode="&#xf264;" 
+d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32
+q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5
+zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_575" unicode="&#xf265;" horiz-adv-x="1720" 
+d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33
+l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
+    <glyph glyph-name="_576" unicode="&#xf266;" horiz-adv-x="2304" 
+d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540
+q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81
+l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
+    <glyph glyph-name="_577" unicode="&#xf267;" horiz-adv-x="1792" 
+d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640
+q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5
+t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5
+t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5
+t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191
+t191 -286t71 -348z" />
+    <glyph glyph-name="_578" unicode="&#xf268;" horiz-adv-x="1792" 
+d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962
+q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
+    <glyph glyph-name="_579" unicode="&#xf269;" horiz-adv-x="1792" 
+d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5
+q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5
+q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
+    <glyph glyph-name="_580" unicode="&#xf26a;" horiz-adv-x="1792" 
+d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339
+q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z
+" />
+    <glyph glyph-name="_581" unicode="&#xf26b;" horiz-adv-x="1792" 
+d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606
+q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z
+M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
+    <glyph glyph-name="_582" unicode="&#xf26c;" horiz-adv-x="2048" 
+d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23
+v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_583" unicode="&#xf26d;" horiz-adv-x="1792" 
+d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34
+h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100
+q-68 175 -180 287z" />
+    <glyph glyph-name="_584" unicode="&#xf26e;" 
+d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6
+q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13
+q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249
+q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183
+q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46
+t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
+    <glyph glyph-name="_585" unicode="&#xf270;" horiz-adv-x="1792" 
+d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z
+M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30
+q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57
+t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133
+q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
+    <glyph glyph-name="_586" unicode="&#xf271;" horiz-adv-x="1792" 
+d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9
+h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224
+v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
+    <glyph glyph-name="_587" unicode="&#xf272;" horiz-adv-x="1792" 
+d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23
+t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_588" unicode="&#xf273;" horiz-adv-x="1792" 
+d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z
+M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_589" unicode="&#xf274;" horiz-adv-x="1792" 
+d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23
+t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_590" unicode="&#xf275;" horiz-adv-x="1792" 
+d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
+    <glyph glyph-name="_591" unicode="&#xf276;" horiz-adv-x="1024" 
+d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249
+q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
+    <glyph glyph-name="_592" unicode="&#xf277;" horiz-adv-x="1792" 
+d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768
+q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
+    <glyph glyph-name="_593" unicode="&#xf278;" horiz-adv-x="2048" 
+d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173
+v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
+    <glyph glyph-name="_594" unicode="&#xf279;" horiz-adv-x="1792" 
+d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472
+q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
+    <glyph glyph-name="_595" unicode="&#xf27a;" horiz-adv-x="1792" 
+d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37
+t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="_596" unicode="&#xf27b;" horiz-adv-x="1792" 
+d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5
+t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51
+t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
+    <glyph glyph-name="_597" unicode="&#xf27c;" horiz-adv-x="1024" 
+d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
+    <glyph glyph-name="_598" unicode="&#xf27d;" horiz-adv-x="1792" 
+d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246
+q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
+    <glyph glyph-name="f27e" unicode="&#xf27e;" 
+d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
+    <glyph glyph-name="uniF280" unicode="&#xf280;" 
+d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72
+h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275
+l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
+    <glyph glyph-name="uniF281" unicode="&#xf281;" horiz-adv-x="1792" 
+d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5
+l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44
+t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106
+q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
+    <glyph glyph-name="_602" unicode="&#xf282;" horiz-adv-x="1792" 
+d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53
+q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
+    <glyph glyph-name="_603" unicode="&#xf283;" horiz-adv-x="2304" 
+d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
+    <glyph glyph-name="_604" unicode="&#xf284;" horiz-adv-x="1792" 
+d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308
+t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20
+t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" />
+    <glyph glyph-name="uniF285" unicode="&#xf285;" horiz-adv-x="1792" 
+d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
+    <glyph glyph-name="uniF286" unicode="&#xf286;" horiz-adv-x="1792" 
+d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96
+q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5
+q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96
+q16 0 16 -16z" />
+    <glyph glyph-name="_607" unicode="&#xf287;" horiz-adv-x="2304" 
+d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96
+q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5
+t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
+    <glyph glyph-name="_608" unicode="&#xf288;" horiz-adv-x="1792" 
+d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348
+t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_609" unicode="&#xf289;" horiz-adv-x="2304" 
+d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22
+q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5
+q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13
+q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
+    <glyph glyph-name="_610" unicode="&#xf28a;" 
+d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83
+t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20
+q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5
+t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
+    <glyph glyph-name="_611" unicode="&#xf28b;" 
+d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103
+t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_612" unicode="&#xf28c;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
+    <glyph glyph-name="_613" unicode="&#xf28d;" 
+d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="_614" unicode="&#xf28e;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
+    <glyph glyph-name="_615" unicode="&#xf290;" horiz-adv-x="1792" 
+d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_616" unicode="&#xf291;" horiz-adv-x="2048" 
+d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5
+t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416
+q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441
+h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
+    <glyph glyph-name="_617" unicode="&#xf292;" horiz-adv-x="1792" 
+d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12
+q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311
+q15 0 25 -12q9 -12 6 -28z" />
+    <glyph glyph-name="_618" unicode="&#xf293;" 
+d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5
+t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
+    <glyph glyph-name="_619" unicode="&#xf294;" horiz-adv-x="1024" 
+d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
+    <glyph glyph-name="_620" unicode="&#xf295;" 
+d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5
+t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_621" unicode="&#xf296;" horiz-adv-x="1792" 
+d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" />
+    <glyph glyph-name="_622" unicode="&#xf297;" horiz-adv-x="1792" 
+d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111
+q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" />
+    <glyph glyph-name="_623" unicode="&#xf298;" 
+d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14
+t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" />
+    <glyph glyph-name="_624" unicode="&#xf299;" horiz-adv-x="1792" 
+d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57
+q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285
+q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" />
+    <glyph glyph-name="_625" unicode="&#xf29a;" horiz-adv-x="1792" 
+d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42
+q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298
+t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_626" unicode="&#xf29b;" 
+d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300
+l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z
+M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" />
+    <glyph glyph-name="_627" unicode="&#xf29c;" 
+d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5
+t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5
+t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5
+t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_628" unicode="&#xf29d;" horiz-adv-x="1408" 
+d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457
+q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521
+q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661
+q3 -1 7 1t7 4l3 2q11 9 11 17z" />
+    <glyph glyph-name="_629" unicode="&#xf29e;" horiz-adv-x="2304" 
+d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10
+t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5
+t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5
+h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96
+t9.5 -70.5z" />
+    <glyph glyph-name="uniF2A0" unicode="&#xf2a0;" horiz-adv-x="1408" 
+d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5
+q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127
+l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272
+t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249
+q-18 -19 -45 -19z" />
+    <glyph glyph-name="uniF2A1" unicode="&#xf2a1;" horiz-adv-x="2176" 
+d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136
+t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56
+t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56
+t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136
+t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="uniF2A2" unicode="&#xf2a2;" horiz-adv-x="1792" 
+d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z
+M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72
+t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45
+t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4
+q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" />
+    <glyph glyph-name="uniF2A3" unicode="&#xf2a3;" horiz-adv-x="2304" 
+d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55
+q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5
+q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101
+q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35
+q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5
+q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" />
+    <glyph glyph-name="uniF2A4" unicode="&#xf2a4;" horiz-adv-x="1792" 
+d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19
+t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74
+t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233
+l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" />
+    <glyph glyph-name="uniF2A5" unicode="&#xf2a5;" 
+d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2
+q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10
+q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2A6" unicode="&#xf2a6;" horiz-adv-x="1535" 
+d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5
+l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5
+q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9
+q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" />
+    <glyph glyph-name="uniF2A7" unicode="&#xf2a7;" horiz-adv-x="1664" 
+d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37
+t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38
+l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148
+q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26
+l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" />
+    <glyph glyph-name="uniF2A8" unicode="&#xf2a8;" horiz-adv-x="1792" 
+d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5
+q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841
+q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5
+q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" />
+    <glyph glyph-name="uniF2A9" unicode="&#xf2a9;" horiz-adv-x="1280" 
+d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5
+q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z
+M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" />
+    <glyph glyph-name="uniF2AA" unicode="&#xf2aa;" 
+d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z
+M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5
+q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AB" unicode="&#xf2ab;" 
+d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114
+q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5
+t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="uniF2AC" unicode="&#xf2ac;" horiz-adv-x="1664" 
+d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35
+q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5
+t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" />
+    <glyph glyph-name="uniF2AD" unicode="&#xf2ad;" 
+d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115
+q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15
+t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AE" unicode="&#xf2ae;" horiz-adv-x="2304" 
+d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7
+q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158
+q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" />
+    <glyph glyph-name="uniF2B0" unicode="&#xf2b0;" 
+d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104
+q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108
+l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z
+M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" />
+    <glyph glyph-name="uniF2B1" unicode="&#xf2b1;" horiz-adv-x="1664" 
+d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5
+t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" />
+    <glyph glyph-name="uniF2B2" unicode="&#xf2b2;" horiz-adv-x="1792" 
+d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5
+t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114
+q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50
+q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5
+t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46
+q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5
+q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177
+t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" />
+    <glyph glyph-name="uniF2B3" unicode="&#xf2b3;" 
+d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110
+h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="uniF2B4" unicode="&#xf2b4;" 
+d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5
+q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B5" unicode="&#xf2b5;" horiz-adv-x="2304" 
+d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66
+l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180
+q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z
+M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421
+q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B6" unicode="&#xf2b6;" horiz-adv-x="1792" 
+d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107
+t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39
+q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" />
+    <glyph glyph-name="uniF2B7" unicode="&#xf2b7;" horiz-adv-x="1792" 
+d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5
+l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5
+h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94
+q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" />
+    <glyph glyph-name="uniF2B8" unicode="&#xf2b8;" 
+d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465
+l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161
+q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74
+q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" />
+    <glyph glyph-name="uniF2B9" unicode="&#xf2b9;" horiz-adv-x="1664" 
+d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576
+q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216
+q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="uniF2BA" unicode="&#xf2ba;" horiz-adv-x="1664" 
+d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5
+t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96
+q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216
+q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" />
+    <glyph glyph-name="uniF2BB" unicode="&#xf2bb;" horiz-adv-x="2048" 
+d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z
+M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568
+q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9
+h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BC" unicode="&#xf2bc;" horiz-adv-x="2048" 
+d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925
+q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568
+q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5
+t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113
+t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BD" unicode="&#xf2bd;" horiz-adv-x="1792" 
+d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5
+t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2BE" unicode="&#xf2be;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61
+t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" />
+    <glyph glyph-name="uniF2C0" unicode="&#xf2c0;" 
+d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5
+t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145
+q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" />
+    <glyph glyph-name="uniF2C1" unicode="&#xf2c1;" horiz-adv-x="1280" 
+d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5
+t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352
+q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C2" unicode="&#xf2c2;" horiz-adv-x="2048" 
+d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56
+t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23
+v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728
+q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C3" unicode="&#xf2c3;" horiz-adv-x="2048" 
+d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z
+M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47
+h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C4" unicode="&#xf2c4;" horiz-adv-x="1792" 
+d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117
+q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5
+t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" />
+    <glyph glyph-name="uniF2C5" unicode="&#xf2c5;" horiz-adv-x="2304" 
+d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21
+t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46
+t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54
+t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29
+q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5
+t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314
+q2 -42 2 -64z" />
+    <glyph glyph-name="uniF2C6" unicode="&#xf2c6;" horiz-adv-x="1792" 
+d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2C7" unicode="&#xf2c7;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C8" unicode="&#xf2c8;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C9" unicode="&#xf2c9;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CA" unicode="&#xf2ca;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CB" unicode="&#xf2cb;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z
+M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" />
+    <glyph glyph-name="uniF2CC" unicode="&#xf2cc;" horiz-adv-x="1920" 
+d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41
+t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19
+t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19
+t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" />
+    <glyph glyph-name="uniF2CD" unicode="&#xf2cd;" horiz-adv-x="1792" 
+d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42
+q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9
+t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23
+t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" />
+    <glyph glyph-name="uniF2CE" unicode="&#xf2ce;" 
+d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5
+t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70
+q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20
+q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5
+t72.5 -263.5z" />
+    <glyph glyph-name="uniF2D0" unicode="&#xf2d0;" horiz-adv-x="1792" 
+d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D1" unicode="&#xf2d1;" horiz-adv-x="1792" 
+d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D2" unicode="&#xf2d2;" horiz-adv-x="2048" 
+d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="uniF2D3" unicode="&#xf2d3;" horiz-adv-x="1792" 
+d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10
+l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D4" unicode="&#xf2d4;" horiz-adv-x="1792" 
+d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D5" unicode="&#xf2d5;" horiz-adv-x="1792" 
+d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D6" unicode="&#xf2d6;" horiz-adv-x="1794" 
+d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12
+t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5
+t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5
+q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5
+q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34
+q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5
+t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D7" unicode="&#xf2d7;" 
+d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89
+q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5
+t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" />
+    <glyph glyph-name="uniF2D8" unicode="&#xf2d8;" 
+d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7
+t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5
+h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113
+v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D9" unicode="&#xf2d9;" horiz-adv-x="2176" 
+d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584
+q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5
+q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15
+q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82
+q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104
+t302 11t306.5 -97q220 -115 333 -336t87 -474z" />
+    <glyph glyph-name="uniF2DA" unicode="&#xf2da;" horiz-adv-x="1792" 
+d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178
+q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199
+t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297
+t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208
+t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" />
+    <glyph glyph-name="uniF2DB" unicode="&#xf2db;" 
+d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16
+q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28
+t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32
+q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16
+h48q16 0 16 -16z" />
+    <glyph glyph-name="uniF2DC" unicode="&#xf2dc;" horiz-adv-x="1664" 
+d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45
+t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33
+q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313
+l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106
+q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" />
+    <glyph glyph-name="uniF2DD" unicode="&#xf2dd;" horiz-adv-x="1792" 
+d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321
+q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" />
+    <glyph glyph-name="uniF2DE" unicode="&#xf2de;" horiz-adv-x="1792" 
+d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62
+t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71
+t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2E0" unicode="&#xf2e0;" horiz-adv-x="1920" 
+d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3
+t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53
+q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5
+q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5
+t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5
+q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z
+M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21
+q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16
+q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" />
+    <glyph glyph-name="uniF2E1" unicode="&#xf2e1;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E2" unicode="&#xf2e2;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E3" unicode="&#xf2e3;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E4" unicode="&#xf2e4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E5" unicode="&#xf2e5;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E6" unicode="&#xf2e6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E7" unicode="&#xf2e7;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_698" unicode="&#xf2e8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E9" unicode="&#xf2e9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EA" unicode="&#xf2ea;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EB" unicode="&#xf2eb;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EC" unicode="&#xf2ec;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2ED" unicode="&#xf2ed;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EE" unicode="&#xf2ee;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="lessequal" unicode="&#xf500;" horiz-adv-x="1792" 
+ />
+  </font>
+</defs></svg>
diff --git a/assets/images/function-c2d3ad419e1676a0253d933935921a71.png b/assets/images/function-c2d3ad419e1676a0253d933935921a71.png
new file mode 100644
index 00000000..8cc8e52a
Binary files /dev/null and b/assets/images/function-c2d3ad419e1676a0253d933935921a71.png differ
diff --git a/assets/images/git-90b5c4fc3c5c732e3e2757fc83ecb1d4.png b/assets/images/git-90b5c4fc3c5c732e3e2757fc83ecb1d4.png
new file mode 100644
index 00000000..9e3ddceb
Binary files /dev/null and b/assets/images/git-90b5c4fc3c5c732e3e2757fc83ecb1d4.png differ
diff --git a/assets/images/hadoop-1c0b84f088853fdc601244e8fad4abdf.png b/assets/images/hadoop-1c0b84f088853fdc601244e8fad4abdf.png
new file mode 100644
index 00000000..f286db3e
Binary files /dev/null and b/assets/images/hadoop-1c0b84f088853fdc601244e8fad4abdf.png differ
diff --git a/assets/images/hdfs_conf-8af6d1660d09b58fc28a6fec1bff604b.png b/assets/images/hdfs_conf-8af6d1660d09b58fc28a6fec1bff604b.png
new file mode 100644
index 00000000..da0c4895
Binary files /dev/null and b/assets/images/hdfs_conf-8af6d1660d09b58fc28a6fec1bff604b.png differ
diff --git a/assets/images/historical_logs-815b75ba2fe1a1d1d90c284999e35f3d.png b/assets/images/historical_logs-815b75ba2fe1a1d1d90c284999e35f3d.png
new file mode 100644
index 00000000..0bd7e5f4
Binary files /dev/null and b/assets/images/historical_logs-815b75ba2fe1a1d1d90c284999e35f3d.png differ
diff --git a/assets/images/hive_query_paimon-9203a5f6debb35ce41f9f51be06e1446.png b/assets/images/hive_query_paimon-9203a5f6debb35ce41f9f51be06e1446.png
new file mode 100644
index 00000000..c471b5fc
Binary files /dev/null and b/assets/images/hive_query_paimon-9203a5f6debb35ce41f9f51be06e1446.png differ
diff --git a/assets/images/homework-96030dec4ea9db88b42668873f5a176d.png b/assets/images/homework-96030dec4ea9db88b42668873f5a176d.png
new file mode 100644
index 00000000..95193c9d
Binary files /dev/null and b/assets/images/homework-96030dec4ea9db88b42668873f5a176d.png differ
diff --git a/assets/images/homework_manager-96dc37860dd87f12ed55311b38116931.png b/assets/images/homework_manager-96dc37860dd87f12ed55311b38116931.png
new file mode 100644
index 00000000..e11b1e5f
Binary files /dev/null and b/assets/images/homework_manager-96dc37860dd87f12ed55311b38116931.png differ
diff --git a/assets/images/homework_submit-1f05dacf0fedfd1423f89ca2dec28437.png b/assets/images/homework_submit-1f05dacf0fedfd1423f89ca2dec28437.png
new file mode 100644
index 00000000..5c00d1df
Binary files /dev/null and b/assets/images/homework_submit-1f05dacf0fedfd1423f89ca2dec28437.png differ
diff --git a/assets/images/http_scheduling-267e8ae0aa04d5901cd98bea50370d69.png b/assets/images/http_scheduling-267e8ae0aa04d5901cd98bea50370d69.png
new file mode 100644
index 00000000..49610fca
Binary files /dev/null and b/assets/images/http_scheduling-267e8ae0aa04d5901cd98bea50370d69.png differ
diff --git a/assets/images/idea-d654040d5fad6fefd756ede9a9ac8a4b.png b/assets/images/idea-d654040d5fad6fefd756ede9a9ac8a4b.png
new file mode 100644
index 00000000..10221b83
Binary files /dev/null and b/assets/images/idea-d654040d5fad6fefd756ede9a9ac8a4b.png differ
diff --git a/assets/images/ingress_setting-2b8e1403aae4ff708a05f61f87d34733.png b/assets/images/ingress_setting-2b8e1403aae4ff708a05f61f87d34733.png
new file mode 100644
index 00000000..9e1366c4
Binary files /dev/null and b/assets/images/ingress_setting-2b8e1403aae4ff708a05f61f87d34733.png differ
diff --git a/assets/images/job-767d96706631b95dadf7638c142a0adc.png b/assets/images/job-767d96706631b95dadf7638c142a0adc.png
new file mode 100644
index 00000000..89b9cd0d
Binary files /dev/null and b/assets/images/job-767d96706631b95dadf7638c142a0adc.png differ
diff --git a/assets/images/job_goes_online-ae38a4f939687b0e80e8e5677885fe0d.png b/assets/images/job_goes_online-ae38a4f939687b0e80e8e5677885fe0d.png
new file mode 100644
index 00000000..15a89aaa
Binary files /dev/null and b/assets/images/job_goes_online-ae38a4f939687b0e80e8e5677885fe0d.png differ
diff --git a/assets/images/job_management-ccb5b6adb51dd3dc263c4511360a4291.png b/assets/images/job_management-ccb5b6adb51dd3dc263c4511360a4291.png
new file mode 100644
index 00000000..f420a177
Binary files /dev/null and b/assets/images/job_management-ccb5b6adb51dd3dc263c4511360a4291.png differ
diff --git a/assets/images/job_management_en-4c44c79f18f1fd4e478ed5905a58db25.png b/assets/images/job_management_en-4c44c79f18f1fd4e478ed5905a58db25.png
new file mode 100644
index 00000000..4b47f340
Binary files /dev/null and b/assets/images/job_management_en-4c44c79f18f1fd4e478ed5905a58db25.png differ
diff --git a/assets/images/job_mirroring-8cbc7decc438aa15ca8166ba9a0bd7c1.png b/assets/images/job_mirroring-8cbc7decc438aa15ca8166ba9a0bd7c1.png
new file mode 100644
index 00000000..a58110b6
Binary files /dev/null and b/assets/images/job_mirroring-8cbc7decc438aa15ca8166ba9a0bd7c1.png differ
diff --git a/assets/images/k8s-9a28cd8f0e9c996501193f591ebe22b0.png b/assets/images/k8s-9a28cd8f0e9c996501193f591ebe22b0.png
new file mode 100644
index 00000000..f1d8cc4f
Binary files /dev/null and b/assets/images/k8s-9a28cd8f0e9c996501193f591ebe22b0.png differ
diff --git a/assets/images/k8s_app_detail-5ee71eb0d0e20f2c6e3009e98b3d63db.png b/assets/images/k8s_app_detail-5ee71eb0d0e20f2c6e3009e98b3d63db.png
new file mode 100644
index 00000000..b40ffef9
Binary files /dev/null and b/assets/images/k8s_app_detail-5ee71eb0d0e20f2c6e3009e98b3d63db.png differ
diff --git a/assets/images/k8s_application_submit-7d2a3d17220cc3048b6d5b22184f9afc.png b/assets/images/k8s_application_submit-7d2a3d17220cc3048b6d5b22184f9afc.png
new file mode 100644
index 00000000..24cc9104
Binary files /dev/null and b/assets/images/k8s_application_submit-7d2a3d17220cc3048b6d5b22184f9afc.png differ
diff --git a/assets/images/k8s_job-1759da059df126162f2b7e0c7b9b121a.png b/assets/images/k8s_job-1759da059df126162f2b7e0c7b9b121a.png
new file mode 100644
index 00000000..f812da0a
Binary files /dev/null and b/assets/images/k8s_job-1759da059df126162f2b7e0c7b9b121a.png differ
diff --git a/assets/images/k8s_log-aafb7f2dff97d584b187ab4a22de9eaf.png b/assets/images/k8s_log-aafb7f2dff97d584b187ab4a22de9eaf.png
new file mode 100644
index 00000000..8a1023dc
Binary files /dev/null and b/assets/images/k8s_log-aafb7f2dff97d584b187ab4a22de9eaf.png differ
diff --git a/assets/images/k8s_pvc-cdeee4dafe036102e017aad3b6c13f5d.png b/assets/images/k8s_pvc-cdeee4dafe036102e017aad3b6c13f5d.png
new file mode 100644
index 00000000..405773f3
Binary files /dev/null and b/assets/images/k8s_pvc-cdeee4dafe036102e017aad3b6c13f5d.png differ
diff --git a/assets/images/kappa-924eb8691ece5d996d9aa740e5b79230.png b/assets/images/kappa-924eb8691ece5d996d9aa740e5b79230.png
new file mode 100644
index 00000000..66cc5b3a
Binary files /dev/null and b/assets/images/kappa-924eb8691ece5d996d9aa740e5b79230.png differ
diff --git a/assets/images/kubernetes_base_parameters-1a28fec8d9d3dc57744324db4ef58551.png b/assets/images/kubernetes_base_parameters-1a28fec8d9d3dc57744324db4ef58551.png
new file mode 100644
index 00000000..7def5545
Binary files /dev/null and b/assets/images/kubernetes_base_parameters-1a28fec8d9d3dc57744324db4ef58551.png differ
diff --git a/assets/images/lambda-e357a7e34ced4e82971d4b86acc790b4.png b/assets/images/lambda-e357a7e34ced4e82971d4b86acc790b4.png
new file mode 100644
index 00000000..bb750c99
Binary files /dev/null and b/assets/images/lambda-e357a7e34ced4e82971d4b86acc790b4.png differ
diff --git a/assets/images/launcher-766611cb0dddb99d8437ead44d0665d4.png b/assets/images/launcher-766611cb0dddb99d8437ead44d0665d4.png
new file mode 100644
index 00000000..71c10a91
Binary files /dev/null and b/assets/images/launcher-766611cb0dddb99d8437ead44d0665d4.png differ
diff --git a/assets/images/ldap-39a8f66b7bba105117ecbfc54551dc95.png b/assets/images/ldap-39a8f66b7bba105117ecbfc54551dc95.png
new file mode 100644
index 00000000..16f3c6c9
Binary files /dev/null and b/assets/images/ldap-39a8f66b7bba105117ecbfc54551dc95.png differ
diff --git a/assets/images/lib-681f949f839a87303f598e2e7b907e24.png b/assets/images/lib-681f949f839a87303f598e2e7b907e24.png
new file mode 100644
index 00000000..c50d7237
Binary files /dev/null and b/assets/images/lib-681f949f839a87303f598e2e7b907e24.png differ
diff --git a/assets/images/lib-faa76eddded5bdcb4228bf65c2d3122d.png b/assets/images/lib-faa76eddded5bdcb4228bf65c2d3122d.png
new file mode 100644
index 00000000..5b0df6d0
Binary files /dev/null and b/assets/images/lib-faa76eddded5bdcb4228bf65c2d3122d.png differ
diff --git a/assets/images/link_jump-f353a479fac3e5576056edcaab705dda.png b/assets/images/link_jump-f353a479fac3e5576056edcaab705dda.png
new file mode 100644
index 00000000..80535f9c
Binary files /dev/null and b/assets/images/link_jump-f353a479fac3e5576056edcaab705dda.png differ
diff --git a/assets/images/log-42ef92b8036ed3698fb0fbb1abdaecab.png b/assets/images/log-42ef92b8036ed3698fb0fbb1abdaecab.png
new file mode 100644
index 00000000..06c5ac6b
Binary files /dev/null and b/assets/images/log-42ef92b8036ed3698fb0fbb1abdaecab.png differ
diff --git a/assets/images/logs-e4e9f2084f1fbcf0a4afe079433cef0a.png b/assets/images/logs-e4e9f2084f1fbcf0a4afe079433cef0a.png
new file mode 100644
index 00000000..0c9643eb
Binary files /dev/null and b/assets/images/logs-e4e9f2084f1fbcf0a4afe079433cef0a.png differ
diff --git a/assets/images/loki-372203296a8af19f7a32fcd2162fdc29.png b/assets/images/loki-372203296a8af19f7a32fcd2162fdc29.png
new file mode 100644
index 00000000..f6e66826
Binary files /dev/null and b/assets/images/loki-372203296a8af19f7a32fcd2162fdc29.png differ
diff --git a/assets/images/management-9eb1dec5b2fa480e897cf1c12d1425d8.png b/assets/images/management-9eb1dec5b2fa480e897cf1c12d1425d8.png
new file mode 100644
index 00000000..a8f4cdfb
Binary files /dev/null and b/assets/images/management-9eb1dec5b2fa480e897cf1c12d1425d8.png differ
diff --git a/assets/images/manager-07ba2a4bc979cd2dd86fc9e07384ec61.png b/assets/images/manager-07ba2a4bc979cd2dd86fc9e07384ec61.png
new file mode 100644
index 00000000..37c57abe
Binary files /dev/null and b/assets/images/manager-07ba2a4bc979cd2dd86fc9e07384ec61.png differ
diff --git a/assets/images/multi_team_support_en-f7f607d42182ae6e2c41f706e0c0a743.png b/assets/images/multi_team_support_en-f7f607d42182ae6e2c41f706e0c0a743.png
new file mode 100644
index 00000000..6c0cbad3
Binary files /dev/null and b/assets/images/multi_team_support_en-f7f607d42182ae6e2c41f706e0c0a743.png differ
diff --git a/assets/images/multiple_environments_and_components_en-e4758211d3a79798f5e19aa8e8c03b0e.png b/assets/images/multiple_environments_and_components_en-e4758211d3a79798f5e19aa8e8c03b0e.png
new file mode 100644
index 00000000..384882d0
Binary files /dev/null and b/assets/images/multiple_environments_and_components_en-e4758211d3a79798f5e19aa8e8c03b0e.png differ
diff --git a/assets/images/multiple_execution_modes_en-6c7c16b64108f8485e811833d7282e86.png b/assets/images/multiple_execution_modes_en-6c7c16b64108f8485e811833d7282e86.png
new file mode 100644
index 00000000..0a51bdde
Binary files /dev/null and b/assets/images/multiple_execution_modes_en-6c7c16b64108f8485e811833d7282e86.png differ
diff --git a/assets/images/nativekubernetes_architecture-ad376f8ae79ab66d90d95742e8335d53.png b/assets/images/nativekubernetes_architecture-ad376f8ae79ab66d90d95742e8335d53.png
new file mode 100644
index 00000000..7b79c45c
Binary files /dev/null and b/assets/images/nativekubernetes_architecture-ad376f8ae79ab66d90d95742e8335d53.png differ
diff --git a/assets/images/new_cover-4883e1aa52dc856ae160abd142daf867.png b/assets/images/new_cover-4883e1aa52dc856ae160abd142daf867.png
new file mode 100644
index 00000000..499a916b
Binary files /dev/null and b/assets/images/new_cover-4883e1aa52dc856ae160abd142daf867.png differ
diff --git a/assets/images/new_cover-5991f0d6d5ee86bc8716862748caf484.png b/assets/images/new_cover-5991f0d6d5ee86bc8716862748caf484.png
new file mode 100644
index 00000000..d052b265
Binary files /dev/null and b/assets/images/new_cover-5991f0d6d5ee86bc8716862748caf484.png differ
diff --git a/assets/images/nocos-382ee7fe44f0199ec2209b703381d6cf.png b/assets/images/nocos-382ee7fe44f0199ec2209b703381d6cf.png
new file mode 100644
index 00000000..7abb9664
Binary files /dev/null and b/assets/images/nocos-382ee7fe44f0199ec2209b703381d6cf.png differ
diff --git a/assets/images/ods-bc0d5ecbef808b0ca349311569803f18.png b/assets/images/ods-bc0d5ecbef808b0ca349311569803f18.png
new file mode 100644
index 00000000..84d95b0f
Binary files /dev/null and b/assets/images/ods-bc0d5ecbef808b0ca349311569803f18.png differ
diff --git a/assets/images/online_flinksql-ca82a6f42e04e54e9f6da2b1e391b073.png b/assets/images/online_flinksql-ca82a6f42e04e54e9f6da2b1e391b073.png
new file mode 100644
index 00000000..b5dfc19b
Binary files /dev/null and b/assets/images/online_flinksql-ca82a6f42e04e54e9f6da2b1e391b073.png differ
diff --git a/assets/images/online_jar-48549248f657388c7aebc0c8491660fa.png b/assets/images/online_jar-48549248f657388c7aebc0c8491660fa.png
new file mode 100644
index 00000000..7c25b04b
Binary files /dev/null and b/assets/images/online_jar-48549248f657388c7aebc0c8491660fa.png differ
diff --git a/assets/images/operation-067a84b9b5b1491206780076f98e6f8d.png b/assets/images/operation-067a84b9b5b1491206780076f98e6f8d.png
new file mode 100644
index 00000000..c4ea644f
Binary files /dev/null and b/assets/images/operation-067a84b9b5b1491206780076f98e6f8d.png differ
diff --git a/assets/images/operational_background_en-921078815a2efaf6de311d061ea51c86.png b/assets/images/operational_background_en-921078815a2efaf6de311d061ea51c86.png
new file mode 100644
index 00000000..f211718d
Binary files /dev/null and b/assets/images/operational_background_en-921078815a2efaf6de311d061ea51c86.png differ
diff --git a/assets/images/overall_architecture_en-34d3339cff0ab62d179ea3f205e008c9.png b/assets/images/overall_architecture_en-34d3339cff0ab62d179ea3f205e008c9.png
new file mode 100644
index 00000000..bf2444a1
Binary files /dev/null and b/assets/images/overall_architecture_en-34d3339cff0ab62d179ea3f205e008c9.png differ
diff --git a/assets/images/paimon-dwd-d3b020d2bd2b78c26944a6928be39e4e.png b/assets/images/paimon-dwd-d3b020d2bd2b78c26944a6928be39e4e.png
new file mode 100644
index 00000000..dcaa96d6
Binary files /dev/null and b/assets/images/paimon-dwd-d3b020d2bd2b78c26944a6928be39e4e.png differ
diff --git a/assets/images/paimon-dwm-778a748d6b64c9e61d73e6b6da1d625f.png b/assets/images/paimon-dwm-778a748d6b64c9e61d73e6b6da1d625f.png
new file mode 100644
index 00000000..c8c01486
Binary files /dev/null and b/assets/images/paimon-dwm-778a748d6b64c9e61d73e6b6da1d625f.png differ
diff --git a/assets/images/paimon-dws-632e1291e21c4f628f7e87ca03ae5c6f.png b/assets/images/paimon-dws-632e1291e21c4f628f7e87ca03ae5c6f.png
new file mode 100644
index 00000000..733bd78b
Binary files /dev/null and b/assets/images/paimon-dws-632e1291e21c4f628f7e87ca03ae5c6f.png differ
diff --git a/assets/images/paimon-ods-876cf67ff375c0b5cb67d4a0e555b1a3.png b/assets/images/paimon-ods-876cf67ff375c0b5cb67d4a0e555b1a3.png
new file mode 100644
index 00000000..b459cc34
Binary files /dev/null and b/assets/images/paimon-ods-876cf67ff375c0b5cb67d4a0e555b1a3.png differ
diff --git a/assets/images/paimon_catalog_setting-aa6a826f1cb1a7d9c90fc3fae71a0ef3.png b/assets/images/paimon_catalog_setting-aa6a826f1cb1a7d9c90fc3fae71a0ef3.png
new file mode 100644
index 00000000..3a474532
Binary files /dev/null and b/assets/images/paimon_catalog_setting-aa6a826f1cb1a7d9c90fc3fae71a0ef3.png differ
diff --git a/assets/images/pain-4d2aee42ea7aae80eaeac17a6d51c090.png b/assets/images/pain-4d2aee42ea7aae80eaeac17a6d51c090.png
new file mode 100644
index 00000000..ab206a08
Binary files /dev/null and b/assets/images/pain-4d2aee42ea7aae80eaeac17a6d51c090.png differ
diff --git a/assets/images/parameter-d7feafe0cd25f249bec4b2115d64ec00.png b/assets/images/parameter-d7feafe0cd25f249bec4b2115d64ec00.png
new file mode 100644
index 00000000..c9442563
Binary files /dev/null and b/assets/images/parameter-d7feafe0cd25f249bec4b2115d64ec00.png differ
diff --git a/assets/images/parameter_configuration-94fb5d7ee0c9c04ed6d79ddb1cd3c1c7.png b/assets/images/parameter_configuration-94fb5d7ee0c9c04ed6d79ddb1cd3c1c7.png
new file mode 100644
index 00000000..bcfe0bbe
Binary files /dev/null and b/assets/images/parameter_configuration-94fb5d7ee0c9c04ed6d79ddb1cd3c1c7.png differ
diff --git a/assets/images/permission-affd274acd10773ad4531da9102f3f91.png b/assets/images/permission-affd274acd10773ad4531da9102f3f91.png
new file mode 100644
index 00000000..718955fc
Binary files /dev/null and b/assets/images/permission-affd274acd10773ad4531da9102f3f91.png differ
diff --git a/assets/images/permissions-5879a5913ed1c6f93481b0951b139fc3.png b/assets/images/permissions-5879a5913ed1c6f93481b0951b139fc3.png
new file mode 100644
index 00000000..bfd7f5c2
Binary files /dev/null and b/assets/images/permissions-5879a5913ed1c6f93481b0951b139fc3.png differ
diff --git a/assets/images/pipline-60b68a9487092b6866020ce983a85ac0.png b/assets/images/pipline-60b68a9487092b6866020ce983a85ac0.png
new file mode 100644
index 00000000..ddfddd33
Binary files /dev/null and b/assets/images/pipline-60b68a9487092b6866020ce983a85ac0.png differ
diff --git a/assets/images/platform_background_en-b2f833807aec53e4cd8153ac59766d4e.png b/assets/images/platform_background_en-b2f833807aec53e4cd8153ac59766d4e.png
new file mode 100644
index 00000000..b16c6617
Binary files /dev/null and b/assets/images/platform_background_en-b2f833807aec53e4cd8153ac59766d4e.png differ
diff --git a/assets/images/platform_construction-b73e12b57a4a9f558ada77038496bf50.png b/assets/images/platform_construction-b73e12b57a4a9f558ada77038496bf50.png
new file mode 100644
index 00000000..a399784a
Binary files /dev/null and b/assets/images/platform_construction-b73e12b57a4a9f558ada77038496bf50.png differ
diff --git a/assets/images/platform_evolution_en-8accacb1629486423dd06666918a0166.png b/assets/images/platform_evolution_en-8accacb1629486423dd06666918a0166.png
new file mode 100644
index 00000000..4c965091
Binary files /dev/null and b/assets/images/platform_evolution_en-8accacb1629486423dd06666918a0166.png differ
diff --git a/assets/images/platformized_management_en-ebe6e86784e9489b29cf9a434b4510db.png b/assets/images/platformized_management_en-ebe6e86784e9489b29cf9a434b4510db.png
new file mode 100644
index 00000000..8bfae84c
Binary files /dev/null and b/assets/images/platformized_management_en-ebe6e86784e9489b29cf9a434b4510db.png differ
diff --git a/assets/images/pod-d46370aaff2c34c4fe6a584c0524b28e.png b/assets/images/pod-d46370aaff2c34c4fe6a584c0524b28e.png
new file mode 100644
index 00000000..a3ff1dc8
Binary files /dev/null and b/assets/images/pod-d46370aaff2c34c4fe6a584c0524b28e.png differ
diff --git a/assets/images/pod_template-4a36a24383f78f09d3090e5ddf7fe1fa.png b/assets/images/pod_template-4a36a24383f78f09d3090e5ddf7fe1fa.png
new file mode 100644
index 00000000..1a8efc94
Binary files /dev/null and b/assets/images/pod_template-4a36a24383f78f09d3090e5ddf7fe1fa.png differ
diff --git a/assets/images/pod_template-722285f448ec8adc0fa939d0baea2d10.png b/assets/images/pod_template-722285f448ec8adc0fa939d0baea2d10.png
new file mode 100644
index 00000000..819f9e78
Binary files /dev/null and b/assets/images/pod_template-722285f448ec8adc0fa939d0baea2d10.png differ
diff --git a/assets/images/pod_template-d8a9864bc8486d493025cc5e8b0e6dd1.png b/assets/images/pod_template-d8a9864bc8486d493025cc5e8b0e6dd1.png
new file mode 100644
index 00000000..8129fed2
Binary files /dev/null and b/assets/images/pod_template-d8a9864bc8486d493025cc5e8b0e6dd1.png differ
diff --git a/assets/images/pom-949e43be1f8e611776858b7573047de2.jpg b/assets/images/pom-949e43be1f8e611776858b7573047de2.jpg
new file mode 100644
index 00000000..e1529bcd
Binary files /dev/null and b/assets/images/pom-949e43be1f8e611776858b7573047de2.jpg differ
diff --git a/assets/images/port_number-e421801c946def0b0e2df3747239fec6.png b/assets/images/port_number-e421801c946def0b0e2df3747239fec6.png
new file mode 100644
index 00000000..b2870da3
Binary files /dev/null and b/assets/images/port_number-e421801c946def0b0e2df3747239fec6.png differ
diff --git a/assets/images/process_steps-602d682d0f781a6178e3793ed9e434e7.png b/assets/images/process_steps-602d682d0f781a6178e3793ed9e434e7.png
new file mode 100644
index 00000000..c255cdad
Binary files /dev/null and b/assets/images/process_steps-602d682d0f781a6178e3793ed9e434e7.png differ
diff --git a/assets/images/production_environment-4f155f3b14a4e95c5367ba99a6c5a6f8.png b/assets/images/production_environment-4f155f3b14a4e95c5367ba99a6c5a6f8.png
new file mode 100644
index 00000000..e7b529d5
Binary files /dev/null and b/assets/images/production_environment-4f155f3b14a4e95c5367ba99a6c5a6f8.png differ
diff --git a/assets/images/project_configuration-add3d079bba91ac4977b830d3c3fe8f7.png b/assets/images/project_configuration-add3d079bba91ac4977b830d3c3fe8f7.png
new file mode 100644
index 00000000..e4ff5420
Binary files /dev/null and b/assets/images/project_configuration-add3d079bba91ac4977b830d3c3fe8f7.png differ
diff --git a/assets/images/queue-83552f1862acff8811b74488e8fe7c05.png b/assets/images/queue-83552f1862acff8811b74488e8fe7c05.png
new file mode 100644
index 00000000..347a6b9f
Binary files /dev/null and b/assets/images/queue-83552f1862acff8811b74488e8fe7c05.png differ
diff --git a/assets/images/realtime_warehouse-418beb6d713966065d731eb8417b8a6e.png b/assets/images/realtime_warehouse-418beb6d713966065d731eb8417b8a6e.png
new file mode 100644
index 00000000..5a052270
Binary files /dev/null and b/assets/images/realtime_warehouse-418beb6d713966065d731eb8417b8a6e.png differ
diff --git a/assets/images/recover-f1de53fdbe66c50b465d58d0a66050de.jpg b/assets/images/recover-f1de53fdbe66c50b465d58d0a66050de.jpg
new file mode 100644
index 00000000..16f151d7
Binary files /dev/null and b/assets/images/recover-f1de53fdbe66c50b465d58d0a66050de.jpg differ
diff --git a/assets/images/relevancy-a1914717d6479d16e07f7f1e6193f409.png b/assets/images/relevancy-a1914717d6479d16e07f7f1e6193f409.png
new file mode 100644
index 00000000..a0d453bf
Binary files /dev/null and b/assets/images/relevancy-a1914717d6479d16e07f7f1e6193f409.png differ
diff --git a/assets/images/remote-c75d520f5a61d9f100c0e1c58d304eb3.png b/assets/images/remote-c75d520f5a61d9f100c0e1c58d304eb3.png
new file mode 100644
index 00000000..c81acc3e
Binary files /dev/null and b/assets/images/remote-c75d520f5a61d9f100c0e1c58d304eb3.png differ
diff --git a/assets/images/remoteSubmission-390200dc9d1b5a55add19d303add2698.png b/assets/images/remoteSubmission-390200dc9d1b5a55add19d303add2698.png
new file mode 100644
index 00000000..ce6ddb46
Binary files /dev/null and b/assets/images/remoteSubmission-390200dc9d1b5a55add19d303add2698.png differ
diff --git a/assets/images/resource_overview-b7f0b5ccafd202f82c515c64e48cd377.png b/assets/images/resource_overview-b7f0b5ccafd202f82c515c64e48cd377.png
new file mode 100644
index 00000000..71181abe
Binary files /dev/null and b/assets/images/resource_overview-b7f0b5ccafd202f82c515c64e48cd377.png differ
diff --git a/assets/images/road_map_en-ea1ba2536fecd2828b882dd40ffe5bf4.png b/assets/images/road_map_en-ea1ba2536fecd2828b882dd40ffe5bf4.png
new file mode 100644
index 00000000..b3e9648f
Binary files /dev/null and b/assets/images/road_map_en-ea1ba2536fecd2828b882dd40ffe5bf4.png differ
diff --git a/assets/images/rocksdb_dependency-932be3682bef8d8cd169522c00cfd12b.png b/assets/images/rocksdb_dependency-932be3682bef8d8cd169522c00cfd12b.png
new file mode 100644
index 00000000..7edb3772
Binary files /dev/null and b/assets/images/rocksdb_dependency-932be3682bef8d8cd169522c00cfd12b.png differ
diff --git a/assets/images/row_level_permissions-cd7665f926dd3c92e8479be34f9084d5.png b/assets/images/row_level_permissions-cd7665f926dd3c92e8479be34f9084d5.png
new file mode 100644
index 00000000..628206f4
Binary files /dev/null and b/assets/images/row_level_permissions-cd7665f926dd3c92e8479be34f9084d5.png differ
diff --git a/assets/images/row_level_permissions_table-780239498d6b6d09c8a5c1ffe4ad44ef.png b/assets/images/row_level_permissions_table-780239498d6b6d09c8a5c1ffe4ad44ef.png
new file mode 100644
index 00000000..bd032b0a
Binary files /dev/null and b/assets/images/row_level_permissions_table-780239498d6b6d09c8a5c1ffe4ad44ef.png differ
diff --git a/assets/images/run_status-5a663d9169c0bce8f4cfb993db77ae59.png b/assets/images/run_status-5a663d9169c0bce8f4cfb993db77ae59.png
new file mode 100644
index 00000000..c2699fcc
Binary files /dev/null and b/assets/images/run_status-5a663d9169c0bce8f4cfb993db77ae59.png differ
diff --git a/assets/images/savepoint-b0288f5293875d156f20dbe768384076.png b/assets/images/savepoint-b0288f5293875d156f20dbe768384076.png
new file mode 100644
index 00000000..ece7a61d
Binary files /dev/null and b/assets/images/savepoint-b0288f5293875d156f20dbe768384076.png differ
diff --git a/assets/images/screenshot-2906914515b810aadb10db951d4f02bd.png b/assets/images/screenshot-2906914515b810aadb10db951d4f02bd.png
new file mode 100644
index 00000000..401fcd2b
Binary files /dev/null and b/assets/images/screenshot-2906914515b810aadb10db951d4f02bd.png differ
diff --git a/assets/images/source-afa30e0d3ab0116582cc4bd7831ce2ca.png b/assets/images/source-afa30e0d3ab0116582cc4bd7831ce2ca.png
new file mode 100644
index 00000000..667dbeb9
Binary files /dev/null and b/assets/images/source-afa30e0d3ab0116582cc4bd7831ce2ca.png differ
diff --git a/assets/images/sql_client-32fd9eb063198e6f35349187eed61546.png b/assets/images/sql_client-32fd9eb063198e6f35349187eed61546.png
new file mode 100644
index 00000000..a2f809e4
Binary files /dev/null and b/assets/images/sql_client-32fd9eb063198e6f35349187eed61546.png differ
diff --git a/assets/images/sql_develop-ef85f6a001fb814d494c9b39eb2dfba9.png b/assets/images/sql_develop-ef85f6a001fb814d494c9b39eb2dfba9.png
new file mode 100644
index 00000000..4c5f337d
Binary files /dev/null and b/assets/images/sql_develop-ef85f6a001fb814d494c9b39eb2dfba9.png differ
diff --git a/assets/images/sql_job-8e9bfa3d04866e5bf5e05103048f0e09.png b/assets/images/sql_job-8e9bfa3d04866e5bf5e05103048f0e09.png
new file mode 100644
index 00000000..524b1ba0
Binary files /dev/null and b/assets/images/sql_job-8e9bfa3d04866e5bf5e05103048f0e09.png differ
diff --git a/assets/images/sqlverify-7e12cf343c9c81fcbc2e20f8d7588f1b.png b/assets/images/sqlverify-7e12cf343c9c81fcbc2e20f8d7588f1b.png
new file mode 100644
index 00000000..45aa0762
Binary files /dev/null and b/assets/images/sqlverify-7e12cf343c9c81fcbc2e20f8d7588f1b.png differ
diff --git a/assets/images/start-71fbb288851d022c450a6bd34e8b4dc2.png b/assets/images/start-71fbb288851d022c450a6bd34e8b4dc2.png
new file mode 100644
index 00000000..cabe8ce1
Binary files /dev/null and b/assets/images/start-71fbb288851d022c450a6bd34e8b4dc2.png differ
diff --git a/assets/images/start_log-6ce6b3125c8693db96197193241d6807.png b/assets/images/start_log-6ce6b3125c8693db96197193241d6807.png
new file mode 100644
index 00000000..c35d6553
Binary files /dev/null and b/assets/images/start_log-6ce6b3125c8693db96197193241d6807.png differ
diff --git a/assets/images/start_the_job-036fdf864d022cf8de2282af72d4b3ca.png b/assets/images/start_the_job-036fdf864d022cf8de2282af72d4b3ca.png
new file mode 100644
index 00000000..2e8ddbf5
Binary files /dev/null and b/assets/images/start_the_job-036fdf864d022cf8de2282af72d4b3ca.png differ
diff --git a/assets/images/state_optimization_en-8a96d3d3392cb7d9b91a9f5b97dacd96.png b/assets/images/state_optimization_en-8a96d3d3392cb7d9b91a9f5b97dacd96.png
new file mode 100644
index 00000000..9dbe8674
Binary files /dev/null and b/assets/images/state_optimization_en-8a96d3d3392cb7d9b91a9f5b97dacd96.png differ
diff --git a/assets/images/state_recovery_en-9fd0c4443346771b7aafba64da4fb95d.png b/assets/images/state_recovery_en-9fd0c4443346771b7aafba64da4fb95d.png
new file mode 100644
index 00000000..e6d82822
Binary files /dev/null and b/assets/images/state_recovery_en-9fd0c4443346771b7aafba64da4fb95d.png differ
diff --git a/assets/images/status_acquisition_bottleneck_en-652976e1111719f2f1c32ffe44e45a71.png b/assets/images/status_acquisition_bottleneck_en-652976e1111719f2f1c32ffe44e45a71.png
new file mode 100644
index 00000000..271bf6c2
Binary files /dev/null and b/assets/images/status_acquisition_bottleneck_en-652976e1111719f2f1c32ffe44e45a71.png differ
diff --git a/assets/images/step-d945592bbe32c0e093289c6265472f1c.png b/assets/images/step-d945592bbe32c0e093289c6265472f1c.png
new file mode 100644
index 00000000..e86192cc
Binary files /dev/null and b/assets/images/step-d945592bbe32c0e093289c6265472f1c.png differ
diff --git a/assets/images/step_details-301b14f2dbfa9c41f4c0e75a9086f0a4.png b/assets/images/step_details-301b14f2dbfa9c41f4c0e75a9086f0a4.png
new file mode 100644
index 00000000..f013541d
Binary files /dev/null and b/assets/images/step_details-301b14f2dbfa9c41f4c0e75a9086f0a4.png differ
diff --git a/assets/images/streaming_warehouse-ab83b309ef461f3907c2df023143c817.png b/assets/images/streaming_warehouse-ab83b309ef461f3907c2df023143c817.png
new file mode 100644
index 00000000..0a2c9fa5
Binary files /dev/null and b/assets/images/streaming_warehouse-ab83b309ef461f3907c2df023143c817.png differ
diff --git a/assets/images/streampark_apis-574b985bc649f26aacf875ccd0155793.jpeg b/assets/images/streampark_apis-574b985bc649f26aacf875ccd0155793.jpeg
new file mode 100644
index 00000000..e4c1b424
Binary files /dev/null and b/assets/images/streampark_apis-574b985bc649f26aacf875ccd0155793.jpeg differ
diff --git a/assets/images/streampark_archite-ff9eba80347b8b3c47d241007386f7bc.png b/assets/images/streampark_archite-ff9eba80347b8b3c47d241007386f7bc.png
new file mode 100644
index 00000000..aaf2b267
Binary files /dev/null and b/assets/images/streampark_archite-ff9eba80347b8b3c47d241007386f7bc.png differ
diff --git a/assets/images/streampark_debug_build-06cd03c36e5fe03d771f69ebf0edb2fb.png b/assets/images/streampark_debug_build-06cd03c36e5fe03d771f69ebf0edb2fb.png
new file mode 100644
index 00000000..7505e01f
Binary files /dev/null and b/assets/images/streampark_debug_build-06cd03c36e5fe03d771f69ebf0edb2fb.png differ
diff --git a/assets/images/streampark_debugging-8f400df7199ad25248a1268668f96a01.png b/assets/images/streampark_debugging-8f400df7199ad25248a1268668f96a01.png
new file mode 100644
index 00000000..3ef8c344
Binary files /dev/null and b/assets/images/streampark_debugging-8f400df7199ad25248a1268668f96a01.png differ
diff --git a/assets/images/streampark_docker_ls_hadoop-8e7848bd06b4c193ef02d0f722ad006a.png b/assets/images/streampark_docker_ls_hadoop-8e7848bd06b4c193ef02d0f722ad006a.png
new file mode 100644
index 00000000..f478959c
Binary files /dev/null and b/assets/images/streampark_docker_ls_hadoop-8e7848bd06b4c193ef02d0f722ad006a.png differ
diff --git a/assets/images/streampark_docker_ps-c715c198d48a9cffef4731beedef4f94.png b/assets/images/streampark_docker_ps-c715c198d48a9cffef4731beedef4f94.png
new file mode 100644
index 00000000..60776cd8
Binary files /dev/null and b/assets/images/streampark_docker_ps-c715c198d48a9cffef4731beedef4f94.png differ
diff --git a/assets/images/streampark_flinkhome-d6e90dd6fa04a003feef2eb6086ca3c3.png b/assets/images/streampark_flinkhome-d6e90dd6fa04a003feef2eb6086ca3c3.png
new file mode 100644
index 00000000..5da43634
Binary files /dev/null and b/assets/images/streampark_flinkhome-d6e90dd6fa04a003feef2eb6086ca3c3.png differ
diff --git a/assets/images/streampark_frontend_running-2cdb3e36175fc1f655b9db0273e1aab2.png b/assets/images/streampark_frontend_running-2cdb3e36175fc1f655b9db0273e1aab2.png
new file mode 100644
index 00000000..d39b7954
Binary files /dev/null and b/assets/images/streampark_frontend_running-2cdb3e36175fc1f655b9db0273e1aab2.png differ
diff --git a/assets/images/streampark_kafkaapi-c3eb75726e1ec7cb8788dea846c54933.jpeg b/assets/images/streampark_kafkaapi-c3eb75726e1ec7cb8788dea846c54933.jpeg
new file mode 100644
index 00000000..8cd3e854
Binary files /dev/null and b/assets/images/streampark_kafkaapi-c3eb75726e1ec7cb8788dea846c54933.jpeg differ
diff --git a/assets/images/streampark_login-c38d72811068f2d3b2bd865ac7cb759b.jpeg b/assets/images/streampark_login-c38d72811068f2d3b2bd865ac7cb759b.jpeg
new file mode 100644
index 00000000..4867ab94
Binary files /dev/null and b/assets/images/streampark_login-c38d72811068f2d3b2bd865ac7cb759b.jpeg differ
diff --git a/assets/images/streampark_modify_run_configuration-176261306c7c0ef7ca0b8067967d6826.jpg b/assets/images/streampark_modify_run_configuration-176261306c7c0ef7ca0b8067967d6826.jpg
new file mode 100644
index 00000000..098c15eb
Binary files /dev/null and b/assets/images/streampark_modify_run_configuration-176261306c7c0ef7ca0b8067967d6826.jpg differ
diff --git a/assets/images/streampark_run_config-d518cfc4f960434b126b8376571a04bb.jpeg b/assets/images/streampark_run_config-d518cfc4f960434b126b8376571a04bb.jpeg
new file mode 100644
index 00000000..e1b992cc
Binary files /dev/null and b/assets/images/streampark_run_config-d518cfc4f960434b126b8376571a04bb.jpeg differ
diff --git a/assets/images/streampark_scala_life_cycle-7bfdf4f1228b36f59fae79943d5c8108.png b/assets/images/streampark_scala_life_cycle-7bfdf4f1228b36f59fae79943d5c8108.png
new file mode 100644
index 00000000..f0c07563
Binary files /dev/null and b/assets/images/streampark_scala_life_cycle-7bfdf4f1228b36f59fae79943d5c8108.png differ
diff --git a/assets/images/streampark_select_team-a9cb67779e6ad36c3ccab02a3382acc2.jpg b/assets/images/streampark_select_team-a9cb67779e6ad36c3ccab02a3382acc2.jpg
new file mode 100644
index 00000000..17c0ceda
Binary files /dev/null and b/assets/images/streampark_select_team-a9cb67779e6ad36c3ccab02a3382acc2.jpg differ
diff --git a/assets/images/streampark_settings_2.0.0-8af18c05b4a169fb3b482186c00dcadf.png b/assets/images/streampark_settings_2.0.0-8af18c05b4a169fb3b482186c00dcadf.png
new file mode 100644
index 00000000..93086bdc
Binary files /dev/null and b/assets/images/streampark_settings_2.0.0-8af18c05b4a169fb3b482186c00dcadf.png differ
diff --git a/assets/images/streampark_source_generation_image-6022aab5159e058f0cb295ef4f13f508.png b/assets/images/streampark_source_generation_image-6022aab5159e058f0cb295ef4f13f508.png
new file mode 100644
index 00000000..1767c581
Binary files /dev/null and b/assets/images/streampark_source_generation_image-6022aab5159e058f0cb295ef4f13f508.png differ
diff --git a/assets/images/submission_process_en-46dc2e25232a2915b2eec367fcd62e08.png b/assets/images/submission_process_en-46dc2e25232a2915b2eec367fcd62e08.png
new file mode 100644
index 00000000..fe0f6b31
Binary files /dev/null and b/assets/images/submission_process_en-46dc2e25232a2915b2eec367fcd62e08.png differ
diff --git a/assets/images/successful-5bef1e14d16c3e90b504d99e28e70d2e.png b/assets/images/successful-5bef1e14d16c3e90b504d99e28e70d2e.png
new file mode 100644
index 00000000..97cb30f6
Binary files /dev/null and b/assets/images/successful-5bef1e14d16c3e90b504d99e28e70d2e.png differ
diff --git a/assets/images/sync_conf-9d2b45b6f42376859fda062127e33d82.png b/assets/images/sync_conf-9d2b45b6f42376859fda062127e33d82.png
new file mode 100644
index 00000000..aebdf418
Binary files /dev/null and b/assets/images/sync_conf-9d2b45b6f42376859fda062127e33d82.png differ
diff --git a/assets/images/system_interaction_process-0fa72272598ce1fbf180e4f859cf59dc.png b/assets/images/system_interaction_process-0fa72272598ce1fbf180e4f859cf59dc.png
new file mode 100644
index 00000000..1f9f9a6e
Binary files /dev/null and b/assets/images/system_interaction_process-0fa72272598ce1fbf180e4f859cf59dc.png differ
diff --git a/assets/images/system_list-6e9c13318d5aa2cfa4cdc11ac42c5844.png b/assets/images/system_list-6e9c13318d5aa2cfa4cdc11ac42c5844.png
new file mode 100644
index 00000000..54c5bd19
Binary files /dev/null and b/assets/images/system_list-6e9c13318d5aa2cfa4cdc11ac42c5844.png differ
diff --git a/assets/images/system_setting-6b5b21f22fc4a32b973ede0a5f21ebc2.png b/assets/images/system_setting-6b5b21f22fc4a32b973ede0a5f21ebc2.png
new file mode 100644
index 00000000..f83c03b0
Binary files /dev/null and b/assets/images/system_setting-6b5b21f22fc4a32b973ede0a5f21ebc2.png differ
diff --git a/assets/images/task_management-d7b65ce685ba87d759bcae290b0cbbe1.png b/assets/images/task_management-d7b65ce685ba87d759bcae290b0cbbe1.png
new file mode 100644
index 00000000..23f8a471
Binary files /dev/null and b/assets/images/task_management-d7b65ce685ba87d759bcae290b0cbbe1.png differ
diff --git a/assets/images/task_retrieval-eee86f9c0af117cbf15d2af5d528b2cc.png b/assets/images/task_retrieval-eee86f9c0af117cbf15d2af5d528b2cc.png
new file mode 100644
index 00000000..a5662acb
Binary files /dev/null and b/assets/images/task_retrieval-eee86f9c0af117cbf15d2af5d528b2cc.png differ
diff --git a/assets/images/token-94cb364497fe129fc62be3bbb7193390.png b/assets/images/token-94cb364497fe129fc62be3bbb7193390.png
new file mode 100644
index 00000000..8cabc2ac
Binary files /dev/null and b/assets/images/token-94cb364497fe129fc62be3bbb7193390.png differ
diff --git a/assets/images/versioning_en-5b907bf416e5c968917ed091b198bb31.png b/assets/images/versioning_en-5b907bf416e5c968917ed091b198bb31.png
new file mode 100644
index 00000000..1ec3d6e2
Binary files /dev/null and b/assets/images/versioning_en-5b907bf416e5c968917ed091b198bb31.png differ
diff --git a/assets/images/yarn_log-100e18b484ec81cf3165736de8259365.png b/assets/images/yarn_log-100e18b484ec81cf3165736de8259365.png
new file mode 100644
index 00000000..78cf8f2c
Binary files /dev/null and b/assets/images/yarn_log-100e18b484ec81cf3165736de8259365.png differ
diff --git a/assets/js/01a85c17.83951d21.js b/assets/js/01a85c17.83951d21.js
new file mode 100644
index 00000000..9c1b239e
--- /dev/null
+++ b/assets/js/01a85c17.83951d21.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8209],{34478:(e,t,a)=>{a.d(t,{A:()=>n});a(30758);var s=a(13526),i=a(86397);const r={tag:"tag_mtSO",tagRegular:"tagRegular_u5wg",tagWithCount:"tagWithCount_MP1N"};var l=a(86070);function n(e){let{permalink:t,label:a,count:n}=e;return(0,l.jsxs)(i.A,{href:t,className:(0,s.A)(r.tag,n?r.tagWithCount:r.tagRegular),children:[a,n&&(0,l.jsx)("span",{children:n})]})}},19349:(e,t,a)=>{a.d [...]
\ No newline at end of file
diff --git a/assets/js/02909488.b5ebd18f.js b/assets/js/02909488.b5ebd18f.js
new file mode 100644
index 00000000..e10925e4
--- /dev/null
+++ b/assets/js/02909488.b5ebd18f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[417],{21526:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var a=t(86070),r=t(76113),i=t(60630),o=t(24990);const s={id:"dev-model",title:"Programming Paradigm",sidebar_position:1},l=void 0,c={id:"framework/dev-model",title:"Programming Paradigm",description:"There are some rules and conventions to be followed i [...]
\ No newline at end of file
diff --git a/assets/js/034ede56.cfbb9235.js b/assets/js/034ede56.cfbb9235.js
new file mode 100644
index 00000000..299dc7c0
--- /dev/null
+++ b/assets/js/034ede56.cfbb9235.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1029],{58984:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var s=t(86070),n=t(76113);const i={id:"version-upgrade",title:"Version Upgrade Guide",sidebar_position:20},a=void 0,o={id:"platform/version-upgrade",title:"Version Upgrade Guide",description:"Pre-Upgrade Preparation",source:"@site/docs/platform/20.vers [...]
\ No newline at end of file
diff --git a/assets/js/035672d3.58cd672b.js b/assets/js/035672d3.58cd672b.js
new file mode 100644
index 00000000..99fdf284
--- /dev/null
+++ b/assets/js/035672d3.58cd672b.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8885],{11774:function(t){t.exports=function(t){function e(n){if(i[n])return i[n].exports;var a=i[n]={exports:{},id:n,loaded:!1};return t[n].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var i={};return e.m=t,e.c=i,e.p="dist/",e(0)}([function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}var a=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i [...]
\ No newline at end of file
diff --git a/assets/js/039942f3.407fabcc.js b/assets/js/039942f3.407fabcc.js
new file mode 100644
index 00000000..838fd3b3
--- /dev/null
+++ b/assets/js/039942f3.407fabcc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4337],{57351:a=>{a.exports=JSON.parse('{"tag":{"label":"streaming-warehouse","permalink":"/blog/tags/streaming-warehouse","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/streaming-warehouse","page":1,"postsPerPage":6,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/06e7197c.58db4ccc.js b/assets/js/06e7197c.58db4ccc.js
new file mode 100644
index 00000000..99ffb8e8
--- /dev/null
+++ b/assets/js/06e7197c.58db4ccc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[473],{685:(e,s,a)=>{a.r(s),a.d(s,{default:()=>l});var t=a(30758),c=a(86070);function l(){const e=(0,t.useRef)(null),[s,a]=(0,t.useState)(310),l=(0,t.useCallback)((e=>{const{offsetX:s}=e.nativeEvent;a(s)}),[a]);return(0,c.jsx)("div",{className:"d-flex justify-content-end",children:(0,c.jsxs)("div",{className:"screenshot",ref:e,onMouseMove:e=>l(e),children:[(0,c.jsx)("img",{style [...]
\ No newline at end of file
diff --git a/assets/js/075ca5bc.c79a463d.js b/assets/js/075ca5bc.c79a463d.js
new file mode 100644
index 00000000..b6e926c0
--- /dev/null
+++ b/assets/js/075ca5bc.c79a463d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3143],{23657:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>o});var s=i(86070),t=i(76113);const a={id:"how_to_verify_release",title:"How to Verify Release",sidebar_position:4},r="Verify the candidate version",l={id:"release/how_to_verify_release",title:"How to Verify Release",description:"For detailed check list, p [...]
\ No newline at end of file
diff --git a/assets/js/0ac53893.c1814748.js b/assets/js/0ac53893.c1814748.js
new file mode 100644
index 00000000..220dc52c
--- /dev/null
+++ b/assets/js/0ac53893.c1814748.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6667],{11654:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>a,toc:()=>l});var s=r(86070),i=r(76113);const t={id:"flink-on-k8s",title:"Flink on Kubernetes",sidebar_position:1},o=void 0,a={id:"platform/k8s/flink-on-k8s",title:"Flink on Kubernetes",description:"StreamPark Flink Kubernetes is based on Flink Native Kubernetes and [...]
\ No newline at end of file
diff --git a/assets/js/0ceb223b.ea5810ec.js b/assets/js/0ceb223b.ea5810ec.js
new file mode 100644
index 00000000..04b94bcf
--- /dev/null
+++ b/assets/js/0ceb223b.ea5810ec.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8162],{71593:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var a=n(86070),r=n(76113);const i={slug:"streampark-flink-on-k8s",title:"Apache StreamPark\u2122 Flink on Kubernetes practice",tags:["StreamPark","Production Practice","FlinkSQL","Kubernetes"],description:"Wuxin Technology was founded in January 2018.  [...]
\ No newline at end of file
diff --git a/assets/js/0d357cdf.ed4538b5.js b/assets/js/0d357cdf.ed4538b5.js
new file mode 100644
index 00000000..4eb4b0b8
--- /dev/null
+++ b/assets/js/0d357cdf.ed4538b5.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8387],{11774:function(e){e.exports=function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n [...]
\ No newline at end of file
diff --git a/assets/js/0e49e91b.01983af7.js b/assets/js/0e49e91b.01983af7.js
new file mode 100644
index 00000000..f74e5f8e
--- /dev/null
+++ b/assets/js/0e49e91b.01983af7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1884,473],{47945:(e,h,c)=>{c.r(h),c.d(h,{default:()=>P});var E,Q=c(30758),I=c(41608),j=c(78820),H=c(23031);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var h=1;h<arguments.length;h++){var c=arguments[h];for(var E in c)Object.prototype.hasOwnProperty.call(c,E)&&(e[E]=c[E])}return e},t.apply(this,arguments)}const C=e=>{let{title:h,titleId:c,...I}=e;ret [...]
\ No newline at end of file
diff --git a/assets/js/0e6d842f.5125494e.js b/assets/js/0e6d842f.5125494e.js
new file mode 100644
index 00000000..5bf2d972
--- /dev/null
+++ b/assets/js/0e6d842f.5125494e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[512],{8578:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=a(86070),r=a(76113);const s={slug:"streampark-usercase-dustess",title:"Apache StreamPark\u2122's Best Practices at Dustess, Simplifying Complexity for the Ultimate Experience",tags:["StreamPark","Production Practice","FlinkSQL"]},i=void 0,o={permal [...]
\ No newline at end of file
diff --git a/assets/js/0fceeaee.f1cb09f8.js b/assets/js/0fceeaee.f1cb09f8.js
new file mode 100644
index 00000000..2095ce51
--- /dev/null
+++ b/assets/js/0fceeaee.f1cb09f8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6749],{41429:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>m});var i=t(86070),o=t(76113);const r={id:"become_committer",title:"Become A Committer",sidebar_position:2},s=void 0,c={id:"contribution_guide/become_committer",title:"Become A Committer",description:"\x3c!--",source:"@site/community/contribution_guide/bec [...]
\ No newline at end of file
diff --git a/assets/js/10528343.38658f73.js b/assets/js/10528343.38658f73.js
new file mode 100644
index 00000000..e855e0f2
--- /dev/null
+++ b/assets/js/10528343.38658f73.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[45],{14338:a=>{a.exports=JSON.parse('{"tag":{"label":"Production Practice","permalink":"/blog/tags/production-practice","allTagsPath":"/blog/tags","count":11,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/production-practice/page/2","page":2,"postsPerPage":6,"totalPages":2,"totalCount":11,"previousPage":"/blog/tags/production-practice","blogDescription":"Blog","blogT [...]
\ No newline at end of file
diff --git a/assets/js/138e0e15.849656d0.js b/assets/js/138e0e15.849656d0.js
new file mode 100644
index 00000000..7dd5091d
--- /dev/null
+++ b/assets/js/138e0e15.849656d0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4921],{41597:e=>{e.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/1508e8d4.c6ac604d.js b/assets/js/1508e8d4.c6ac604d.js
new file mode 100644
index 00000000..93e761cc
--- /dev/null
+++ b/assets/js/1508e8d4.c6ac604d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5794],{32534:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var t=i(86070),o=i(76113);const a={slug:"streampark-usercase-ziru",title:"Ziroom's Real-Time Computing Platform Practice Based on Apache StreamPark\u2122",tags:["StreamPark","Production Practice"]},s=void 0,r={permalink:"/blog/streampark-usercase-ziru" [...]
\ No newline at end of file
diff --git a/assets/js/16273241.b462930c.js b/assets/js/16273241.b462930c.js
new file mode 100644
index 00000000..b73de906
--- /dev/null
+++ b/assets/js/16273241.b462930c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2233],{24240:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var t=i(86070),s=i(76113);const r={},l=void 0,o={type:"mdx",permalink:"/download/release-note/2.1.2",source:"@site/src/pages/download/release-note/2.1.2.md",description:"Release Notes 2.1.2",frontMatter:{},unlisted:!1},a={},c=[{value:"Release Notes 2.1 [...]
\ No newline at end of file
diff --git a/assets/js/16ae2a96.8757a7a6.js b/assets/js/16ae2a96.8757a7a6.js
new file mode 100644
index 00000000..f08c4a82
--- /dev/null
+++ b/assets/js/16ae2a96.8757a7a6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8986],{6797:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var a=t(86070),s=t(76113);const i={slug:"streampark-usercase-shunwang",title:"Apache StreamPark\u2122 in the Large-Scale Production Practice at Shunwang Technology",tags:["StreamPark","Production Practice","FlinkSQL"]},o=void 0,r={permalink:"/blog/strea [...]
\ No newline at end of file
diff --git a/assets/js/17896441.38003341.js b/assets/js/17896441.38003341.js
new file mode 100644
index 00000000..425e85ab
--- /dev/null
+++ b/assets/js/17896441.38003341.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8401],{7572:(e,n,t)=>{t.r(n),t.d(n,{default:()=>se});var a=t(30758),i=t(68109),s=t(23423),o=t(86070);const l=a.createContext(null);function r(e){let{children:n,content:t}=e;const i=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(t);return(0,o.jsx)(l.Provider,{value:i,children:n}) [...]
\ No newline at end of file
diff --git a/assets/js/181d6f49.9cfe3981.js b/assets/js/181d6f49.9cfe3981.js
new file mode 100644
index 00000000..ba9d5c2b
--- /dev/null
+++ b/assets/js/181d6f49.9cfe3981.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7462],{79879:(e,a,t)=>{t.r(a),t.d(a,{default:()=>n});t(30758);var r=t(78820),i=t(23031),s=t(86070);function n(){const e=(0,r.A)()&&0===location.pathname.indexOf("/zh-CN/")?"zh-CN":"en",a=i?.[e];return(0,s.jsx)("div",{className:"section feature",children:(0,s.jsxs)("div",{className:"container",children:[(0,s.jsx)("div",{className:"row text-center",children:(0,s.jsx)("div",{class [...]
\ No newline at end of file
diff --git a/assets/js/18849f3d.eb01b19d.js b/assets/js/18849f3d.eb01b19d.js
new file mode 100644
index 00000000..51024d9c
--- /dev/null
+++ b/assets/js/18849f3d.eb01b19d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2784],{55826:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>m});var i=t(86070),o=t(76113);const r={id:"become_pmc_member",title:"Become A PMC member",sidebar_position:3},s=void 0,c={id:"contribution_guide/become_pmc_member",title:"Become A PMC member",description:"\x3c!--",source:"@site/community/contribution_guide [...]
\ No newline at end of file
diff --git a/assets/js/195e3fac.93495b7e.js b/assets/js/195e3fac.93495b7e.js
new file mode 100644
index 00000000..271a0981
--- /dev/null
+++ b/assets/js/195e3fac.93495b7e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8080],{23956:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=n(86070),i=n(76113);const r={id:"ldap",title:"LDAP Integration",sidebar_position:2},o=void 0,s={id:"platform/ldap",title:"LDAP Integration",description:"LDAP Introduction",source:"@site/docs/platform/2.LDAP.md",sourceDirName:"platform",slug:"/pla [...]
\ No newline at end of file
diff --git a/assets/js/1a4e3797.b0b687eb.js b/assets/js/1a4e3797.b0b687eb.js
new file mode 100644
index 00000000..94ef00bf
--- /dev/null
+++ b/assets/js/1a4e3797.b0b687eb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2138],{17216:(e,t,r)=>{r.d(t,{W:()=>u});var s=r(30758),a=r(37145);const n=["zero","one","two","few","many","other"];function c(e){return n.filter((t=>e.includes(t)))}const l={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.A)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules( [...]
\ No newline at end of file
diff --git a/assets/js/1db0feda.255126f9.js b/assets/js/1db0feda.255126f9.js
new file mode 100644
index 00000000..457a9b60
--- /dev/null
+++ b/assets/js/1db0feda.255126f9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4852],{62586:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=a(86070),n=a(76113);const i={slug:"streampark-usercase-ziru",title:"Ziroom's Real-Time Computing Platform Practice Based on Apache StreamPark\u2122",tags:["StreamPark","Production Practice"]},o=void 0,s={permalink:"/blog/streampark-usercase-ziru" [...]
\ No newline at end of file
diff --git a/assets/js/1df93b7f.56a95d19.js b/assets/js/1df93b7f.56a95d19.js
new file mode 100644
index 00000000..485cfa1e
--- /dev/null
+++ b/assets/js/1df93b7f.56a95d19.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4583,473,1884,7462,9539,1780],{11774:function(e){e.exports=function(e){function t(h){if(c[h])return c[h].exports;var i=c[h]={exports:{},id:h,loaded:!1};return e[h].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var c={};return t.m=e,t.c=c,t.p="dist/",t(0)}([function(e,t,c){"use strict";function h(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t<arg [...]
\ No newline at end of file
diff --git a/assets/js/1f391b9e.0c1694e7.js b/assets/js/1f391b9e.0c1694e7.js
new file mode 100644
index 00000000..46a13ed5
--- /dev/null
+++ b/assets/js/1f391b9e.0c1694e7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6061],{72094:(e,n,t)=>{t.d(n,{A:()=>f});t(30758);var a=t(13526),i=t(5117),s=t(59987),o=t(80806),l=t(37145);function r(e){void 0===e&&(e={});const{i18n:{currentLocale:n}}=(0,l.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:n}}=(0,l.A)();return n[e].calendar}();return new Intl.DateTimeFormat(n,{calendar:t,...e})}var d=t(86070);function c(e){let{lastUpdatedAt:n}=e;con [...]
\ No newline at end of file
diff --git a/assets/js/238ac0eb.44d3c706.js b/assets/js/238ac0eb.44d3c706.js
new file mode 100644
index 00000000..e77bf44e
--- /dev/null
+++ b/assets/js/238ac0eb.44d3c706.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8427],{72746:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=s(86070),t=s(76113);const r={},l=void 0,a={type:"mdx",permalink:"/download/release-note/2.1.4",source:"@site/src/pages/download/release-note/2.1.4.md",description:"Release Notes 2.1.4",frontMatter:{},unlisted:!1},d={},c=[{value:"Release Notes 2.1 [...]
\ No newline at end of file
diff --git a/assets/js/2397994d.531cf832.js b/assets/js/2397994d.531cf832.js
new file mode 100644
index 00000000..20921f59
--- /dev/null
+++ b/assets/js/2397994d.531cf832.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3888,6313,5257,5019],{66665:(e,a,s)=>{s.r(a),s.d(a,{default:()=>p});var r,t=s(30758),n=s(78820),c=s(1860),l=s(43347);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var s=arguments[a];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e},i.apply(this,arguments)}const o=e=>{let{title:a,titleId:s,. [...]
\ No newline at end of file
diff --git a/assets/js/25003e4f.76c64407.js b/assets/js/25003e4f.76c64407.js
new file mode 100644
index 00000000..f8823436
--- /dev/null
+++ b/assets/js/25003e4f.76c64407.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2838],{4351:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"streampark-flink-on-k8s","metadata":{"permalink":"/blog/streampark-flink-on-k8s","editUrl":"https://github.com/apache/incubator-streampark-website/edit/dev/blog/0-streampark-flink-on-k8s.md","source":"@site/blog/0-streampark-flink-on-k8s.md","title":"Apache StreamPark\u2122 Flink on Kubernetes practice","desc [...]
\ No newline at end of file
diff --git a/assets/js/2642.c00639e2.js b/assets/js/2642.c00639e2.js
new file mode 100644
index 00000000..cd04285b
--- /dev/null
+++ b/assets/js/2642.c00639e2.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2642],{5117:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(30758);var s=n(59987),o=n(80806),c=n(86397),r=n(13526);const a={iconEdit:"iconEdit_WHnd"};var l=n(86070);function i(e){let{className:t,...n}=e;return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,r.A)(a.iconEdit,t),"aria-hidden":"true",...n,children:(0,l.jsx)("g",{children:(0,l.jsx)("path",{d [...]
\ No newline at end of file
diff --git a/assets/js/271ff943.441fa1cf.js b/assets/js/271ff943.441fa1cf.js
new file mode 100644
index 00000000..3630a70b
--- /dev/null
+++ b/assets/js/271ff943.441fa1cf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9539],{44894:(e,a,t)=>{t.r(a),t.d(a,{default:()=>O});var l,r,c,i,s,n,o,m,h,d,p,f,v,y,x,u,g,z,k,b,E,w,H,N,j,S,M=t(30758),A=t(78820),P=(t(48186),t(23031));function D(){return D=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},D.apply(this,arguments) [...]
\ No newline at end of file
diff --git a/assets/js/290c2510.67e5948d.js b/assets/js/290c2510.67e5948d.js
new file mode 100644
index 00000000..8433c0d7
--- /dev/null
+++ b/assets/js/290c2510.67e5948d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9235],{14730:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=n(86070),o=n(76113);const s={slug:"streampark-usercase-joyme",title:"Apache StreamPark\u2122's Production Practice in Joyme",tags:["StreamPark","Production Practice","FlinkSQL"]},a=void 0,r={permalink:"/blog/streampark-usercase-joyme",editUrl:"ht [...]
\ No newline at end of file
diff --git a/assets/js/33a894b3.40b342e0.js b/assets/js/33a894b3.40b342e0.js
new file mode 100644
index 00000000..6fd9cbba
--- /dev/null
+++ b/assets/js/33a894b3.40b342e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2044],{50551:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var s=t(86070),i=t(76113);const a={slug:"streampark-flink-on-k8s",title:"Apache StreamPark\u2122 Flink on Kubernetes practice",tags:["StreamPark","Production Practice","FlinkSQL","Kubernetes"],description:"Wuxin Technology was founded in January 2018.  [...]
\ No newline at end of file
diff --git a/assets/js/36994c47.a1ce9430.js b/assets/js/36994c47.a1ce9430.js
new file mode 100644
index 00000000..4f455371
--- /dev/null
+++ b/assets/js/36994c47.a1ce9430.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9858],{45516:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/404e42f6.75613369.js b/assets/js/404e42f6.75613369.js
new file mode 100644
index 00000000..fb248383
--- /dev/null
+++ b/assets/js/404e42f6.75613369.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7960],{31678:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog/page/2","page":2,"postsPerPage":6,"totalPages":2,"totalCount":12,"previousPage":"/blog","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/41756ce8.2e4304e3.js b/assets/js/41756ce8.2e4304e3.js
new file mode 100644
index 00000000..4e245653
--- /dev/null
+++ b/assets/js/41756ce8.2e4304e3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9616],{15205:a=>{a.exports=JSON.parse('{"tags":[{"label":"StreamPark","permalink":"/blog/tags/stream-park","count":12},{"label":"Production Practice","permalink":"/blog/tags/production-practice","count":11},{"label":"FlinkSQL","permalink":"/blog/tags/flink-sql","count":7},{"label":"Kubernetes","permalink":"/blog/tags/kubernetes","count":1},{"label":"DataStream","permalink":"/bl [...]
\ No newline at end of file
diff --git a/assets/js/41d0d8de.4e38bcd3.js b/assets/js/41d0d8de.4e38bcd3.js
new file mode 100644
index 00000000..ac49c3da
--- /dev/null
+++ b/assets/js/41d0d8de.4e38bcd3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[547],{80237:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>o});var a=s(86070),r=s(76113);const i={id:"platform-build",title:"How to Build Platform",sidebar_position:8},t="Platform Installation Introduction",c={id:"platform/platform-build",title:"How to Build Platform",description:"Purpose and Scope",source:"@site/d [...]
\ No newline at end of file
diff --git a/assets/js/484566b6.46ace977.js b/assets/js/484566b6.46ace977.js
new file mode 100644
index 00000000..08dbf960
--- /dev/null
+++ b/assets/js/484566b6.46ace977.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2990],{15213:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>m,toc:()=>l});var n=t(86070),r=t(76113);const s={id:"team",title:"Team & member Management",sidebar_position:3},i=void 0,m={id:"platform/team",title:"Team & member Management",description:"User Management",source:"@site/docs/platform/3.team.md",sourceDirName:"platfo [...]
\ No newline at end of file
diff --git a/assets/js/49aa28ff.042175a2.js b/assets/js/49aa28ff.042175a2.js
new file mode 100644
index 00000000..3be7a5c4
--- /dev/null
+++ b/assets/js/49aa28ff.042175a2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5134],{24077:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var a=t(86070),n=t(76113),o=t(60630),i=t(24990);const s={id:"doris",title:"Apache Doris Connector",original:!0,sidebar_position:4},c=void 0,l={id:"framework/connector/doris",title:"Apache Doris Connector",description:"Apache Doris Connector",source:"@s [...]
\ No newline at end of file
diff --git a/assets/js/4e6186df.41f5a540.js b/assets/js/4e6186df.41f5a540.js
new file mode 100644
index 00000000..e9f64336
--- /dev/null
+++ b/assets/js/4e6186df.41f5a540.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[369],{30659:(e,t,r)=>{"use strict";r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=r(86070),a=r(76113),i=r(41836);const s={id:"development",title:"Development Guide",sidebar_position:3,language:"en"},o=void 0,c={id:"development/development",title:"Development Guide",description:"Environment Requirements",source:"@site/docs/devel [...]
\ No newline at end of file
diff --git a/assets/js/50297682.e2f40f66.js b/assets/js/50297682.e2f40f66.js
new file mode 100644
index 00000000..ce23a65d
--- /dev/null
+++ b/assets/js/50297682.e2f40f66.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[546],{85857:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>o});var i=s(86070),l=s(76113);const r={id:"code_style_and_quality_guide",title:"Code style and quality guide",sidebar_position:3},t=void 0,c={id:"submit_guide/code_style_and_quality_guide",title:"Code style and quality guide",description:"\x3c!--",source:"@ [...]
\ No newline at end of file
diff --git a/assets/js/53a3e6dc.127761d3.js b/assets/js/53a3e6dc.127761d3.js
new file mode 100644
index 00000000..25f3200d
--- /dev/null
+++ b/assets/js/53a3e6dc.127761d3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6261],{60922:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog","page":1,"postsPerPage":6,"totalPages":2,"totalCount":12,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/5581.8533cd94.js b/assets/js/5581.8533cd94.js
new file mode 100644
index 00000000..c7e25ccb
--- /dev/null
+++ b/assets/js/5581.8533cd94.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5581],{25581:(t,e,n)=>{n.d(e,{P:()=>ur});var s=n(30758);const i=(0,s.createContext)({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"}),o=(0,s.createContext)({}),r=(0,s.createContext)(null),a="undefined"!=typeof document,l=a?s.useLayoutEffect:s.useEffect,u=(0,s.createContext)({strict:!1}),c=t=>t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),h="data-"+c("framerAppear [...]
\ No newline at end of file
diff --git a/assets/js/5731d9fc.073ce9f5.js b/assets/js/5731d9fc.073ce9f5.js
new file mode 100644
index 00000000..bebb431a
--- /dev/null
+++ b/assets/js/5731d9fc.073ce9f5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7871],{15005:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(86070),i=t(76113);const r={},o=void 0,l={type:"mdx",permalink:"/download/release-note/2.1.1",source:"@site/src/pages/download/release-note/2.1.1.md",description:"Release Notes 2.1.1",frontMatter:{},unlisted:!1},a={},c=[{value:"Release Notes 2.1 [...]
\ No newline at end of file
diff --git a/assets/js/586f532c.0794d51e.js b/assets/js/586f532c.0794d51e.js
new file mode 100644
index 00000000..6d600d9e
--- /dev/null
+++ b/assets/js/586f532c.0794d51e.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8813],{11774:function(e){e.exports=function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n [...]
\ No newline at end of file
diff --git a/assets/js/594ae476.41388fc4.js b/assets/js/594ae476.41388fc4.js
new file mode 100644
index 00000000..4c4f778e
--- /dev/null
+++ b/assets/js/594ae476.41388fc4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[176],{35358:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=a(86070),i=a(76113);const r={slug:"streampark-flink-with-paimon-in-ziru",title:"Ziroom implements the best practice of one-key data input into the lake based on Apache StreamPark\u2122 + Paimon",tags:["StreamPark","Production Practice"]},o=void 0, [...]
\ No newline at end of file
diff --git a/assets/js/59a876ee.91f6d70d.js b/assets/js/59a876ee.91f6d70d.js
new file mode 100644
index 00000000..6aa2626c
--- /dev/null
+++ b/assets/js/59a876ee.91f6d70d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1751],{12021:e=>{e.exports=JSON.parse('{"tag":{"label":"Kubernetes","permalink":"/blog/tags/kubernetes","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/kubernetes","page":1,"postsPerPage":6,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/5b140940.70757eed.js b/assets/js/5b140940.70757eed.js
new file mode 100644
index 00000000..d583b191
--- /dev/null
+++ b/assets/js/5b140940.70757eed.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6684],{69592:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var t=a(86070),i=a(76113);const r={slug:"streampark-usercase-tianyancha",title:"Apache StreamPark\u2122 helps Tianyancha real-time platform construction\uff5cMultiple-fold increase in efficiency",tags:["StreamPark","Production Practice"]},o=void 0,s={p [...]
\ No newline at end of file
diff --git a/assets/js/5c513572.6913c5b7.js b/assets/js/5c513572.6913c5b7.js
new file mode 100644
index 00000000..56c610a2
--- /dev/null
+++ b/assets/js/5c513572.6913c5b7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2702],{46948:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var o=n(86070),r=n(76113);const i={id:"new_committer_process",title:"New Committer Process",sidebar_position:4},s=void 0,a={id:"contribution_guide/new_committer_process",title:"New Committer Process",description:"\x3c!--",source:"@site/community/contri [...]
\ No newline at end of file
diff --git a/assets/js/5c977d89.0cd6db33.js b/assets/js/5c977d89.0cd6db33.js
new file mode 100644
index 00000000..0383ba70
--- /dev/null
+++ b/assets/js/5c977d89.0cd6db33.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3707],{62129:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var o=i(86070),t=i(76113);const a={id:"hadoop-resource-integration",title:"Using Hadoop Resource in Flink on Kubernetes",sidebar_position:2},r=void 0,s={id:"platform/k8s/hadoop-resource-integration",title:"Using Hadoop Resource in Flink on Kubernetes", [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.f48bcd03.js b/assets/js/5e95c892.f48bcd03.js
new file mode 100644
index 00000000..0c30da6d
--- /dev/null
+++ b/assets/js/5e95c892.f48bcd03.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9647],{36550:(e,a,s)=>{s.r(a),s.d(a,{default:()=>n});s(30758);var r=s(13526),t=s(68109),c=s(80806),p=s(71977),u=s(43347),h=s(86070);function n(e){return(0,h.jsx)(t.e3,{className:(0,r.A)(c.G.wrapper.docsPages),children:(0,h.jsx)(u.A,{children:(0,p.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/63195d0b.3a813cae.js b/assets/js/63195d0b.3a813cae.js
new file mode 100644
index 00000000..7bbb2db0
--- /dev/null
+++ b/assets/js/63195d0b.3a813cae.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[61],{36808:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var i=n(86070),a=n(76113);const t={id:"how-to-use",title:"How to Use Platform",sidebar_position:4},r="Quick Start",l={id:"get-started/how-to-use",title:"How to Use Platform",description:"Note: This section is designed to provide a convenient process for  [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.1b75a995.js b/assets/js/6875c492.1b75a995.js
new file mode 100644
index 00000000..8dad8c13
--- /dev/null
+++ b/assets/js/6875c492.1b75a995.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4813],{34478:(e,t,n)=>{n.d(t,{A:()=>o});n(30758);var a=n(13526),i=n(86397);const s={tag:"tag_mtSO",tagRegular:"tagRegular_u5wg",tagWithCount:"tagWithCount_MP1N"};var l=n(86070);function o(e){let{permalink:t,label:n,count:o}=e;return(0,l.jsxs)(i.A,{href:t,className:(0,a.A)(s.tag,o?s.tagWithCount:s.tagRegular),children:[n,o&&(0,l.jsx)("span",{children:o})]})}},43348:(e,t,n)=>{n.d [...]
\ No newline at end of file
diff --git a/assets/js/6cc0f99e.e281e257.js b/assets/js/6cc0f99e.e281e257.js
new file mode 100644
index 00000000..52b3b8ba
--- /dev/null
+++ b/assets/js/6cc0f99e.e281e257.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4286],{37194:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var a=t(86070),i=t(76113);const s={slug:"streampark-flink-with-paimon-in-ziru",title:"Ziroom implements the best practice of one-key data input into the lake based on Apache StreamPark\u2122 + Paimon",tags:["StreamPark","Production Practice"]},o=void 0 [...]
\ No newline at end of file
diff --git a/assets/js/772332d5.aecf5fbe.js b/assets/js/772332d5.aecf5fbe.js
new file mode 100644
index 00000000..e7b1deef
--- /dev/null
+++ b/assets/js/772332d5.aecf5fbe.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4426],{79794:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>t,metadata:()=>i,toc:()=>l});var s=r(86070),o=r(76113);const t={id:"docker-deployment",title:"Platform Deployment using Docker",sidebar_position:3},a=void 0,i={id:"get-started/docker-deployment",title:"Platform Deployment using Docker",description:"This tutorial for docker deploy  [...]
\ No newline at end of file
diff --git a/assets/js/7c110bd0.a0fccb7e.js b/assets/js/7c110bd0.a0fccb7e.js
new file mode 100644
index 00000000..a83795e5
--- /dev/null
+++ b/assets/js/7c110bd0.a0fccb7e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6877],{82614:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Get Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"What is Apache StreamPark\u2122","h [...]
\ No newline at end of file
diff --git a/assets/js/7d302838.e5cfc9f8.js b/assets/js/7d302838.e5cfc9f8.js
new file mode 100644
index 00000000..1c04a2df
--- /dev/null
+++ b/assets/js/7d302838.e5cfc9f8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3980],{53302:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var t=n(86070),s=n(76113);const r={id:"documentation_style_guide",title:"Documentation Style Guide",sidebar_position:4},l=void 0,a={id:"submit_guide/documentation_style_guide",title:"Documentation Style Guide",description:"\x3c!--",source:"@site/commun [...]
\ No newline at end of file
diff --git a/assets/js/7eb40e06.c384edd1.js b/assets/js/7eb40e06.c384edd1.js
new file mode 100644
index 00000000..46c1100a
--- /dev/null
+++ b/assets/js/7eb40e06.c384edd1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1470],{86530:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var a=n(86070),i=n(76113);const r={id:"ext-link",title:"External Link Management",sidebar_position:5},o=void 0,l={id:"platform/ext-link",title:"External Link Management",description:"Background",source:"@site/docs/platform/5.external-link.md",sourceDir [...]
\ No newline at end of file
diff --git a/assets/js/80de6c06.0d99baeb.js b/assets/js/80de6c06.0d99baeb.js
new file mode 100644
index 00000000..b8e76a7b
--- /dev/null
+++ b/assets/js/80de6c06.0d99baeb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2105],{75951:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var n=t(86070),r=t(76113);const s={slug:"streampark-usercase-shunwang",title:"Apache StreamPark\u2122 in the Large-Scale Production Practice at Shunwang Technology",tags:["StreamPark","Production Practice","FlinkSQL"]},i=void 0,c={permalink:"/blog/stre [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.5c2a3e05.js b/assets/js/814f3328.5c2a3e05.js
new file mode 100644
index 00000000..4a5f0810
--- /dev/null
+++ b/assets/js/814f3328.5c2a3e05.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7472],{55513:e=>{e.exports=JSON.parse('{"title":"\u8fd1\u671f\u6587\u7ae0","items":[{"title":"Apache StreamPark\u2122 Flink on Kubernetes practice","permalink":"/blog/streampark-flink-on-k8s","unlisted":false},{"title":"Apache StreamPark\u2122 - Powerful Flink Development Framework","permalink":"/blog/flink-development-framework-streampark","unlisted":false},{"title":"Ziroom im [...]
\ No newline at end of file
diff --git a/assets/js/82500c57.fa84ed95.js b/assets/js/82500c57.fa84ed95.js
new file mode 100644
index 00000000..cfec21ba
--- /dev/null
+++ b/assets/js/82500c57.fa84ed95.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6313],{8987:(e,a,s)=>{s.r(a),s.d(a,{default:()=>l});s(30758);var r=s(78820),t=s(1860),n=s(86070);function l(e){const a=e.data||[],s=(0,r.A)()&&0===location.pathname.indexOf("/zh-CN/")?"zh-CN":"en",l=t?.[s];return(0,n.jsxs)("table",{className:"table-ui mb-4",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsxs)("th",{className:"text-center",children:[" ",l. [...]
\ No newline at end of file
diff --git a/assets/js/8310.437ca112.js b/assets/js/8310.437ca112.js
new file mode 100644
index 00000000..82d587be
--- /dev/null
+++ b/assets/js/8310.437ca112.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8310],{62136:(e,t,a)=>{a.d(t,{A:()=>o});a(30758);var i=a(13526),n=a(59987),s=a(96148),r=a(86070);function o(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,i.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r. [...]
\ No newline at end of file
diff --git a/assets/js/842cd290.d0b593cc.js b/assets/js/842cd290.d0b593cc.js
new file mode 100644
index 00000000..81d78c9c
--- /dev/null
+++ b/assets/js/842cd290.d0b593cc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8631],{56480:e=>{e.exports=JSON.parse('{"version":{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Contribution Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Mailing Lists","href":"/co [...]
\ No newline at end of file
diff --git a/assets/js/85d4dd05.dcdd5391.js b/assets/js/85d4dd05.dcdd5391.js
new file mode 100644
index 00000000..8acbbf8c
--- /dev/null
+++ b/assets/js/85d4dd05.dcdd5391.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5855],{96561:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>h});var a=t(86070),r=t(76113),i=t(60630),o=t(24990);const s={id:"jdbc",title:"JDBC Connector",sidebar_position:2},c=void 0,l={id:"framework/connector/jdbc",title:"JDBC Connector",description:"Apache Flink\xae officially provides the JDBC connector for read [...]
\ No newline at end of file
diff --git a/assets/js/86131026.cdcab1fc.js b/assets/js/86131026.cdcab1fc.js
new file mode 100644
index 00000000..849e7afa
--- /dev/null
+++ b/assets/js/86131026.cdcab1fc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4786],{73588:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>n,metadata:()=>l,toc:()=>c});var s=i(86070),r=i(76113);const n={id:"mailing_lists",title:"Mailing Lists",sidebar_position:1},a=void 0,l={id:"contribution_guide/mailing_lists",title:"Mailing Lists",description:"\x3c!--",source:"@site/community/contribution_guide/mailing_lists.md",s [...]
\ No newline at end of file
diff --git a/assets/js/8c7e3f1f.e915ace7.js b/assets/js/8c7e3f1f.e915ace7.js
new file mode 100644
index 00000000..706d3729
--- /dev/null
+++ b/assets/js/8c7e3f1f.e915ace7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3606],{33791:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=a(86070),o=a(76113);const r={slug:"streampark-usercase-changan",title:"Changan Automobile\u2019s upgrade practice from self-developed platform to Apache StreamPark\u2122",tags:["StreamPark","Production Practice"]},i=void 0,s={permalink:"/blog/str [...]
\ No newline at end of file
diff --git a/assets/js/8d63fd51.4bc35693.js b/assets/js/8d63fd51.4bc35693.js
new file mode 100644
index 00000000..5f1aae01
--- /dev/null
+++ b/assets/js/8d63fd51.4bc35693.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8142],{39632:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var t=n(86070),i=n(76113);const s={slug:"streampark-usercase-haibo",title:"An All-in-One Computation Tool in Haibo Tech's Production Practice and facilitation in Smart City Construction",tags:["StreamPark","Production Practice","FlinkSQL"]},r=void 0,o= [...]
\ No newline at end of file
diff --git a/assets/js/90483a18.5f805449.js b/assets/js/90483a18.5f805449.js
new file mode 100644
index 00000000..e8ce90e2
--- /dev/null
+++ b/assets/js/90483a18.5f805449.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5595],{8495:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var i=t(86070),r=t(76113),a=t(60630),s=t(24990);const o={id:"redis",title:"Redis Connector",sidebar_position:8},d=void 0,c={id:"framework/connector/redis",title:"Redis Connector",description:"Redis is an open source in-memory data structure storage syst [...]
\ No newline at end of file
diff --git a/assets/js/9056.00f94733.js b/assets/js/9056.00f94733.js
new file mode 100644
index 00000000..ebb6fa51
--- /dev/null
+++ b/assets/js/9056.00f94733.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9056],{99056:()=>{}}]);
\ No newline at end of file
diff --git a/assets/js/90b38822.db554b35.js b/assets/js/90b38822.db554b35.js
new file mode 100644
index 00000000..43234ea2
--- /dev/null
+++ b/assets/js/90b38822.db554b35.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3241],{17148:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var i=t(86070),o=t(76113);const s={id:"document",title:"Documentation Notice",sidebar_position:1},r=void 0,c={id:"submit_guide/document",title:"Documentation Notice",description:"\x3c!--",source:"@site/community/submit_guide/document.md",sourceDirName: [...]
\ No newline at end of file
diff --git a/assets/js/93114b5c.ffc5b5b3.js b/assets/js/93114b5c.ffc5b5b3.js
new file mode 100644
index 00000000..d65906cb
--- /dev/null
+++ b/assets/js/93114b5c.ffc5b5b3.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6535],{63958:(e,n,t)=>{"use strict";t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=t(86070),i=t(76113),a=t(41836);const o={id:"config",title:"Project Configuration",sidebar_position:2,language:"zh-CN"},s=void 0,l={id:"framework/config",title:"Project Configuration",description:"Configuration is very important in StreamPark.",so [...]
\ No newline at end of file
diff --git a/assets/js/936e7356.897df22a.js b/assets/js/936e7356.897df22a.js
new file mode 100644
index 00000000..2dded85b
--- /dev/null
+++ b/assets/js/936e7356.897df22a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1151],{47446:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=t(86070),r=t(76113);const i={slug:"streampark-usercase-bondex-with-paimon",title:"Based on Apache Paimon + Apache StreamPark\u2122's Streaming Data Warehouse Practice by Bondex",tags:["StreamPark","Production Practice","paimon","streaming-warehou [...]
\ No newline at end of file
diff --git a/assets/js/971833f8.eb987fd6.js b/assets/js/971833f8.eb987fd6.js
new file mode 100644
index 00000000..9208a29c
--- /dev/null
+++ b/assets/js/971833f8.eb987fd6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7248],{80705:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>o});var r=i(86070),l=i(76113);const s={},t=void 0,a={type:"mdx",permalink:"/download/release-note/2.0.0",source:"@site/src/pages/download/release-note/2.0.0.md",description:"Release Notes 2.0.0",frontMatter:{},unlisted:!1},d={},o=[{value:"Release Notes 2.0 [...]
\ No newline at end of file
diff --git a/assets/js/974abdd9.4460c0ed.js b/assets/js/974abdd9.4460c0ed.js
new file mode 100644
index 00000000..1462ef24
--- /dev/null
+++ b/assets/js/974abdd9.4460c0ed.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5257],{83978:(e,a,s)=>{s.r(a),s.d(a,{default:()=>l});s(30758);var r=s(78820),n=s(1860),t=s(86070);function l(e){const a=e.data||[],s=(0,r.A)()&&0===location.pathname.indexOf("/zh-CN/")?"zh-CN":"en",l=n?.[s];return a.map((e=>function(e,a){let{dataSource:s,language:r}=a;const n="en"===r,l=new Intl.DateTimeFormat(r,n&&{month:"short",year:"numeric",day:"numeric"}).format(new Date(e [...]
\ No newline at end of file
diff --git a/assets/js/97b764ab.ac7baca5.js b/assets/js/97b764ab.ac7baca5.js
new file mode 100644
index 00000000..0b2ae93a
--- /dev/null
+++ b/assets/js/97b764ab.ac7baca5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[705],{5724:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=t(86070),a=t(76113);const s={slug:"streampark-usercase-tianyancha",title:"Apache StreamPark\u2122 helps Tianyancha real-time platform construction\uff5cMultiple-fold increase in efficiency",tags:["StreamPark","Production Practice"]},o=void 0,r={per [...]
\ No newline at end of file
diff --git a/assets/js/9951.375399f0.js b/assets/js/9951.375399f0.js
new file mode 100644
index 00000000..90a03450
--- /dev/null
+++ b/assets/js/9951.375399f0.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.375399f0.js.LICENSE.txt */
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9951],{29951:(t,e,n)=>{"use strict";t.exports=n(84848)},48920:(t,e,n)=>{"use strict";var i=n(96627),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dr [...]
\ No newline at end of file
diff --git a/assets/js/9951.375399f0.js.LICENSE.txt b/assets/js/9951.375399f0.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/assets/js/9951.375399f0.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/assets/js/9b3c52b8.a1312042.js b/assets/js/9b3c52b8.a1312042.js
new file mode 100644
index 00000000..6ee7caa5
--- /dev/null
+++ b/assets/js/9b3c52b8.a1312042.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6047],{61657:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var t=n(86070),r=n(76113),i=n(60630),s=n(24990);const o={id:"kafka",title:"Apache Kafka Connector",sidebar_position:1},c=void 0,l={id:"framework/connector/kafka",title:"Apache Kafka Connector",description:"Apache Flink\xae officially provides a connect [...]
\ No newline at end of file
diff --git a/assets/js/9d628fe9.3e45b6f5.js b/assets/js/9d628fe9.3e45b6f5.js
new file mode 100644
index 00000000..fa62fd7e
--- /dev/null
+++ b/assets/js/9d628fe9.3e45b6f5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8308],{39091:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=s(86070),t=s(76113);const r={id:"yarn-queue",title:"Yarn Queue Management",sidebar_position:7},a=void 0,l={id:"platform/yarn-queue",title:"Yarn Queue Management",description:"Background",source:"@site/docs/platform/7.yarnQueue.md",sourceDirName:" [...]
\ No newline at end of file
diff --git a/assets/js/9de3006e.b586b998.js b/assets/js/9de3006e.b586b998.js
new file mode 100644
index 00000000..313f7489
--- /dev/null
+++ b/assets/js/9de3006e.b586b998.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4779],{15769:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=t(86070),a=t(76113);const o={id:"new_pmc_ember_process",title:"New PMC Member Process",sidebar_position:5},s=void 0,i={id:"contribution_guide/new_pmc_ember_process",title:"New PMC Member Process",description:"\x3c!--",source:"@site/community/cont [...]
\ No newline at end of file
diff --git a/assets/js/9e4087bc.c9d1afd4.js b/assets/js/9e4087bc.c9d1afd4.js
new file mode 100644
index 00000000..c77d0f24
--- /dev/null
+++ b/assets/js/9e4087bc.c9d1afd4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2711],{14314:(e,a,t)=>{t.r(a),t.d(a,{default:()=>d});t(30758);var r=t(86397),s=t(59987),i=t(68109),c=t(43347),n=t(86070);function l(e){let{year:a,posts:t}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("h3",{children:a}),(0,n.jsx)("ul",{children:t.map((e=>(0,n.jsx)("li",{children:(0,n.jsxs)(r.A,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metadata.tit [...]
\ No newline at end of file
diff --git a/assets/js/9ee02fc6.8f291989.js b/assets/js/9ee02fc6.8f291989.js
new file mode 100644
index 00000000..ba3f15e4
--- /dev/null
+++ b/assets/js/9ee02fc6.8f291989.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[2873],{10370:a=>{a.exports=JSON.parse('{"tag":{"label":"Production Practice","permalink":"/blog/tags/production-practice","allTagsPath":"/blog/tags","count":11,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/production-practice","page":1,"postsPerPage":6,"totalPages":2,"totalCount":11,"nextPage":"/blog/tags/production-practice/page/2","blogDescription":"Blog","blogTit [...]
\ No newline at end of file
diff --git a/assets/js/a50a39d4.7334b765.js b/assets/js/a50a39d4.7334b765.js
new file mode 100644
index 00000000..46e48d21
--- /dev/null
+++ b/assets/js/a50a39d4.7334b765.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4168],{61420:a=>{a.exports=JSON.parse('{"tag":{"label":"paimon","permalink":"/blog/tags/paimon","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/paimon","page":1,"postsPerPage":6,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/a54c9970.76460b10.js b/assets/js/a54c9970.76460b10.js
new file mode 100644
index 00000000..6969bec4
--- /dev/null
+++ b/assets/js/a54c9970.76460b10.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9581],{44830:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=t(86070),n=t(76113);const i={slug:"flink-development-framework-streampark",title:"Apache StreamPark\u2122 - Powerful Flink Development Framework",tags:["StreamPark","DataStream","FlinkSQL"]},o=void 0,s={permalink:"/blog/flink-development-framewor [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.99eadeda.js b/assets/js/a6aa9e1f.99eadeda.js
new file mode 100644
index 00000000..de499e8a
--- /dev/null
+++ b/assets/js/a6aa9e1f.99eadeda.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7643],{34478:(e,t,n)=>{n.d(t,{A:()=>o});n(30758);var a=n(13526),i=n(86397);const s={tag:"tag_mtSO",tagRegular:"tagRegular_u5wg",tagWithCount:"tagWithCount_MP1N"};var l=n(86070);function o(e){let{permalink:t,label:n,count:o}=e;return(0,l.jsxs)(i.A,{href:t,className:(0,a.A)(s.tag,o?s.tagWithCount:s.tagRegular),children:[n,o&&(0,l.jsx)("span",{children:o})]})}},43348:(e,t,n)=>{n.d [...]
\ No newline at end of file
diff --git a/assets/js/a7456010.db527b80.js b/assets/js/a7456010.db527b80.js
new file mode 100644
index 00000000..ba60d981
--- /dev/null
+++ b/assets/js/a7456010.db527b80.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1235],{88552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.35bdde18.js b/assets/js/a7bd4aaa.35bdde18.js
new file mode 100644
index 00000000..a1605c63
--- /dev/null
+++ b/assets/js/a7bd4aaa.35bdde18.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7098],{26979:(e,n,s)=>{s.r(n),s.d(n,{default:()=>x});s(30758);var r=s(68109),t=s(26058),a=s(70875),o=s(71977),i=s(18552),c=s(86070);function u(e){const{version:n}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i.A,{version:n.version,tag:(0,t.tU)(n.pluginId,n.version)}),(0,c.jsx)(r.be,{children:n.noIndex&&(0,c.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}fun [...]
\ No newline at end of file
diff --git a/assets/js/a9032c8b.75497a10.js b/assets/js/a9032c8b.75497a10.js
new file mode 100644
index 00000000..d35d5a48
--- /dev/null
+++ b/assets/js/a9032c8b.75497a10.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1489],{66166:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var a=t(86070),i=t(76113);const s={slug:"streampark-usercase-chinaunion",title:"China Union's Flink Real-Time Computing Platform Ops Practice",tags:["StreamPark","Production Practice","FlinkSQL"]},r=void 0,o={permalink:"/blog/streampark-usercase-chinau [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.2e82f47a.js b/assets/js/a94703ab.2e82f47a.js
new file mode 100644
index 00000000..e5cb6856
--- /dev/null
+++ b/assets/js/a94703ab.2e82f47a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9048],{11875:(e,t,n)=>{n.r(t),n.d(t,{default:()=>xe});var a=n(30758),o=n(13526),i=n(68109),s=n(80806),l=n(9759),r=n(54227),c=n(59987),d=n(72469),u=n(80243);const m={backToTopButton:"backToTopButton_yIRJ",backToTopButtonShow:"backToTopButtonShow_wT0n"};var h=n(86070);function b(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.use [...]
\ No newline at end of file
diff --git a/assets/js/aba21aa0.e3e72c9e.js b/assets/js/aba21aa0.e3e72c9e.js
new file mode 100644
index 00000000..cf54ba13
--- /dev/null
+++ b/assets/js/aba21aa0.e3e72c9e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5742],{27093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/ac0ab662.5f45fe6c.js b/assets/js/ac0ab662.5f45fe6c.js
new file mode 100644
index 00000000..aac7f0cb
--- /dev/null
+++ b/assets/js/ac0ab662.5f45fe6c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3966],{82779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>a});var i=n(86070),s=n(76113);const r={id:"submit_code",title:"Submit Code",sidebar_position:2},o=void 0,c={id:"submit_guide/submit_code",title:"Submit Code",description:"\x3c!--",source:"@site/community/submit_guide/submit-code.md",sourceDirName:"submit_g [...]
\ No newline at end of file
diff --git a/assets/js/acecf23e.27beb007.js b/assets/js/acecf23e.27beb007.js
new file mode 100644
index 00000000..4f50ab6b
--- /dev/null
+++ b/assets/js/acecf23e.27beb007.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1903],{1912:e=>{e.exports=JSON.parse('{"blogBasePath":"/blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/af7dd721.783dca7e.js b/assets/js/af7dd721.783dca7e.js
new file mode 100644
index 00000000..63d800c9
--- /dev/null
+++ b/assets/js/af7dd721.783dca7e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6059],{37854:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var n=r(86070),a=r(76113);const i={slug:"streampark-usercase-joyme",title:"Apache StreamPark\u2122's Production Practice in Joyme",tags:["StreamPark","Production Practice","FlinkSQL"]},s=void 0,o={permalink:"/blog/streampark-usercase-joyme",editUrl:"ht [...]
\ No newline at end of file
diff --git a/assets/js/b742dac9.bc964f16.js b/assets/js/b742dac9.bc964f16.js
new file mode 100644
index 00000000..46aac8fb
--- /dev/null
+++ b/assets/js/b742dac9.bc964f16.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4153],{71606:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var t=o(86070),i=o(76113);const s={id:"sso",title:"SSO Integration",sidebar_position:6},r=void 0,a={id:"platform/sso",title:"SSO Integration",description:"Background",source:"@site/docs/platform/6.SSO.md",sourceDirName:"platform",slug:"/platform/sso",p [...]
\ No newline at end of file
diff --git a/assets/js/bca7e6d6.c5b58fe1.js b/assets/js/bca7e6d6.c5b58fe1.js
new file mode 100644
index 00000000..2b408f8e
--- /dev/null
+++ b/assets/js/bca7e6d6.c5b58fe1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3265],{11296:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=n(86070),r=n(76113);const a={id:"quick-start",title:"Quick Start",sidebar_position:3},o=void 0,i={id:"framework/quick-start",title:"Quick Start",description:"How to use",source:"@site/docs/framework/3.quickstart.md",sourceDirName:"framework",slug [...]
\ No newline at end of file
diff --git a/assets/js/bde07178.b81800a5.js b/assets/js/bde07178.b81800a5.js
new file mode 100644
index 00000000..d777ddec
--- /dev/null
+++ b/assets/js/bde07178.b81800a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1747],{33734:a=>{a.exports=JSON.parse('{"tag":{"label":"FlinkSQL","permalink":"/blog/tags/flink-sql","allTagsPath":"/blog/tags","count":7,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/flink-sql","page":1,"postsPerPage":6,"totalPages":2,"totalCount":7,"nextPage":"/blog/tags/flink-sql/page/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/beba1521.10efd66f.js b/assets/js/beba1521.10efd66f.js
new file mode 100644
index 00000000..30f9ccdc
--- /dev/null
+++ b/assets/js/beba1521.10efd66f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4314],{69408:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>l,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=t(86070),i=t(76113);const o={id:"k8s-pvc-integration",title:"Kubernetes PVC Resource Usage",sidebar_position:3},r=void 0,c={id:"platform/k8s/k8s-pvc-integration",title:"Kubernetes PVC Resource Usage",description:"Resource usage instructions of K8 [...]
\ No newline at end of file
diff --git a/assets/js/c19de9ae.12a48ebb.js b/assets/js/c19de9ae.12a48ebb.js
new file mode 100644
index 00000000..c88e97c9
--- /dev/null
+++ b/assets/js/c19de9ae.12a48ebb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5376],{11294:a=>{a.exports=JSON.parse('{"tag":{"label":"StreamPark","permalink":"/blog/tags/stream-park","allTagsPath":"/blog/tags","count":12,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/stream-park","page":1,"postsPerPage":6,"totalPages":2,"totalCount":12,"nextPage":"/blog/tags/stream-park/page/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/c2809c3d.1a4e034a.js b/assets/js/c2809c3d.1a4e034a.js
new file mode 100644
index 00000000..5403081d
--- /dev/null
+++ b/assets/js/c2809c3d.1a4e034a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1845],{87061:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var r=t(86070),a=t(76113),i=t(60630),o=t(24990);const s={id:"clickhouse",title:"ClickHouse Connector",original:!0,sidebar_position:3},c=void 0,l={id:"framework/connector/clickhouse",title:"ClickHouse Connector",description:"ClickHouse is a columnar dat [...]
\ No newline at end of file
diff --git a/assets/js/c48f23e0.b59bc956.js b/assets/js/c48f23e0.b59bc956.js
new file mode 100644
index 00000000..c4cf75e8
--- /dev/null
+++ b/assets/js/c48f23e0.b59bc956.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9734],{38654:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var i=t(86070),s=t(76113);const a={slug:"streampark-usercase-dustess",title:"Apache StreamPark\u2122's Best Practices at Dustess, Simplifying Complexity for the Ultimate Experience",tags:["StreamPark","Production Practice","FlinkSQL"]},r=void 0,o={perm [...]
\ No newline at end of file
diff --git a/assets/js/c5f341e6.cae1b1a5.js b/assets/js/c5f341e6.cae1b1a5.js
new file mode 100644
index 00000000..742ae08a
--- /dev/null
+++ b/assets/js/c5f341e6.cae1b1a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1278],{27026:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>h});var i=n(86070),r=n(76113),a=n(60630),s=n(24990);const o={id:"alert",title:"Alert Configuration",sidebar_position:1},l=void 0,c={id:"platform/alert",title:"Alert Configuration",description:"StreamPark supports a variety of alerts, mainly as follows\uff1 [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.adebf72b.js b/assets/js/ccc49370.adebf72b.js
new file mode 100644
index 00000000..760c4ad8
--- /dev/null
+++ b/assets/js/ccc49370.adebf72b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3249],{98544:(e,t,n)=>{n.d(t,{A:()=>p});var a=n(30758),i=n(40781);function s(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...i}=e;n>=0?t[n].children.push(i):a.push(i)})),a}function l(e){let{toc:t,minHea [...]
\ No newline at end of file
diff --git a/assets/js/cf6b75d0.a67fa39a.js b/assets/js/cf6b75d0.a67fa39a.js
new file mode 100644
index 00000000..1c0ea545
--- /dev/null
+++ b/assets/js/cf6b75d0.a67fa39a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[4688],{54981:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var a=n(86070),r=n(76113),o=n(60630),i=n(24990);const s={id:"http",title:"HTTP Connector",original:!0,sidebar_position:7},l=void 0,c={id:"framework/connector/http",title:"HTTP Connector",description:"Some background services receive data through HTTP r [...]
\ No newline at end of file
diff --git a/assets/js/d03561b7.41ea776d.js b/assets/js/d03561b7.41ea776d.js
new file mode 100644
index 00000000..48f62b23
--- /dev/null
+++ b/assets/js/d03561b7.41ea776d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7093],{5163:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>c,metadata:()=>l,toc:()=>u});var a=t(86070),r=t(76113),i=t(60630),s=t(24990);const c={id:"es",title:"Elasticsearch Connector",sidebar_position:5},o=void 0,l={id:"framework/connector/es",title:"Elasticsearch Connector",description:"Elasticsearch is a distributed, RESTful style searc [...]
\ No newline at end of file
diff --git a/assets/js/d1a11acb.9cec19c5.js b/assets/js/d1a11acb.9cec19c5.js
new file mode 100644
index 00000000..d9774121
--- /dev/null
+++ b/assets/js/d1a11acb.9cec19c5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7849],{47070:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var r=i(86070),s=i(76113);const t={},l=void 0,o={type:"mdx",permalink:"/download/release-note/2.1.0",source:"@site/src/pages/download/release-note/2.1.0.md",description:"Release Notes 2.1.0",frontMatter:{},unlisted:!1},a={},d=[{value:"Release Notes 2.1 [...]
\ No newline at end of file
diff --git a/assets/js/d1edd000.f6aa4224.js b/assets/js/d1edd000.f6aa4224.js
new file mode 100644
index 00000000..0dcfb817
--- /dev/null
+++ b/assets/js/d1edd000.f6aa4224.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[7097],{21399:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var t=i(86070),s=i(76113);const r={},o=void 0,l={type:"mdx",permalink:"/download/release-note/2.1.3",source:"@site/src/pages/download/release-note/2.1.3.md",description:"Release Notes 2.1.3",frontMatter:{},unlisted:!1},a={},d=[{value:"Release Notes 2.1 [...]
\ No newline at end of file
diff --git a/assets/js/d717809b.b8ae78be.js b/assets/js/d717809b.b8ae78be.js
new file mode 100644
index 00000000..37e3082e
--- /dev/null
+++ b/assets/js/d717809b.b8ae78be.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9641],{30583:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=a(86070),t=a(76113);const r={id:"variable",title:"Variable Management",sidebar_position:4},o=void 0,s={id:"platform/variable",title:"Variable Management",description:"Background Introduction",source:"@site/docs/platform/4.variable.md",sourceDirNa [...]
\ No newline at end of file
diff --git a/assets/js/db7924b3.1ac07b7a.js b/assets/js/db7924b3.1ac07b7a.js
new file mode 100644
index 00000000..f0038e80
--- /dev/null
+++ b/assets/js/db7924b3.1ac07b7a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3122],{34151:a=>{a.exports=JSON.parse('{"tag":{"label":"DataStream","permalink":"/blog/tags/data-stream","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/data-stream","page":1,"postsPerPage":6,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/dd5e028d.03e76ea7.js b/assets/js/dd5e028d.03e76ea7.js
new file mode 100644
index 00000000..0b5df29a
--- /dev/null
+++ b/assets/js/dd5e028d.03e76ea7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[307],{4778:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var s=n(86070),i=n(76113);const a={slug:"flink-development-framework-streampark",title:"Apache StreamPark\u2122 - Powerful Flink Development Framework",tags:["StreamPark","DataStream","FlinkSQL"]},r="1. Background",o={permalink:"/blog/flink-development-f [...]
\ No newline at end of file
diff --git a/assets/js/de53df2c.907e1308.js b/assets/js/de53df2c.907e1308.js
new file mode 100644
index 00000000..d764bcaa
--- /dev/null
+++ b/assets/js/de53df2c.907e1308.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6721],{27843:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var r=n(86070),a=n(76113),i=n(41836);const s={id:"deployment",title:"Platform Deployment",sidebar_position:2},o=void 0,l={id:"get-started/deployment",title:"Platform Deployment",description:"The overall component stack structure of StreamPark consists  [...]
\ No newline at end of file
diff --git a/assets/js/df891701.361bee86.js b/assets/js/df891701.361bee86.js
new file mode 100644
index 00000000..b7e2c0b7
--- /dev/null
+++ b/assets/js/df891701.361bee86.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[3041],{54114:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var t=a(86070),s=a(76113);const r={slug:"streampark-usercase-bondex-with-paimon",title:"Based on Apache Paimon + Apache StreamPark\u2122's Streaming Data Warehouse Practice by Bondex",tags:["StreamPark","Production Practice","paimon","streaming-warehou [...]
\ No newline at end of file
diff --git a/assets/js/e0719818.e112f5b9.js b/assets/js/e0719818.e112f5b9.js
new file mode 100644
index 00000000..33a98b69
--- /dev/null
+++ b/assets/js/e0719818.e112f5b9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5220],{68669:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/assets/js/e17a8e6e.818a0308.js b/assets/js/e17a8e6e.818a0308.js
new file mode 100644
index 00000000..83c0f692
--- /dev/null
+++ b/assets/js/e17a8e6e.818a0308.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[839],{14682:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var n=a(86070),r=a(76113);const i={slug:"streampark-usercase-chinaunion",title:"China Union's Flink Real-Time Computing Platform Ops Practice",tags:["StreamPark","Production Practice","FlinkSQL"]},s=void 0,o={permalink:"/blog/streampark-usercase-chinaun [...]
\ No newline at end of file
diff --git a/assets/js/e2a3be8e.dd6705c3.js b/assets/js/e2a3be8e.dd6705c3.js
new file mode 100644
index 00000000..f36cf72f
--- /dev/null
+++ b/assets/js/e2a3be8e.dd6705c3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[6512],{30911:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>t,metadata:()=>o,toc:()=>l});var r=n(86070),s=n(76113);const t={id:"how_to_release",title:"How to Release",sidebar_position:4},i=void 0,o={id:"release/how_to_release",title:"How to Release",description:"This tutorial describes in detail how to release Apache StreamPark, take the r [...]
\ No newline at end of file
diff --git a/assets/js/ecfd5863.4fed5aac.js b/assets/js/ecfd5863.4fed5aac.js
new file mode 100644
index 00000000..8a48519b
--- /dev/null
+++ b/assets/js/ecfd5863.4fed5aac.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5019,6313,5257],{83978:(e,a,s)=>{s.r(a),s.d(a,{default:()=>c});s(30758);var r=s(78820),t=s(1860),n=s(86070);function c(e){const a=e.data||[],s=(0,r.A)()&&0===location.pathname.indexOf("/zh-CN/")?"zh-CN":"en",c=t?.[s];return a.map((e=>function(e,a){let{dataSource:s,language:r}=a;const t="en"===r,c=new Intl.DateTimeFormat(r,t&&{month:"short",year:"numeric",day:"numeric"}).format( [...]
\ No newline at end of file
diff --git a/assets/js/ede5b729.732c8524.js b/assets/js/ede5b729.732c8524.js
new file mode 100644
index 00000000..aff07777
--- /dev/null
+++ b/assets/js/ede5b729.732c8524.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1092],{84077:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var r=a(86070),n=a(76113);const i={id:"intro",title:"What is Apache StreamPark\u2122",sidebar_position:1},s="Apache StreamPark\u2122",o={id:"get-started/intro",title:"What is Apache StreamPark\u2122",description:"Make stream processing easier!",source: [...]
\ No newline at end of file
diff --git a/assets/js/f106860d.d02d9245.js b/assets/js/f106860d.d02d9245.js
new file mode 100644
index 00000000..52694ea1
--- /dev/null
+++ b/assets/js/f106860d.d02d9245.js
@@ -0,0 +1 @@
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[1780,473,1884,7462,9539],{11774:function(e){e.exports=function(e){function t(h){if(c[h])return c[h].exports;var a=c[h]={exports:{},id:h,loaded:!1};return e[h].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var c={};return t.m=e,t.c=c,t.p="dist/",t(0)}([function(e,t,c){"use strict";function h(e){return e&&e.__esModule?e:{default:e}}var a=Object.assign||function(e){for(var t=1;t<argument [...]
\ No newline at end of file
diff --git a/assets/js/f4473dc1.b68e0a90.js b/assets/js/f4473dc1.b68e0a90.js
new file mode 100644
index 00000000..ba4a9904
--- /dev/null
+++ b/assets/js/f4473dc1.b68e0a90.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[979],{52573:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var a=t(86070),i=t(76113);const o={slug:"streampark-usercase-changan",title:"Changan Automobile\u2019s upgrade practice from self-developed platform to Apache StreamPark\u2122",tags:["StreamPark","Production Practice"]},s=void 0,r={permalink:"/blog/stre [...]
\ No newline at end of file
diff --git a/assets/js/f608f072.d6a1d9b7.js b/assets/js/f608f072.d6a1d9b7.js
new file mode 100644
index 00000000..afbce631
--- /dev/null
+++ b/assets/js/f608f072.d6a1d9b7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8990],{18284:a=>{a.exports=JSON.parse('{"tag":{"label":"FlinkSQL","permalink":"/blog/tags/flink-sql","allTagsPath":"/blog/tags","count":7,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/flink-sql/page/2","page":2,"postsPerPage":6,"totalPages":2,"totalCount":7,"previousPage":"/blog/tags/flink-sql","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/f71b5567.20b68054.js b/assets/js/f71b5567.20b68054.js
new file mode 100644
index 00000000..9c1664ff
--- /dev/null
+++ b/assets/js/f71b5567.20b68054.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[5224],{6620:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var n=i(86070),a=i(76113);const r={slug:"streampark-usercase-haibo",title:"An All-in-One Computation Tool in Haibo Tech's Production Practice and facilitation in Smart City Construction",tags:["StreamPark","Production Practice","FlinkSQL"]},o=void 0,c={ [...]
\ No newline at end of file
diff --git a/assets/js/f86a0d66.265ccd3c.js b/assets/js/f86a0d66.265ccd3c.js
new file mode 100644
index 00000000..597ee99b
--- /dev/null
+++ b/assets/js/f86a0d66.265ccd3c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9006],{57201:a=>{a.exports=JSON.parse('{"tag":{"label":"StreamPark","permalink":"/blog/tags/stream-park","allTagsPath":"/blog/tags","count":12,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/stream-park/page/2","page":2,"postsPerPage":6,"totalPages":2,"totalCount":12,"previousPage":"/blog/tags/stream-park","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/fd8bb9b8.91169d6c.js b/assets/js/fd8bb9b8.91169d6c.js
new file mode 100644
index 00000000..2693bee8
--- /dev/null
+++ b/assets/js/fd8bb9b8.91169d6c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[9730],{16243:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>p});var a=t(86070),r=t(76113),o=t(60630),i=t(24990);const s={id:"hbase",title:"Apache HBase Connector",sidebar_position:6},c=void 0,l={id:"framework/connector/hbase",title:"Apache HBase Connector",description:"Apache HBase is a highly reliable, high-perfor [...]
\ No newline at end of file
diff --git a/assets/js/main.2e3dadaf.js b/assets/js/main.2e3dadaf.js
new file mode 100644
index 00000000..87124686
--- /dev/null
+++ b/assets/js/main.2e3dadaf.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.2e3dadaf.js.LICENSE.txt */
+(self.webpackChunkapache_streampark_website=self.webpackChunkapache_streampark_website||[]).push([[8792],{29885:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(30758);var r=n(97724),a=n.n(r),o=n(84054);const i={"01a85c17":[()=>Promise.all([n.e(1869),n.e(5581),n.e(8209)]).then(n.bind(n,59906)),"@theme/BlogTagsListPage",59906],"02909488":[()=>Promise.all([n.e(1869),n.e(417)]).then(n.bind(n,21526)),"@site/docs/framework/1.model.md",21526],"034ede56":[()=>n.e(1029).then(n.bind(n,58984)),"@site/doc [...]
\ No newline at end of file
diff --git a/assets/js/main.2e3dadaf.js.LICENSE.txt b/assets/js/main.2e3dadaf.js.LICENSE.txt
new file mode 100644
index 00000000..27f6e4e6
--- /dev/null
+++ b/assets/js/main.2e3dadaf.js.LICENSE.txt
@@ -0,0 +1,135 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/*!
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*! Bundled license information:
+
+prismjs/prism.js:
+  (**
+   * Prism: Lightweight, robust, elegant syntax highlighting
+   *
+   * @license MIT <https://opensource.org/licenses/MIT>
+   * @author Lea Verou <https://lea.verou.me>
+   * @namespace
+   * @public
+   *)
+*/
+
+/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/assets/js/runtime~main.de93b3db.js b/assets/js/runtime~main.de93b3db.js
new file mode 100644
index 00000000..cf882f83
--- /dev/null
+++ b/assets/js/runtime~main.de93b3db.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return b[e].call(d.exports,d,d.exports,r),d.exports}r.m=b,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){d=e[i][0],f=e[i][1],c=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&c||b>=c)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,c<b&&(b=c));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
new file mode 100644
index 00000000..aff25429
--- /dev/null
+++ b/blog/archive/index.html
@@ -0,0 +1,43 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.3.2">
+<title data-rh="true">Archive | Apache StreamPark (incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://streampark.apache.org/blog/archive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" property="og:locale:alternate" content="zh_CN"><meta data-rh="true" name="docusaurus_locale" content= [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache StreamPark (incubating) Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8c72ea81.css">
+<script src="/assets/js/runtime~main.de93b3db.js" defer="defer"></script>
+<script src="/assets/js/main.2e3dadaf.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),function(){try{const c=new URLSearchParams(window.location.sea [...]
+                <div class="subscribe-box btns">
+                  <a class="btn btn-primary" href="https://github.com/apache/incubator-streampark"><i class="fa fa-github"></i><span>Github</span></a>
+                  <a class="btn btn-primary" href="https://github.com/apache/incubator-streampark/issues"><i class="fa fa-slack"></i><span>Issue Tracking</span></a>
+                  <a class="btn btn-primary" href="javascript:void(0)">
+                    <i class="fa fa-wechat"></i>
+                    <span>Wechat</span>
+                    <div class="wechat-dropdown"><img src="/image/join_wechat.png" alt="weChat"></div>
+                  </a>
+                </div>
+              </li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"><div>
+        <div>
+          <div style="margin-bottom: 30px;">
+            <a href="https://incubator.apache.org/" class="footerLogoLink" one-link-mark="yes">
+              <img alt="Apache Incubator logo" class="footer__logo" width="200">
+            </a>
+          </div>
+          <div>
+            <p>
+            Apache StreamPark is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate t [...]
+            </p>
+          </div>
+        </div>
+
+        <div>
+          <span>
+            Copyright © 2022-2024 The Apache Software Foundation. Apache StreamPark, StreamPark, and its feather logo are trademarks of The Apache Software Foundation.
+          </span>
+        </div>
+      </div></div></div></div></footer></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
new file mode 100644
index 00000000..bbaebfb5
--- /dev/null
+++ b/blog/atom.xml
@@ -0,0 +1,1746 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+    <id>https://streampark.apache.org/blog</id>
+    <title>Apache StreamPark (incubating) Blog</title>
+    <updated>2024-06-30T14:58:25.000Z</updated>
+    <generator>https://github.com/jpmonette/feed</generator>
+    <link rel="alternate" href="https://streampark.apache.org/blog"/>
+    <subtitle>Apache StreamPark (incubating) Blog</subtitle>
+    <icon>https://streampark.apache.org/image/favicon.ico</icon>
+    <entry>
+        <title type="html"><![CDATA[Apache StreamPark™ Flink on Kubernetes practice]]></title>
+        <id>https://streampark.apache.org/blog/streampark-flink-on-k8s</id>
+        <link href="https://streampark.apache.org/blog/streampark-flink-on-k8s"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Wuxin Technology was founded in January 2018. The current main business includes the research and development, design, manufacturing and sales of RELX brand products. With core technologies and capabilities covering the entire industry chain, RELX is committed to providing users with products that are both high quality and safe]]></summary>
+        <content type="html"><![CDATA[<p>Wuxin Technology was founded in January 2018. The current main business includes the research and development, design, manufacturing and sales of RELX brand products. With core technologies and capabilities covering the entire industry chain, RELX is committed to providing users with products that are both high quality and safe.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="why-choose-native-kubernetes"><strong>Why Choose Native Kubernetes</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#why-choose-native-kubernetes" class="hash-link" aria-label="Direct link to why-choose-native-kubernetes" title="Direct link to why-choose-native-kubernetes">​</a></h2>
+<p>Native Kubernetes offers the following advantages:</p>
+<ul>
+<li>
+<p>Shorter Failover time</p>
+</li>
+<li>
+<p>Resource hosting can be implemented without the need to manually create TaskManager Pods, which can be automatically destroyed</p>
+</li>
+<li>
+<p>With more convenient HA, in Native Kubernetes mode after Flink version 1.12, you can rely on the Leader election mechanism of native Kubernetes to complete JobManager's HA</p>
+<p>The main difference between Native Kubernetes and Standalone Kubernetes lies in the way Flink interacts with Kubernetes and the resulting series of advantages. Standalone Kubernetes requires users to customize the Kubernetes resource description files of JobManager and TaskManager. When submitting a job, you need to use kubectl combined with the resource description file to start the Flink cluster. The Native Kubernetes mode Flink Client integrates a Kubernetes Client, which can direc [...]
+</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/nativekubernetes_architecture-ad376f8ae79ab66d90d95742e8335d53.png" width="1080" height="401" class="img__KcZ"></p>
+<p>When Flink On Kubernetes meets StreamPark</p>
+<p>Flink on Native Kubernetes currently supports Application mode and Session mode. Compared with the two, Application mode deployment avoids the resource isolation problem and client resource consumption problem of Session mode. Therefore, it is recommended to use Application Mode to deploy Flink tasks in ** production environments. **Let’s take a look at the method of using the original script and the process of using StreamPark to develop and deploy a Flink on Native Kubernetes job.
+Deploy Kubernetes using scripts</p>
+<p>In the absence of a platform that supports Flink on Kubernetes task development and deployment, you need to use scripts to submit and stop tasks. This is also the default method provided by Flink. The specific steps are as follows:</p>
+<ol>
+<li>Prepare the kubectl and Docker command running environment on the Flink client node, create the Kubernetes Namespace and Service Account used to deploy the Flink job, and perform RBAC</li>
+<li>Write a Dockerfile file to package the Flink base image and the user’s job Jar together</li>
+</ol>
+<div class="language-dockerfile codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-dockerfile codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">FROM flink:1.13.6-scal [...]
+<ol start="3">
+<li>Use Flink client script to start Flink tasks</li>
+</ol>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/flink run-application \</s [...]
+<ol start="4">
+<li>Use the Kubectl command to obtain the WebUI access address and JobId of the Flink job.</li>
+</ol>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl -n flink-cluster get svc</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboard" t [...]
+<ol start="5">
+<li>Stop the job using Flink command</li>
+</ol>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/flink cancel</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    --target kubernetes-application</span>< [...]
+<p>The above is the process of deploying a Flink task to Kubernetes using the most original script method provided by Flink. Only the most basic task submission is achieved. If it is to reach the production use level, there are still a series of problems that need to be solved, such as: the method is too Originally, it was unable to adapt to large batches of tasks, unable to record task checkpoints and real-time status tracking, difficult to operate and monitor tasks, had no alarm mechan [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="deploy-flink-on-kubernetes-using-apache-streampark"><strong>Deploy Flink on Kubernetes using Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#deploy-flink-on-kubernetes-using-apache-streampark" class="hash-link" aria-label="Direct link to deploy-flink-on-kubernetes-using-apache-streampark" title="Direct link to deploy-flink-on-kubernetes-using-apache-streampark">​</a></h2>
+<p>There will be higher requirements for using Flink on Kubernetes in enterprise-level production environments. Generally, you will choose to build your own platform or purchase related commercial products. No matter which solution meets the product capabilities: large-scale task development and deployment, status tracking, operation and maintenance monitoring , failure alarms, unified task management, high availability, etc. are common demands.</p>
+<p>In response to the above issues, we investigated open source projects in the open source field that support the development and deployment of Flink on Kubernetes tasks. During the investigation, we also encountered other excellent open source projects. After comprehensively comparing multiple open source projects, we came to the conclusion: **StreamPark has great performance in either completness, user experience, or stability, so we finally chose StreamPark as our one-stop real-time  [...]
+<p>Let’s take a look at how StreamPark supports Flink on Kubernetes:</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="basic-environment-configuration"><strong>Basic environment configuration</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#basic-environment-configuration" class="hash-link" aria-label="Direct link to basic-environment-configuration" title="Direct link to basic-environment-configuration">​</a></h3>
+<p>Basic environment configuration includes Kubernetes and Docker repository information as well as Flink client information configuration. The simplest way for the Kubernetes basic environment is to directly copy the .kube/config of the Kubernetes node to the StreamPark node user directory, and then use the kubectl command to create a Flink-specific Kubernetes Namespace and perform RBAC configuration.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain"># Create k8s namespace used by Flink jobs</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl create ns fl [...]
+<p>Docker account information can be configured directly in the Docker Setting interface:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/docker_setting-80acf43cf64fd390e4d50da8830671c0.png" width="1080" height="586" class="img__KcZ"></p>
+<p>StreamPark can adapt to multi-version Flink job development. The Flink client can be configured directly on the StreamPark Setting interface:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flinkversion_setting-b170a43882590683ea0c7f109f909396.png" width="1080" height="352" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="job-development"><strong>Job development</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#job-development" class="hash-link" aria-label="Direct link to job-development" title="Direct link to job-development">​</a></h3>
+<p>After StreamPark has configured the basic environment, it only takes three steps to develop and deploy a Flink job:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/development_process-476918cfd29159983fe26b36ef487895.png" width="1080" height="271" class="img__KcZ"></p>
+<p>StreamPark supports both Upload Jar and direct writing of Flink SQL jobs. <strong>Flink SQL jobs only need to enter SQL and dependencies. This method greatly improves the development experience and avoids problems such as dependency conflicts.</strong> This article does not focus on this part。</p>
+<p>Here you need to select the deployment mode as kubernetes application, and configure the following parameters on the job development page: The parameters in the red box are the basic parameters of Flink on Kubernetes.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/kubernetes_base_parameters-1a28fec8d9d3dc57744324db4ef58551.png" width="1080" height="1104" class="img__KcZ"></p>
+<p>The following parameters are parameters related to Flink jobs and resources. The choice of Resolve Order is related to the code loading mode. For jobs uploaded by the Upload Jar developed by the DataStream API, choose to use Child-first, and for Flink SQL jobs, choose to use Parent-first loading.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_parameters-ff7790882a753bd88fbf5db9b775a0e3.png" width="1080" height="1133" class="img__KcZ"></p>
+<p>Finally, there are the following two heavyweight parameters. For Native Kubernetes, k8s-pod-template generally only requires pod-template configuration. Dynamic Option is a supplement to the pod-template parameters. For some personalized configurations, you can Configured in Dynamic Option. For more Dynamic Option, please directly refer to the Flink official website.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/pod_template-722285f448ec8adc0fa939d0baea2d10.png" width="1080" height="1104" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="job-online"><strong>Job online</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#job-online" class="hash-link" aria-label="Direct link to job-online" title="Direct link to job-online">​</a></h3>
+<p>After the job development is completed, the job comes online. In this step, StreamPark has done a lot of work, as follows:</p>
+<ul>
+<li>Prepare environment</li>
+<li>Dependency download in job</li>
+<li>Build job (JAR package)</li>
+<li>Build image</li>
+<li>Push the image to the remote repository</li>
+</ul>
+<p><strong>For users: Just click the cloud-shaped online button in the task list</strong></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/operation-067a84b9b5b1491206780076f98e6f8d.png" width="1080" height="573" class="img__KcZ"></p>
+<p>We can see a series of work done by StreamPark when building and pushing the image: <strong>Read the configuration, build the image, and push the image to the remote repository...</strong> I want to give StreamPark a big thumbs up!</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/step_details-301b14f2dbfa9c41f4c0e75a9086f0a4.png" width="948" height="1866" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="assignment-submission"><strong>Assignment submission</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#assignment-submission" class="hash-link" aria-label="Direct link to assignment-submission" title="Direct link to assignment-submission">​</a></h3>
+<p>Finally, you only need to click the start Application button in Operation to start a Flink on Kubernetes job. After the job is successfully started, click on the job name to jump to the Jobmanager WebUI page. The whole process is very simple and smooth.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/homework_submit-1f05dacf0fedfd1423f89ca2dec28437.png" width="1080" height="698" class="img__KcZ"></p>
+<p>The entire process only requires the above three steps to complete the development and deployment of a Flink on Kubernetes job on StreamPark. StreamPark's support for Flink on Kubernetes goes far beyond simply submitting a task.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="job-management"><strong>Job management</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#job-management" class="hash-link" aria-label="Direct link to job-management" title="Direct link to job-management">​</a></h3>
+<p><strong>After the job is submitted, StreamPark can obtain the latest checkpoint address of the task, the running status of the task, and the real-time resource consumption information of the cluster in real time. It can very conveniently start and stop the running task with one click, and supports recording the savepoint location when stopping the job. , as well as functions such as restoring the state from savepoint when restarting, thus ensuring the data consistency of the productio [...]
+<p>Next, let’s take a look at how StreamPark supports this capability:</p>
+<ul>
+<li>
+<p><strong>Record checkpoint in real time</strong></p>
+<p>After the job is submitted, sometimes it is necessary to change the job logic but to ensure data consistency, then the platform needs to have the ability to record the location of each checkpoint in real time, as well as the ability to record the last savepoint location when stopped. StreamPark is on Flink on Kubernetes This function is implemented very well. By default, checkpoint information will be obtained and recorded in the corresponding table every 5 seconds, and according to t [...]
+<p>The root path of the default savepoint only needs to be configured in the Flink Home flink-conf.yaml file to automatically identify it. In addition to the default address, the root path of the savepoint can also be customized and specified when stopping.</p>
+</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/savepoint-b0288f5293875d156f20dbe768384076.png" width="1080" height="446" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/checkpoint-acf7379b24a3bac6695a517b425f466b.png" width="1080" height="479" class="img__KcZ"></p>
+<ul>
+<li>
+<p><strong>Track running status in real time</strong></p>
+<p>For challenges in the production environment, a very important point is whether monitoring is in place, especially for Flink on Kubernetes. This is very important and is the most basic capability. StreamPark can monitor the running status of Flink on Kubernetes jobs in real time and display it to users on the platform. Tasks can be easily retrieved based on various running statuses on the page.</p>
+</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/run_status-5a663d9169c0bce8f4cfb993db77ae59.png" width="1080" height="617" class="img__KcZ"></p>
+<ul>
+<li>
+<p><strong>Complete alarm mechanism</strong></p>
+<p>In addition, StreamPark also has complete alarm functions: supporting email, DingTalk, WeChat and SMS, etc. This is also an important reason why the company chose StreamPark as the one-stop platform for Flink on Kubernetes after initial research.</p>
+</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/alarm-c2104c1839a1b4bb668d48f092f25faa.png" width="1080" height="393" class="img__KcZ"></p>
+<p>From the above, we can see that StreamPark has the capabilities to support the development and deployment process of Flink on Kubernetes, including: ** job development capabilities, deployment capabilities, monitoring capabilities, operation and maintenance capabilities, exception handling capabilities, etc. StreamPark provides a relatively complete set of s solution. And it already has some CICD/DevOps capabilities, and the overall completion level continues to improve. It is a produ [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="apache-streamparks-implementation-in-wuxin-technology"><strong>Apache StreamPark™’s implementation in Wuxin Technology</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#apache-streamparks-implementation-in-wuxin-technology" class="hash-link" aria-label="Direct link to apache-streamparks-implementation-in-wuxin-technology" title="Direct link to apache-streamparks-implementation-in-wuxin-technology">​</a></h2>
+<p>StreamPark was launched late in Wuxin Technology. It is currently mainly used for the development and deployment of real-time data integration jobs and real-time indicator calculation jobs. There are Jar tasks and Flink SQL tasks, all deployed using Native Kubernetes; data sources include CDC, Kafka, etc., and Sink end There are Maxcompute, kafka, Hive, etc. The following is a screenshot of the company's development environment StreamPark platform:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/screenshot-2906914515b810aadb10db951d4f02bd.png" width="1080" height="706" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="problems-encountered">Problems encountered<a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#problems-encountered" class="hash-link" aria-label="Direct link to Problems encountered" title="Direct link to Problems encountered">​</a></h2>
+<p>Any new technology has a process of exploration and fall into pitfalls. The experience of failure is precious. Here are some pitfalls and experiences that StreamPark has stepped into during the implementation of fog core technology. <strong>The content of this section is not only about StreamPark. I believe it will bring some reference to all friends who use Flink on Kubernetes</strong>.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="faqs-are-summarized-below"><strong>FAQs are summarized below</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#faqs-are-summarized-below" class="hash-link" aria-label="Direct link to faqs-are-summarized-below" title="Direct link to faqs-are-summarized-below">​</a></h3>
+<ul>
+<li>
+<p><strong>Kubernetes pod failed to pull the image</strong></p>
+<p>The main problem is that Kubernetes pod-template lacks docker’s imagePullSecrets</p>
+</li>
+<li>
+<p><strong>Scala version inconsistent</strong></p>
+<p>Since StreamPark deployment requires a Scala environment, and Flink SQL operation requires the Flink SQL Client provided by StreamPark, it is necessary to ensure that the Scala version of the Flink job is consistent with the Scala version of StreamPark.</p>
+</li>
+<li>
+<p><strong>Be aware of class conflicts</strong></p>
+<p>When developing Flink SQL jobs, you need to pay attention to whether there are any class conflicts between the Flink image and the Flink connector and UDF. The best way to avoid class conflicts is to make the Flink image and the commonly used Flink connector and user UDF into a usable basic image. After that, other Flink SQL jobs can be reused directly.</p>
+</li>
+<li>
+<p><strong>How to store checkpoint without Hadoop environment?</strong></p>
+<p>HDFS, Alibaba Cloud OSS/AWS S3 can both perform checkpoint and savepoint storage. The Flink basic image already has support for OSS and S3. If you do not have HDFS, you can use Alibaba Cloud OSS or S3 to store status and checkpoint and savepoint data. You only need to use Flink Simply configure it in the dynamic parameters.</p>
+</li>
+</ul>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">-Dstate.backend=rocksdb</span><b [...]
+<ul>
+<li>
+<p><strong>The changed code did not take effect after it was republished</strong></p>
+<p>This issue is related to the Kubernetes pod image pull policy. It is recommended to set the Pod image pull policy to Always:</p>
+</li>
+</ul>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">‍-Dkubernetes.container.image.pull-policy=Always</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code [...]
+<ul>
+<li>
+<p><strong>Each restart of the task will result in one more Job instance</strong></p>
+<p>Under the premise that kubernetes-based HA is configured, when you need to stop the Flink task, you need to use cancel of StreamPark. Do not delete the Deployment of the Flink task directly through the kubernetes cluster. Because Flink's shutdown has its own shutdown process, when deleting a pod, the corresponding configuration files in the Configmap will also be deleted. Direct deletion of the pod will result in the remnants of the Configmap. When a task with the same name is restart [...]
+</li>
+<li>
+<p><strong>How to implement kubernetes pod domain name access</strong></p>
+<p>Domain name configuration only needs to be configured in pod-template according to Kubernetes resources. I can share with you a pod-template.yaml template that I summarized based on the above issues:</p>
+</li>
+</ul>
+<div class="language-yaml codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-yaml codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token key atru [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="best-practices"><strong>Best Practices</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#best-practices" class="hash-link" aria-label="Direct link to best-practices" title="Direct link to best-practices">​</a></h3>
+<p>Many of RELX's big data components are based on Alibaba Cloud, such as Maxcompute and Alibaba Cloud Redis. At the same time, our Flink SQL jobs need to use some UDFs. At first, we adopted the method of using Flink Base image + maven dependency + upload udf jar, but in practice we encountered some problems such as version conflicts and class conflicts. At the same time, if it is a large-volume job, the development efficiency of this method is relatively low. Finally, we packaged the co [...]
+<p><strong>Let’s share a simple step to create a basic image:</strong></p>
+<p><strong>1. Prepare the required JAR</strong></p>
+<p>Place the commonly used Flink Connector Jar and the user Udf Jar in the same folder lib. The following are some commonly used connector packages in Flink 1.13.6</p>
+<div class="language-jar codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-jar codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">bigdata-udxf-1.0.0-shaded.jar</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">flink-connector-jdbc_2.11-1.13.6.jar [...]
+<p><strong>2. Prepare Dockerfile</strong></p>
+<p>Create a Dockerfile file and place the Dockerfile file in the same folder as the above folder</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">FROM flink:1.13.6-scala_2.11COPY lib $FLINK_HOME/lib/</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy [...]
+<p><strong>3. Create a basic image and push it to a private repository</strong></p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">docker login --username=xxxdocker \</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">build -t udf_flink_1.13.6- [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="future-expectations"><strong>Future Expectations</strong><a href="https://streampark.apache.org/blog/streampark-flink-on-k8s#future-expectations" class="hash-link" aria-label="Direct link to future-expectations" title="Direct link to future-expectations">​</a></h2>
+<ul>
+<li>
+<p><strong>StreamPark supports Flink job metric monitoring</strong></p>
+<p>It would be great if StreamPark could connect to Flink Metric data and display Flink’s real-time consumption data at every moment on the StreamPark platform.</p>
+</li>
+<li>
+<p><strong>StreamPark supports Flink job log persistence</strong></p>
+<p>For Flink deployed to YARN, if the Flink program hangs, we can go to YARN to view the historical logs. However, for Kubernetes, if the program hangs, the Kubernetes pod will disappear and there will be no way to check the logs. Therefore, users need to use tools on Kubernetes for log persistence. It would be better if StreamPark supports the Kubernetes log persistence interface.</p>
+</li>
+<li>
+<p><strong>Improvement of the problem of too large image</strong></p>
+<p>StreamPark's current image support for Flink on Kubernetes jobs is to combine the basic image and user code into a Fat image and push it to the Docker repository. The problem with this method is that it takes a long time when the image is too large. It is hoped that the basic image can be restored in the future. There is no need to hit the business code together every time, which can greatly improve development efficiency and save costs.</p>
+</li>
+</ul>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+        <category label="Kubernetes" term="Kubernetes"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Apache StreamPark™ - Powerful Flink Development Framework]]></title>
+        <id>https://streampark.apache.org/blog/flink-development-framework-streampark</id>
+        <link href="https://streampark.apache.org/blog/flink-development-framework-streampark"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Although the Hadoop system is widely used today, its architecture is complicated, it has a high maintenance complexity, version upgrades are challenging, and due to departmental reasons, data center scheduling is prolonged. We urgently need to explore agile data platform models. With the current popularization of cloud-native architecture and the integration between lake and warehous, we have decided to use Doris as an offline data warehouse and TiDB [...]
+        <content type="html"><![CDATA[<p>Although the Hadoop system is widely used today, its architecture is complicated, it has a high maintenance complexity, version upgrades are challenging, and due to departmental reasons, data center scheduling is prolonged. We urgently need to explore agile data platform models. With the current popularization of cloud-native architecture and the integration between lake and warehous, we have decided to use Doris as an offline data warehouse and T [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/doris-4baaea78343b928b0a798ae9238c489f.png" width="1200" height="738" class="img__KcZ"></p>
+<p>Although the Hadoop system is widely used today, its architecture is complicated, it has a high maintenance complexity, version upgrades are challenging, and due to departmental reasons, data center scheduling is prolonged. We urgently need to explore agile data platform models. With the current popularization of cloud-native architecture and the integration between lake and warehous, we have decided to use Doris as an offline data warehouse and TiDB (which is already in production) a [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/doris-4baaea78343b928b0a798ae9238c489f.png" width="1200" height="738" class="img__KcZ"></p>
+<center style="color:gray">(Borrowing Doris's official architecture diagram here)</center>
+<br>
+<br>
+<h1>2. Challenges Faced</h1>
+<p>For the data engine, we settled on using Spark and Flink:</p>
+<ul>
+<li>Use Spark on K8s client mode for offline data processing.</li>
+<li>Use Flink on K8s Native-Application/Session mode for real-time task stream management.</li>
+</ul>
+<p>Here, there are some challenges we haven't fully resolved:</p>
+<p>Those who have used the Native-Application mode know that each time a task is submitted, a new image must be packaged, pushed to a private repository, and then the Flink Run command is used to communicate with K8s to pull the image and run the Pod. After the task is submitted, you need to check the log on K8s, but:</p>
+<ol>
+<li>How is task runtime monitoring handled?</li>
+<li>Do you use Cluster mode or expose ports using NodePort to access Web UI?</li>
+<li>Can the task submission process be simplified to avoid image packaging?</li>
+<li>How can we reduce the pressure on developers?</li>
+</ol>
+<br>
+<br>
+<h1>3. Solving the Challenges</h1>
+<p>All of the above are challenges that need addressing. If we rely solely on the command line to submit each task, it becomes unrealistic. As the number of tasks increases, it becomes unmanageable. Addressing these challenges became inevitable.</p>
+<br>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="simplifying-image-building">Simplifying Image Building<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#simplifying-image-building" class="hash-link" aria-label="Direct link to Simplifying Image Building" title="Direct link to Simplifying Image Building">​</a></h2>
+<p>Firstly, regarding the need for a secondary build of the native Flink image: we utilized MinIO as external storage and mounted it directly on each host node using s3-fuse via DaemonSet. The jar packages we need to submit can all be managed there. In this way, even if we scale the Flink nodes up or down, S3 mounts can automatically scale.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/k8s-9a28cd8f0e9c996501193f591ebe22b0.png" width="1141" height="582" class="img__KcZ"></p>
+<p>From Flink version 1.13 onwards, Pod Template support has been added. We can use volume mounts in the Pod Template to mount host directories into each pod, allowing Flink programs to run directly on K8s without packaging them into images. As shown in the diagram above, we first mount S3 using the s3-fuse Pod to the <code>/mnt/data-s3fs</code> directory on Node 1 and Node 2, and then mount <code>/mnt/data-s3fs</code> into Pod A.</p>
+<p>However, because object storage requires the entire object to be rewritten for random writes or file appends, this method is only suitable for frequent reads. This perfectly fits our current scenario.</p>
+<br>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="introducing-apache-streampark">Introducing Apache StreamPark™<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#introducing-apache-streampark" class="hash-link" aria-label="Direct link to Introducing Apache StreamPark™" title="Direct link to Introducing Apache StreamPark™">​</a></h2>
+<p>Previously, when we wrote Flink SQL, we generally used Java to wrap SQL, packed it into a jar package, and submitted it to the S3 platform through the command line. This approach has always been unfriendly; the process is cumbersome, and the costs for development and operations are too high. We hoped to further streamline the process by abstracting the Flink TableEnvironment, letting the platform handle initialization, packaging, and running Flink tasks, and automating the building, t [...]
+<p>This is an era of open-source uprising. Naturally, we turned our attention to the open-source realm: among numerous open-source projects, after comparing various projects, we found that both Zeppelin and StreamPark provide substantial support for Flink and both claim to support Flink on K8s. Eventually, both were shortlisted for our selection. Here's a brief comparison of their support for K8s (if there have been updates since, please kindly correct).</p>
+<table><thead><tr><td>Feature</td><td>Zeppelin</td><td>StreamPark</td></tr></thead><tbody><tr><td>Task Status Monitoring</td><td>Somewhat limited, not suitable as a task status monitoring tool.</td><td>Highly capable</td></tr><tr><td>Task Resource Management</td><td>None</td><td>Exists, but the current version is not very robust.</td></tr><tr><td>Local Deployment</td><td>On the lower side. In on K8s mode, you can only deploy Zeppelin in K8s. Otherwise, you need to connect the Pod and ext [...]
+<center style="color:gray">(PS: This comparison is based on our perspective as evaluators. We hold the utmost respect for the developers of both platforms.)</center>
+<br>
+<p>During our research process, we communicated with the main developers of both tools multiple times. After our repeated studies and assessments, we eventually decided to adopt StreamPark as our primary Flink development tool for now.</p>
+<video src="http://assets.streamxhub.com/streamx-video.mp4" controls="" width="100%" height="100%"></video>
+<center style="color:gray">(StreamPark's official splash screen)</center>
+<br>
+<p>After extended development and testing by our team, StreamPark currently boasts:</p>
+<ul>
+<li>Comprehensive <span style="color:red">SQL validation capabilities</span></li>
+<li>It has achieved <span style="color:red">automatic build/push for images</span></li>
+<li>Using a custom class loader and through the Child-first loading method, it <span style="color:red">addresses both YARN and K8s operational modes</span> and <span style="color:red">supports the seamless switch between multiple Flink versions</span></li>
+<li>It deeply integrates with Flink-Kubernetes, returning a WebUI after task submission, and via remote REST API + remote K8s, it can <span style="color:red">track task execution status</span></li>
+<li>It supports versions like <span style="color:red">Flink 1.12, 1.13, 1.14, and more</span></li>
+</ul>
+<p>This effectively addresses most of the challenges we currently face in development and operations.</p>
+<video src="http://assets.streamxhub.com/streamx-1.2.0.mp4" controls="" width="100%" height="100%"></video>
+<center style="color:gray">(Demo video showcasing StreamPark's support for multiple Flink versions)</center>
+<br>
+<p>In its latest release, version 1.2.0, StreamPark provides robust support for both K8s-Native-Application and K8s-Session-Application modes.</p>
+<video src="http://assets.streamxhub.com/streamx-k8s.mp4" controls="" width="100%" height="100%"></video>
+<center style="color:gray">(StreamPark's K8s deployment demo video)</center>
+<br>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="k8s-native-application-mode">K8s Native Application Mode<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#k8s-native-application-mode" class="hash-link" aria-label="Direct link to K8s Native Application Mode" title="Direct link to K8s Native Application Mode">​</a></h3>
+<p>Within StreamPark, all we need to do is configure the relevant parameters, fill in the corresponding dependencies in the Maven POM, or upload the dependency jar files. Once we click on 'Apply', the specified dependencies will be generated. This implies that we can also compile all the UDFs we use into jar files, as well as various connector.jar files, and use them directly in SQL. As illustrated below:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dependency-a3b9ff29795acb8a1fd4ed6bb773d53e.png" width="1080" height="461" class="img__KcZ"></p>
+<p>The SQL validation capability is roughly equivalent to that of Zeppelin:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/sqlverify-7e12cf343c9c81fcbc2e20f8d7588f1b.png" width="1080" height="619" class="img__KcZ"></p>
+<p>We can also specify resources, designate dynamic parameters within Flink Run as Dynamic Options, and even integrate these parameters with a Pod Template.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/pod-d46370aaff2c34c4fe6a584c0524b28e.png" width="1080" height="574" class="img__KcZ"></p>
+<p>After saving the program, when clicking to run, we can also specify a savepoint. Once the task is successfully submitted, StreamPark will, based on the FlinkPod's network Exposed Type (be it loadBalancer, NodePort, or ClusterIp), return the corresponding WebURL, seamlessly enabling a WebUI redirect. However, as of now, due to security considerations within our online private K8s cluster, there hasn't been a connection established between the Pod and client node network (and there's cu [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/start-71fbb288851d022c450a6bd34e8b4dc2.png" width="1080" height="522" class="img__KcZ"></p>
+<p>Note: If the K8s master uses a vip for load balancing, the Flink 1.13 version will return the vip's IP address. This issue has been rectified in the 1.14 version.</p>
+<p>Below is the specific submission process in the K8s Application mode:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flow-c2227ba0cc1f59f78e2164fdb3657223.png" width="1080" height="949" class="img__KcZ"></p>
+<center style="color:gray">(The above is a task submission flowchart, drawn based on personal understanding. If there are inaccuracies, your understanding is appreciated.)</center>
+<br>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="k8s-native-session-mode">K8s Native Session Mode<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#k8s-native-session-mode" class="hash-link" aria-label="Direct link to K8s Native Session Mode" title="Direct link to K8s Native Session Mode">​</a></h3>
+<p>StreamPark also offers robust support for the <span style="color:red"> K8s Native-Session mode</span>, which lays a solid technical foundation for our subsequent offline FlinkSQL development or for segmenting certain resources.</p>
+<p>To use the Native-Session mode, one must first use the Flink command to create a Flink cluster that operates within K8s. For instance:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./kubernetes-session.sh \</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">-Dkubernetes.cluster-id=flink-on-k8s [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flinksql-13b242feb3803b15e6698635a79065b4.png" width="1080" height="664" class="img__KcZ"></p>
+<p>As shown in the image above, we use that ClusterId as the Kubernetes ClusterId task parameter for StreamPark. Once the task is saved and submitted, it quickly transitions to a 'Running' state:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/detail-e9ee4c14e45068bea5e1edabec596bee.png" width="1080" height="529" class="img__KcZ"></p>
+<p>Following the application info's WebUI link:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dashboard-78745d8d3ebe422b166a17631bfbe622.png" width="1080" height="520" class="img__KcZ"></p>
+<p>It becomes evident that StreamPark essentially uploads the jar package to the Flink cluster through REST API and then schedules the task for execution.</p>
+<br>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="custom-code-mode">Custom Code Mode<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#custom-code-mode" class="hash-link" aria-label="Direct link to Custom Code Mode" title="Direct link to Custom Code Mode">​</a></h3>
+<p>To our delight, StreamPark also provides support for coding DataStream/FlinkSQL tasks. For special requirements, we can achieve our implementations in Java/Scala. You can compose tasks following the scaffold method recommended by StreamPark or write a standard Flink task. By adopting this approach, we can delegate code management to git, utilizing the platform for automated compilation, packaging, and deployment. Naturally, if functionality can be achieved via SQL, we would prefer not [...]
+<br>
+<br>
+<h1>4. Feedback and Future Directions</h1>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="suggestions-for-improvement">Suggestions for Improvement<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#suggestions-for-improvement" class="hash-link" aria-label="Direct link to Suggestions for Improvement" title="Direct link to Suggestions for Improvement">​</a></h2>
+<p>StreamPark, similar to any other new tools, does have areas for further enhancement based on our current evaluations:</p>
+<ul>
+<li><strong>Strengthening Resource Management</strong>: Features like multi-file system jar resources and robust task versioning are still awaiting additions.</li>
+<li><strong>Enriching Frontend Features</strong>: For instance, once a task is added, functionalities like copying could be integrated.</li>
+<li><strong>Visualization of Task Submission Logs</strong>: The process of task submission involves loading class files, jar packaging, building and submitting images, and more. A failure at any of these stages could halt the task. However, error logs are not always clear, or due to some anomaly, the exceptions aren't thrown as expected, leaving users puzzled about rectifications.</li>
+</ul>
+<p>It's a universal truth that innovations aren't perfect from the outset. Although minor issues exist and there are areas for improvement with StreamPark, its merits outweigh its limitations. As a result, we've chosen StreamPark as our Flink DevOps platform. We're also committed to collaborating with its main developers to refine StreamPark further. We wholeheartedly invite others to use it and contribute towards its advancement.</p>
+<br>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="future-prospects">Future Prospects<a href="https://streampark.apache.org/blog/flink-development-framework-streampark#future-prospects" class="hash-link" aria-label="Direct link to Future Prospects" title="Direct link to Future Prospects">​</a></h2>
+<ul>
+<li>We'll keep our focus on Doris and plan to unify business data with log data in Doris, leveraging Flink to realize lakehouse capabilities.</li>
+<li>Our next step is to explore integrating StreamPark with DolphinScheduler 2.x. This would enhance DolphinScheduler's offline tasks, and gradually we aim to replace Spark with Flink for a unified batch-streaming solution.</li>
+<li>Drawing from our own experiments with S3, after building the fat-jar, we're considering bypassing image building. Instead, we'll mount PVC directly to the Flink Pod's directory using Pod Template, refining the code submission process even further.</li>
+<li>We plan to persistently implement StreamPark in our production environment. Collaborating with community developers, we aim to boost StreamPark's Flink stream development, deployment, and monitoring capabilities. Our collective vision is to evolve StreamPark into a holistic stream data DevOps platform.</li>
+</ul>
+<p>Resources:</p>
+<p>StreamPark GitHub: <a href="https://github.com/apache/incubator-streampark" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-streampark</a> <br>
+Doris GitHub: <a href="https://github.com/apache/doris" target="_blank" rel="noopener noreferrer">https://github.com/apache/doris</a></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/author-c3dabbb31d7cea1b5164a75a94ca3008.png" width="900" height="500" class="img__KcZ"></p>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="DataStream" term="DataStream"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Ziroom implements the best practice of one-key data input into the lake based on Apache StreamPark™ + Paimon]]></title>
+        <id>https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru</id>
+        <link href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Introduction:This article mainly introduces the architecture upgrade and evolution of the self-migrating MySQL data to Hive, the original architecture involves many components, complex links, and encounters many challenges, and effectively solves the dilemmas and challenges encountered in data integration after using the combination of StreamPark + Paimon, and shares the specific practical solutions of StreamPark + Paimon in practical applications, a [...]
+        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/new_cover-5991f0d6d5ee86bc8716862748caf484.png" width="1080" height="460" class="img__KcZ"></p>
+<p><strong>Introduction</strong>:This article mainly introduces the architecture upgrade and evolution of the self-migrating MySQL data to Hive, the original architecture involves many components, complex links, and encounters many challenges, and effectively solves the dilemmas and challenges encountered in data integration after using the combination of StreamPark + Paimon, and shares the specific practical solutions of StreamPark + Paimon in practical applications, as well as the adva [...]
+<p>StreamPark: <a href="https://github.com/apache/streampark" target="_blank" rel="noopener noreferrer">https://github.com/apache/streampark</a></p>
+<p>Paimon: <a href="https://github.com/apache/paimon" target="_blank" rel="noopener noreferrer">https://github.com/apache/paimon</a></p>
+<p>Welcome to follow, star, fork, and participate in contributions</p>
+<p>Contributor|Beijing Ziru Information Technology Co., Ltd.</p>
+<p>Authors of the article|Liu Tao, Liang Yansheng, Wei Linzi</p>
+<p>Article compilation|Yang Linwei</p>
+<p>Content proofreading|Pan Yuepeng</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="1data-integration-business-background"><strong>1.Data integration business background</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#1data-integration-business-background" class="hash-link" aria-label="Direct link to 1data-integration-business-background" title="Direct link to 1data-integration-business-background">​</a></h2>
+<p>The data integration scenario of Ziroom's rental business mainly comes from the need to synchronize MySQL tables of each business line to Hive tables. This requirement includes more than 4,400 MySQL business tables synchronized every day and more than 8,000 Hive ETL processing tasks. The amount of new data generated every day is 50T, and these numbers are still growing. According to the freshness requirements of the data, it is divided into two types: low freshness (T+1 day) and high  [...]
+<p>Ziroom's data integration solutions can be mainly divided into two types according to business usage scenarios:</p>
+<ul>
+<li>
+<p><strong>Low freshness</strong>: The timeliness requirement of low freshness for data is <strong>T+1day</strong>, and the Hive jdbc handler is used to pull the full amount of MySQL data to Hive at 00:00 every day. The basic The process is shown in the figure below:</p>
+<p><img decoding="async" loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWkAAAApCAYAAAD3VNiWAAAKCUlEQVR4Xu2dWahNbRjH9+25UOfi5EqdcuHChQullJSU5MiRRBIRKYSPZCzz8GUqGTJTh5BMIdJBIZllJvM8H9MxT+93fu/ez7L2e9be56y97OF8nl+97bXfNf/3+/zXs561HLFYMmUlJSWVRUVF1TXTRltyQxf0qZkuiymKEhb1lzStTn8pLi6uKC0tfbdmzRrz5MkTo9QGXdAHndDL1VBRlGDUX+omrb/QUV5e/s5dSUkNetUSUlGUWqi/hMf1lzKc211IqRt0Qz/feFQUJRn1lwzx/IUaCCm2Eh50S9SQFEUJQP0lczx/oVitNaLMQLfEQxBFUQJQf8kcv7+485QQoJ8zLhVF+Y0bMkoI0E9FjIiIqChKIG7IK [...]
+</li>
+<li>
+<p><strong>High freshness</strong>: In this scenario, the required data effectiveness is <strong>T+10minutes</strong>. We reused the snapshot pull method of the low freshness scenario to obtain the full amount of data and initialized it to MySQL. Synchronously use Canal to parse the logs and collect them into Kafka, then use Flink to read the data in kafka and write it to HDFS, and finally use Airflow for scheduling to merge the incremental data into Hive. The basic logic is as follows:</p>
+<p><img decoding="async" loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnIAAAApCAYAAACx+MSIAAAO00lEQVR4Xu2dSagdRRuG7zaLQBbBlRBw4cKFC0EQRBDBhREjIoqIoiCCivKrwRHn6XdGUHGMiwgqEsUJRaKCijiLs+I8xilRYzSTQ/15ylMnfd97zr2p091fdd//e6C5p6u7z/n6faurvq6uc+7U1HSWLl68ePWCBQs2bHsdfJm+oAv6bHu9dKpbuG+zLO5bPxf3rZ+L+9atpcN+1MG9HMWiRYtWLlmyZP2KFSvCmjVrgjMTdEEfdEIv1bAE7tvcuG/9xH3rJ+5bt+iiH3VwL8d4ScGyZcvW60HOeNBrhpDGuG/5uG/9xH3rJ+5bt+iCH3VwL7ejXi4lu9OdnLlBN/Sr1DNL3LcJcd/6ifvWT9y3blHYjzq4l8LQS [...]
+</li>
+</ul>
+<p>However, there are many challenges and pressures in the current architecture. Firstly, the operation and maintenance costs are high, and secondly, the computing pressure, storage pressure and network pressure are all very high. In addition, although the resources are underutilized during the system running time from 0:00 to 1:00, other time periods face resource shortages. In this regard, Ziroom decided to update the data integration architecture to improve the efficiency and stabilit [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="2challenges-encountered"><strong>2.Challenges encountered</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#2challenges-encountered" class="hash-link" aria-label="Direct link to 2challenges-encountered" title="Direct link to 2challenges-encountered">​</a></h2>
+<p>In the above two scenarios, we encountered the following challenges during the data integration process:</p>
+<ul>
+<li>
+<p><strong>Network bandwidth overload problem</strong>: Since the pull task reached <strong>4000+</strong>, too many mirror full data pulls put great pressure on the database network bandwidth.</p>
+</li>
+<li>
+<p><strong>Inefficient resource utilization</strong>: After the upstream data is synchronized from MySQL to the ODS layer table, the downstream processing table can be started. As a result, the CPU and memory resources of the Hadoop cluster are not available between 0:00 and 1:00. be fully utilized.</p>
+</li>
+<li>
+<p><strong>High maintenance costs</strong>: When the database table structure changes, the Airflow script needs to be modified simultaneously. Otherwise, incomplete fields will appear, causing online data anomalies.</p>
+</li>
+<li>
+<p><strong>Difficulty in troubleshooting</strong>: The data link is long. When data anomalies occur, troubleshooting costs are high. The problem may occur in any link in Canal, Kafka, Flink, and Airflow scheduling, resulting in a long recovery time. .</p>
+</li>
+<li>
+<p><strong>Flink jobs are difficult to manage in a unified manner</strong>: Flink itself does not provide good deployment and development capabilities. As the number of Flink tasks increases, the time cost of management and maintenance also increases.</p>
+</li>
+</ul>
+<p>In order to solve the above problems, after a series of investigations, we decided to adopt the "<strong>StreamPark+Paimon</strong>" strategy. So what are the reasons for choosing them? We can first look at their characteristics.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="paimons-core-features"><strong>Paimon’s core features</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#paimons-core-features" class="hash-link" aria-label="Direct link to paimons-core-features" title="Direct link to paimons-core-features">​</a></h3>
+<p><strong>After research and comprehensive evaluation of several data lake frameworks such as Apache Hudi/Iceberg/Paimon, we decided to use Apache Paimon</strong>. Apache Paimon is a streaming data lake storage technology that can provide users with high throughput and low cost. Delayed data ingestion, streaming subscription and real-time query capabilities support the use of Flink and Spark to build a real-time Lakehouse architecture, support batch/stream data processing operations, in [...]
+<ul>
+<li>
+<p><strong>Unified batch and stream processing</strong>: Paimon supports batch writing, batch reading and streaming operations, providing flexible data processing methods.</p>
+</li>
+<li>
+<p><strong>Data Lake Features</strong>: As a data lake storage system, Paimon has the characteristics of low cost, high reliability and scalable metadata.</p>
+</li>
+<li>
+<p><strong>Rich merging engines</strong>: Paimon provides a variety of merging engines, and you can choose to retain the latest data, perform partial updates, or perform aggregation operations according to your needs.</p>
+</li>
+<li>
+<p><strong>Automatically generate change logs</strong>: Paimon supports a variety of Changelog producers and can automatically generate correct and complete change logs to simplify streaming task analysis.</p>
+</li>
+<li>
+<p><strong>Rich table types</strong>: Paimon supports primary key tables and append-only tables, as well as multiple table types such as internal tables, external tables, partitioned tables, and temporary tables.</p>
+</li>
+<li>
+<p><strong>Support table structure change synchronization</strong>: When the data source table structure changes, Paimon can automatically identify and synchronize these changes.</p>
+</li>
+</ul>
+<p>Paimon can be used in conjunction with Apache Spark. Our scenario is Paimon combined with Flink. In this way, "<strong>How to manage 4000+ Flink data synchronization jobs</strong>" will be a new problem we face. After a comprehensive investigation of related projects and a comprehensive evaluation of various dimensions, <strong>we decided to use StreamPark</strong>. So why did we choose StremaPark?</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="streamparks-core-features"><strong>StreamPark’s core features</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#streamparks-core-features" class="hash-link" aria-label="Direct link to streamparks-core-features" title="Direct link to streamparks-core-features">​</a></h3>
+<p>Apache StreamPark is a stream processing development and management framework that provides a set of fast APIs for developing Flink/Spark jobs. In addition, it also provides a one-stop stream processing job development and management platform, covering the entire life cycle from stream processing job development to launch. Cycles are supported. StreamPark mainly includes the following core features:</p>
+<ul>
+<li>
+<p><strong>Stream processing application development framework</strong>: Based on StreamPark, developers can easily build and manage stream processing applications, and better utilize Apache Flink® to write stream processing applications.</p>
+</li>
+<li>
+<p><strong>Perfect management capabilities</strong>: StreamPark provides a one-stop streaming task development and management platform that supports the full life cycle of Flink/Spark from application development to debugging, deployment, operation and maintenance, allowing Flink/Spark jobs to Make it simple.</p>
+</li>
+<li>
+<p><strong>High degree of completion</strong>: StreamPark supports multiple versions of Flink, allowing flexible switching of one platform. It also supports Flink’s deployment mode, effectively solving the problem of too cumbersome Flink on YARN/K8s deployment. Through automated processes, It simplifies the process of building, testing and deploying tasks and improves development efficiency.</p>
+</li>
+<li>
+<p><strong>Rich management API</strong>: StreamPark provides APIs for job operations, including job creation, copy, build, deployment, stop and start based on checkpoint/savepoint, etc., making it easy to implement external system calls to Apache Flink® tasks. .</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="3-streampark--paimon-practice"><strong>3. StreamPark + Paimon Practice</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#3-streampark--paimon-practice" class="hash-link" aria-label="Direct link to 3-streampark--paimon-practice" title="Direct link to 3-streampark--paimon-practice">​</a></h2>
+<p>Next, we will continue to share how Ziroom optimized the architecture based on <strong>StreamPark + Paimon</strong>. Let’s first look at the comparison before and after the architecture upgrade.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="31-before-architecture-upgrade"><strong>3.1 Before architecture upgrade</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#31-before-architecture-upgrade" class="hash-link" aria-label="Direct link to 31-before-architecture-upgrade" title="Direct link to 31-before-architecture-upgrade">​</a></h3>
+<p>The system interaction process of the data integration module before the transformation is as follows:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/system_interaction_process-0fa72272598ce1fbf180e4f859cf59dc.png" width="1080" height="291" class="img__KcZ"></p>
+<p><strong>Step1</strong> (User initiates access application): First, the user selects a table on the data access platform, and then clicks the Apply for Access button:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/data_access_platform-a2d62b477382c15128b76c60e9c6be53.png" width="1080" height="245" class="img__KcZ"></p>
+<p><strong>Step2</strong> (Initiate OA system approval process): When the OA system receives the access application, it will initiate workflow approval. If the approval fails, the application will be rejected. Only if the approval is passed will the next step be continued.</p>
+<p><strong>Step3</strong> (The data access platform processes the approval event): The data access platform calls the Canal interface to deploy the Canal task and transfer the Binlog data in the table to Kafka:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/canal_job-fbfcee343ac2473e1b22d199da463ad4.png" width="1041" height="760" class="img__KcZ"></p>
+<p><strong>Step4</strong> (Flink task deployment): Manually use the Flink Session Submit UI to deploy the Flink template job, which is responsible for parsing the Binlog change data in Kafka, writing the data to HDFS, and mapping it into a Hive external incremental table:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_job-2769695ec6b0a9446b8d5f4828976b7d.png" width="946" height="331" class="img__KcZ"></p>
+<p><strong>Step5</strong> (Airflow scheduling initialization table): Create Hive mapping incremental table and full table and use Airflow scheduling to complete the first initialization:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/first_initialization-f270b827e85b0ff840bf3db25686349c.png" width="1080" height="884" class="img__KcZ"></p>
+<p><strong>Step6</strong> (Merge data into Hive full table): Configure scheduling to merge data from Hive external incremental tables into Hive full table through Hive Merge method</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/data_merging-b8ac385c5de9f96c13163aa65e382496.png" width="1075" height="972" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="32-after-the-architecture-upgrade"><strong>3.2 After the architecture upgrade</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#32-after-the-architecture-upgrade" class="hash-link" aria-label="Direct link to 32-after-the-architecture-upgrade" title="Direct link to 32-after-the-architecture-upgrade">​</a></h3>
+<p>The modified system interaction flow chart is as follows:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/after_the_transformation-8b3717c58b603d12e8e87c8267068672.png" width="1080" height="291" class="img__KcZ"></p>
+<p>Comparing the interaction flow charts before and after the transformation, it can be seen that the process of the first two steps (table access application and approval) is the same, but the only difference is the event monitoring and processing method after the approval is passed.</p>
+<ul>
+<li>
+<p><strong>Before transformation</strong>: Call the Canal interface to deploy Canal tasks (old logic);</p>
+</li>
+<li>
+<p><strong>After transformation</strong>: Call StreamPark’s API interface to complete Flink Paimon’s task deployment.</p>
+</li>
+</ul>
+<p>Next, let’s look at using Paimon to complete data integration.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="33-paimon-implements-one-key-hive-input"><strong>3.3 Paimon implements one-key Hive input</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#33-paimon-implements-one-key-hive-input" class="hash-link" aria-label="Direct link to 33-paimon-implements-one-key-hive-input" title="Direct link to 33-paimon-implements-one-key-hive-input">​</a></h3>
+<p>After Apache Paimon version 0.5, CDC data integration capabilities are provided. Data from MySQL, Kafka, Mongo, etc. can be easily ingested into Paimon in real time through the officially provided paimon-action jar. We are using paimon- flink-action uses <strong>mysql-sync-database (whole database synchronization)</strong> and selects the tables to be synchronized through the "<strong>—including_tables</strong>" parameter. This synchronization mode effectively saves a lot of resource  [...]
+<p>paimon-flink-action provides the function of automatically creating Paimon tables and supports Schema Evolution (for example, when the MySQL table fields change, the Paimon table will change accordingly without additional operations). The entire operation process is efficient and smooth, which solves the unnecessary operation and maintenance costs caused by adding fields to the original architecture. The specific use of paimon-action is as follows. For more information, please refer t [...]
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">&lt;FLINK_HOME&gt;/bin/flink run \</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">/path/to/paimon-flink-actio [...]
+<p>The introduction of Paimon shortens the entire data access link, eliminates dependence on Canal, Kafka, and Airflow, allowing MySQL to directly connect to Hive at minute speeds, and the overall environment is clean and efficient. In addition, Paimon is fully compatible with Hive-side data reading, with extremely low conversion costs and good compatibility with the use of original architecture scripts. Paimon also supports the Tag function, which can be regarded as a lightweight snapsh [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="34-streampark--paimon-implementation-practice"><strong>3.4 StreamPark + Paimon implementation practice</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#34-streampark--paimon-implementation-practice" class="hash-link" aria-label="Direct link to 34-streampark--paimon-implementation-practice" title="Direct link to 34-streampark--paimon-implementation-practice">​</a></h3>
+<p>StreamPark has better support for JAR type jobs in version 2.1.2, making Paimon type data integration jobs simpler. The following example demonstrates how to use StreamPark to quickly develop Paimon data migration type jobs:</p>
+<p>//Video link (StreamPark deployment Paimon data integration job example)</p>
+<p>It is true that StreamPark has specifically supported Paimon data integration jobs after version 2.1.2, but this method of manually creating jobs and entering job parameters still does not meet our actual needs. We need more flexible job creation, which can be done through Quickly complete job creation and startup by calling API... After our research, we found that StreamPark has completely opened various operation APIs for jobs, such as job copy, creation, deployment, start, stop, et [...]
+<p><strong>Step1</strong>:First, the api copy template interface will be called and parameters will be passed in. The relevant screenshots are as follows:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/api_copy-ceff34954a24abe2b3e04bc6d10d4f26.png" width="737" height="484" class="img__KcZ"></p>
+<p>In this way, the job will be created quickly, and the parameters will be passed in through the copy interface. The specific parameters are as follows:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/parameter-d7feafe0cd25f249bec4b2115d64ec00.png" width="780" height="959" class="img__KcZ"></p>
+<p><strong>Step2</strong>:Next, call the API to build the job image:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/job_mirroring-8cbc7decc438aa15ca8166ba9a0bd7c1.png" width="870" height="522" class="img__KcZ"></p>
+<p><strong>Step3</strong>:Continue to call the API to start the job:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/start_the_job-036fdf864d022cf8de2282af72d4b3ca.png" width="855" height="641" class="img__KcZ"></p>
+<p>Finally, after the task is successfully started, you can see the relevant status information of the task and the resource overview of the overall task on the StreamPark platform:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/resource_overview-b7f0b5ccafd202f82c515c64e48cd377.png" width="1080" height="618" class="img__KcZ"></p>
+<p>You can also click Application Name to schedule the Flink web UI:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_ui-1a5557a19b30e92802eab1b75cc4a574.png" width="1080" height="702" class="img__KcZ"></p>
+<p>Finally, you can directly query the Paimon table on the Hive side to obtain the required data. The Paimon table is a data synchronization target table with low latency processed by Flink. The screenshot of Hive query Paimon table in Hue is as follows</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/hive_query_paimon-9203a5f6debb35ce41f9f51be06e1446.png" width="2000" height="1346" class="img__KcZ"></p>
+<p>Through the above steps, the business party can easily initiate an access application. After the approval process, a Flink job is created and deployed through StreamPark. The data is entered into the Paimon table through the Flink job, allowing users to easily perform query operations on the Hive side. The entire process is simplified. User operation improves the efficiency and maintainability of data access.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="4-benefits"><strong>4. Benefits</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#4-benefits" class="hash-link" aria-label="Direct link to 4-benefits" title="Direct link to 4-benefits">​</a></h2>
+<p>By using Paimon and StreamPark, Ziroom has brought the following advantages and benefits:</p>
+<ul>
+<li>
+<p><strong>Network resources and database pressure optimization</strong>: By obtaining data snapshots directly from the Paimon table, the problem of network resource constraints and excessive database pressure caused by pulling data from the business database in the early morning is solved, while data storage costs are reduced.</p>
+</li>
+<li>
+<p><strong>Job management interface improves efficiency</strong>: Using StreamPark's job management interface easily solves the problem of manual deployment of Flink tasks, eliminates the situation where tasks are not deployed in time due to personnel dependence on time, improves efficiency, and reduces communication costs. Improved the management efficiency of Flink jobs.</p>
+</li>
+<li>
+<p><strong>Reduce development and maintenance costs</strong>: It solves the problems of high maintenance costs and slow problem location caused by long links in the previous solution. It also solves the problem of field inconsistency caused by field changes and realizes the unified flow and batch of data access. , reducing development and maintenance costs.</p>
+</li>
+<li>
+<p><strong>Reduced usage costs of data integration scheduling resources and computing resources</strong>: No longer relies on external scheduling systems for incremental data merging, reducing the use of scheduling resources. It no longer relies on Hive resources for merge operations, reducing the cost of merging incremental data on Hive computing resources.</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="5-conclusion--expectations"><strong>5. Conclusion &amp; Expectations</strong><a href="https://streampark.apache.org/blog/streampark-flink-with-paimon-in-ziru#5-conclusion--expectations" class="hash-link" aria-label="Direct link to 5-conclusion--expectations" title="Direct link to 5-conclusion--expectations">​</a></h2>
+<p>We would like to sincerely thank the <strong>Apache StreamPark</strong> community for their generous help as we use the StreamPark API. Their professional service spirit and user-oriented attitude allow us to use this powerful framework more efficiently and smoothly. As an excellent framework, StreamPark not only has excellent functions, but also supports a series of operations such as task copying, creation, deployment, start, stop and status monitoring, and has significantly played  [...]
+<p>At the same time, we would like to express our gratitude to the <strong>Apache Paimon</strong> community for their patience and professional guidance during the testing phase of Ziroom MySQL into Paimon. This is an important support for us to successfully complete the test. As a project with great potential, Paimon has demonstrated extraordinary qualities both in terms of feature implementation and team collaboration.</p>
+<p>Finally, we are full of expectations and confidence in the future of Apache StreamPark and Apache Paimon, and firmly believe that they will become excellent projects for Apache in the future. Their excellent functions and harmonious community cooperation model have laid a solid foundation for their maturity in the open source community. We expect that the StreamPark and Paimon communities will continue to maintain a professional attitude and good teamwork spirit, continue to advance t [...]
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Apache StreamPark™ helps Tianyancha real-time platform construction|Multiple-fold increase in efficiency]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-tianyancha</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-tianyancha"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Introduction: This paper mainly introduces the challenges of job development and management faced by Tianyancha in the operation and maintenance of nearly 1,000 Flink jobs in the real-time computing business, and solves these challenges by introducing Apache StreamPark. It introduces some of the problems encountered in the process of introducing StreamPark, and how to solve these problems and successfully land the project, and finally greatly reduces [...]
+        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/new_cover-4883e1aa52dc856ae160abd142daf867.png" width="1080" height="460" class="img__KcZ"></p>
+<p><strong>Introduction</strong>: This paper mainly introduces the challenges of job development and management faced by Tianyancha in the operation and maintenance of nearly 1,000 Flink jobs in the real-time computing business, and solves these challenges by introducing Apache StreamPark. It introduces some of the problems encountered in the process of introducing StreamPark, and how to solve these problems and successfully land the project, and finally greatly reduces operation and mai [...]
+<p>Github: <a href="https://github.com/apache/streampark" target="_blank" rel="noopener noreferrer">https://github.com/apache/streampark</a></p>
+<p>Welcome to follow, star, fork, and participate in contributions</p>
+<p>Contributor | Beijing Tianyancha</p>
+<p>Author | Li Zhilin</p>
+<p>Article compilation|Yang Linwei</p>
+<p>Content proofreading|Pan Yuepeng</p>
+<p>Tianyancha is China's leading business search platform. Since its inception in 2014, Tianyancha has continued to maintain rapid growth, with an industry penetration rate of more than 77%, a monthly active user base of 35 million, and a cumulative user base of 600 million+, making Tianyancha a super symbol in the business field, and one of the first companies to obtain the qualification of enterprise credit collection filed with the Central Bank. After years of deep cultivation, the pl [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/enterprise-c8641726b9205b14e3e330d10e73bb68.png" width="1080" height="748" class="img__KcZ"></p>
+<p>In this paper, we will introduce the challenges faced by the real-time computing business of Tianyancha, how these challenges are addressed by the Apache StreamPark platform, as well as the significant benefits and future plans.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="business-background-and-challenges"><strong>Business background and challenges</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#business-background-and-challenges" class="hash-link" aria-label="Direct link to business-background-and-challenges" title="Direct link to business-background-and-challenges">​</a></h2>
+<p>Tianyancha has a huge user base and diverse business dimensions, we use Apache Flink, a powerful real-time computing engine, to provide users with better products and service experience, our real-time computing business mainly covers the following scenarios:</p>
+<ul>
+<li>
+<p>Real-time data ETL processing and data transmission.</p>
+</li>
+<li>
+<p>C-end dimensional data statistics, including user behavior, PV/UV analysis.</p>
+</li>
+<li>
+<p>Real-time correlation analysis of C-end business data with business information, risk information, property rights, equity, shareholders, cases and other information.</p>
+</li>
+</ul>
+<p>With the rapid development of the business of Tianyancha, real-time operations have increased to 800+, and will soon be thousands in the future. Facing such a large volume of operations, we have encountered challenges in development and management, which are roughly as follows:</p>
+<ul>
+<li>
+<p><strong>Difficulty in job operation and maintenance</strong>: Jobs cover multiple Flink versions, running and upgrading multi-version Flink jobs are costly due to API changes, and job submission and parameter tuning rely on complex scripts, which greatly increases the maintenance difficulty and cost.</p>
+</li>
+<li>
+<p><strong>Inefficient job development</strong>: From local IDE debugging to test environment deployment, it takes time-consuming and inefficient steps such as compilation, file transfer and command execution.</p>
+</li>
+<li>
+<p><strong>Lack of automatic retry mechanism</strong>: Multi-table correlation operation of real-time business is susceptible to network and IO fluctuations, which leads to Flink program failure and requires manual or additional program intervention for recovery, increasing development and maintenance costs.</p>
+</li>
+<li>
+<p><strong>High Maintenance Costs</strong>: Lack of centralized logging, version control, and configuration management tools makes maintaining a large number of JAR packages, commit scripts, and Flink client configurations increasingly complex as the task volume rises.</p>
+</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/challenges-2c1babbcd18fc83fb47c4447fa413a95.png" width="1069" height="982" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="streampark-on-the-ground-practice"><strong>StreamPark on-the-ground practice</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#streampark-on-the-ground-practice" class="hash-link" aria-label="Direct link to streampark-on-the-ground-practice" title="Direct link to streampark-on-the-ground-practice">​</a></h2>
+<p>In order to solve the above problems, our company decided to introduce StreamPark, we started to pay attention to the StreamPark project when it was first open-sourced, and the project name was StreamX at that time, and since then we have been closely following the development of the project, witnessing its development from open-sourcing to joining the incubation of the Apache Software Foundation, and we have seen that its community activity, user reputation, and the number of times o [...]
+<ul>
+<li>
+<p><strong>Git-style project management</strong>: provides a convenient version control and deployment process for jobs.</p>
+</li>
+<li>
+<p><strong>Powerful job O&amp;M capabilities</strong>: significantly improves the efficiency of job management and maintenance.</p>
+</li>
+<li>
+<p><strong>Precise second-level alarm system</strong>: provides real-time monitoring and rapid response capability.</p>
+</li>
+<li>
+<p><strong>One-stop task development platform</strong>: provides strong protection for development, testing and deployment</p>
+</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="1-git-style-project-management"><strong>1. Git-style project management</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#1-git-style-project-management" class="hash-link" aria-label="Direct link to 1-git-style-project-management" title="Direct link to 1-git-style-project-management">​</a></h3>
+<p>Tianyancha more than 90% are JAR jobs, management of hundreds of JAR jobs is a headache, in order to facilitate the maintenance and management of the previous we named the JAR file name through the “developer name-project name-module-environment”, which brings another problem, there is no way to intuitively differentiate between the maintenance of the operation in that There is no way to visually distinguish which module the job is maintained in, and if a non-owner maintains the job,  [...]
+<p>In StreamPark, we were pleasantly surprised to find a project management feature, similar to the Git integration, that solved our pain point by simplifying the naming convention to isolate projects, people, branches and environments. Now, we can instantly locate the code and documents of any job, which greatly improves the maintainability and development efficiency of jobs, and significantly improves our operation and maintenance efficiency.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/git-90b5c4fc3c5c732e3e2757fc83ecb1d4.png" width="1080" height="525" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="2-seconds-accurate-alerts-and-automated-om"><strong>2. Seconds-accurate alerts and automated O&amp;M</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#2-seconds-accurate-alerts-and-automated-om" class="hash-link" aria-label="Direct link to 2-seconds-accurate-alerts-and-automated-om" title="Direct link to 2-seconds-accurate-alerts-and-automated-om">​</a></h3>
+<p>Below is one of our Flink online tasks, during the query process to access the third-party side, Connection Time out and other errors occurred (Note: itself Flink set the restart policy interval restart three times, but ultimately failed)</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/alarm-609ca86190f86b8ad9a8c4d212705add.png" width="1080" height="904" class="img__KcZ"></p>
+<p>As shown above, when the job alert was received, and our fellow developers responded to 1 in the group, we realized that the <strong>job had been successfully pulled up by StreamPark, and it took less than 15 seconds to resubmit the job and run it</strong>!</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="3-platform-user-rights-control"><strong>3. Platform user rights control</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#3-platform-user-rights-control" class="hash-link" aria-label="Direct link to 3-platform-user-rights-control" title="Direct link to 3-platform-user-rights-control">​</a></h3>
+<p>StreamPark provides a complete set of permission management mechanism, which allows us to manage the fine-grained permissions of jobs and users on the StreamPark platform, effectively avoiding possible misoperation due to excessive user permissions, and reducing the impact on the stability of job operation and the accuracy of the environment configuration, which is very necessary for enterprise-level users.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/permissions-5879a5913ed1c6f93481b0951b139fc3.png" width="1080" height="525" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="4-flink-sql-online-development"><strong>4. Flink SQL online development</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#4-flink-sql-online-development" class="hash-link" aria-label="Direct link to 4-flink-sql-online-development" title="Direct link to 4-flink-sql-online-development">​</a></h3>
+<p>For many development scenarios where Flink SQL jobs need to be submitted, we can now completely eliminate the tedious steps of writing code in IDEA. Simply use the StreamPark platform,<strong>which makes it easy to develop Flink SQL jobs</strong>, and here's a simple example.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/sql_job-8e9bfa3d04866e5bf5e05103048f0e09.png" width="1080" height="651" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="5-well-established-operations-management-capabilities"><strong>5. Well-established operations management capabilities</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#5-well-established-operations-management-capabilities" class="hash-link" aria-label="Direct link to 5-well-established-operations-management-capabilities" title="Direct link to 5-well-established-operations-management-capabilities">​</a></h3>
+<p>StreamPark also has more complete job operation records, for some abnormal jobs at the time of submission, you can now view the failure log completely through the platform, including historical log information.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/historical_logs-815b75ba2fe1a1d1d90c284999e35f3d.png" width="1080" height="525" class="img__KcZ"></p>
+<p>Of course, StreamPark also provides us with a more complete and user-friendly task management interface to visualize how tasks are running.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/task_management-d7b65ce685ba87d759bcae290b0cbbe1.png" width="1080" height="525" class="img__KcZ"></p>
+<p>Our internal real-time projects are highly abstracted code development jobs, and each time we develop a new job, we only need to modify some external incoming parameters. With the StreamPark replicated job feature, we can say goodbye to a lot of repetitive work, and just replicate the existing job on the platform, and slightly modify the running parameters of the program in order to submit a new job!</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/successful-5bef1e14d16c3e90b504d99e28e70d2e.png" width="552" height="520" class="img__KcZ"></p>
+<p>Of course, there are more, not to list here, StreamPark in the use of simple enough to use, within minutes you can get started to use, the function is focused enough to be reliable, the introduction of StreamPark to solve the problem we face in managing Flink jobs, bringing real convenience, significantly improve the efficiency of the people, to give the creative team a great praise!</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="problems-encountered"><strong>Problems encountered</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#problems-encountered" class="hash-link" aria-label="Direct link to problems-encountered" title="Direct link to problems-encountered">​</a></h2>
+<p>In the StreamPark landing practice, we also encountered some problems, which are documented here, expecting to bring some inputs and references to the users in the community.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="huawei-cloud-has-compatibility-issues-with-open-source-hadoop"><strong>Huawei Cloud has compatibility issues with open source Hadoop</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#huawei-cloud-has-compatibility-issues-with-open-source-hadoop" class="hash-link" aria-label="Direct link to huawei-cloud-has-compatibility-issues-with-open-source-hadoop" title="Direct link to huawei-cloud-has-compatibility-i [...]
+<p>Our jobs are in Flink on Yarn mode and deployed in Huawei Cloud. During the process of using StreamPark to deploy jobs, we found that the jobs can be successfully deployed to Huawei Hadoop cluster, but the request for Yarn ResourceManager was rejected when getting the job status information, so we communicated with the community in time to find a solution, and logged the issue.
+<a href="https://github.com/apache/incubator-streampark/issues/3566" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-streampark/issues/3566</a></p>
+<p>We communicated with the community to seek a solution, and recorded the issue: . Finally, with the assistance of Mr. Huajie, a community PMC member, and Huawei Cloud students, we successfully resolved the issue: StreamPark could not access the cloud ResourceManager properly due to the internal security authentication mechanism of the cloud product itself.</p>
+<p>Solution (for reference only - add different dependencies according to different environments)</p>
+<p>Remove two HADOOP related packages from the STREAMPARK_HOME/lib directory:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">hadoop-client-api-3.3.4.jar</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">hadoop-client-runtime-3.3.4.jar</s [...]
+<p>Replace the following Huawei Cloud HADOOP dependencies.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">commons-configuration2-2.1.1.jar</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">commons-lang-2.6.0.wso2v1.jar [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="other-bugs"><strong>Other Bugs</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#other-bugs" class="hash-link" aria-label="Direct link to other-bugs" title="Direct link to other-bugs">​</a></h3>
+<p>In the process of intensive use, we also found some problems. In order to better improve and optimize StreamPark's functionality, we have come up with some specific suggestions and solutions, such as:</p>
+<ul>
+<li>
+<p><strong>Dependency conflict</strong>: conflict resolution when loading Flink dependencies (see: Pull Request #3568).</p>
+</li>
+<li>
+<p><strong>Service Stability</strong>: Intercept user program JVM exits to prevent the StreamPark platform from exiting abnormally due to user programs (see: Pull Request #3659).</p>
+</li>
+<li>
+<p><strong>Resource Optimization</strong>: In order to reduce the burden on resources, we limit the number of concurrent StremaPark builds, and control the maximum number of builds through configuration parameters (see: Pull Request #3696).</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="benefits-derived"><strong>Benefits derived</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#benefits-derived" class="hash-link" aria-label="Direct link to benefits-derived" title="Direct link to benefits-derived">​</a></h2>
+<p>Apache StreamPark has brought us significant benefits,<strong>mainly in its one-stop service capability, which enables business developers to complete the development, compilation, submission and management of Flink jobs</strong> on a unified platform. It greatly saves our time on Flink job development and deployment, significantly improves development efficiency, and realizes full-process automation from user rights management to Git deployment, task submission, alerting, and automat [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/earnings-40d9739c55527d669e4f90c739571049.png" width="1080" height="989" class="img__KcZ"></p>
+<p>Currently on the Tianyancha platform, specific results from StreamPark include:</p>
+<ul>
+<li>
+<p>Real-time job go-live and test deployment processes are simplified by <strong>70%</strong>.</p>
+</li>
+<li>
+<p>The operation and maintenance costs of real-time jobs have been reduced by <strong>80%</strong>, allowing developers to focus more on code logic.</p>
+</li>
+<li>
+<p>Alert timeliness has improved by more than <strong>5x</strong>, from minutes to seconds, enabling task exceptions to be sensed and handled within <strong>5 seconds</strong>.</p>
+</li>
+<li>
+<p>StreamPark automatically recovers from task failures without human intervention.</p>
+</li>
+<li>
+<p>The integration of GitLab with StreamPark simplifies the process of compiling projects and submitting jobs, dramatically reducing development and maintenance costs.</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="future-planning"><strong>Future planning</strong><a href="https://streampark.apache.org/blog/streampark-usercase-tianyancha#future-planning" class="hash-link" aria-label="Direct link to future-planning" title="Direct link to future-planning">​</a></h2>
+<p>In the future, we plan to migrate all 300+ Flink jobs deployed on our internal real-time computing platform and 500+ Flink jobs maintained in other ways to StreamPark for unified management and maintenance. When we encounter some optimization or enhancement points in the future, we will communicate with the community developers in a timely manner and contribute to the community, so as to make StreamPark easier and more usable! We will make StreamPark easier and better to use.</p>
+<p>At the end of this article, we would like to thank the Apache Streampark community, especially Mr. Huajie, a member of the PMC, for his continuous follow-up and valuable technical support during the process of using StreamPark, and we deeply feel the serious attitude and enthusiasm of the Apache StreamPark community. We are also very grateful to Huawei Cloud students for their support and troubleshooting on cloud deployment.</p>
+<p>We look forward to continuing our cooperation with the StreamPark community in the future to jointly promote the development of real-time computing technology, and hope that StreamPark will do better and better in the future, and graduate to become a representative of the new Apache project soon!</p>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[China Union's Flink Real-Time Computing Platform Ops Practice]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-chinaunion</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-chinaunion"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Abstract]]></summary>
+        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/overall_architecture_en-34d3339cff0ab62d179ea3f205e008c9.png" width="1920" height="1080" class="img__KcZ"></p>
+<p><strong>Abstract:</strong> This article is compiled from the sharing of Mu Chunjin, the head of China Union Data Science's real-time computing team and Apache StreamPark Committer, at the Flink Forward Asia 2022 platform construction session. The content of this article is mainly divided into four parts:</p>
+<ul>
+<li>Introduction to the Real-Time Computing Platform Background</li>
+<li>Operational Challenges of Flink Real-Time Jobs</li>
+<li>Integrated Management Based on StreamPark</li>
+<li>Future Planning and Evolution</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="introduction-to-the-real-time-computing-platform-background"><strong>Introduction to the Real-Time Computing Platform Background</strong><a href="https://streampark.apache.org/blog/streampark-usercase-chinaunion#introduction-to-the-real-time-computing-platform-background" class="hash-link" aria-label="Direct link to introduction-to-the-real-time-computing-platform-background" title="Direct link to introduction-to-the-real-time-computing- [...]
+<p>The image above depicts the overall architecture of the real-time computing platform. At the bottom layer, we have the data sources. Due to some sensitive information, the detailed information of the data sources is not listed. It mainly includes three parts: business databases, user behavior logs, and user location. China Union has a vast number of data sources, with just the business databases comprising tens of thousands of tables. The data is primarily processed through Flink SQL  [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/data_processing_processes_en-8cfb9567159e06c1ffd041785a699342.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>The image above provides a detailed workflow of data processing.</p>
+<p>The first part is collection and parsing. Our data sources come from business databases, including OGG and DTS format messages, log messages, user behavior, and user location data, totaling over 50 different data sources. This number is expected to gradually increase. All data sources are processed in real-time using Flink, and Metrics have been added to monitor the latency of data sources.</p>
+<p>The second part is real-time computing. This stage deals with a massive amount of data, in the trillions, supporting over 10,000 real-time data subscriptions. There are more than 200 Flink tasks. We encapsulate a certain type of business into a scenario, and a single Flink job can support multiple subscriptions in the same scenario. Currently, the number of Flink jobs is continuously increasing, and in the future, it might increase to over 500. One of the major challenges faced here i [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/platform_evolution_en-8accacb1629486423dd06666918a0166.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>In 2018, we adopted a third-party black-box computing engine, which did not support flexible customization of personalized functions, and depended heavily on external systems, resulting in high loads on these external systems and complex operations and maintenance. In 2019, we utilized Spark Streaming's micro-batch processing. From 2020, we began to use Flink for stream computing. Starting from 2021, almost all Spark Streaming micro-batch processing tasks have been replaced by Flink.  [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/platform_background_en-b2f833807aec53e4cd8153ac59766d4e.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>To summarize the platform background, it mainly includes the following parts:</p>
+<ul>
+<li>Large data volume: processing an average of trillions of data per day.</li>
+<li>Numerous data sources: integrated with more than 50 types of real-time data sources.</li>
+<li>Numerous subscriptions: supported more than 10,000 data service subscriptions.</li>
+<li>Numerous users: supported the usage of more than 30 internal and external users.</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/operational_background_en-921078815a2efaf6de311d061ea51c86.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>The operational maintenance background can also be divided into the following parts:</p>
+<ul>
+<li>High support demand: More than 50 types of data sources, and over 10,000 data service subscriptions.</li>
+<li>Numerous real-time jobs: Currently, there are 200+ Flink production jobs, and the number is continuously and rapidly increasing, potentially reaching 500+ in the future.</li>
+<li>High frequency of launches: There are new or enhanced Flink jobs going live every day.</li>
+<li>Numerous developers: Over 50 R&amp;D personnel are involved in developing Flink real-time computing tasks.</li>
+<li>Numerous users: Over 30 internal and external organizations' users are utilizing the platform.</li>
+<li>Low monitoring latency: Once an issue is identified, we must address it immediately to avoid user complaints.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="flink-real-time-job-operation-and-maintenance-challenges"><strong>Flink Real-Time Job Operation and Maintenance Challenges</strong><a href="https://streampark.apache.org/blog/streampark-usercase-chinaunion#flink-real-time-job-operation-and-maintenance-challenges" class="hash-link" aria-label="Direct link to flink-real-time-job-operation-and-maintenance-challenges" title="Direct link to flink-real-time-job-operation-and-maintenance-challe [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/difficulties_en-51da13514ddd61386799291d4c9d85d1.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>Given the platform and operational maintenance background, particularly with the increasing number of Flink jobs, we have encountered significant challenges in two main areas: job operation and maintenance dilemmas, and business support difficulties.</p>
+<p>In terms of job operation and maintenance dilemmas, firstly, the job deployment process is lengthy and inefficient. Under China Union's principle that security is the top priority, deploying programs on servers involves connecting to a VPN, logging in through the 4A system, packaging and compiling, deploying, and then starting the program. This entire process is quite long. Initially, when developing Flink, we started jobs using scripts, leading to uncontrollable code branches. After  [...]
+<p>Due to various factors in the job operation and maintenance difficulties, business support challenges arise, such as a high rate of failures during launch, impact on data quality, lengthy launch times, high data latency, and issues with missed alarm handling, leading to complaints. In addition, the impact on our business is unclear, and once a problem arises, addressing the issue becomes the top priority.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="integrated-management-based-on-apache-streampark"><strong>Integrated Management based on Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-usercase-chinaunion#integrated-management-based-on-apache-streampark" class="hash-link" aria-label="Direct link to integrated-management-based-on-apache-streampark" title="Direct link to integrated-management-based-on-apache-streampark">​</a></h2>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/job_management_en-4c44c79f18f1fd4e478ed5905a58db25.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>In response to the two dilemmas mentioned above, we have resolved many issues through StreamPark's integrated management. First, let's take a look at the dual evolution of StreamPark, which includes Flink Job Management and Flink Job DevOps Platform. In terms of job management, StreamPark supports deploying Flink real-time jobs to different clusters, such as Flink's native Standalone mode, and the Session, Application, and PerJob modes of Flink on Yarn. In the latest version, it will  [...]
+<ul>
+<li>Project Management: When deploying a Flink program, you can fill in the git address in project management and select the branch you want to deploy.</li>
+<li>Job Management: You can specify the execution mode of the Flink job, such as which type of cluster you want to submit to. You can also configure some resources, such as the number of TaskManagers, the memory size of TaskManager/JobManager, parallelism, etc. Additionally, you can set up some fault tolerance measures; for instance, if a Flink job fails, StreamPark can support automatic restarts, and it also supports the input of some dynamic parameters.</li>
+<li>Cluster Management: You can add and manage big data clusters through the interface.</li>
+<li>Team Management: In the actual production process of an enterprise, there are multiple teams, and these teams are isolated from each other.</li>
+<li>Variable Management: You can maintain some variables in one place. For example, you can define Kafka's Broker address as a variable. When configuring Flink jobs or SQL, you can replace the Broker's IP with a variable. Moreover, if this Kafka needs to be decommissioned later, you can also use this variable to check which jobs are using this cluster, facilitating some subsequent processes.</li>
+<li>Alarm Management: Supports multiple alarm modes, such as WeChat, DingTalk, SMS, and email.</li>
+</ul>
+<p>StreamPark supports the submission of Flink SQL and Flink Jar, allows for resource configuration, and supports state tracking, indicating whether the state is running, failed, etc. Additionally, it provides a metrics dashboard and supports the viewing of various logs.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/devops_platform_en-02d9f0b165baf303a20d7c9a8eb091c6.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>The Flink Job DevOps platform primarily consists of the following parts:</p>
+<ul>
+<li>Teams: StreamPark supports multiple teams, each with its team administrator who has all permissions. There are also team developers who only have a limited set of permissions.</li>
+<li>Compilation and Packaging: When creating a Flink project, you can configure the git address, branch, and packaging commands in the project, and then compile and package with a single click of the build button.</li>
+<li>Release and Deployment: During release and deployment, a Flink job is created. Within the Flink job, you can choose the execution mode, deployment cluster, resource settings, fault tolerance settings, and fill in variables. Finally, the Flink job can be started or stopped with a single click.</li>
+<li>State Monitoring: After the Flink job is started, real-time tracking of its state begins, including Flink's running status, runtime duration, Checkpoint information, etc. There is also support for one-click redirection to Flink's Web UI.</li>
+<li>Logs and Alerts: This includes logs from the build and start-up processes and supports alerting methods such as DingTalk, WeChat, email, and SMS.</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/multi_team_support_en-f7f607d42182ae6e2c41f706e0c0a743.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>Companies generally have multiple teams working on real-time jobs simultaneously. In our company, this includes a real-time data collection team, a data processing team, and a real-time marketing team. StreamPark supports resource isolation for multiple teams.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/platformized_management_en-ebe6e86784e9489b29cf9a434b4510db.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>Management of the Flink job platform faces the following challenges:</p>
+<ul>
+<li>Numerous scripts: There are several hundred scripts on the platform, scattered across multiple servers.</li>
+<li>Various types of scripts: When starting Flink jobs, there are start scripts, stop scripts, and daemon scripts, and it is very difficult to control operation permissions.</li>
+<li>Inconsistent scripts: The scripts on the server are inconsistent with the scripts on git.</li>
+<li>Difficult to ascertain script ownership: It is unclear who is responsible for the Flink jobs and their purpose.</li>
+<li>Uncontrollable branches: When starting a job, you need to specify the git branch in the script, resulting in untraceable branches.</li>
+</ul>
+<p>Based on the challenges mentioned above, StreamPark has addressed the issues of unclear ownership and untraceable branches through project management. This is because when creating a project, you need to manually specify certain branches. Once the packaging is successful, these branches are recorded. Job management centralizes configurations, preventing scripts from being too dispersed. Additionally, there is strict control over the permissions for starting and stopping jobs, preventi [...]
+<p>Referring to the image above, you can see at the bottom of the diagram that packaging is conducted through project management, configuration is done via job management, and then it is released. This process allows for one-click start and stop operations, and jobs can be submitted through the API.</p>
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/development_efficiency_en-5beb07a0a515b5b2f304a6f8099096cc.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>In the early stages, we needed to go through seven steps for deployment, including connecting to a VPN, logging in through 4A, executing compile scripts, executing start scripts, opening Yarn, searching for the job name, and entering the Flink UI. StreamPark supports one-click deployment for four of these steps, including one-click packaging, one-click release, one-click start, and one-click access to the Flink UI.</p>
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/submission_process_en-46dc2e25232a2915b2eec367fcd62e08.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>The image above illustrates the job submission process of our StreamPark platform. Firstly, StreamPark proceeds to release the job, during which some resources are uploaded. Following that, the job is submitted, accompanied by various configured parameters, and it is published to the cluster using the Flink Submit method via an API call. At this point, there are multiple Flink Submit instances corresponding to different execution modes, such as Yarn Session, Yarn Application, Kubernet [...]
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/status_acquisition_bottleneck_en-652976e1111719f2f1c32ffe44e45a71.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>As mentioned above, in the case of Flink on Yarn jobs, two IDs are acquired upon job submission: the Application ID and the Job ID. These IDs are used to retrieve the job status. However, when there is a large number of Flink jobs, certain issues may arise. StreamPark utilizes a status retriever that periodically sends requests to the ResourceManager every five seconds, using the Application ID or Job ID stored in our database. If there are a considerable number of jobs, during each p [...]
+<p>In the diagram mentioned earlier, the connection count to the ResourceManager shows periodic and sustained increases, indicating that the ResourceManager is in a relatively critical state. This is evidenced by monitoring data from the server, which indeed shows a higher number of connections to the ResourceManager.</p>
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/state_optimization_en-8a96d3d3392cb7d9b91a9f5b97dacd96.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>To address the issues mentioned above, we have made some optimizations in StreamPark. Firstly, after submitting a job, StreamPark saves the Application ID or Job ID, and it also retrieves and stores the direct access address of the Job Manager in the database. Therefore, instead of polling the ResourceManager for job status, it can directly call the addresses of individual Job Managers to obtain the real-time status. This significantly reduces the number of connections to the Resource [...]
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/state_recovery_en-9fd0c4443346771b7aafba64da4fb95d.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>Another issue that StreamPark resolves is safeguarding Flink's state recovery. In the past, when we used scripts for operations and maintenance, especially during business upgrades, it was necessary to recover from the latest checkpoint when starting Flink. However, developers often forgot to recover from the previous checkpoint, leading to significant data quality issues and complaints. StreamPark's process is designed to mitigate this issue. Upon the initial start of a Flink job, it [...]
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/multiple_environments_and_components_en-e4758211d3a79798f5e19aa8e8c03b0e.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>StreamPark also addresses the challenges associated with referencing multiple components across various environments. In a corporate setting, there are typically multiple environments, such as development, testing, and production. Each environment generally includes multiple components, such as Kafka, HBase, Redis, etc. Additionally, within a single environment, there may be multiple instances of the same component. For example, in a real-time computing platform at China Union, when c [...]
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/multiple_execution_modes_en-6c7c16b64108f8485e811833d7282e86.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>StreamPark supports multiple execution modes for Flink, including three deployment modes based on Yarn: Application, Perjob, and Session. Additionally, it supports two deployment modes for Kubernetes: Application and Session, as well as some Remote modes.</p>
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/versioning_en-5b907bf416e5c968917ed091b198bb31.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>StreamPark also supports multiple versions of Flink. For example, while our current version is 1.14.x, we would like to experiment with the new 1.16.x release. However, it’s not feasible to upgrade all existing jobs to 1.16.x. Instead, we can opt to upgrade only the new jobs to 1.16.x, allowing us to leverage the benefits of the new version while maintaining compatibility with the older version.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="future-planning-and-evolution"><strong>Future Planning and Evolution</strong><a href="https://streampark.apache.org/blog/streampark-usercase-chinaunion#future-planning-and-evolution" class="hash-link" aria-label="Direct link to future-planning-and-evolution" title="Direct link to future-planning-and-evolution">​</a></h2>
+<p><img decoding="async" loading="lazy" alt="图片" src="https://streampark.apache.org/assets/images/contribution_and_enhancement_en-2d749c52f2c4255dff234b275433f25c.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>In the future, we will increase our involvement in the development of StreamPark, and we have planned the following directions for enhancement:</p>
+<ul>
+<li>High Availability: StreamPark currently does not support high availability, and this aspect needs further strengthening.</li>
+<li>State Management: In enterprise practices, each operator in a Flink job has a UID. If the Flink UID is not set, it could lead to situations where state recovery is not possible when upgrading the Flink job. This issue cannot be solved through the platform at the moment. Therefore, we plan to add this functionality to the platform. We will introduce a feature that checks whether the operator has a UID set when submitting a Flink Jar. If not, a reminder will be issued to avoid state re [...]
+<li>More Detailed Monitoring: Currently, StreamPark supports sending alerts when a Flink job fails. We hope to also send alerts when a Task fails, and need to know the reason for the failure. In addition, enhancements are needed in job backpressure monitoring alerts, Checkpoint timeout alerts, failure alerts, and performance metric collection.</li>
+<li>Stream-Batch Integration: Explore a platform that integrates both streaming and batch processing, combining the Flink stream-batch unified engine with data lake storage that supports stream-batch unification.</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/road_map_en-ea1ba2536fecd2828b882dd40ffe5bf4.png" width="1920" height="1080" class="img__KcZ"></p>
+<p>The above diagram represents the Roadmap for StreamPark.</p>
+<ul>
+<li>Data Source: StreamPark will support rapid integration with more data sources, achieving one-click data onboarding.</li>
+<li>Operation Center: Acquire more Flink Metrics to further enhance the capabilities in monitoring and operation.</li>
+<li>K8S-operator: The existing Flink on K8S is somewhat cumbersome, having gone through the processes of packaging Jars, building images, and pushing images. There is a need for future improvements and optimization, and we are actively embracing the upstream K8S-operator integration.</li>
+<li>Streaming Data Warehouse: Enhance support for Flink SQL job capabilities, simplify the submission of Flink SQL jobs, and plan to integrate with Flink SQL Gateway. Enhance capabilities in the SQL data warehouse domain, including metadata storage, unified table creation syntax validation, runtime testing, and interactive queries, while actively embracing Flink upstream to explore real-time data warehouses and streaming data warehouses.</li>
+</ul>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Based on Apache Paimon + Apache StreamPark™'s Streaming Data Warehouse Practice by Bondex]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Foreword: This article mainly introduces the implementation of a streaming data warehouse by Bondex, a supply chain logistics service provider, in the process of digital transformation using the Paimon + StreamPark platform. We provide an easy-to-follow operational manual with the Apache StreamPark integrated stream-batch platform to help users submit Flink tasks and quickly master the use of Paimon.]]></summary>
+        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/Bondex-b9280a2451e6984d91f7747acaa10b97.png" width="1080" height="460" class="img__KcZ"></p>
+<p>**Foreword: **This article mainly introduces the implementation of a streaming data warehouse by Bondex, a supply chain logistics service provider, in the process of digital transformation using the Paimon + StreamPark platform. We provide an easy-to-follow operational manual with the Apache StreamPark integrated stream-batch platform to help users submit Flink tasks and quickly master the use of Paimon.</p>
+<ul>
+<li>Introduction to Company Business</li>
+<li>Pain Points and Selection in Big Data Technology</li>
+<li>Production Practice</li>
+<li>Troubleshooting Analysis</li>
+<li>Future Planning</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="01-introduction-to-company-business">01 Introduction to Company Business<a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#01-introduction-to-company-business" class="hash-link" aria-label="Direct link to 01 Introduction to Company Business" title="Direct link to 01 Introduction to Company Business">​</a></h2>
+<p>Bondex Group has always focused on the field of supply chain logistics. By creating an excellent international logistics platform, it provides customers with end-to-end one-stop intelligent supply chain logistics services. The group currently has over 2,000 employees, an annual turnover of more than 12 billion RMB, a network covering over 200 ports globally, and more than 80 branches and subsidiaries at home and abroad, aiding Chinese enterprises to connect with the world.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="business-background"><strong>Business Background</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#business-background" class="hash-link" aria-label="Direct link to business-background" title="Direct link to business-background">​</a></h3>
+<p>As the company continues to expand and the complexity of its business increases, in order to better achieve resource optimization and process improvement, the Operations and Process Management Department needs to monitor the company's business operations in real time to ensure the stability and efficiency of business processes.</p>
+<p>The Operations and Process Management Department is responsible for overseeing the execution of various business processes within the company, including the volume of orders for sea, air, and rail transport across different regions and business divisions, large customer order volumes, route order volumes, the amount of business entrusted to each operation site for customs, warehousing, and land transportation, as well as the actual revenue and expenses of each region and business divi [...]
+<p><strong>Real-Time Data Warehouse Architecture:</strong></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/realtime_warehouse-418beb6d713966065d731eb8417b8a6e.png" width="1080" height="447" class="img__KcZ"></p>
+<p>The current system requires direct collection of real-time data from the production system, but there are multiple data sources that need to be associated for queries. The Fanruan report is not user-friendly when dealing with multiple data sources and cannot re-aggregate multiple data sources. Scheduled queries to the production system database can put pressure on it, affecting the stable operation of the production system. Therefore, we need to introduce a warehouse that can handle r [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="02-big-data-technology-pain-points-and-selection">02 Big Data Technology Pain Points and Selection<a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#02-big-data-technology-pain-points-and-selection" class="hash-link" aria-label="Direct link to 02 Big Data Technology Pain Points and Selection" title="Direct link to 02 Big Data Technology Pain Points and Selection">​</a></h2>
+<p>Since its establishment, the Bondex big data team has always focused on using efficient operational tools or platforms to achieve effective staffing arrangements, optimize repetitive labor, and reduce manual operations.</p>
+<p>While offline batch data processing has been able to support the group's basic cockpit and management reporting, the Transportation Management Department of the group has proposed the need for real-time statistics on order quantities and operational volumes. The finance department has expressed the need for a real-time display of cash flow. In this context, a big data-based integrated stream-batch solution became imperative.</p>
+<p>Although the big data department has already utilized <a href="https://github.com/apache/doris" target="_blank" rel="noopener noreferrer">Apache Doris</a> for integrated storage and computing of lakehouse architecture and has published articles on lakehouse construction in the Doris community, there are some issues that need to be addressed, such as the inability to reuse streaming data storage, the inaccessibility of intermediate layer data, and the inability to perform real-time agg [...]
+<p>Sorted by the evolution of architecture over recent years, the common architectural solutions are as follows:</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="hadoop-architecture"><strong>Hadoop Architecture</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#hadoop-architecture" class="hash-link" aria-label="Direct link to hadoop-architecture" title="Direct link to hadoop-architecture">​</a></h3>
+<p>The demarcation point between traditional data warehouses and internet data warehouses dates back to the early days of the internet when the requirements for data analysis were not high, mainly focusing on reports with low real-time needs to support decision-making. This gave rise to offline data analysis solutions.</p>
+<p>**Advantages: **Supports a rich variety of data types, capable of massive computations, low requirements for machine configurations, low timeliness, fault-tolerant.</p>
+<p>**Disadvantages: **Does not support real-time; complex to maintain; the query optimizer is not as good as MPP, slow response.</p>
+<p>Selection Basis: Does not support real-time; maintenance is complex, which does not conform to the principle of streamlined staffing; poor performance.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="lambda-architecture"><strong>Lambda Architecture</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#lambda-architecture" class="hash-link" aria-label="Direct link to lambda-architecture" title="Direct link to lambda-architecture">​</a></h3>
+<p>Lambda Architecture is a real-time big data processing framework proposed by Nathan Marz, the author of Storm. Marz developed the famous real-time big data processing framework <a href="https://github.com/apache/storm" target="_blank" rel="noopener noreferrer">Apache Storm</a> while working at Twitter, and the Lambda Architecture is the culmination of his years of experience in distributed big data systems.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/lambda-e357a7e34ced4e82971d4b86acc790b4.png" width="764" height="413" class="img__KcZ"></p>
+<p>Data stream processing is divided into three layers: Serving Layer, Speed Layer, and Batch Layer:</p>
+<ul>
+<li>Batch Layer: Processes offline data and eventually provides a view service to the business;</li>
+<li>Speed Layer: Processes real-time incremental data and eventually provides a view service to the business;</li>
+<li>Serving Layer: Responds to user requests, performs aggregation calculations on offline and incremental data, and ultimately provides the service;</li>
+</ul>
+<p>The advantage is that offline and real-time computations are separated, using two sets of frameworks, which makes the architecture stable.</p>
+<p>The disadvantage is that it is difficult to maintain consistency between offline and real-time data, and operational staff need to maintain two sets of frameworks and three layers of architecture. Developers need to write three sets of code.</p>
+<p>Selection Basis: Data consistency is uncontrollable; operations and development require significant workload, which does not conform to the principle of streamlined staffing.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="kappa-architecture"><strong>Kappa Architecture</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#kappa-architecture" class="hash-link" aria-label="Direct link to kappa-architecture" title="Direct link to kappa-architecture">​</a></h3>
+<p>The Kappa Architecture uses a single stream-processing framework to address both offline and real-time data, solving all problems with a real-time stream, with the goal of providing fast and reliable query access to results. It is highly suitable for various data processing workloads, including continuous data pipelines, real-time data processing, machine learning models and real-time analytics, IoT systems, and many other use cases with a single technology stack.</p>
+<p>It is typically implemented using a streaming processing engine such as Apache Flink, Apache Storm, Apache Kinesis, Apache Kafka, designed to handle large data streams and provide fast and reliable query results.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/kappa-924eb8691ece5d996d9aa740e5b79230.png" width="1080" height="281" class="img__KcZ"></p>
+<p>**Advantages: **Single data stream processing framework.</p>
+<p>**Disadvantages: **Although its architecture is simpler compared to Lambda Architecture, the setup and maintenance of the streaming processing framework are relatively complex, and it lacks true offline data processing capabilities; storing large amounts of data in streaming platforms can be costly.</p>
+<p>Selection Basis: The capability for offline data processing needs to be retained, and costs controlled.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="iceberg"><strong>Iceberg</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#iceberg" class="hash-link" aria-label="Direct link to iceberg" title="Direct link to iceberg">​</a></h3>
+<p>Therefore, we also researched <a href="https://github.com/apache/iceberg" target="_blank" rel="noopener noreferrer">Apache Iceberg</a>, whose snapshot feature can to some extent achieve streaming-batch integration. However, the issue with it is that the real-time table layer based on Kafka is either not queryable or cannot reuse existing tables, with a strong dependency on Kafka. It requires the use of Kafka to write intermediate results to Iceberg tables, increasing system complexity [...]
+<p>Selection Basis: A Kafka-free real-time architecture has been implemented, intermediate data cannot be made queryable or reusable.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="streaming-data-warehouse-continuation-of-the-kappa-architecture"><strong>Streaming Data Warehouse (Continuation of the Kappa Architecture)</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#streaming-data-warehouse-continuation-of-the-kappa-architecture" class="hash-link" aria-label="Direct link to streaming-data-warehouse-continuation-of-the-kappa-architecture" title="Direct link to streaming-data [...]
+<p>Since the FTS0.3.0 version, the BonDex big data team has participated in the construction of a streaming data warehouse, aiming to further reduce the complexity of the data processing framework and streamline personnel configuration. The initial principle was to get involved with the trend, to continuously learn and improve, and to move closer to cutting-edge technology. The team unanimously believes that it is essential to embrace challenges and "cross the river by feeling the stones [...]
+<p><strong>The architecture of the streaming data warehouse is as follows:</strong></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/streaming_warehouse-ab83b309ef461f3907c2df023143c817.png" width="854" height="494" class="img__KcZ"></p>
+<p>Continuing the characteristics of the Kappa architecture with a single stream processing framework, the advantage lies in the fact that the underlying Paimon technology support makes the data traceable throughout the entire chain. The data warehouse layer architecture can be reused, while also considering the processing capabilities of both offline and real-time data, reducing the waste of storage and computing resources.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="03-production-practices">03 Production Practices<a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#03-production-practices" class="hash-link" aria-label="Direct link to 03 Production Practices" title="Direct link to 03 Production Practices">​</a></h2>
+<p>This solution adopts Flink Application on K8s clusters, with Flink CDC for real-time ingestion of relational database data from business systems. Tasks for Flink + Paimon Streaming Data Warehouse are submitted through the StreamPark task platform, with the Trino engine ultimately used to access Finereport for service provision and developer queries. Paimon's underlying storage supports the S3 protocol, and as the company's big data services rely on Alibaba Cloud, Object Storage Servic [...]
+<p><a href="https://github.com/apache/incubator-streampark" target="_blank" rel="noopener noreferrer">StreamPark</a> is a real-time computing platform that leverages the powerful capabilities of <a href="https://github.com/apache/incubator-paimon" target="_blank" rel="noopener noreferrer">Paimon</a> to process real-time data streams. This platform offers the following key features:</p>
+<p>**Real-time Data Processing: **StreamPark supports the submission of real-time data stream tasks, capable of real-time acquisition, transformation, filtering, and analysis of data. This is extremely important for applications that require rapid response to real-time data, such as real-time monitoring, real-time recommendations, and real-time risk control.</p>
+<p>**Scalability: **Capable of efficiently processing large-scale real-time data with good scalability. It can operate in a distributed computing environment, automatically handling parallelization, fault recovery, and load balancing to ensure efficient and reliable data processing.</p>
+<p>**Flink Integration: **Built on <a href="https://github.com/apache/flink" target="_blank" rel="noopener noreferrer">Apache Flink</a>, it leverages Flink’s powerful stream processing engine for high performance and robustness. Users can fully utilize the features and ecosystem of Flink, such as its extensive connectors, state management, and event-time processing.</p>
+<p>**Ease of Use: **Provides a straightforward graphical interface and simplified API, enabling easy construction and deployment of data processing tasks without needing to delve into underlying technical details.</p>
+<p>By submitting Paimon tasks on the StreamPark platform, we can establish a full-link real-time flowing, queryable, and layered reusable Pipline.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/pipline-60b68a9487092b6866020ce983a85ac0.png" width="1080" height="496" class="img__KcZ"></p>
+<p>The main components versions used are as follows:</p>
+<ul>
+<li>flink-1.16.0-scala-2.12</li>
+<li>paimon-flink-1.16-0.4-20230424.001927-40.jar</li>
+<li>apache-streampark_2.12-2.0.0</li>
+<li>kubernetes v1.18.3</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="environment-setup"><strong>Environment Setup</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#environment-setup" class="hash-link" aria-label="Direct link to environment-setup" title="Direct link to environment-setup">​</a></h3>
+<p>Download flink-1.16.0-scala-2.12.tar.gz which can be obtained from the official Flink website. Download the corresponding version of the package to the StreamPark deployment server.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain"># Unzip</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">tar zxvf flink-1.16.0-scala-2.12.tar.gz</span><br></sp [...]
+<p>It is suggested to add FLINK_HOME locally for convenient troubleshooting before deploying on k8s.</p>
+<p>vim /etc/profile</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">#FLINK</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">export FLINK_HOME=/data/src/flink-1.16.0-scala-2.12</sp [...]
+<p>In StreamPark, add Flink conf:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_conf-1c8b9773c6678621a140320ae2a8525f.jpg" width="1080" height="427" class="img__KcZ"></p>
+<p>To build the Flink 1.16.0 base image, pull the corresponding version of the image from Docker Hub.</p>
+<div class="language-dockerfile codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-dockerfile codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain"># Pull the image</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">docker pull flink:1.16.0-scala_2.12 [...]
+<p>Create a Dockerfile &amp; target directory to place the flink-oss-fs-hadoop JAR package in that directory. Download the shaded Hadoop OSS file system jar package from:</p>
+<p><a href="https://repository.apache.org/snapshots/org/apache/paimon/paimon-oss/" target="_blank" rel="noopener noreferrer">https://repository.apache.org/snapshots/org/apache/paimon/paimon-oss/</a></p>
+<p>.</p>
+<p>├── Dockerfile</p>
+<p>└── target</p>
+<p>└── flink-oss-fs-hadoop-1.16.0.jar</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">touch Dockerfile</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></spa [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="build-base-image"><strong>Build base image</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#build-base-image" class="hash-link" aria-label="Direct link to build-base-image" title="Direct link to build-base-image">​</a></h3>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">docker build -t flink-table-store:v1.16.0 .</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inl [...]
+<p>Next, prepare the Paimon jar package. You can download the corresponding version from the Apache <a href="https://repository.apache.org/content/groups/snapshots/org/apache/paimon" target="_blank" rel="noopener noreferrer">Repository</a>. It's important to note that it should be consistent with the major version of Flink.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="managing-jobs-with-apache-streampark"><strong>Managing Jobs with Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#managing-jobs-with-apache-streampark" class="hash-link" aria-label="Direct link to managing-jobs-with-apache-streampark" title="Direct link to managing-jobs-with-apache-streampark">​</a></h3>
+<p><strong>Prerequisites:</strong></p>
+<ul>
+<li>Kubernetes client connection configuration</li>
+<li>Kubernetes RBAC configuration</li>
+<li>Container image repository configuration (the free version of Alibaba Cloud image is used in this case)</li>
+<li>Create a PVC resource to mount checkpoints/savepoints</li>
+</ul>
+<p><strong>Kubernetes Client Connection Configuration:</strong></p>
+<p>Copy the k8s master node's <code>~/.kube/config</code> configuration directly to the directory on the StreamPark server, then execute the following command on the StreamPark server to display the k8s cluster as running, which indicates successful permission and network verification.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl cluster-info</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboard" title="Copy"  [...]
+<p>Kubernetes RBAC Configuration, create the streampark namespace:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl create ns streampark</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboard" title [...]
+<p>Use the default account to create the clusterrolebinding resource:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl create secret docker-registry streamparksecret </span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">--dock [...]
+<p><strong>Container Image Registry Configuration:</strong></p>
+<p>In this case, Alibaba Cloud's Container Registry Service (ACR) is used, but you can also substitute it with a self-hosted image service such as Harbor.</p>
+<p>Create a namespace named StreamPark (set the security setting to private).</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/aliyun-43dec052b5792743675fb5a0e5980ebc.png" width="1080" height="316" class="img__KcZ"></p>
+<p>Configure the image repository in StreamPark; task build images will be pushed to the repository.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dockersystem_setting-60d5b7d9e930185cf1a9a404beab9dc0.png" width="1080" height="360" class="img__KcZ"></p>
+<p>Create a k8s secret key to pull images from ACR; streamparksecret is the name of the secret, customizable.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl create secret docker-registry streamparksecret </span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">--dock [...]
+<p>Creation of PVC Resources for Checkpoints/Savepoints, Utilizing Alibaba Cloud's OSS for K8S Persistence</p>
+<p><strong>OSS CSI Plugin:</strong></p>
+<p>The OSS CSI plugin can be used to help simplify storage management. You can use the CSI configuration to create a PV, and define PVCs and pods as usual. For the YAML file reference, visit:
+<a href="https://bondextest.oss-cn-zhangjiakou.aliyuncs.com/ossyaml.zip" target="_blank" rel="noopener noreferrer">https://bondextest.oss-cn-zhangjiakou.aliyuncs.com/ossyaml.zip</a></p>
+<p><strong>Configuration Requirements:</strong></p>
+<p>- Create a service account with the necessary RBAC permissions, please refer as below:</p>
+<p><a href="https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/master/docs/oss.md" target="_blank" rel="noopener noreferrer">https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/master/docs/oss.md</a></p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl -f rbac.yaml</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboard" title="Copy"  [...]
+<p>- Deploy the OSS CSI Plugin:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl -f oss-plugin.yaml</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboard" title=" [...]
+<p>- Create PV for CP (Checkpoints) &amp; SP (Savepoints):</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl -f checkpoints_pv.yaml kubectl -f savepoints_pv.yaml</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-labe [...]
+<p>- Create PVC for CP &amp; SP:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">kubectl -f checkpoints_pvc.yaml kubectl -f savepoints_pvc.yaml</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-la [...]
+<p>Once the dependent environment is configured, we can start using Paimon for layered development of the streaming data warehouse.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="case-study"><strong>Case Study</strong><a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#case-study" class="hash-link" aria-label="Direct link to case-study" title="Direct link to case-study">​</a></h3>
+<p>Real-time calculation of sea and air freight consignment volumes.</p>
+<p>Job Submission: Initialize Paimon catalog configuration.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/paimon_catalog_setting-aa6a826f1cb1a7d9c90fc3fae71a0ef3.png" width="592" height="637" class="img__KcZ"></p>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SET</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">'execution.runtime [...]
+<p>A single job extracts table data from postgres, mysql, and sqlserver databases and writes it into Paimon.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/application_setting-48542837b22debfeca15eddaf6ea93a0.png" width="1080" height="533" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/pom-949e43be1f8e611776858b7573047de2.jpg" width="1080" height="597" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/pod_template-4a36a24383f78f09d3090e5ddf7fe1fa.png" width="1080" height="623" class="img__KcZ"></p>
+<p><strong>Details are as follows:</strong></p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Development Mode:Flink SQL</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><spa [...]
+<p><strong>pod template:</strong></p>
+<div class="language-yaml codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-yaml codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> v1</span><br></span><span class= [...]
+<p><strong>Flink sql:</strong></p>
+<ol>
+<li>Establish the relationship between the source table and the ODS table in Paimon, here it is a one-to-one mapping between the source table and the target table.</li>
+</ol>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- PostgreSQL database example</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9C [...]
+<p>The real-time data writing effect of the business table into the Paimon ods table is as follows:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/ods-bc0d5ecbef808b0ca349311569803f18.png" width="1080" height="422" class="img__KcZ"></p>
+<ol start="2">
+<li>Flatten the data from the ods layer tables and write it into the dwd layer. This process is essentially about merging the related business tables from the ods layer into the dwd layer. The main focus here is on processing the value of the count_order field. Since the data in the source table may be logically or physically deleted, using the count function for statistics may lead to issues. Therefore, we use the sum aggregate to calculate the order quantity. Each reference_no correspo [...]
+</ol>
+<p>For the dim dimension table, we directly use the dimension table processed in Doris, as the update frequency of the dimension table is low, so there was no need for secondary development within Paimon.</p>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Create a wide table at the paimon-dwd layer</span><span class="token plain"></span><br></span><span class="token-line"  [...]
+<p>In the Flink UI, you can see the ods data is joined and cleansed in real-time through Paimon to the table dwd_business_order.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dwd_business_order-a017b7fa6dac855794cf9720a0421090.png" width="1080" height="646" class="img__KcZ"></p>
+<ol start="2">
+<li>The data from the dwd layer is lightly aggregated to the dwm layer, and the related data is written into the dwm.dwm_business_order_count table. The data in this table will perform a sum on the aggregated fields based on the primary key, with the sum_orderCount field being the result of the aggregation. Paimon will automatically handle the data that is physically deleted during the sum.</li>
+</ol>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Create a lightweight summary table on the dwm layer, summarizing the order volume by date, sales, operation, business c [...]
+<p>The Flink UI effect is as follows: the data from dwd_business_orders is aggregated into dwm_business_order_count:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dwm_business_order_count-1abbcf7d6b31f15e49f2e035ecfdb8d7.png" width="194" height="649" class="img__KcZ"></p>
+<ol start="4">
+<li>Aggregate the data from the dwm layer to the dws layer, where the dws layer performs summaries at even finer dimensions.</li>
+</ol>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Create a table to aggregate daily order counts by operator and business type</span><span class="token plain"></span><br [...]
+<p>The Flink UI reflects the following: Data from <code>dws_business_order_count_op</code> is written to <code>dws_business_order_count_op</code>:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dws_business_order_count_op-72bb62943dcef89451b47db142cfe689.png" width="191" height="630" class="img__KcZ"></p>
+<p>Overall Data Flow Example</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/all_datastream-f095c45ce30fe21e178eac323c6a7a37.jpg" width="1080" height="515" class="img__KcZ"></p>
+<p>Source Table:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/source-afa30e0d3ab0116582cc4bd7831ce2ca.png" width="1080" height="100" class="img__KcZ"></p>
+<p>paimon-ods:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/paimon-ods-876cf67ff375c0b5cb67d4a0e555b1a3.png" width="1080" height="94" class="img__KcZ"></p>
+<p>paimon-dwd:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/paimon-dwd-d3b020d2bd2b78c26944a6928be39e4e.png" width="1080" height="95" class="img__KcZ"></p>
+<p>paimon-dwm:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/paimon-dwm-778a748d6b64c9e61d73e6b6da1d625f.png" width="1080" height="39" class="img__KcZ"></p>
+<p>paimon-dws:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/paimon-dws-632e1291e21c4f628f7e87ca03ae5c6f.png" width="1080" height="56" class="img__KcZ"></p>
+<p>A special reminder: When extracting from SQL Server databases, if the source table is too large, a full extraction will lock the table. It is recommended to use incremental extraction if the business allows. For a full extraction, SQL Server can use an interim approach where the full data is imported into MySQL, then from MySQL to Paimon-ODS, and later incremental extraction is done through SQL Server.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="04-troubleshooting-and-analysis">04 Troubleshooting and Analysis<a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#04-troubleshooting-and-analysis" class="hash-link" aria-label="Direct link to 04 Troubleshooting and Analysis" title="Direct link to 04 Troubleshooting and Analysis">​</a></h2>
+<p><strong>1. Inaccurate Aggregated Data Calculation</strong></p>
+<p>SQL Server CDC collects data into the Paimon table, explanation:</p>
+<p><strong>DWD table:</strong></p>
+<p>'changelog-producer' = 'input'</p>
+<p><strong>ADS table:</strong></p>
+<p>'merge-engine' = 'aggregation', -- Using aggregation to compute sum</p>
+<p>'fields.sum_amount.aggregate-function' = 'sum'</p>
+<p>The ADS layer's aggregated table uses agg sum, which can result in the DWD data stream not generating update_before, creating an incorrect data stream with update_after. For example, if the upstream source table updates from 10 to 30, the DWD layer's data will change to 30, and the ADS aggregation layer's data will also change to 30. But now it turns into an append data, resulting in incorrect data of 10+30=40.</p>
+<p>Solution:</p>
+<p>By specifying 'changelog-producer' = 'full-compaction',
+Table Store will compare the results between full compactions and produce the differences as changelog.
+The latency of changelog is affected by the frequency of full compactions.</p>
+<p>By specifying changelog-producer.compaction-interval table property (default value 30min),
+users can define the maximum interval between two full compactions to ensure latency.
+This table property does not affect normal compactions and they may still be performed once in a while by writers to reduce reader costs.</p>
+<p>This approach can solve the above mentioned issue. However, it has led to a new problem. The default changelog-producer.compaction-interval is 30 minutes, meaning that it takes 30 minutes for changes upstream to be reflected in the ads query. During production, it has been found that changing the compaction interval to 1 minute or 2 minutes can cause inaccuracies in the ADS layer aggregation data again.</p>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token string" style="color:rgb(206, 145, 120)">'changelog-producer.compaction-interval'</span><span class="token plain"> </span><span class="token operator" style="color [...]
+<p>When writing into the Flink Table Store, it is necessary to configure table.exec.sink.upsert-materialize= none to avoid generating an upsert stream, ensuring that the Flink Table Store can retain a complete changelog for subsequent stream read operations.</p>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">set</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">'table.exec.sink.u [...]
+<p><strong>2. The same sequence.field causes the dwd detailed wide table to not receive data updates</strong></p>
+<p><strong>mysql cdc collects data into the paimon table</strong></p>
+<p>Explanation:</p>
+<p>After executing an update on the MySQL source, the data modifications are successfully synchronized to the dwd_orders table.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dwd_orders-8343ec8277c69354f8ee7cac0c4c9f91.png" width="1080" height="558" class="img__KcZ"></p>
+<p>However, upon examining the dwd_enriched_orders table data, it is found to be unsynchronized. When starting the stream mode to observe the data, it is discovered that there is no data flow.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/log-42ef92b8036ed3698fb0fbb1abdaecab.png" width="1080" height="357" class="img__KcZ"></p>
+<p><strong>Solution:</strong></p>
+<p>Upon investigation, it was discovered that the issue was caused by the configuration of the parameter 'sequence.field' = 'o_orderdate' (using o_orderdate to generate a sequence ID, and when merging records with the same primary key, the record with the larger sequence ID is chosen). Since the o_orderdate field does not change when modifying the price, the 'sequence.field' remains the same, leading to an uncertain order. Therefore, for ROW1 and ROW2, since their o_orderdate are the sam [...]
+<p><strong>3. Aggregate function 'last_non_null_value' does not support retraction</strong></p>
+<p>Error:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Caused by: java.lang.UnsupportedOperationException: Aggregate function 'last_non_null_value' does not support retraction, If you allow this function to ignore retractio [...]
+<p>An explanation can be found in the official documentation:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Only sum supports retraction (UPDATE_BEFORE and DELETE), other aggregate functions do not support retraction.</span><br></span></code></pre><div class="buttonGroup_inAn [...]
+<p>This can be understood as: except for the SUM function, other Agg functions do not support Retraction. To avoid errors when receiving DELETE and UPDATEBEFORE messages, it is necessary to configure <code>'fields.${field_name}.ignore-retract'='true'</code> for the specified field to ignore retraction and solve this error.</p>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">WITH</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><spa [...]
+<p><strong>4. Paimon Task Interruption Failure</strong></p>
+<p>Task abnormal interruption leads to pod crash, viewing loki logs shows akka.pattern.AskTimeoutException: Ask timed out on</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/loki-372203296a8af19f7a32fcd2162fdc29.png" width="1080" height="288" class="img__KcZ"></p>
+<p>java.util.concurrent.TimeoutException: Invocation of [RemoteRpcInvocation(JobMasterGateway.updateTaskExecutionState(TaskExecutionState))] at recipient [akka.tcp://flink@fts-business-order-count.streampark:6123/user/rpc/jobmanager_2] timed out. This is usually caused by: 1) Akka failed sending the message silently, due to problems like oversized payload or serialization failures. In that case, you should find detailed error information in the logs. 2) The recipient needs more time for  [...]
+<p>The preliminary judgment is that the triggering of akka's timeout mechanism is likely due to the above two reasons. Therefore, adjust the cluster's akka timeout settings and carry out individual task segmentation or increase resource configuration.</p>
+<p>To proceed, let's first see how to modify the parameters:</p>
+<table><thead><tr><th>key</th><th>default</th><th>describe</th></tr></thead><tbody><tr><td>akka.ask.timeout</td><td>10s</td><td>Timeout used for all futures and blocking Akka calls. If Flink fails due to timeouts then you should try to increase this value. Timeouts can be caused by slow machines or a congested network. The timeout value requires a time-unit specifier (ms/s/min/h/d).</td></tr><tr><td>web.timeout</td><td>600000</td><td>Timeout for asynchronous operations by the web monitor [...]
+<p>In <code>conf/flink-conf.yaml</code>, add the following parameters at the end:</p>
+<p><strong>akka.ask.timeout: 100s</strong></p>
+<p><strong>web.timeout:1000000</strong></p>
+<p>Then manually refresh the <code>flink-conf.yaml</code> in Streampark to verify if the parameters have synchronized successfully.</p>
+<p><strong>5. snapshot no such file or directory</strong></p>
+<p>It was discovered that <code>cp</code> (checkpoint) is failing.</p>
+<p>[Image showing failure of cp]</p>
+<p>Corresponding logs at the time show Snapshot missing, with the task status shown as running, but data from the MySQL source table cannot be written into the paimon ods table.</p>
+<p>[Image showing status log]</p>
+<p>The reason for cp failure is identified as: due to high computation and CPU intensity, threads within the TaskManager are constantly processing elements, without having time to perform the checkpoint.</p>
+<p>The reason for being unable to read the Snapshot is: insufficient resources in the Flink cluster, leading to competition between Writer and Committer. During Full-Compaction, an incomplete Snapshot of an expired part was read. The official response to this issue has been fixed:</p>
+<p><a href="https://github.com/apache/incubator-paimon/pull/1308" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-paimon/pull/1308</a></p>
+<p>And the solution to the checkpoint failure is to increase parallelism, by adding more deployment taskmanager slots and enhancing the jobmanager CPU resources.</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">-D kubernetes.jobmanager.cpu=0.8</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></spa [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dynamic_properties-33cd67364d80285f0e480974a60d52ff.jpg" width="1080" height="244" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_dashboard-4bcca1ae4f103249bd7c6c48625a4959.png" width="1080" height="487" class="img__KcZ"></p>
+<p>In complex real-time tasks, resources can be increased by modifying dynamic parameters.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="05-future-planning">05 Future Planning<a href="https://streampark.apache.org/blog/streampark-usercase-bondex-with-paimon#05-future-planning" class="hash-link" aria-label="Direct link to 05 Future Planning" title="Direct link to 05 Future Planning">​</a></h2>
+<ul>
+<li>Our self-built data platform, Bondata, is integrating Paimon's metadata information, data metric system, lineage, and one-click pipeline features. This integration aims to form HCBondata's data assets and will serve as the foundation for a one-stop data governance initiative.</li>
+<li>Subsequently, we will integrate with Trino Catalog to access Doris, realizing a one-service solution for both offline and real-time data.</li>
+<li>We will continue to advance the pace of building an integrated streaming and batch data warehouse within the group, adopting the architecture of Doris + Paimon.</li>
+</ul>
+<p>Here, I would like to thank Teacher Zhixin and the StreamPark community for their strong support during the use of StreamPark + Paimon. The problems encountered in the learning process are promptly clarified and resolved. We will also actively participate in community exchanges and contributions in the future, enabling Paimon to provide more developers and enterprises with integrated stream and batch data lake solutions.</p>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="paimon" term="paimon"/>
+        <category label="streaming-warehouse" term="streaming-warehouse"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Apache StreamPark™ in the Large-Scale Production Practice at Shunwang Technology]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-shunwang</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-shunwang"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Preface: This article primarily discusses the challenges encountered by Shunwang Technology in using the Flink computation engine, and how StreamPark is leveraged as a real-time data platform to address these challenges, thus supporting the company's business on a large scale.]]></summary>
+        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/autor-4fee09aa3abf8842dcdbb7ada1aa9409.png" width="1080" height="460" class="img__KcZ"></p>
+<p><strong>Preface:</strong> This article primarily discusses the challenges encountered by Shunwang Technology in using the Flink computation engine, and how StreamPark is leveraged as a real-time data platform to address these challenges, thus supporting the company's business on a large scale.</p>
+<ul>
+<li>Introduction to the company's business</li>
+<li>Challenges encountered</li>
+<li>Why choose StreamPark</li>
+<li>Implementation in practice</li>
+<li>Benefits Brought</li>
+<li>Future planning</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="introduction-to-the-companys-business"><strong>Introduction to the Company's Business</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#introduction-to-the-companys-business" class="hash-link" aria-label="Direct link to introduction-to-the-companys-business" title="Direct link to introduction-to-the-companys-business">​</a></h2>
+<p>Hangzhou Shunwang Technology Co., Ltd. was established in 2005. Upholding the corporate mission of connecting happiness through technology, it is one of the influential pan-entertainment technology service platforms in China. Over the years, the company has always been driven by products and technology, dedicated to creating immersive entertainment experiences across all scenes through digital platform services.</p>
+<p>Since its inception, Shunwang Technology has experienced rapid business growth, serving 80,000 offline physical stores, owning more than 50 million internet users, reaching over 140 million netizens annually, with 7 out of every 10 public internet service venues using Shunwang Technology's products.</p>
+<p>With a vast user base, Shunwang Technology has been committed to providing a superior product experience and achieving digital transformation of the enterprise. Since 2015, it has vigorously developed big data capabilities, with Flink playing a crucial role in Shunwang Technology’s real-time computing. At Shunwang Technology, real-time computing is roughly divided into four application scenarios:</p>
+<ul>
+<li>Real-time update of user profiles: This includes internet cafe profiles and netizen profiles.</li>
+<li>Real-time risk control: This includes activity anti-brushing, monitoring of logins from different locations, etc.</li>
+<li>Data synchronization: This includes data synchronization from Kafka to Hive / Iceberg / ClickHouse, etc.</li>
+<li>Real-time data analysis: This includes real-time big screens for games, voice, advertising, live broadcasts, and other businesses.</li>
+</ul>
+<p>To date, Shunwang Technology has to process TB-level data daily, with a total of more than 700 real-time tasks, of which FlinkSQL tasks account for over 95%. With the rapid development of the company's business and the increased demand for data timeliness, it is expected that the number of Flink tasks will reach 900+ by the end of this year.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="challenges-encountered"><strong>Challenges Encountered</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#challenges-encountered" class="hash-link" aria-label="Direct link to challenges-encountered" title="Direct link to challenges-encountered">​</a></h2>
+<p>Flink, as one of the most popular real-time computing frameworks currently, boasts powerful features such as high throughput, low latency, and stateful computations. However, in our exploration, we found that while Flink has strong computational capabilities, the community has not provided effective solutions for job development management and operational issues. We have roughly summarized some of the pain points we encountered in Flink job development management into four aspects, as [...]
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/pain-4d2aee42ea7aae80eaeac17a6d51c090.png" width="1080" height="744" class="img__KcZ"></p>
+<p>Facing a series of pain points in the management and operation of Flink jobs, we have been looking for suitable solutions to lower the barrier to entry for our developers using Flink and improve work efficiency.</p>
+<p>Before we encountered StreamPark, we researched some companies' Flink management solutions and found that they all developed and managed Flink jobs through self-developed real-time job platforms. Consequently, we decided to develop our own real-time computing management platform to meet the basic needs of our developers for Flink job management and operation. Our platform is called Streaming-Launcher, with the following main functions:</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/launcher-766611cb0dddb99d8437ead44d0665d4.png" width="1080" height="670" class="img__KcZ"></p>
+<p>However, as our developers continued to use Streaming-Launcher, they discovered quite a few deficiencies: the development cost for Flink remained too high, work efficiency was poor, and troubleshooting was difficult. We summarized the defects of Streaming-Launcher as follows:</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="cumbersome-sql-development-process"><strong>Cumbersome SQL Development Process</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#cumbersome-sql-development-process" class="hash-link" aria-label="Direct link to cumbersome-sql-development-process" title="Direct link to cumbersome-sql-development-process">​</a></h3>
+<p>Business developers need multiple tools to complete the development of a single SQL job, increasing the barrier to entry for our developers.</p>
+<p><img decoding="async" loading="lazy" alt="cc0b1414ed43942e0ef5e9129c2bf817" src="https://streampark.apache.org/assets/images/sql_develop-ef85f6a001fb814d494c9b39eb2dfba9.png" width="1080" height="229" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="drawbacks-of-sql-client"><strong>Drawbacks of SQL-Client</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#drawbacks-of-sql-client" class="hash-link" aria-label="Direct link to drawbacks-of-sql-client" title="Direct link to drawbacks-of-sql-client">​</a></h3>
+<p>The SQL-Client provided by Flink currently has certain drawbacks regarding the support for job execution modes.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/sql_client-32fd9eb063198e6f35349187eed61546.png" width="1080" height="721" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="lack-of-unified-job-management"><strong>Lack of Unified Job Management</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#lack-of-unified-job-management" class="hash-link" aria-label="Direct link to lack-of-unified-job-management" title="Direct link to lack-of-unified-job-management">​</a></h3>
+<p>Within Streaming-Launcher, there is no provision of a unified job management interface. Developers cannot intuitively see the job running status and can only judge the job situation through alarm information, which is very unfriendly to developers. If a large number of tasks fail at once due to Yarn cluster stability problems or network fluctuations and other uncertain factors, it is easy for developers to miss restoring a certain task while manually recovering jobs, which can lead to [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="cumbersome-problem-diagnosis-process"><strong>Cumbersome Problem Diagnosis Process</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#cumbersome-problem-diagnosis-process" class="hash-link" aria-label="Direct link to cumbersome-problem-diagnosis-process" title="Direct link to cumbersome-problem-diagnosis-process">​</a></h3>
+<p>To view logs for a job, developers must go through multiple steps, which to some extent reduces their work efficiency.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/step-d945592bbe32c0e093289c6265472f1c.png" width="1080" height="122" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="why-use-apache-streampark"><strong>Why Use Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#why-use-apache-streampark" class="hash-link" aria-label="Direct link to why-use-apache-streampark" title="Direct link to why-use-apache-streampark">​</a></h2>
+<p>Faced with the defects of our self-developed platform Streaming-Launcher, we have been considering how to further lower the barriers to using Flink and improve work efficiency. Considering the cost of human resources and time, we decided to seek help from the open-source community and look for an appropriate open-source project to manage and maintain our Flink tasks.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01--apache-streampark-a-powerful-tool-for-solving-flink-issues">01  <strong>Apache StreamPark™: A Powerful Tool for Solving Flink Issues</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#01--apache-streampark-a-powerful-tool-for-solving-flink-issues" class="hash-link" aria-label="Direct link to 01--apache-streampark-a-powerful-tool-for-solving-flink-issues" title="Direct link to 01--apache-streampark-a-powe [...]
+<p>Fortunately, in early June 2022, we stumbled upon StreamPark on GitHub and embarked on a preliminary exploration full of hope. We found that StreamPark's capabilities can be broadly divided into three areas: user permission management, job operation and maintenance management, and development scaffolding.</p>
+<p><strong>User Permission Management</strong></p>
+<p>In the StreamPark platform, to avoid the risk of users having too much authority and making unnecessary misoperations that affect job stability and the accuracy of environmental configurations, some user permission management functions are provided. This is very necessary for enterprise-level users.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/permission-affd274acd10773ad4531da9102f3f91.png" width="1080" height="721" class="img__KcZ"></p>
+<p><strong>Job Operation and Maintenance Management</strong></p>
+<p><strong>Our main focus during the research on StreamPark was its capability to manage the entire lifecycle of jobs:</strong> from development and deployment to management and problem diagnosis. <strong>Fortunately, StreamPark excels in this aspect, relieving developers from the pain points associated with Flink job management and operation.</strong> Within StreamPark’s job operation and maintenance management, there are three main modules: basic job management functions, Jar job manag [...]
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/homework_manager-96dc37860dd87f12ed55311b38116931.png" width="1080" height="542" class="img__KcZ"></p>
+<p><strong>Development Scaffolding</strong></p>
+<p>Further research revealed that StreamPark is not just a platform but also includes a development scaffold for Flink jobs. It offers a better solution for code-written Flink jobs, standardizing program configuration, providing a simplified programming model, and a suite of Connectors that lower the barrier to entry for DataStream development.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/connectors-d405c391d0cfdd753e7b329433275117.png" width="1080" height="720" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02--how-apache-streampark-addresses-issues-of-the-self-developed-platform">02  <strong>How Apache StreamPark™ Addresses Issues of the Self-Developed Platform</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#02--how-apache-streampark-addresses-issues-of-the-self-developed-platform" class="hash-link" aria-label="Direct link to 02--how-apache-streampark-addresses-issues-of-the-self-developed-platform" title=" [...]
+<p>We briefly introduced the core capabilities of StreamPark above. During the technology selection process at Shunwang Technology, we found that StreamPark not only includes the basic functions of our existing Streaming-Launcher but also offers a more complete set of solutions to address its many shortcomings. Here, we focus on the solutions provided by StreamPark for the deficiencies of our self-developed platform, Streaming-Launcher.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/function-c2d3ad419e1676a0253d933935921a71.png" width="1080" height="720" class="img__KcZ"></p>
+<p><strong>One-Stop Flink Job Development Capability</strong></p>
+<p>To lower the barriers to Flink job development and improve developers' work efficiency, <strong>StreamPark provides features like FlinkSQL IDE, parameter management, task management, code management, one-click compilation, and one-click job deployment and undeployment</strong>. Our research found that these integrated features of StreamPark could further enhance developers’ work efficiency. To some extent, developers no longer need to concern themselves with the difficulties of Flink  [...]
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/application-c99d4b0512fdb7d214e5429769629930.png" width="1080" height="959" class="img__KcZ"></p>
+<p><strong>Support for Multiple Deployment Modes</strong></p>
+<p>The Streaming-Launcher was not flexible for developers since it only supported the Yarn Session mode. StreamPark provides a comprehensive solution for this aspect. <strong>StreamPark fully supports all of Flink's deployment modes: Remote, Yarn Per-Job, Yarn Application, Yarn Session, K8s Session, and K8s Application,</strong> allowing developers to freely choose the appropriate running mode for different business scenarios.</p>
+<p><strong>Unified Job Management Center</strong></p>
+<p>For developers, job running status is one of their primary concerns. In Streaming-Launcher, due to the lack of a unified job management interface, developers had to rely on alarm information and Yarn application status to judge the state of tasks, which was very unfriendly. StreamPark addresses this issue by providing a unified job management interface, allowing for a clear view of the running status of each task.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/management-9eb1dec5b2fa480e897cf1c12d1425d8.png" width="1080" height="572" class="img__KcZ"></p>
+<p>In the Streaming-Launcher, developers had to go through multiple steps to diagnose job issues and locate job runtime logs. StreamPark offers a one-click jump feature that allows quick access to job runtime logs.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/logs-e4e9f2084f1fbcf0a4afe079433cef0a.png" width="1080" height="575" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="practical-implementation">Practical Implementation<a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#practical-implementation" class="hash-link" aria-label="Direct link to Practical Implementation" title="Direct link to Practical Implementation">​</a></h2>
+<p>When introducing StreamPark to Shunwang Technology, due to the company's business characteristics and some customized requirements from the developers, we made some additions and optimizations to the functionalities of StreamPark. We have also summarized some problems encountered during the use and corresponding solutions.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01--leveraging-the-capabilities-of-flink-sql-gateway">01  <strong>Leveraging the Capabilities of Flink-SQL-Gateway</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#01--leveraging-the-capabilities-of-flink-sql-gateway" class="hash-link" aria-label="Direct link to 01--leveraging-the-capabilities-of-flink-sql-gateway" title="Direct link to 01--leveraging-the-capabilities-of-flink-sql-gateway">​</a></h3>
+<p>At Shunwang Technology, we have developed the ODPS platform based on the Flink-SQL-Gateway to facilitate business developers in managing the metadata of Flink tables. Business developers perform DDL operations on Flink tables in ODPS, and then carry out analysis and query operations on the created Flink tables in StreamPark. Throughout the entire business development process, we have decoupled the creation and analysis of Flink tables, making the development process appear more straig [...]
+<p>If developers wish to query real-time data in ODPS, we need to provide a Flink SQL runtime environment. We have used StreamPark to run a Yarn Session Flink environment to support ODPS in conducting real-time queries.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/homework-96030dec4ea9db88b42668873f5a176d.png" width="1080" height="541" class="img__KcZ"></p>
+<p>Currently, the StreamPark community is intergrating with Flink-SQL-Gateway to further lower the barriers to developing real-time jobs.</p>
+<p><a href="https://github.com/apache/streampark/issues/2274" target="_blank" rel="noopener noreferrer">https://github.com/apache/streampark/issues/2274</a></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02--enhancing-flink-cluster-management-capabilities">02  <strong>Enhancing Flink Cluster Management Capabilities</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#02--enhancing-flink-cluster-management-capabilities" class="hash-link" aria-label="Direct link to 02--enhancing-flink-cluster-management-capabilities" title="Direct link to 02--enhancing-flink-cluster-management-capabilities">​</a></h3>
+<p>At Shunwang Technology, there are numerous jobs synchronizing data from Kafka to Iceberg / PG / Clickhouse / Hive. These jobs do not have high resource requirements and timeliness demands on Yarn. However, if Yarn Application and per-job modes are used for all tasks, where each task starts a JobManager, this would result in a waste of Yarn resources. For this reason, we decided to run these numerous data synchronization jobs in Yarn Session mode.</p>
+<p>In practice, we found it difficult for business developers to intuitively know how many jobs are running in each Yarn Session, including the total number of jobs and the number of jobs that are running. Based on this, to facilitate developers to intuitively observe the number of jobs in a Yarn Session, we added All Jobs and Running Jobs in the Flink Cluster interface to indicate the total number of jobs and the number of running jobs in a Yarn Session.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/cluster-96bd791c1c4f3d6144fbd1d134d89cd6.png" width="1080" height="543" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="03--enhancing-alert-capabilities">03  <strong>Enhancing Alert Capabilities</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#03--enhancing-alert-capabilities" class="hash-link" aria-label="Direct link to 03--enhancing-alert-capabilities" title="Direct link to 03--enhancing-alert-capabilities">​</a></h3>
+<p>Since each company's SMS alert platform is implemented differently, the StreamPark community has not abstracted a unified SMS alert function. Here, we have implemented the SMS alert function through the Webhook method.</p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/alarm-8fa330c6a2d27cfd62878dcd20cd524c.png" width="1080" height="601" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="04--adding-a-blocking-queue-to-solve-throttling-issues">04  <strong>Adding a Blocking Queue to Solve Throttling Issues</strong><a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#04--adding-a-blocking-queue-to-solve-throttling-issues" class="hash-link" aria-label="Direct link to 04--adding-a-blocking-queue-to-solve-throttling-issues" title="Direct link to 04--adding-a-blocking-queue-to-solve-throttling-issues">​</a></h3>
+<p>In production practice, we found that when a large number of tasks fail at the same time, such as when a Yarn Session cluster goes down, platforms like Feishu/Lark and WeChat have throttling issues when multiple threads call the alert interface simultaneously. Consequently, only a portion of the alert messages will be sent by StreamPark due to the throttling issues of platforms like Feishu/Lark and WeChat, which can easily mislead developers in troubleshooting. At Shunwang Technology, [...]
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/queue-83552f1862acff8811b74488e8fe7c05.png" width="1080" height="320" class="img__KcZ"></p>
+<p>When the job monitoring scheduler detects an abnormality in a job, it generates a job exception message and sends it to the blocking queue. The alert thread will continuously consume messages from the blocking queue. Upon receiving a job exception message, it will send the alert to different platforms sequentially according to the user-configured alert information. Although this method might delay the alert delivery to users, in practice, we found that even with 100+ Flink jobs failin [...]
+<p><a href="https://github.com/apache/streampark/issues/2142" target="_blank" rel="noopener noreferrer">https://github.com/apache/streampark/issues/2142</a></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="benefits-brought">Benefits Brought<a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#benefits-brought" class="hash-link" aria-label="Direct link to Benefits Brought" title="Direct link to Benefits Brought">​</a></h2>
+<p>We started exploring and using StreamX 1.2.3 (the predecessor of StreamPark) and after more than a year of running in, we found that StreamPark truly resolves many pain points in the development management and operation and maintenance of Flink jobs.</p>
+<p>The greatest benefit that StreamPark has brought to Shunwang Technology is the lowered threshold for using Flink and improved development efficiency. Previously, our business development colleagues had to use multiple tools such as vscode, GitLab, and a scheduling platform in the original Streaming-Launcher to complete a FlinkSQL job development. The process was tedious, going through multiple tools from development to compilation to release. StreamPark provides one-stop service, allo [...]
+<p><strong>At present, StreamPark has been massively deployed in the production environment at Shunwang Technology, with the number of FlinkSQL jobs managed by StreamPark increasing from the initial 500+ to nearly 700, while also managing more than 10 Yarn Session Clusters.</strong></p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/achievements1-9eb1dec5b2fa480e897cf1c12d1425d8.png" width="1080" height="572" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" alt="Image" src="https://streampark.apache.org/assets/images/achievements2-5aa9b3c14892f9b1d8b054e82f3b4ad3.png" width="1080" height="545" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="future-plans">Future Plans<a href="https://streampark.apache.org/blog/streampark-usercase-shunwang#future-plans" class="hash-link" aria-label="Direct link to Future Plans" title="Direct link to Future Plans">​</a></h2>
+<p>As one of the early users of StreamPark, Shunwang Technology has been communicating with the community for a year and participating in the polishing of StreamPark's stability. We have submitted the Bugs encountered in production operations and new Features to the community. In the future, we hope to manage the metadata information of Flink tables on StreamPark, and implement cross-data-source query analysis functions based on the Flink engine through multiple Catalogs. Currently, Stre [...]
+<p>Since Shunwang Technology primarily runs jobs in Yarn Session mode, we hope that StreamPark can provide more support for Remote clusters, Yarn Session clusters, and K8s Session clusters, such as monitoring and alerts, and optimizing operational processes.</p>
+<p>Considering the future, as the business develops, we may use StreamPark to manage more Flink real-time jobs, and StreamPark in single-node mode may not be safe. Therefore, we are also looking forward to the High Availability (HA) of StreamPark.</p>
+<p>We will also participate in the construction of the capabilities of StreamPark is integrating with Flink-SQL-Gateway, enriching Flink Cluster functionality, and StreamPark HA.</p>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Apache StreamPark™'s Best Practices at Dustess, Simplifying Complexity for the Ultimate Experience]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-dustess</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-dustess"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Abstract]]></summary>
+        <content type="html"><![CDATA[<p><strong>Abstract:</strong> This article originates from the production practices of StreamPark at Dustess Information, written by the senior data development engineer, Gump. The main content includes:</p>
+<ol>
+<li>Technology selection</li>
+<li>Practical implementation</li>
+<li>Business support &amp; capability opening</li>
+<li>Future planning</li>
+<li>Closing remarks</li>
+</ol>
+<p>Dustess Information is a one-stop private domain operation management solution provider based on the WeChat Work ecosystem. It is committed to becoming the leading expert in private domain operation and management across all industries, helping enterprises build a new model of private domain operation management in the digital age, and promoting high-quality development for businesses.</p>
+<p>Currently, Dustess has established 13 city centers nationwide, covering five major regions: North China, Central China, East China, South China, and Southwest China, providing digital marketing services to over 10,000 enterprises across more than 30 industries.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="01-technology-selection"><strong>01 Technology Selection</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#01-technology-selection" class="hash-link" aria-label="Direct link to 01-technology-selection" title="Direct link to 01-technology-selection">​</a></h2>
+<p>Dustess Information entered a rapid development phase in 2021. With the increase in service industries and corporate clients, the demand for real-time solutions became more pressing, necessitating the immediate implementation of a real-time computing platform.</p>
+<p>As the company is in a phase of rapid growth, with urgent and rapidly changing needs, the team's technology selection followed these principles:</p>
+<ul>
+<li><strong>Speed:</strong> Due to urgent business needs, we required a quick implementation of the planned technology selection into production.</li>
+<li><strong>Stability:</strong> On the basis of speed, the chosen technology must provide stable service for the business.</li>
+<li><strong>Innovation:</strong> On the basis of the above, the selected technology should also be as modern as possible.</li>
+<li><strong>Comprehensiveness:</strong> The selected technology should meet the company's rapidly developing and changing business needs, be in line with the team's long-term development goals, and support quick and efficient secondary development.</li>
+</ul>
+<p>Firstly, in terms of the computing engine: We chose Flink for the following reasons:</p>
+<ul>
+<li>Team members have an in-depth understanding of Flink and are well-versed in its source code.</li>
+<li>Flink supports both batch and stream processing. Although the company's current batch processing architecture is based on Hive, Spark, etc., using Flink for stream computing facilitates the subsequent construction of unified batch and stream processing and lake-house architecture.</li>
+<li>The domestic ecosystem of Flink has become increasingly mature, and Flink is starting to break boundaries towards the development of stream-based data warehousing.</li>
+</ul>
+<p>At the platform level, we comprehensively compared StreamPark, Apache Zeppelin, and flink-streaming-platform-web, also thoroughly read their source code and conducted an analysis of their advantages and disadvantages. We won’t elaborate on the latter two projects in this article, but those interested can search for them on GitHub. We ultimately chose StreamPark for the following reasons:</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="high-completion"><strong>High Completion</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#high-completion" class="hash-link" aria-label="Direct link to high-completion" title="Direct link to high-completion">​</a></h3>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="1-supports-multiple-flink-versions"><strong>1. Supports Multiple Flink Versions</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#1-supports-multiple-flink-versions" class="hash-link" aria-label="Direct link to 1-supports-multiple-flink-versions" title="Direct link to 1-supports-multiple-flink-versions">​</a></h4>
+<p>//Video link (Flink Multi-Version Support Demo)</p>
+<p>When creating a task, you can <strong>freely choose the Flink version</strong>. The Flink binary package will be automatically uploaded to HDFS (if using Yarn for submission), and only one copy of a version's binary package will be saved on HDFS. When the task is initiated, the Flink binary package in HDFS will be automatically loaded according to the context, which is very elegant. This can meet the needs for coexistence of multiple versions and for testing new versions of Flink duri [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_home-0a6f4f2014cc87b074ef259088af2b98.png" width="1080" height="223" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="2-supports-multiple-deployment-modes"><strong>2. Supports Multiple Deployment Modes</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#2-supports-multiple-deployment-modes" class="hash-link" aria-label="Direct link to 2-supports-multiple-deployment-modes" title="Direct link to 2-supports-multiple-deployment-modes">​</a></h4>
+<p>StreamPark supports <strong>all the mainstream submission modes</strong> for Flink, such as standalone, yarn-session, yarn application, yarn-perjob, kubernetes-session, kubernetes-application. Moreover, StreamPark does not simply piece together Flink run commands to submit tasks. Instead, it introduces the Flink Client source package and directly calls the Flink Client API for task submission. The advantages of this approach include modular code, readability, ease of extension, stabil [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/execution_mode-1182aeb8efe9572ec98c2a2b95293dc1.png" width="1080" height="324" class="img__KcZ"></p>
+<p>Flink SQL can greatly improve development efficiency and the popularity of Flink. StreamPark’s support for <strong>Flink SQL is very comprehensive</strong>, with an excellent SQL editor, dependency management, multi-version task management, etc. The StreamPark official website states that it will introduce metadata management integration for Flink SQL in the future. Stay tuned.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_sql-13f6952f92585140c5fc640b490918b0.png" width="1080" height="779" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_sql_version-a02b0f0eac9c5d6c0281b7471e438b78.png" width="1080" height="736" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="4-online-building-of-java-tasks"><strong>4. Online Building of JAVA Tasks</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#4-online-building-of-java-tasks" class="hash-link" aria-label="Direct link to 4-online-building-of-java-tasks" title="Direct link to 4-online-building-of-java-tasks">​</a></h4>
+<p>//Video link (JAVA Task Building Demo)</p>
+<p>Although Flink SQL is now powerful enough, using JVM languages like Java and Scala to develop Flink tasks can be more flexible, more customizable, and better for tuning and improving resource utilization. The biggest problem with submitting tasks via Jar packages, compared to SQL, is the management of the Jar uploads. Without excellent tooling products, this can significantly reduce development efficiency and increase maintenance costs.</p>
+<p>Besides supporting Jar uploads, StreamPark also provides an <strong>online update build</strong> feature, which elegantly solves the above problems:</p>
+<ol>
+<li>
+<p>Create Project: Fill in the GitHub/Gitlab (supports enterprise private servers) address and username/password, and StreamPark can Pull and Build the project.</p>
+</li>
+<li>
+<p>When creating a StreamPark Custom-Code task, refer to the Project, specify the main class, and optionally automate Pull, Build, and bind the generated Jar when starting the task, which is very elegant!</p>
+</li>
+</ol>
+<p>At the same time, the StreamPark community is also perfecting the entire task compilation and launch process. The future StreamPark will be even more refined and professional on this foundation.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/system_list-6e9c13318d5aa2cfa4cdc11ac42c5844.png" width="1080" height="362" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="5-comprehensive-task-parameter-configuration"><strong>5. Comprehensive Task Parameter Configuration</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#5-comprehensive-task-parameter-configuration" class="hash-link" aria-label="Direct link to 5-comprehensive-task-parameter-configuration" title="Direct link to 5-comprehensive-task-parameter-configuration">​</a></h4>
+<p>For data development using Flink, the parameters submitted with Flink run are almost impossible to maintain. StreamPark has also <strong>elegantly solved</strong> this kind of problem, mainly because, as mentioned above, StreamPark directly calls the Flink Client API and has connected the entire process through the StreamPark product frontend.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/parameter_configuration-94fb5d7ee0c9c04ed6d79ddb1cd3c1c7.png" width="1080" height="1001" class="img__KcZ"></p>
+<p>As you can see, StreamPark's task parameter settings cover all the mainstream parameters, and every parameter has been thoughtfully provided with an introduction and an optimal recommendation based on best practices. This is also very beneficial for newcomers to Flink, helping them to avoid common pitfalls!</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="6-excellent-configuration-file-design"><strong>6. Excellent Configuration File Design</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#6-excellent-configuration-file-design" class="hash-link" aria-label="Direct link to 6-excellent-configuration-file-design" title="Direct link to 6-excellent-configuration-file-design">​</a></h4>
+<p>In addition to the native parameters for Flink tasks, which are covered by the task parameters above, StreamPark also provides a powerful <strong>Yaml configuration file</strong> mode and <strong>programming model</strong>.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/extended_parameters-75c3f87809d0675c2fc82bc8d2ec096e.jpg" width="1080" height="2245" class="img__KcZ"></p>
+<ol>
+<li>
+<p>For Flink SQL tasks, you can configure the parameters that StreamPark has already built-in, such as <strong>CheckPoint, retry mechanism, State Backend, table planner, mode</strong>, etc., directly using the task's Yaml configuration file.</p>
+</li>
+<li>
+<p>For Jar tasks, StreamPark offers a generic programming model that encapsulates the native Flink API. Combined with the wrapper package provided by StreamPark, it can very elegantly retrieve custom parameters from the configuration file. For more details, see the documentation:</p>
+</li>
+</ol>
+<p>Programming model:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">https://streampark.apache.org/docs/development/dev-model</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clip [...]
+<p>Built-in Configuration File Parameters:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">https://streampark.apache.org/docs/development/config</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboa [...]
+<p>In addition:</p>
+<p>StreamPark also <strong>supports Apache Flink® native tasks</strong>. The parameter configuration can be statically maintained within the Java task internal code, covering a wide range of scenarios, such as seamless migration of existing Flink tasks, etc.</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="7-checkpoint-management"><strong>7. Checkpoint Management</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#7-checkpoint-management" class="hash-link" aria-label="Direct link to 7-checkpoint-management" title="Direct link to 7-checkpoint-management">​</a></h4>
+<p>Regarding Flink's Checkpoint (Savepoint) mechanism, the greatest difficulty is maintenance. StreamPark has also elegantly solved this problem:</p>
+<ul>
+<li>StreamPark will <strong>automatically maintain</strong> the task Checkpoint directory and versions in the system for easy retrieval.</li>
+<li>When users need to update and restart an application, they can choose whether to save a Savepoint.</li>
+<li>When restarting a task, it is possible to choose to recover from a specified version of Checkpoint/Savepoint.</li>
+</ul>
+<p>As shown below, developers can very intuitively and conveniently upgrade or deal with exceptional tasks, which is very powerful.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/checkpoint-e9edd22da076247770a0b40595626fb7.png" width="1080" height="483" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/recover-f1de53fdbe66c50b465d58d0a66050de.jpg" width="1053" height="391" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="8-comprehensive-alerting-features"><strong>8. Comprehensive Alerting Features</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#8-comprehensive-alerting-features" class="hash-link" aria-label="Direct link to 8-comprehensive-alerting-features" title="Direct link to 8-comprehensive-alerting-features">​</a></h4>
+<p>For streaming computations, which are 7*24H resident tasks, monitoring and alerting are very important. StreamPark also has a <strong>comprehensive solution</strong> for these issues:</p>
+<ul>
+<li>It comes with an email-based alerting method, which has zero development cost and can be used once configured.</li>
+<li>Thanks to the excellent modularity of the StreamPark source code, it's possible to enhance the code at the Task Track point and introduce the company's internal SDK for telephone, group, and other alerting methods, all with a very low development cost.</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/alarm_email-fd4c9ba1995ec69b7557bd1378dce737.png" width="1009" height="1340" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="excellent-source-code"><strong>Excellent Source Code</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#excellent-source-code" class="hash-link" aria-label="Direct link to excellent-source-code" title="Direct link to excellent-source-code">​</a></h3>
+<p>Following the principle of technology selection, a new technology must be sufficiently understood in terms of underlying principles and architectural ideas before it is considered for production use. Before choosing StreamPark, its architecture and source code were subjected to in-depth study and reading. It was found that the underlying technologies used by StreamPark are very familiar to Chinese developers: MySQL, Spring Boot, Mybatis Plus, Vue, etc. The code style is unified and el [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/code_notebook-542046feb8a312b5f6c057af551421c6.png" width="1080" height="527" class="img__KcZ"></p>
+<p>In November 2021, StreamPark was successfully selected by Open Source China as a GVP - Gitee "Most Valuable Open Source Project," which speaks volumes about its quality and potential.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/certificate-2f5b95ebb0816ead327ec169c12996b6.png" width="1080" height="684" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="03-active-community"><strong>03 Active Community</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#03-active-community" class="hash-link" aria-label="Direct link to 03-active-community" title="Direct link to 03-active-community">​</a></h3>
+<p>The community is currently very active. Since the end of November 2021, when StreamPark (based on 1.2.0-release) was implemented, StreamPark had just started to be recognized by everyone, and there were some minor bugs in the user experience (not affecting core functionality). At that time, in order to go live quickly, some features were disabled and some minor bugs were fixed. Just as we were preparing to contribute back to the community, we found that these had already been fixed, i [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="02-implementation-practice"><strong>02 Implementation Practice</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#02-implementation-practice" class="hash-link" aria-label="Direct link to 02-implementation-practice" title="Direct link to 02-implementation-practice">​</a></h2>
+<p>StreamPark's environment setup is very straightforward, following the official website's building tutorial you can complete the setup within a few hours. It now supports a front-end and back-end separation packaging deployment model, which can meet the needs of more companies, and there has already been a Docker Build related PR, suggesting that StreamPark's compilation and deployment will become even more convenient and quick in the future. Related documentation is as follows:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">https://streampark.apache.org/docs/user-guide/deployment</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clip [...]
+<p>For rapid implementation and production use, we chose the reliable On Yarn resource management mode (even though StreamPark already supports K8S quite well), and there are already many companies that have deployed using StreamPark on K8S, which you can refer to:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">https://streampark.apache.org/blog/flink-development-framework-streampark</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label=" [...]
+<p>Integrating StreamPark with the Hadoop ecosystem can be said to be zero-cost (provided that Flink is integrated with the Hadoop ecosystem according to the Flink official website, and tasks can be launched via Flink scripts).</p>
+<p>Currently, we are also conducting K8S testing and solution design, and will be migrating to K8S in the future.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01-implementing-flinksql-tasks"><strong>01 Implementing FlinkSQL Tasks</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#01-implementing-flinksql-tasks" class="hash-link" aria-label="Direct link to 01-implementing-flinksql-tasks" title="Direct link to 01-implementing-flinksql-tasks">​</a></h3>
+<p>At present, our company's tasks based on Flink SQL are mainly for simple real-time ETL and computing scenarios, with about 10 tasks, all of which have been very stable since they went live.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/online_flinksql-ca82a6f42e04e54e9f6da2b1e391b073.png" width="1080" height="118" class="img__KcZ"></p>
+<p>StreamPark has thoughtfully prepared a demo SQL task that can be run directly on a newly set up platform. This attention to detail demonstrates the community's commitment to user experience. Initially, our simple tasks were written and executed using Flink SQL, and StreamPark's support for Flink SQL is excellent, with a superior SQL editor and innovative POM and Jar package dependency management that can meet many SQL scenario needs.</p>
+<p>Currently, we are researching and designing solutions related to metadata, permissions, UDFs, etc.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02-implementing-jar-tasks"><strong>02 Implementing Jar Tasks</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#02-implementing-jar-tasks" class="hash-link" aria-label="Direct link to 02-implementing-jar-tasks" title="Direct link to 02-implementing-jar-tasks">​</a></h3>
+<p>Since most of the data development team members have a background in Java and Scala, we've implemented Jar-based builds for more flexible development, transparent tuning of Flink tasks, and to cover more scenarios. Our implementation was in two phases:</p>
+<p><strong>First Phase:</strong> StreamPark provides support for native Apache Flink® projects. We configured our existing tasks' Git addresses in StreamPark, used Maven to package them as Jar files, and created StreamPark Apache Flink® tasks for seamless migration. In this process, StreamPark was merely used as a platform tool for task submission and state maintenance, without leveraging the other features mentioned above.</p>
+<p><strong>Second Phase:</strong> After migrating tasks to StreamPark in the first phase and having them run on the platform, the tasks' configurations, such as checkpoint, fault tolerance, and adjustments to business parameters within Flink tasks, required source code modifications, pushes, and builds. This was very inefficient and opaque.</p>
+<p>Therefore, following StreamPark's QuickStart, we quickly integrated StreamPark's programming model, which is an encapsulation for StreamPark Flink tasks (for Apache Flink).</p>
+<p>Example:</p>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">StreamingContext = ParameterTool + StreamExecutionEnvironment</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to [...]
+<ul>
+<li>StreamingContext is the encapsulation object for StreamPark</li>
+<li>ParameterTool is the parameter object after parsing the configuration file</li>
+</ul>
+<div class="codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-text codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> String value = ParameterTool.get("${user.custom.key}")</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipb [...]
+<ul>
+<li>StreamExecutionEnvironment is the native task context for Apache Flink</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="03-business-support--capability-opening"><strong>03 Business Support &amp; Capability Opening</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#03-business-support--capability-opening" class="hash-link" aria-label="Direct link to 03-business-support--capability-opening" title="Direct link to 03-business-support--capability-opening">​</a></h2>
+<p>Currently, Dustess Info's real-time computing platform based on StreamPark has been online since the end of November last year and has launched 50+ Flink tasks, including 10+ Flink SQL tasks and 40+ Jar tasks. At present, it is mainly used internally by the data team, and the real-time computing platform will be opened up for use by business teams across the company shortly, which will significantly increase the number of tasks.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/online_jar-48549248f657388c7aebc0c8491660fa.png" width="1080" height="445" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01-real-time-data-warehouse"><strong>01 Real-Time Data Warehouse</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#01-real-time-data-warehouse" class="hash-link" aria-label="Direct link to 01-real-time-data-warehouse" title="Direct link to 01-real-time-data-warehouse">​</a></h3>
+<p>The real-time data warehouse mainly uses Jar tasks because the model is more generic. Using Jar tasks can generically handle a large number of data table synchronization and calculations, and even achieve configuration-based synchronization. Our real-time data warehouse mainly uses Apache Doris for storage, with Flink handling the cleaning and calculations (the goal being storage-computation separation).</p>
+<p>Using StreamPark to integrate other components is also very straightforward, and we have also abstracted the configuration related to Apache Doris and Kafka into the configuration file, which greatly enhances our development efficiency and flexibility.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02-capability-opening"><strong>02 Capability Opening</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#02-capability-opening" class="hash-link" aria-label="Direct link to 02-capability-opening" title="Direct link to 02-capability-opening">​</a></h3>
+<p>Other business teams outside the data team also have many stream processing scenarios. Hence, after secondary development of the real-time computing platform based on StreamPark, we opened up the following capabilities to all business teams in the company:</p>
+<ul>
+<li>Business capability opening: The upstream real-time data warehouse collects all business tables through log collection and writes them into Kafka. Business teams can base their business-related development on Kafka, or they can perform OLAP analysis through the real-time data warehouse (Apache Doris).</li>
+<li>Computing capability opening: The server resources of the big data platform are made available for use by business teams.</li>
+<li>Solution opening: The mature Connectors of the Flink ecosystem and support for Exactly Once semantics can reduce the development and maintenance costs related to stream processing for business teams.</li>
+</ul>
+<p>Currently, StreamPark does not support multi-business group functions. The multi-business group function will be abstracted and contributed to the community.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/manager-07ba2a4bc979cd2dd86fc9e07384ec61.png" width="1080" height="235" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/task_retrieval-eee86f9c0af117cbf15d2af5d528b2cc.png" width="1080" height="382" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="04-future-planning"><strong>04 Future Planning</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#04-future-planning" class="hash-link" aria-label="Direct link to 04-future-planning" title="Direct link to 04-future-planning">​</a></h2>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01-flink-on-k8s"><strong>01 Flink on K8S</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#01-flink-on-k8s" class="hash-link" aria-label="Direct link to 01-flink-on-k8s" title="Direct link to 01-flink-on-k8s">​</a></h3>
+<p>Currently, all our company's Flink tasks run on Yarn, which meets current needs, but Flink on Kubernetes has the following advantages:</p>
+<ul>
+<li><strong>Unified Operations</strong>. The company has unified operations with a dedicated department managing K8S.</li>
+<li><strong>CPU Isolation</strong>. There is CPU isolation between K8S Pods, so real-time tasks do not affect each other, leading to more stability.</li>
+<li><strong>Separation of Storage and Computation</strong>. Flink's computational resources and state storage are separated; computational resources can be mixed with other component resources, improving machine utilization.</li>
+<li><strong>Elastic Scaling</strong>. It is capable of elastic scaling, better saving manpower and material costs.</li>
+</ul>
+<p>I am also currently organizing and implementing related technical architectures and solutions and have completed the technical verification of Flink on Kubernetes using StreamPark in an experimental environment. With the support of the StreamPark platform and the enthusiastic help of the community, I believe that production implementation is not far off.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02-stream-batch-unification-construction"><strong>02 Stream-Batch Unification Construction</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#02-stream-batch-unification-construction" class="hash-link" aria-label="Direct link to 02-stream-batch-unification-construction" title="Direct link to 02-stream-batch-unification-construction">​</a></h3>
+<p>Personally, I think the biggest difference between batch and stream processing lies in the scheduling strategy of operator tasks and the data transfer strategy between operators:</p>
+<ul>
+<li><strong>Batch processing</strong>: Upstream and downstream operator tasks have sequential scheduling (upstream tasks end and release resources), and data has a Shuffle strategy (landing on disk). The downside is lower timeliness and no intermediate state in computation, but the upside is high throughput, suitable for offline computation of super-large data volumes.</li>
+<li><strong>Stream processing</strong>: Upstream and downstream operator tasks start at the same time (occupying resources simultaneously), and data is streamed between nodes through the network. The downside is insufficient throughput, but the advantage is high timeliness and intermediate state in computation, suitable for real-time and incremental computation scenarios.</li>
+</ul>
+<p>As mentioned above, I believe that choosing <strong>batch or stream processing</strong> <strong>is a tuning method for data development according to different data volumes and business scenarios</strong>. However, currently, because the computing engine and platform distinguish offline and real-time, it causes development and maintenance fragmentation, with prohibitively high costs. To achieve stream-batch unification, the following aspects must be realized:</p>
+<ul>
+<li>Unified storage (unification of metadata): Supports batch and stream writing/reading.</li>
+<li>Unified computing engine: Able to use a set of APIs or SQL to develop offline and real-time tasks.</li>
+<li>Unified data platform: Able to support the persistent real-time tasks, as well as offline scheduling strategies.</li>
+</ul>
+<p>Regarding the unification of stream and batch, I am also currently researching and organizing, and I welcome interested friends to discuss and study the project together.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="05-closing-words"><strong>05 Closing Words</strong><a href="https://streampark.apache.org/blog/streampark-usercase-dustess#05-closing-words" class="hash-link" aria-label="Direct link to 05-closing-words" title="Direct link to 05-closing-words">​</a></h2>
+<p>That's all for the sharing of StreamPark in the production practice at Dustess Info. Thank you all for reading this far. The original intention of writing this article was to bring a bit of StreamPark's production practice experience and reference to everyone, and together with the buddies in the StreamPark community, to jointly build StreamPark. In the future, I plan to participate and contribute more. A big thank you to the developers of StreamPark for providing such an excellent pr [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/author-487ad3c1ad9a397cd4c2614f54976368.png" width="844" height="439" class="img__KcZ"></p>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Apache StreamPark™'s Production Practice in Joyme]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-joyme</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-joyme"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Abstract]]></summary>
+        <content type="html"><![CDATA[<p><strong>Abstract:</strong> This article presents the production practices of StreamPark at Joyme, written by Qin Jiyong, a big data engineer at Joyme. The main contents include:</p>
+<ul>
+<li>Encountering StreamPark</li>
+<li>Flink SQL job development</li>
+<li>Custom code job development</li>
+<li>Monitoring and alerting</li>
+<li>Common issues</li>
+<li>Community impressions</li>
+<li>Summary</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="1-encountering-apache-streampark">1 Encountering Apache StreamPark™<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#1-encountering-apache-streampark" class="hash-link" aria-label="Direct link to 1 Encountering Apache StreamPark™" title="Direct link to 1 Encountering Apache StreamPark™">​</a></h2>
+<p>Encountering StreamPark was inevitable. Based on our existing real-time job development mode, we had to find an open-source platform to support our company's real-time business. Our current situation was as follows:</p>
+<ul>
+<li>We wrote jobs and packaged them to servers, then executed the Flink run command to submit them, which was a cumbersome and inefficient process.</li>
+<li>Flink SQL was submitted through a self-developed old platform. The developers of the old platform had left, and no one maintained the subsequent code, even if someone did, they would have to face the problem of high maintenance costs.</li>
+<li>Some of the authors were SparkStreaming jobs, with two sets of streaming engines and frameworks not unified, resulting in high development costs.</li>
+<li>Real-time jobs were developed in Scala and Java, with languages and technology stacks not unified.</li>
+</ul>
+<p>For all these reasons, we needed an open-source platform to manage our real-time jobs, and we also needed to refactor to unify the development mode and language and centralize project management.</p>
+<p>The first encounter with StreamPark basically confirmed our choice. We quickly deployed and installed according to the official documentation, performed some operations after setting up, and were greeted with a user-friendly interface. StreamPark's support for multiple versions of Flink, permission management, job monitoring, and other series of functions already met our needs well. Further understanding revealed that its community is also very active. We have witnessed the process of [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="2-development-of-flink-sql-jobs">2 Development of Flink SQL Jobs<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#2-development-of-flink-sql-jobs" class="hash-link" aria-label="Direct link to 2 Development of Flink SQL Jobs" title="Direct link to 2 Development of Flink SQL Jobs">​</a></h2>
+<p>The Flink SQL development mode has brought great convenience. For some simple metric developments, it is possible to complete them with just a few SQL statements, without the need to write a single line of code. Flink SQL has facilitated the development work for many colleagues, especially since writing code can be somewhat difficult for those who work on warehouses.</p>
+<p>To add a new task, you open the task addition interface of StreamPark, where the default Development Mode is Flink SQL mode. You can write the SQL logic directly in the Flink SQL section.</p>
+<p>For the Flink SQL part, you can progressively write the logic SQL following the Flink official website's documentation. Generally, for our company, it consists of three parts: the Source connection, intermediate logic processing, and finally the Sink. Essentially, the Source is consuming data from Kafka, the logic layer will involve MySQL for dimension table queries, and the Sink part is mostly Elasticsearch, Redis, or MySQL.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="1-writing-sql"><strong>1. Writing SQL</strong><a href="https://streampark.apache.org/blog/streampark-usercase-joyme#1-writing-sql" class="hash-link" aria-label="Direct link to 1-writing-sql" title="Direct link to 1-writing-sql">​</a></h3>
+<div class="language-sql codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-sql codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Connect kafka</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span cl [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="2-add-dependency"><strong>2. Add Dependency</strong><a href="https://streampark.apache.org/blog/streampark-usercase-joyme#2-add-dependency" class="hash-link" aria-label="Direct link to 2-add-dependency" title="Direct link to 2-add-dependency">​</a></h3>
+<p>In terms of dependencies, it's an unique feature to Streampark. A complete Flink SQL job is innovatively split into two components within StreamPark: the SQL and the dependencies. The SQL part is easy to understand and requires no further explanation, but the dependencies are the various Connector JARs needed within the SQL, such as Kafka and MySQL Connectors. If these are used within the SQL, then these Connector dependencies must be introduced. In StreamPark, there are two ways to a [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/add_dependency-281888d96a8f3ce6e9af01efef9de643.png" width="1080" height="469" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="3-parameter-configuration"><strong>3. Parameter Configuration</strong><a href="https://streampark.apache.org/blog/streampark-usercase-joyme#3-parameter-configuration" class="hash-link" aria-label="Direct link to 3-parameter-configuration" title="Direct link to 3-parameter-configuration">​</a></h3>
+<p>The task addition and modification page has listed some common parameter settings, and for more extensive configuration options, a yaml configuration file is provided. Here, we've only set up checkpoint and savepoint configurations. The first is the location of the checkpoint, and the second is the frequency of checkpoint execution. We haven't changed other configurations much; users can customize these settings as per their needs.</p>
+<p>The rest of the parameter settings should be configured according to the specific circumstances of the job. If the volume of data processed is large or the logic is complex, it might require more memory and higher parallelism. Sometimes, adjustments need to be made multiple times based on the job's operational performance.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/checkpoint_configuration-861a4f0439b1a0f8aade35e10e6b60c5.png" width="1080" height="610" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="4-dynamic-parameter-settings"><strong>4. Dynamic Parameter Settings</strong><a href="https://streampark.apache.org/blog/streampark-usercase-joyme#4-dynamic-parameter-settings" class="hash-link" aria-label="Direct link to 4-dynamic-parameter-settings" title="Direct link to 4-dynamic-parameter-settings">​</a></h3>
+<p>Since our deployment mode is on Yarn, we configured the name of the Yarn queue in the dynamic options. Some configurations have also been set to enable incremental checkpoints and state TTL (time-to-live), all of which can be found on Flink's official website. Before, some jobs frequently encountered out-of-memory issues. After adding the incremental parameter and TTL, the job operation improved significantly. Also, in cases where the Flink SQL job involves larger states and complex l [...]
+<ul>
+<li>-Dyarn.application.queue=Yarn queue name</li>
+<li>-Dstate.backend.incremental=true</li>
+<li>-Dtable.exec.state.ttl=expiration time</li>
+</ul>
+<p>After completing the configuration, submit &amp; deploy it from the application interface.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/application_job-5518b58af2b481d7bdb36a7bae252c41.png" width="1080" height="422" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="3-custom-code-job-development">3 Custom Code Job Development<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#3-custom-code-job-development" class="hash-link" aria-label="Direct link to 3 Custom Code Job Development" title="Direct link to 3 Custom Code Job Development">​</a></h2>
+<p>For streaming jobs, we use Flink Java for development, having refactored previous Spark Scala, Flink Scala, and Flink Java jobs and then integrated these projects together. The purpose of this integration is to facilitate maintenance. Custom code jobs require the submission of code to Git, followed by project configuration:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/project_configuration-add3d079bba91ac4977b830d3c3fe8f7.png" width="1080" height="365" class="img__KcZ"></p>
+<p>Once the configuration is completed, compile the corresponding project to finish the packaging phase. Thus, the Custom code jobs can also reference it. Compilation is required every time the code needs to go live; otherwise, only the last compiled code is available. Here's an issue: for security reasons, our company’s GitLab account passwords are regularly updated. This leads to a situation where the StreamPark projects have the old passwords configured, resulting in a failure when pu [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_system-02dee8b704254087aae900731ae47076.png" width="1080" height="214" class="img__KcZ"></p>
+<p>To create a new task, select Custom code, choose the Flink version, select the project and the module Jar package, and choose the development application mode as Apache Flink® (standard Flink program), program main function entry class, and the task's name.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/add_projectconfiguration-26b97212de577a0cbc46b59f1eceea0b.png" width="1080" height="536" class="img__KcZ"></p>
+<p>As well as the task’s parallelism, monitoring method, etc., memory size should be configured based on the needs of the task. Program Args, the program parameters, are defined according to the program's needs. For example: If our unified startup class is StartJobApp, to start a job, it's necessary to pass the full name of the job, informing the startup class which class to find to launch the task—essentially, which is a reflection mechanism. After the job configuration is complete, it  [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/application_interface-51c8f96e343842f32b56c3c889064cba.png" width="1080" height="500" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="4-monitoring-and-alerts">4 Monitoring and Alerts<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#4-monitoring-and-alerts" class="hash-link" aria-label="Direct link to 4 Monitoring and Alerts" title="Direct link to 4 Monitoring and Alerts">​</a></h2>
+<p>The monitoring in StreamPark requires configuration in the setting module to set up the basic information for sending emails.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/system_setting-6b5b21f22fc4a32b973ede0a5f21ebc2.png" width="1080" height="380" class="img__KcZ"></p>
+<p>Then, within the tasks, configure the restart strategy: monitor how many times an exception occurs within a certain time, and then decide whether the strategy is to alert or restart, as well as which email address should receive the alert notifications. The version currently used by our company is 1.2.1, which supports only email sending.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/email_setting-7b8ddba6688c75cfad32f5d16e93354f.png" width="1080" height="243" class="img__KcZ"></p>
+<p>When our jobs fail, we can receive alerts through email. These alerts are quite clear, showing which job is in what state. You can also click on the specific address below to view details.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/alarm_eamil-29b2875dbfcbeb071fef815ab751786a.png" width="1080" height="1517" class="img__KcZ"></p>
+<p>Regarding alerts, we have developed a scheduled task based on StreamPark's t_flink_app table. Why do this? Because most people might not check their emails promptly when it comes to email notifications. Therefore, we opted to monitor the status of each task and send corresponding monitoring information to our Lark (Feishu) alert group, enabling us to promptly identify and address issues with the tasks. It's a simple Python script, then configured with crontab to execute at scheduled t [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="5-common-issues">5 Common Issues<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#5-common-issues" class="hash-link" aria-label="Direct link to 5 Common Issues" title="Direct link to 5 Common Issues">​</a></h2>
+<p>When it comes to the abnormal issues of jobs, we have summarized them into the following categories:</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="1-job-launch-failure"><strong>1. Job Launch Failure</strong><a href="https://streampark.apache.org/blog/streampark-usercase-joyme#1-job-launch-failure" class="hash-link" aria-label="Direct link to 1-job-launch-failure" title="Direct link to 1-job-launch-failure">​</a></h3>
+<p>The issue of job launch failure refers to the situation where the job does not start upon initiation. In this case, one needs to check the detailed information logs on the interface. There is an eye-shaped button in our task list; by clicking on it, one can find the submitted job log information in the start logs. If there is clear prompt information, the issue can be directly addressed. If not, one has to check the streamx.out file under the logs/ directory of the backend deployment  [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/start_log-6ce6b3125c8693db96197193241d6807.png" width="1080" height="83" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="2-job-running-failure"><strong>2. Job Running Failure</strong><a href="https://streampark.apache.org/blog/streampark-usercase-joyme#2-job-running-failure" class="hash-link" aria-label="Direct link to 2-job-running-failure" title="Direct link to 2-job-running-failure">​</a></h3>
+<p>If the task has started but fails during the running phase, this situation might seem similar to the first, but is actually entirely different. This means that the task has been submitted to the cluster, but the task itself has problems running. One can still apply the troubleshooting method from the first scenario to open the specific logs of the job, find the task information on yarn, and then go to yarn's logs with the yarn's tackurl recorded in the logs to look for the specific re [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/yarn_log-100e18b484ec81cf3165736de8259365.png" width="1080" height="82" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="6-community-impression">6 Community Impression<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#6-community-impression" class="hash-link" aria-label="Direct link to 6 Community Impression" title="Direct link to 6 Community Impression">​</a></h2>
+<p>Often when we discuss issues in the StreamPark user group, we get immediate responses from community members. Issues that cannot be resolved at the moment are generally fixed in the next version or the latest code branch. In the group, we also see many non-community members actively helping each other out. There are many big names from other communities as well, and many members actively join the community development work. The whole community feels very active to me!</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="7-conclusion">7 Conclusion<a href="https://streampark.apache.org/blog/streampark-usercase-joyme#7-conclusion" class="hash-link" aria-label="Direct link to 7 Conclusion" title="Direct link to 7 Conclusion">​</a></h2>
+<p>Currently, our company runs 60 real-time jobs online, with Flink SQL and custom code each making up about half. More real-time tasks will be put online subsequently. Many colleagues worry about the stability of StreamPark, but based on several months of production practice in our company, StreamPark is just a platform to help you develop, deploy, monitor, and manage jobs. Whether it is stable or not depends on the stability of our own Hadoop Yarn cluster (we use the onyan mode) and ha [...]
+<p>That is all the content shared by StreamPark at Joyme. Thank you for reading this article. We are very grateful for such an excellent product provided by StreamPark, which is a true act of benefiting others. From version 1.0 to 1.2.1, the bugs encountered are promptly fixed, and every issue is taken seriously. We are still using the on yarn deployment mode. Restarting yarn will still cause jobs to be lost, but restarting yarn is not something we do every day. The community will also l [...]
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[An All-in-One Computation Tool in Haibo Tech's Production Practice and facilitation in Smart City Construction]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-haibo</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-haibo"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Summary An All-in-One Computation Tool in Haibo Tech's Production Practice and facilitation in Smart City Construction," is the Big Data Architect at Haibo Tech. The main topics covered include:]]></summary>
+        <content type="html"><![CDATA[<p><strong>Summary:</strong> The author of this article, "StreamPark: An All-in-One Computation Tool in Haibo Tech's Production Practice and facilitation in Smart City Construction," is the Big Data Architect at Haibo Tech. The main topics covered include:</p>
+<ol>
+<li>Choosing StreamPark</li>
+<li>Getting Started Quickly</li>
+<li>Application Scenarios</li>
+<li>Feature Extensions</li>
+<li>Future Expectations</li>
+</ol>
+<p>Haibo Tech is an industry-leading company offering AI IoT products and solutions. Currently, they provide full-stack solutions, including algorithms, software, and hardware products, to clients nationwide in public safety, smart cities, and smart manufacturing domains.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="01-choosing-apache-streampark"><strong>01. Choosing Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#01-choosing-apache-streampark" class="hash-link" aria-label="Direct link to 01-choosing-apache-streampark" title="Direct link to 01-choosing-apache-streampark">​</a></h2>
+<p>Haibo Tech started using Flink SQL to aggregate and process various real-time IoT data since 2020. With the accelerated pace of smart city construction in various cities, the types and volume of IoT data to be aggregated are also increasing. This has resulted in an increasing number of Flink SQL tasks being maintained online, making a dedicated platform for managing numerous Flink SQL tasks an urgent need.</p>
+<p>After evaluating Apache Zeppelin and StreamPark, we chose StreamPark as our real-time computing platform. Compared to Apache Zeppelin, StreamPark may not be as well-known. However, after experiencing the initial release of StreamPark and reading its design documentation, we recognized that its all-in-one design philosophy covers the entire lifecycle of Flink task development. This means that configuration, development, deployment, and operations can all be accomplished on a single pla [...]
+<p>// Video link (streampark official video)</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="02-practical-implementation"><strong>02. Practical Implementation</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#02-practical-implementation" class="hash-link" aria-label="Direct link to 02-practical-implementation" title="Direct link to 02-practical-implementation">​</a></h2>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="1-quick-start"><strong>1. Quick Start</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#1-quick-start" class="hash-link" aria-label="Direct link to 1-quick-start" title="Direct link to 1-quick-start">​</a></h3>
+<p>Using StreamPark to accomplish a real-time aggregation task is as simple as putting an elephant into a fridge, and it can be done in just three steps:</p>
+<ul>
+<li>Edit SQL</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_sql-a8811954a9f765640bb08ad9cd139a15.png" width="1080" height="578" class="img__KcZ"></p>
+<ul>
+<li>Upload dependency packages</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/dependency-172169d43c50f455fb7e2c7e08de32a2.png" width="1080" height="449" class="img__KcZ"></p>
+<ul>
+<li>Deploy and run</li>
+</ul>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/deploy-d486a5c0eb238a9f2a6ce5f2b3013500.png" width="1080" height="538" class="img__KcZ"></p>
+<p>With just the above three steps, you can complete the aggregation task from Mysql to Elasticsearch, significantly improving data access efficiency.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="2-production-practice"><strong>2. Production Practice</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#2-production-practice" class="hash-link" aria-label="Direct link to 2-production-practice" title="Direct link to 2-production-practice">​</a></h3>
+<p>StreamPark is primarily used at Haibo for running real-time Flink SQL tasks: reading data from Kafka, processing it, and outputting to Clickhouse or Elasticsearch.</p>
+<p>Starting from October 2021, the company gradually migrated Flink SQL tasks to the StreamPark platform for centralized management. It supports the aggregation, computation, and alerting of our real-time IoT data.</p>
+<p>As of now, StreamPark has been deployed in various government and public security production environments, aggregating and processing real-time IoT data, as well as capturing data on people and vehicles. Below is a screenshot of the StreamPark platform deployed on a city's dedicated network:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/application-b12eb5d36d548a02e52ec12a28ddcec0.png" width="1080" height="613" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="03-application-scenarios"><strong>03. Application Scenarios</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#03-application-scenarios" class="hash-link" aria-label="Direct link to 03-application-scenarios" title="Direct link to 03-application-scenarios">​</a></h2>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="1-real-time-iot-sensing-data-aggregation"><strong>1. Real-time IoT Sensing Data Aggregation</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#1-real-time-iot-sensing-data-aggregation" class="hash-link" aria-label="Direct link to 1-real-time-iot-sensing-data-aggregation" title="Direct link to 1-real-time-iot-sensing-data-aggregation">​</a></h4>
+<p>For aggregating real-time IoT sensing data, we directly use StreamPark to develop Flink SQL tasks. For methods not provided by Flink SQL, StreamPark also supports UDF-related functionalities. Users can upload UDF packages through StreamPark, and then call the relevant UDF in SQL to achieve more complex logical operations.</p>
+<p>The "SQL+UDF" approach meets most of our data aggregation scenarios. If business changes in the future, we only need to modify the SQL statement in StreamPark to complete business changes and deployment.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/data_aggregation-e5caba8eee38a8444df6cb3382a1d978.png" width="1080" height="607" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="2-flink-cdc-database-synchronization"><strong>2. Flink CDC Database Synchronization</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#2-flink-cdc-database-synchronization" class="hash-link" aria-label="Direct link to 2-flink-cdc-database-synchronization" title="Direct link to 2-flink-cdc-database-synchronization">​</a></h4>
+<p>To achieve synchronization between various databases and data warehouses, we use StreamPark to develop Flink CDC SQL tasks. With the capabilities of Flink CDC, we've implemented data synchronization between Oracle and Oracle, as well as synchronization between Mysql/Postgresql and Clickhouse.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_cdc-318444c917eb66f591a5c75db9662e78.png" width="794" height="232" class="img__KcZ"></p>
+<p><strong>3. Data Analysis Model Management</strong></p>
+<p>For tasks that can't use Flink SQL and need Flink code development, such as real-time control models and offline data analysis models, StreamPark offers a Custom code approach, allowing users to upload executable Flink Jar packages and run them.</p>
+<p>Currently, we have uploaded over 20 analysis models, such as personnel and vehicles, to StreamPark, which manages and operates them.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/data_aggregation-e5caba8eee38a8444df6cb3382a1d978.png" width="1080" height="607" class="img__KcZ"></p>
+<p><strong>In Summary:</strong> Whether it's Flink SQL tasks or Custom code tasks, StreamPark provides excellent support to meet various business scenarios. However, StreamPark lacks task scheduling capabilities. If you need to schedule tasks regularly, StreamPark currently cannot meet this need. Community members are actively developing scheduling-related modules, and the soon-to-be-released version 1.2.3 will support task scheduling capabilities, so stay tuned.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="04-feature-extension"><strong>04. Feature Extension</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#04-feature-extension" class="hash-link" aria-label="Direct link to 04-feature-extension" title="Direct link to 04-feature-extension">​</a></h2>
+<p>Datahub is a metadata management platform developed by Linkedin, offering data source management, data lineage, data quality checks, and more. Haibo Tech has developed an extension based on StreamPark and Datahub, implementing table-level/field-level lineage features. With the data lineage feature, users can check the field lineage relationship of Flink SQL and save the lineage relationship to the Linkedin/Datahub metadata management platform.</p>
+<p>// Two video links (Data lineage feature developed based on streampark)</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="05-future-expectations"><strong>05. Future Expectations</strong><a href="https://streampark.apache.org/blog/streampark-usercase-haibo#05-future-expectations" class="hash-link" aria-label="Direct link to 05-future-expectations" title="Direct link to 05-future-expectations">​</a></h2>
+<p>Currently, the StreamPark community's Roadmap indicates that StreamPark 1.3.0 will usher in a brand new Workbench experience, a unified resource management center (unified management of JAR/UDF/Connectors), batch task scheduling, and more. These are also some of the brand-new features we are eagerly anticipating.</p>
+<p>The Workbench will use a new workbench-style SQL development style. By selecting a data source, SQL can be generated automatically, further enhancing Flink task development efficiency. The unified UDF resource center will solve the current problem where each task has to upload its dependency package. The batch task scheduling feature will address StreamPark's current inability to schedule tasks.</p>
+<p>Below is a prototype designed by StreamPark developers, so please stay tuned.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/data_source-5f9b710b4186a08571192ae81ab350d1.png" width="830" height="518" class="img__KcZ"></p>]]></content>
+        <category label="StreamPark" term="StreamPark"/>
+        <category label="Production Practice" term="Production Practice"/>
+        <category label="FlinkSQL" term="FlinkSQL"/>
+    </entry>
+    <entry>
+        <title type="html"><![CDATA[Ziroom's Real-Time Computing Platform Practice Based on Apache StreamPark™]]></title>
+        <id>https://streampark.apache.org/blog/streampark-usercase-ziru</id>
+        <link href="https://streampark.apache.org/blog/streampark-usercase-ziru"/>
+        <updated>2024-06-30T14:58:25.000Z</updated>
+        <summary type="html"><![CDATA[Introduction: Ziroom, an O2O internet company focusing on providing rental housing products and services, has built an online, data-driven, and intelligent platform that covers the entire chain of urban living. Real-time computing has always played an important role in Ziroom. To date, Ziroom processes TB-level data daily. This article, brought by the real-time computing team from Ziroom, introduces the in-depth practice of Ziroom's real-time computi [...]
+        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/cover-87ff8832da8f5d9398ed5a1e2f283d0d.png" width="1080" height="460" class="img__KcZ"></p>
+<p><strong>Introduction:</strong> Ziroom, an O2O internet company focusing on providing rental housing products and services, has built an online, data-driven, and intelligent platform that covers the entire chain of urban living. Real-time computing has always played an important role in Ziroom. To date, Ziroom processes TB-level data daily. This article, brought by the real-time computing team from Ziroom, introduces the in-depth practice of Ziroom's real-time computing platform based  [...]
+<ul>
+<li>Challenges in real-time computing</li>
+<li>The journey to the solution</li>
+<li>In-depth practice based on StreamPark</li>
+<li>Summary of practical experience and examples</li>
+<li>Benefits brought by the implementation</li>
+<li>Future plans</li>
+</ul>
+<p>As an O2O internet brand offering rental housing products and services, Ziroom was established in October 2011. To date, Ziroom has served nearly 500,000 landlords and 5 million customers, managing over 1 million housing units. As of March 2021, Ziroom has expanded to 10 major cities including Beijing, Shanghai, Shenzhen, Hangzhou, Nanjing, Guangzhou, Chengdu, Tianjin, Wuhan, and Suzhou. Ziroom has created an online, data-driven, and intelligent platform for quality residential produc [...]
+<p>With a vast user base, Ziroom has been committed to providing superior product experiences and achieving digital transformation of the enterprise. Since 2021, real-time computing, particularly Flink, has played an important role in Ziroom. To date, Ziroom processes TB-level data daily, with over 500 real-time jobs supporting more than 10 million data calls per day.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="challenges-in-real-time-computing"><strong>Challenges in Real-Time Computing</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#challenges-in-real-time-computing" class="hash-link" aria-label="Direct link to challenges-in-real-time-computing" title="Direct link to challenges-in-real-time-computing">​</a></h2>
+<p>At Ziroom, real-time computing is mainly divided into two application scenarios:</p>
+<ul>
+<li>
+<p>Data synchronization: Includes Kafka, MySQL, and MongoDB data synchronization to Hive / Paimon / ClickHouse, etc.</p>
+</li>
+<li>
+<p>Real-time data warehouse: Includes real-time indicators for businesses like rentals, acquisitions, and home services.</p>
+</li>
+</ul>
+<p>In the process of implementing real-time computing, we faced several challenges, roughly as follows:</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01-low-efficiency-in-job-deployment"><strong>01 Low Efficiency in Job Deployment</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#01-low-efficiency-in-job-deployment" class="hash-link" aria-label="Direct link to 01-low-efficiency-in-job-deployment" title="Direct link to 01-low-efficiency-in-job-deployment">​</a></h3>
+<p>The process of developing and deploying real-time jobs at Ziroom is as follows: data warehouse developers embed Flink SQL code in the program, debug locally, compile into FatJar, and then submit the job as a work order and JAR package to the operation team. The operation team member responsible for job deployment then deploys the job to the online Kubernetes session environment through the command line. This process involves many steps, each requiring manual intervention, resulting in [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/job_goes_online-ae38a4f939687b0e80e8e5677885fe0d.png" width="1080" height="356" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02-unclear-job-ownership-information"><strong>02 Unclear Job Ownership Information</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#02-unclear-job-ownership-information" class="hash-link" aria-label="Direct link to 02-unclear-job-ownership-information" title="Direct link to 02-unclear-job-ownership-information">​</a></h3>
+<p>Due to the lack of unified management of the real-time computing platform, business code is managed by GitLab. Although this solved some problems, we found deficiencies between the repository code and the management of online Flink jobs: lack of clear ownership, lack of grouping and effective permission control, leading to chaotic job management and difficult responsibility tracing. To ensure the consistency and controllability of code and online jobs, there is an urgent need to estab [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="03-difficulty-in-job-maintenance"><strong>03 Difficulty in Job Maintenance</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#03-difficulty-in-job-maintenance" class="hash-link" aria-label="Direct link to 03-difficulty-in-job-maintenance" title="Direct link to 03-difficulty-in-job-maintenance">​</a></h3>
+<p>At Ziroom, multiple versions of Flink jobs are running. Due to frequent API changes and lack of backward compatibility in major version upgrades of Apache Flink, the cost of upgrading project code becomes very high. Therefore, managing these different versions of jobs has become a headache.</p>
+<p>Without a</p>
+<p>unified job platform, these jobs are submitted using scripts. Jobs vary in importance and data volume, requiring different resources and runtime parameters, necessitating corresponding modifications. Modifications can be made by editing the submission script or directly setting parameters in the code, but this makes configuration information difficult to access, especially when jobs restart or fail and FlinkUI is unavailable, turning configuration information into a black box. Therefo [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="04-difficulty-in-job-development-and-debugging"><strong>04 Difficulty in Job Development and Debugging</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#04-difficulty-in-job-development-and-debugging" class="hash-link" aria-label="Direct link to 04-difficulty-in-job-development-and-debugging" title="Direct link to 04-difficulty-in-job-development-and-debugging">​</a></h3>
+<p>In our previous development process, we typically embedded SQL code within program code in the local IDEA environment for job development and debugging, verifying the correctness of the program. However, this approach has several disadvantages:</p>
+<ol>
+<li>
+<p>Difficulty in multi-data source debugging. Often, a requirement involves multiple different data sources. For local environment debugging, developers need to apply for white-list access to data, which is both time-consuming and cumbersome.</p>
+</li>
+<li>
+<p>SQL code is hard to read and modify. As SQL code is embedded in program code, it's difficult to read and inconvenient to modify. More challenging is debugging through SQL segments, as the lack of SQL version control and syntax verification makes it hard for developers to locate specific SQL lines in client logs to identify the cause of execution failure.</p>
+</li>
+</ol>
+<p>Therefore, there is a need to improve the efficiency of development and debugging.</p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="the-journey-to-the-solution"><strong>The Journey to the Solution</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#the-journey-to-the-solution" class="hash-link" aria-label="Direct link to the-journey-to-the-solution" title="Direct link to the-journey-to-the-solution">​</a></h2>
+<p>In the early stages of platform construction, we comprehensively surveyed almost all relevant projects in the industry, covering both commercial paid versions and open-source versions, starting from early 2022. After investigation and comparison, we found that these projects have their limitations to varying extents, and their usability and stability could not be effectively guaranteed.</p>
+<p>Overall, StreamPark performed best in our evaluation. It was the only project without major flaws and with strong extensibility: supporting both SQL and JAR jobs, with the most complete and stable deployment mode for Flink jobs. Its unique architectural design not only avoids locking in specific Flink versions but also supports convenient version switching and parallel processing, effectively solving job dependency isolation and conflict issues. The job management &amp; operations cap [...]
+<p>In the latest 2.2 version, the community has already restructured this part.</p>
+<p>After analyzing the pros and cons of many open-source projects, we decided to participate in projects with excellent architecture, development potential, and an actively dedicated core team. Based on this understanding, we made the following decisions:</p>
+<ol>
+<li>
+<p>In terms of job deployment mode, we decided to adopt the On Kubernetes mode. Real-time jobs have dynamic resource consumption, creating a strong need for Kubernetes' elastic scaling, which helps us better cope with data output fluctuations and ensure job stability.</p>
+</li>
+<li>
+<p>In the selection of open-source components, after comprehensive comparison and evaluation of various indicators, we finally chose what was then StreamX. Subsequent close communication with the community allowed us to deeply appreciate the serious and responsible attitude of the founders and the united and friendly atmosphere of the community. We also witnessed the project's inclusion in the Apache Incubator in September 2022, making us hopeful for its future.</p>
+</li>
+<li>
+<p>On the basis of StreamPark, we aim to promote integration with the existing ecosystem of the company to better meet our business needs.</p>
+</li>
+</ol>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="in-depth-practice-based-on-apache-streampark"><strong>In-depth Practice Based on Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#in-depth-practice-based-on-apache-streampark" class="hash-link" aria-label="Direct link to in-depth-practice-based-on-apache-streampark" title="Direct link to in-depth-practice-based-on-apache-streampark">​</a></h2>
+<p>Based on the above decisions, we initiated the evolution of the real-time computing platform, oriented by "pain point needs," and built a stable, efficient, and easy-to-maintain real-time computing platform based on StreamPark. Since the beginning of 2022, we have participated in the construction of the community while officially scheduling our internal platform construction.</p>
+<p>First, we further improved related functionalities on the basis of StreamPark:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/platform_construction-b73e12b57a4a9f558ada77038496bf50.png" width="1080" height="522" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01-ldap-login-support"><strong>01 LDAP Login Support</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#01-ldap-login-support" class="hash-link" aria-label="Direct link to 01-ldap-login-support" title="Direct link to 01-ldap-login-support">​</a></h3>
+<p>On the basis of StreamPark, we further improved related functionalities, including support for LDAP, so that in the future we can fully open up real-time capabilities, allowing analysts from the company's four business lines to use the platform, expected to reach about 170 people. With the increase in numbers, account management becomes increasingly important, especially in the case of personnel changes, account cancellation, and application become frequent and time-consuming operatio [...]
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step1-fill-in-the-corresponding-ldap">step1: Fill in the corresponding LDAP<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step1-fill-in-the-corresponding-ldap" class="hash-link" aria-label="Direct link to step1: Fill in the corresponding LDAP" title="Direct link to step1: Fill in the corresponding LDAP">​</a></h4>
+<p>configuration:</p>
+<p>Edit the application.yml file, setting the LDAP basic information as follows:</p>
+<div class="language-yaml codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-yaml codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">ldap</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"></span><br></span><span class="token-li [...]
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step2-ldap-login">step2: LDAP Login<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step2-ldap-login" class="hash-link" aria-label="Direct link to step2: LDAP Login" title="Direct link to step2: LDAP Login">​</a></h4>
+<p>On the login interface, click LDAP login method, then enter the corresponding account and password, and click to log in.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/ldap-39a8f66b7bba105117ecbfc54551dc95.png" width="1080" height="581" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02-automatic-ingress-generation-for-job-submission"><strong>02 Automatic Ingress Generation for Job Submission</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#02-automatic-ingress-generation-for-job-submission" class="hash-link" aria-label="Direct link to 02-automatic-ingress-generation-for-job-submission" title="Direct link to 02-automatic-ingress-generation-for-job-submission">​</a></h3>
+<p>Due to the company's network security policy, only port 80 is opened on the Kubernetes host machines by the operation team, making it impossible to directly access the job WebUI on Kubernetes via "domain + random port." To solve this problem, we needed to use Ingress to add a proxy layer to the access path, achieving the effect of access routing. In StreamPark version 2.0, we contributed the functionality related to Ingress [3]. We adopted a strategy pattern implementation, initially  [...]
+<p>The specific configuration steps are as follows:</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step1-click-to-enter-setting--choose-ingress-setting-fill-in-the-domain-name">step1: Click to enter Setting-&gt; Choose Ingress Setting, fill in the domain name<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step1-click-to-enter-setting--choose-ingress-setting-fill-in-the-domain-name" class="hash-link" aria-label="Direct link to step1: Click to enter Setting-> Choose Ingress Setting, fill in the domain name" title="D [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/ingress_setting-2b8e1403aae4ff708a05f61f87d34733.png" width="1080" height="384" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step2-submit-a-job">step2: Submit a job<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step2-submit-a-job" class="hash-link" aria-label="Direct link to step2: Submit a job" title="Direct link to step2: Submit a job">​</a></h4>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/k8s_job-1759da059df126162f2b7e0c7b9b121a.png" width="1080" height="367" class="img__KcZ"></p>
+<p>Upon entering the K8s management platform, you can observe that submitting a Flink job also corresponds to submitting an Ingress with the same name.</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step3-click-to-enter-flinks-webui">step3: Click to enter Flink's WebUI<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step3-click-to-enter-flinks-webui" class="hash-link" aria-label="Direct link to step3: Click to enter Flink's WebUI" title="Direct link to step3: Click to enter Flink's WebUI">​</a></h4>
+<p>You will notice that the generated address consists of three parts: domain + job submission namespace + job name.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_webui-ca719f066a60a19004af7d6761eae27d.png" width="1080" height="451" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="03-support-for-viewing-job-deployment-logs"><strong>03 Support for Viewing Job Deployment Logs</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#03-support-for-viewing-job-deployment-logs" class="hash-link" aria-label="Direct link to 03-support-for-viewing-job-deployment-logs" title="Direct link to 03-support-for-viewing-job-deployment-logs">​</a></h3>
+<p>In the process of continuous job deployment, we gradually realized that without logs, we cannot perform effective operations. Log retention, archiving, and viewing became an important part in our later problem-solving process. Therefore, in StreamPark version 2.0, we contributed the ability to archive startup logs in On Kubernetes mode and view them on the page [4]. Now, by clicking the log viewing button in the job list, it is very convenient to view the real-time logs of the job.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/k8s_log-aafb7f2dff97d584b187ab4a22de9eaf.png" width="1080" height="473" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="04-integration-of-grafana-monitoring-chart-links"><strong>04 Integration of Grafana Monitoring Chart Links</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#04-integration-of-grafana-monitoring-chart-links" class="hash-link" aria-label="Direct link to 04-integration-of-grafana-monitoring-chart-links" title="Direct link to 04-integration-of-grafana-monitoring-chart-links">​</a></h3>
+<p>In actual use, as the number of jobs increased, the number of users rose, and more departments were involved, we faced the problem of difficulty in self-troubleshooting. Our team's operational capabilities are actually very limited. Due to the difference in professional fields, when we tell users to view charts and logs on Grafana and ELK, users often feel at a loss and do not know how to find information related to their jobs.</p>
+<p>To solve this problem, we proposed a demand in the community: we hoped that each job could directly jump to the corresponding monitoring chart and log archive page through a hyperlink, so that users could directly view the monitoring information and logs related to their jobs. This avoids tedious searches in complex system interfaces, thus improving the efficiency of troubleshooting.</p>
+<p>We had a discussion in the community, and it was quickly responded to, as everyone thought it was a common need. Soon, a developer contributed a design and related PR, and the issue was quickly resolved. Now, to enable this feature in StreamPark has become very simple:</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step1-create-a-badge-label">step1: Create a badge label<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step1-create-a-badge-label" class="hash-link" aria-label="Direct link to step1: Create a badge label" title="Direct link to step1: Create a badge label">​</a></h4>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/create_badge_label-a6542822bd5a1e9274ca0017d25a9ccd.png" width="1080" height="649" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step2-associate-the-badge-label-with-a-redirect-link">step2: Associate the badge label with a redirect link<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step2-associate-the-badge-label-with-a-redirect-link" class="hash-link" aria-label="Direct link to step2: Associate the badge label with a redirect link" title="Direct link to step2: Associate the badge label with a redirect link">​</a></h4>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/relevancy-a1914717d6479d16e07f7f1e6193f409.png" width="1062" height="400" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step3-click-the-badge-label-for-link-redirection">step3: Click the badge label for link redirection<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step3-click-the-badge-label-for-link-redirection" class="hash-link" aria-label="Direct link to step3: Click the badge label for link redirection" title="Direct link to step3: Click the badge label for link redirection">​</a></h4>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/link_jump-f353a479fac3e5576056edcaab705dda.png" width="1080" height="381" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="05-integration-of-flink-sql-security-for-permission-control"><strong>05 Integration of Flink SQL Security for Permission Control</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#05-integration-of-flink-sql-security-for-permission-control" class="hash-link" aria-label="Direct link to 05-integration-of-flink-sql-security-for-permission-control" title="Direct link to 05-integration-of-flink-sql-security-for-permi [...]
+<p>In our system, lineage management is based on Apache Atlas, and permission management is based on the open-source project Flink-sql-security, which supports user-level data desensitization and row-level data access control, allowing specific users to only access desensitized data or authorized rows.</p>
+<p>This design is to handle some complex inheritance logic. For example, when joining encrypted field age in Table A with Table B to obtain Table C, the age field in Table C should inherit the encryption logic of Table A to ensure the encryption status of data is not lost during processing. This way, we can better protect data security and ensure that data complies with security standards throughout the processing process.</p>
+<p>For permission control, we developed a Flink-sql-security-streampark plugin based on Flink-s</p>
+<p>ql-security. The basic implementation is as follows:</p>
+<ol>
+<li>
+<p>During submission check, the system parses the submitted SQL, obtaining InputTable and OutputTable datasets.</p>
+</li>
+<li>
+<p>The system queries the remote permission service to obtain the user's bound RBAC (Role-Based Access Control) permissions.</p>
+</li>
+<li>
+<p>Based on the RBAC permissions, the system gets the encryption rules for the corresponding tables.</p>
+</li>
+<li>
+<p>The system rewrites the SQL, wrapping the original SQL query fields with a preset encryption algorithm, thereby reorganizing the logic.</p>
+</li>
+<li>
+<p>Finally, the system submits according to the reorganized logic.</p>
+</li>
+</ol>
+<p>Through this integration and plugin development, we implemented permission control for user query requests, thereby ensuring data security.</p>
+<p><strong>01 Row-level Permission Conditions</strong></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/row_level_permissions-cd7665f926dd3c92e8479be34f9084d5.png" width="1080" height="348" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/row_level_permissions_table-780239498d6b6d09c8a5c1ffe4ad44ef.png" width="1080" height="151" class="img__KcZ"></p>
+<p>Input SQL</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SELECT * FROM orders;</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to clipboard" title="Copy" [...]
+<p>User A's actual execution SQL:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SELECT * FROM orders WHERE region = 'beijing';</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code t [...]
+<p>User B's actual execution SQL:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SELECT * FROM orders WHERE region = 'hangzhou';</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code  [...]
+<p><strong>02 Field Desensitization Conditions</strong></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/field_desensitization-3005c6f1d9c2f7ad0530d09a5a9aecea.png" width="1080" height="269" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/field_desensitization_table-e200cbbf0081e2d416411659a188bb90.png" width="1080" height="160" class="img__KcZ"></p>
+<p>Input SQL</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SELECT name, age, price, phone FROM user;</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to cli [...]
+<p>Execution SQL:</p>
+<p>User A's actual execution SQL:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SELECT Encryption_function(name), age, price, Sensitive_field_functions(phone) FROM user;</span><br></span></code></pre><div class="buttonGroup_inAn"><b [...]
+<p>User B's actual execution SQL:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SELECT name, Encryption_function(age), price, Sensitive_field_functions(phone) FROM user;</span><br></span></code></pre><div class="buttonGroup_inAn"><b [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="06-data-synchronization-platform-based-on-apache-streampark"><strong>06 Data Synchronization Platform Based on Apache StreamPark™</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#06-data-synchronization-platform-based-on-apache-streampark" class="hash-link" aria-label="Direct link to 06-data-synchronization-platform-based-on-apache-streampark" title="Direct link to 06-data-synchronization-platform-based-on-apa [...]
+<p>With the successful implementation of StreamPark's technical solutions in the company, we achieved deep support for Flink jobs, bringing a qualitative leap in data processing. This prompted us to completely revamp our past data synchronization logic, aiming to reduce operational costs through technical optimization and integration. Therefore, we gradually replaced historical Sqoop jobs, Canal jobs, and Hive JDBC Handler jobs with Flink CDC jobs, Flink stream, and batch jobs. In this p [...]
+<p>External system integration with StreamPark is simple, requiring only a few steps:</p>
+<ol>
+<li>First, create a token for API access:</li>
+</ol>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/token-94cb364497fe129fc62be3bbb7193390.png" width="1080" height="288" class="img__KcZ"></p>
+<ol start="2">
+<li>View the external call link of the Application:</li>
+</ol>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/call_link-da9d24e3a1993590cf25da174d5fb676.png" width="1080" height="390" class="img__KcZ"></p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">curl -X POST '/flink/app/start' \</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">-H 'Authorization: $token' \ [...]
+<ol start="3">
+<li>Configure Http scheduling in DolphinScheduler</li>
+</ol>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/http_scheduling-267e8ae0aa04d5901cd98bea50370d69.png" width="1080" height="576" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="summary-of-practical-experience"><strong>Summary of Practical Experience</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#summary-of-practical-experience" class="hash-link" aria-label="Direct link to summary-of-practical-experience" title="Direct link to summary-of-practical-experience">​</a></h2>
+<p>During our in-depth use of StreamPark, we summarized some common issues and explored solutions in the practice process, which we have compiled into examples for reference.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="01-building-base-images"><strong>01 Building Base Images</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#01-building-base-images" class="hash-link" aria-label="Direct link to 01-building-base-images" title="Direct link to 01-building-base-images">​</a></h3>
+<p>To deploy a Flink job on Kubernetes using StreamPark, you first need to prepare a Base image built on Flink. Then, on the Kubernetes platform, the user-provided image is used to start the Flink job. If we continue to use the official "bare image," it is far from sufficient for actual development. Business logic developed by users often involves multiple upstream and downstream data sources, requiring related data source Connectors and dependencies like Hadoop. Therefore, these depende [...]
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step1-first-create-a-folder-containing-two-folders-and-a-dockerfile-file">step1: First, create a folder containing two folders and a Dockerfile file<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step1-first-create-a-folder-containing-two-folders-and-a-dockerfile-file" class="hash-link" aria-label="Direct link to step1: First, create a folder containing two folders and a Dockerfile file" title="Direct link to step1:  [...]
+<p><img decoding="async" loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxwAAACmCAIAAADf3B7RAAAbi0lEQVR4Xu3d6VcUZ77A8fl/7tzLzJu598w5PYlRSVwQJYqoIIsLakwEWdwSQEGR3Q0RFMG4g0rTTQLIZJmcyWYmM4lJjNmMW2KMMUbjvt6n+2kfi3qaprCrGqS/dT5nDlT9ajFv5nu6iuo/xMw5AgAAgDD9QV8FAACAgSKqAAAAbEBUAQAA2ICoAgAAsAFRBQAAYAOiCgAAwAZEFQAAgA2GeVStbni9JJjlG7vmlr4xIus9fRcAAIDHMMyjSs+pXupfn/LKP/S9AAAABiq6o8pvakGEuqq+44eej3/t/PAXfZPtuo5cFOeq85zVN0VG/MtHY/M/0dcDADBcEVWR66r/fPf7gwcPbt25r2+y3d1798W5/vX1FX2To [...]
+<p>conf folder: Contains HDFS configuration files, mainly for configuring Flink's Checkpoint writing and using Hive metadata in FlinkSQL</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/hdfs_conf-8af6d1660d09b58fc28a6fec1bff604b.png" width="824" height="284" class="img__KcZ"></p>
+<p>lib folder: Contains the related Jar dependency packages, as follows:</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/lib-faa76eddded5bdcb4228bf65c2d3122d.png" width="842" height="722" class="img__KcZ"></p>
+<p>Dockerfile file for defining image construction</p>
+<div class="language-dockerfile codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-dockerfile codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">FROM apache/flink:1.14.5-scala_2.11-java8</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">ENV TIME_Z [...]
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step2-image-build-command-using-multi-architecture-build-mode-as-follows">step2: Image build command using multi-architecture build mode, as follows:<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step2-image-build-command-using-multi-architecture-build-mode-as-follows" class="hash-link" aria-label="Direct link to step2: Image build command using multi-architecture build mode, as follows:" title="Direct link to step2 [...]
+<div class="language-dockerfile codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-dockerfile codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">docker buildx build --push --platform linux/amd64 -t ${private image repository address}</span><br></span></code></pre><div class="buttonGroup [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="02-base-image-integration-with-arthas-example"><strong>02 Base Image Integration with Arthas Example</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#02-base-image-integration-with-arthas-example" class="hash-link" aria-label="Direct link to 02-base-image-integration-with-arthas-example" title="Direct link to 02-base-image-integration-with-arthas-example">​</a></h3>
+<p>As more jobs are released and go live within our company, we often encounter performance degradation in long-running jobs, such as reduced Kafka consumption capacity, increased memory usage, and extended GC time. We recommend using Arthas, an open-source Java diagnostic tool by Alibaba. It allows real-time global viewing of Java application load, memory, GC, thread status, and without modifying application code, it enables viewing method call parameters, exceptions, monitoring method  [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/arthas-31f8df2a167d53420d2b4a828003a449.png" width="1080" height="526" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/advanced-e5c462ae9a888deddb5939a7c8065732.png" width="1080" height="416" class="img__KcZ"></p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/arthas_log-fbc7dc0891690e569c6ad63359fc52fd.png" width="1080" height="390" class="img__KcZ"></p>
+<p>Therefore, we integrated Arthas into the base image to facilitate runtime problem troubleshooting.</p>
+<div class="language-dockerfile codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-dockerfile codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">FROM apache/flink:1.14.5-scala_2.11-java8</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">ENV TIME_Z [...]
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="03-resolution-of-dependency-conflicts-in-images"><strong>03 Resolution of Dependency Conflicts in Images</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#03-resolution-of-dependency-conflicts-in-images" class="hash-link" aria-label="Direct link to 03-resolution-of-dependency-conflicts-in-images" title="Direct link to 03-resolution-of-dependency-conflicts-in-images">​</a></h3>
+<p>In the process of using StreamPark, we often encounter dependency conflict exceptions like NoClassDefFoundError, ClassNotFoundException, and NoSuchMethodError in Flink jobs running on base images. The troubleshooting approach is to find the package path of the conflicting class indicated in the error. For example, if the error class is in org.apache.orc<!-- -->:orc-core<!-- -->, go to the corresponding module directory, run <code>mvn dependency::tree</code>, search for orc-core, see w [...]
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step1-clone-the-flink-shaded-project-locally">step1: Clone the flink-shaded project locally👇<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step1-clone-the-flink-shaded-project-locally" class="hash-link" aria-label="Direct link to step1: Clone the flink-shaded project locally👇" title="Direct link to step1: Clone the flink-shaded project locally👇">​</a></h4>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">git clone https://github.com/apache/flink-shaded.git</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy  [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_shaded-f21909c81059b2ea4ebd8307998cbc26.png" width="1080" height="529" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step2-load-the-project-into-idea">step2: Load the project into IDEA<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step2-load-the-project-into-idea" class="hash-link" aria-label="Direct link to step2: Load the project into IDEA" title="Direct link to step2: Load the project into IDEA">​</a></h4>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/idea-d654040d5fad6fefd756ede9a9ac8a4b.png" width="1080" height="586" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step3-exclude-the-conflicting-parts-and-then-package-them">step3: Exclude the conflicting parts and then package them.<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step3-exclude-the-conflicting-parts-and-then-package-them" class="hash-link" aria-label="Direct link to step3: Exclude the conflicting parts and then package them." title="Direct link to step3: Exclude the conflicting parts and then package them.">​</a></h4>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="04-centralized-job-configuration-example"><strong>04 Centralized Job Configuration Example</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#04-centralized-job-configuration-example" class="hash-link" aria-label="Direct link to 04-centralized-job-configuration-example" title="Direct link to 04-centralized-job-configuration-example">​</a></h3>
+<p>One of the great conveniences of using StreamPark is centralized configuration management. You can configure all settings in the conf file in the Flink directory bound to the platform.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">cd /flink-1.14.5/conf</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">vim flink-conf.yaml</span><br></span></c [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/conf-ff77bc47a1f6af137a3326cc05cfdfee.png" width="1080" height="562" class="img__KcZ"></p>
+<p>After completing the configuration, save it. Then go to the platform's Setting, and click on the Flink Conf icon.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/flink_conf-db4fdbcbac08f9e19eaf550c1332de25.png" width="1080" height="351" class="img__KcZ"></p>
+<p>Clicking Sync Conf will synchronize the global configuration file, and new jobs will be submitted with the new configuration.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/sync_conf-9d2b45b6f42376859fda062127e33d82.png" width="1080" height="485" class="img__KcZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="05-apache-streampark-dns-resolution-configuration"><strong>05 Apache StreamPark™ DNS Resolution Configuration</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#05-apache-streampark-dns-resolution-configuration" class="hash-link" aria-label="Direct link to 05-apache-streampark-dns-resolution-configuration" title="Direct link to 05-apache-streampark-dns-resolution-configuration">​</a></h3>
+<p>A correct and reasonable DNS resolution configuration is very important when submitting FlinkSQL on the StreamPark platform. It mainly involves the following points:</p>
+<ol>
+<li>
+<p>Flink jobs' Checkpoint writing to HDFS requires a snapshot write to an HDFS node obtained through ResourceManager. If there are expansions in the Hadoop cluster in the enterprise, and these new nodes are not covered by the DNS resolution service, this will directly lead to Checkpoint failure, affecting online stability.</p>
+</li>
+<li>
+<p>Flink jobs typically need to configure connection strings for different internal data sources. Configuring the database's real IP address often leads to job exits due to IP changes during database migration. Therefore, in production, connection strings are often composed of domain names and attribute parameters, with DNS services resolving them to real IP addresses for access.</p>
+</li>
+</ol>
+<p>Initially, we maintained DNS configuration through Pod Template.</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">apiVersion: v1</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">kind: Pod</span><br></span><span class="token-l [...]
+<p>Although theoretically feasible, we encountered a series of problems in practice. When expanding HDFS, we found failures in Flink's Checkpoint function, and database migration also faced connection failures, causing sudden online service outages. After in-depth investigation, we found that the root cause was in DNS resolution.</p>
+<p>Previously, we used hostAliases to maintain the mapping between domain names and IP addresses. However, this method was costly in practice, as every update of hostAliases required stopping all Flink jobs, undoubtedly increasing our operational costs. To seek a more flexible and reliable method to manage DNS resolution configuration and ensure the normal operation of Flink jobs, we decided to build dnsmasq for bidirectional DNS resolution.</p>
+<p>After configuring and installing dnsmasq, we first needed to override the resolv.conf configuration file in the /etc directory of the Flink image. However, since resolv.conf is a read-only file, if we want to override it, we need to use mounting. Therefore, we first configured resolv.conf as a ConfigMap for use during the override. This way, we can more flexibly and reliably manage DNS resolution configuration, ensuring stable operation of Flink jobs.</p>
+<div class="language-yaml codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-yaml codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> v1</span><br></span><span class= [...]
+<p>Mounting it through Pod Template.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/pod_template-d8a9864bc8486d493025cc5e8b0e6dd1.png" width="1080" height="476" class="img__KcZ"></p>
+<p>This way, DNS related to the big data platform can be maintained on dnsmasq, while the host machine running Flink jobs can follow the DNS resolution process.</p>
+<ol>
+<li>
+<p>First, check the local hosts file to see if there is a corresponding relationship, read the record for resolution, and proceed to the next step if not.</p>
+</li>
+<li>
+<p>The operating system checks the local DNS cache, and if not found, moves to the next step.</p>
+</li>
+<li>
+<p>The operating system searches the DNS server address defined in our network configuration.</p>
+</li>
+</ol>
+<p>This achieves dynamic recognition of DNS changes.</p>
+<h3 class="anchor anchorWithStickyNavbar_myWT" id="06-multi-instance-deployment-practice"><strong>06 Multi-Instance Deployment Practice</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#06-multi-instance-deployment-practice" class="hash-link" aria-label="Direct link to 06-multi-instance-deployment-practice" title="Direct link to 06-multi-instance-deployment-practice">​</a></h3>
+<p>In actual production environments, we often need to operate multiple clusters, including a set for testing and a set for official online use. Tasks are first verified and performance tested in the test cluster, then released to the official online cluster after ensuring accuracy.</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step1-modify-the-port-number-to-avoid-conflicts-between-multiple-service-ports">step1: Modify the port number to avoid conflicts between multiple service ports<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step1-modify-the-port-number-to-avoid-conflicts-between-multiple-service-ports" class="hash-link" aria-label="Direct link to step1: Modify the port number to avoid conflicts between multiple service ports" title=" [...]
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/port_number-e421801c946def0b0e2df3747239fec6.png" width="1080" height="622" class="img__KcZ"></p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step2-modify-workspace">step2: Modify workspace<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step2-modify-workspace" class="hash-link" aria-label="Direct link to step2: Modify workspace" title="Direct link to step2: Modify workspace">​</a></h4>
+<p>Different instance services need to configure different workspaces to avoid resource interference leading to strange bugs.</p>
+<h4 class="anchor anchorWithStickyNavbar_myWT" id="step3-launch-multi-instance-services">step3: Launch multi-instance services<a href="https://streampark.apache.org/blog/streampark-usercase-ziru#step3-launch-multi-instance-services" class="hash-link" aria-label="Direct link to step3: Launch multi-instance services" title="Direct link to step3: Launch multi-instance services">​</a></h4>
+<p>To achieve isolation between production and testing environments, we introduced a key step at the beginning of the startup process. We input the command (for the Hadoop B cluster):</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">export HADOOP_CONF_DIR=/home/streamx/conf</span><br></span></code></pre><div class="buttonGroup_inAn"><button type="button" aria-label="Copy code to cli [...]
+<p>This effectively cut off the default logic of Flink on K8s loading HDFS configuration. This operation ensures that A StreamPark only connects to A Hadoop environment, while B StreamPark connects to B Hadoop environment, thus achieving complete isolation between testing and production environments.</p>
+<p>Specifically, after this command takes effect, we can ensure that Flink jobs submitted on port 10002 connect to the B Hadoop environment. Thus, the B Hadoop environment is isolated from the Hadoop environment used by Flink jobs submitted on port 10000 in the past, effectively preventing interference between different environments and ensuring system stability and reliability.</p>
+<p>The following content is an analysis of Flink's logic for loading the Hadoop environment:</p>
+<div class="language-yaml codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-yaml codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">// Process of finding Hadoop configuration files</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">//1. First</spa [...]
+<p>Then conduct process port occupancy queries:</p>
+<div class="language-shell codeBlockContainer_APcc theme-code-block"><div class="codeBlockContent_IhPH"><pre tabindex="0" class="prism-code language-shell codeBlock_tTXe thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_qImF"><span class="token-line" style="color:#9CDCFE"><span class="token plain">netstat -tlnp | grep 10000</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">netstat -tlnp | grep 10002</span><b [...]
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="benefits-brought"><strong>Benefits Brought</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#benefits-brought" class="hash-link" aria-label="Direct link to benefits-brought" title="Direct link to benefits-brought">​</a></h2>
+<p>Our team has been using StreamX (the predecessor of StreamPark) and, after more than a year of practice and refinement, StreamPark has significantly improved our challenges in developing, managing, and operating Apache Flink® jobs. As a one-stop service platform, StreamPark greatly simplifies the entire development process. Now, we can complete job development, compilation, and release directly on the StreamPark platform, not only lowering the management and deployment threshold of Fl [...]
+<p>Since deploying StreamPark, we have been using the platform on a large scale in a production environment. From initially managing over 50 FlinkSQL jobs to nearly 500 jobs now, as shown in the diagram, StreamPark is divided into 7 teams, each with dozens of jobs. This transformation not only demonstrates StreamPark's scalability and efficiency but also fully proves its strong practical value in actual business.</p>
+<p><img decoding="async" loading="lazy" src="https://streampark.apache.org/assets/images/production_environment-4f155f3b14a4e95c5367ba99a6c5a6f8.png" width="1080" height="522" class="img__KcZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_myWT" id="future-expectations"><strong>Future Expectations</strong><a href="https://streampark.apache.org/blog/streampark-usercase-ziru#future-expectations" class="hash-link" aria-label="Direct link to future-expectations" title="Direct link to future-expectations">​</a></h2>
+<p>As one of the early users of StreamPark, we have maintained close communication with the community, participating in the stability improvement of StreamPark. We have submitted bugs encountered in production operation and new features to the community. In the future, we hope to manage the metadata information of Apache Paimon lake tables and the capability of auxiliary jobs for</p>
+<p>Paimon's Actions on StreamPark. Based on the Flink engine, by interfacing with the Catalog of lake tables and Action jobs, we aim to realize the management and optimization of lake table jobs in one integrated capability. Currently, StreamPark is working on integrating the capabilities with Paimon data, which will greatly assist in real-time data lake ingestion in the future.</p>
+<p>We are very grateful for the technical support that the StreamPark team has provided us all along. We wish Apache StreamPark continued success, more users, and its early graduation to become a top-level Apache project.</p>]]></content>
... 40331 lines suppressed ...