Compare commits

..

163 Commits

Author SHA1 Message Date
Srikanth Chekuri
fa90fad373 chore: add pvcs list (#6654) 2024-12-19 12:01:12 +00:00
Srikanth Chekuri
77420b9d3a chore: address some gaps in k8s monitoring (#6653) 2024-12-19 17:22:39 +05:30
Prashant Shahi
cecc57e72d Merge pull request #6668 from SigNoz/chore/deprecate-develop
chore: develop deprecation and related changes
2024-12-19 13:48:29 +05:30
Prashant Shahi
512adc6471 Merge branch 'main' into chore/deprecate-develop 2024-12-19 13:35:27 +05:30
Prashant Shahi
42fefc65be chore: deprecate develop branch - use main
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-19 13:33:09 +05:30
Prashant Shahi
dcc659907a chore(signoz): pin versions: SigNoz 0.64.0
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-19 13:33:09 +05:30
Prashant Shahi
b90ed375c2 chore(signoz): pin versions: SigNoz 0.63.0, SigNoz OtelCollector 0.111.16
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-19 13:33:09 +05:30
Prashant Shahi
a8a3bd3f7d chore(signoz): pin versions: SigNoz 0.62.0, SigNoz OtelCollector 0.111.15
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-19 13:33:09 +05:30
SagarRajput-7
7405bfbbee feat: changed start and end time logic for consumer lag details (#6605) 2024-12-19 13:01:13 +05:30
Nityananda Gohain
67e822e23e feat: api for trace materialization (#6646)
* feat: api for trace materialization

* fix: minor changes and cleanup

* fix: minor fixes

* fix: update errors

* fix: address comments

* fix: address comments
2024-12-19 11:52:20 +07:00
Shivanshu Raj Shrivastava
60dc479a19 fix: add bucketing (#6669)
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
2024-12-18 19:57:33 +05:30
Nityananda Gohain
85cf4f4e2e fix: use placehold in limit and use proper exists (#6667) 2024-12-18 21:07:31 +07:00
Shivanshu Raj Shrivastava
83aa48c721 update service.instance.id (#6665)
* nit: update resource id and revert the flag
2024-12-18 19:06:22 +05:30
Prashant Shahi
823f84f857 Merge pull request #6664 from SigNoz/release/v0.64.x
Release/v0.64.x
2024-12-18 18:29:05 +05:30
Prashant Shahi
8a4d45084d chore(signoz): pin versions: SigNoz 0.64.0
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-18 17:57:42 +05:30
Prashant Shahi
5bc6c33899 Merge branch 'main' into release/v0.64.x 2024-12-18 17:55:57 +05:30
Shivanshu Raj Shrivastava
83f6dea2db Add support for trace_v3 schema in messaging queues (#6663)
feat: support trace v3 queries
2024-12-18 17:04:01 +05:30
Nityananda Gohain
7031c866e8 fix: add flags for using trace new schema (#6651) 2024-12-18 17:55:22 +07:00
Prashant Shahi
46bc7c7a21 Merge pull request #6662 from SigNoz/release/v0.63.x
Release/v0.63.x
2024-12-18 15:41:24 +05:30
Prashant Shahi
6d9741c3a4 chore(signoz): pin versions: SigNoz 0.63.0, SigNoz OtelCollector 0.111.16
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-18 15:25:20 +05:30
Prashant Shahi
610a8ec704 Merge branch 'main' into release/v0.63.x 2024-12-18 15:07:57 +05:30
Raj Kamal Singh
cd9f27ab08 Fix: QS: logs pipelines: better validation of pipelines being saved (#6652)
* chore: add test validating invalid field paths in pipeline operators are rejected

* chore: refactor posted pipelines validation to use a controller method

* fix: run a collector simulation to validate pipeline config being saved

* chore: minor cleanup
2024-12-18 10:42:14 +05:30
Vibhu Pandey
14fbb1fcda fix(flag): add missing flag back (#6647) 2024-12-17 01:12:31 +05:30
Vikrant Gupta
96da21df05 fix: correlation time stamps for APM to traces and logs (#6632) 2024-12-17 00:00:15 +05:30
Vikrant Gupta
8608f02263 fix: timerange selected for traces to logs (#6634) 2024-12-16 22:35:25 +05:30
Vikrant Gupta
2701ae5c34 fix: unable to remove query tags from the beginning when similar tags present (#6645)
* fix: unable to remove query tags from the begining

* fix: focus only when the filters dropdown is opened

* fix: used auto focus prop
2024-12-16 22:25:37 +05:30
Vibhu Pandey
951593b0a3 feat(licenses): deprecate licenses v2 (#6626)
deprecate licenses v2
2024-12-16 10:23:23 +00:00
Srikanth Chekuri
e6766023dd chore: use tag attributes v2 table (#6616) 2024-12-16 09:59:16 +00:00
Srikanth Chekuri
bef5b96c5c chore: add queries with tag attributes v1 (#6643) 2024-12-16 13:04:55 +05:30
Shaheer Kochai
b29359dee0 fix: improve traces table ux by making the table scrollable (#6423)
* fix: improve traces table ux by making the table scrollable

* chore: remove explicit scroll.x and modify the existing scroll.x from true to max-content

* fix(Traces Explorer): make trace explorer card full-width when collapsed, resizable when expanded
2024-12-16 07:00:40 +00:00
Amlan Kumar Nandy
9a1cd65b73 feat: add functionality to export dashboard as json from listing page 2024-12-16 12:10:21 +05:30
Amlan Kumar Nandy
8ab0c066d6 Merge branch 'develop' into dashboard-list-export-json 2024-12-16 11:39:18 +05:30
Shaheer Kochai
b333aa3775 Feat: Timezone picker feature (#6474)
* feat: time picker hint and timezone picker UI with basic functionality + helper to get timezones

* feat: add support for esc keypress to close the timezone picker

* chore: add the selected timezone as url param and close timezone picker on select

* fix: overall improvement + add searchIndex to timezone

* feat: timezone preferences UI

* chore: improve timezone utils

* chore: change timezone item from div to button

* feat: display timezone in timepicker input

* chore: fix the typo

* fix: don't focus on time picker when timezone is clicked

* fix: fix the issue of timezone breaking for browser and utc timezones

* fix: display the timezone in timepicker hint 'You are at'

* feat: timezone basic functionality (#6492)

* chore: change div to fragment + change type to any as the ESLint complains otherwise

* chore: manage etc timezone filtering with an arg

* chore: update timezone wrapper class name

* fix: add timezone support to downloaded logs

* feat: add current timezone to dashboard list and configure metadata modal

* fix: add pencil icon next to timezone hint + change the copy to Current timezone

* fix: properly handle the escape button behavior for timezone picker

* chore: replace @vvo/tzdb with native Intl API for timezones

* feat: lightmode for timezone picker and timezone adaptation components

* fix: use normald tz in browser timezone

* fix: timezone picker lightmode fixes

* feat: display selected time range in 12 hour format

* chore: remove unnecessary optional chaining

* fix: fix the typo in css variable

* chore: add em dash and change icon for timezone hint in date/time picker

* chore: move pen line icon to the right of timezone offset

* fix: fix the failing tests

* feat: handle switching off the timezone adaptation
2024-12-16 11:27:20 +05:30
amlannandy
8a3319cdf5 chore: address comments 2024-12-16 11:24:57 +05:30
amlannandy
d09c4d947e feat: update unit test 2024-12-16 11:24:57 +05:30
amlannandy
2508e6f9f1 feat: update unit test 2024-12-16 11:24:57 +05:30
amlannandy
1b8213653a feat: update tests 2024-12-16 11:24:57 +05:30
amlannandy
b499b10333 feat: add unit test 2024-12-16 11:24:57 +05:30
amlannandy
b35b975798 chore: address comments 2024-12-16 11:24:57 +05:30
amlannandy
715f8a2363 feat: address comments 2024-12-16 11:24:57 +05:30
amlannandy
8d1c4491b7 feat: add functionality to export dashboard as json from listing page 2024-12-16 11:24:57 +05:30
dependabot[bot]
e3caa6a8f5 chore(deps): bump golang.org/x/crypto from 0.27.0 to 0.31.0 (#6638)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.27.0 to 0.31.0.
- [Commits](https://github.com/golang/crypto/compare/v0.27.0...v0.31.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-14 04:29:25 +00:00
Vibhu Pandey
a1059ed949 feat(signoz-ingestion-key): rename signoz-access-token to signoz-ingestion-key (#6633) 2024-12-13 18:18:12 +05:30
SagarRajput-7
8c46de8eac feat: added table column and row logic for the new api response structure for producer overview (#6433)
* feat: added table column and row logic for the new api response structure for prodcure overview

* feat: fixed typo in function name

* feat: consumed new 2 table merging logic for producer latency overview

* feat: added 3 digit precision to 'ingestion_rate' and 'byte_rate'in consumer overview
2024-12-13 11:25:39 +05:30
Prashant Shahi
2b5a0ec496 Merge pull request #6625 from SigNoz/release/v0.62.x
Release/v0.62.x
2024-12-12 21:02:17 +05:30
Prashant Shahi
a9440c010c chore(signoz): pin versions: SigNoz 0.62.0, SigNoz OtelCollector 0.111.15
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-12 15:28:09 +05:30
Prashant Shahi
f9e7eff357 Merge branch 'main' into release/v0.62.x 2024-12-12 15:22:47 +05:30
Nityananda Gohain
0fbfb6b22b fix: fix count aggregate attribute column name (#6613)
* fix: fix count aggregate attribute column name

* fix: add test for column as well

* fix: use new schema in threshold rule enrichment
2024-12-11 13:37:25 +05:30
Nityananda Gohain
b25df66381 fix: migration for ingestion dashboard (#6610)
* fix: migration for ingestion dashboard

* fix: remove redundant uuid

* Update pkg/query-service/app/dashboards/model.go

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-12-10 18:49:21 +05:30
Nityananda Gohain
32fa5a403c fix: update default alert ch queries for traces and logs (#6552)
* fix: update default alert ch queries for traces and logs

* fix: use service.name instead of peer.service

* fix: add link to docs

* fix: add alias for service name
2024-12-10 18:36:02 +05:30
Nityananda Gohain
f9d4cf19e9 fix: smartTraceAlgo for new schema (#6602) 2024-12-10 13:43:51 +05:30
Amlan Kumar Nandy
81775c7d55 fix: resolve unnecessary refetching of graphs on service details page 2024-12-10 12:00:55 +05:30
amlannandy
8d2666004b fix: resolve the unneccessary refetching of graphs on service details page 2024-12-10 11:39:26 +05:30
Shivanshu Raj Shrivastava
51baf7f8d3 feat: add byte rate to producer API (#6579)
* fix: fix partition check for topic throughput
2024-12-09 15:18:41 +00:00
Amlan Kumar Nandy
31a2926375 chore: replace the 'Get started' CTA with 'New source' 2024-12-09 14:34:18 +05:30
amlannandy
8c6225185d chore: replace the 'Get started' CTA with 'New source' 2024-12-09 14:00:41 +05:30
deepakdinesh1123
d4458d65ad fix(docker): otel-collector-migrator command fixed in docker-compose-core.yaml (#6564)
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-12-07 20:15:07 +05:30
Nityananda Gohain
02d8fdb212 fix: enable smart trace detail (#6596) 2024-12-05 09:30:39 +05:30
Prashant Shahi
47d8c9e3e7 Merge pull request #6593 from SigNoz/release-sync/v0.61.x
Release Sync/v0.61.x
2024-12-04 21:28:47 +05:30
Prashant Shahi
a383c708e3 Merge pull request #6591 from SigNoz/release/v0.61.x
Release/v0.61.x
2024-12-04 20:49:18 +05:30
Prashant Shahi
99367be850 chore(signoz): pin versions: SigNoz 0.61.0, SigNoz OtelCollector 0.111.14
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-12-04 16:21:39 +05:30
Prashant Shahi
73bcc2af46 Merge branch 'main' into release/v0.61.x 2024-12-04 16:17:00 +05:30
Vikrant Gupta
43f856c41b fix: make the entire row clickable in logs quick filters (#6574) 2024-12-03 13:06:07 +05:30
Vikrant Gupta
6384b25af3 feat: show failed payment banner and block the workspace integration (#6560)
* feat: added new API endpoint for fetching the active license

* feat: add setup for apis on frontend

* feat: frontend infrastructure changes for app context and workspace suspended

* feat: added workspace suspended component

* feat: send back to application if workspace is not suspended

* feat: added the missing creative

* chore: only move to suspended state when state is payment_failed

* chore: address review comments

* fix: tab naming
2024-12-02 19:58:38 +05:30
Yunus M
507c0600cd chore: remove infra monitoring ff (#6571) 2024-12-02 17:36:37 +05:30
Yunus M
3d092ec2ae chore: update sentry react to v8 (#6569) 2024-12-02 14:21:35 +05:30
SagarRajput-7
2b8a610a07 fix: fixed typo in metric view dashboard title (#6557) 2024-11-29 11:27:54 +05:30
Nityananda Gohain
f7f8bf1867 fix: add dashbard names and update logs count in telemetry (#6553) 2024-11-28 20:46:06 +05:30
Vikrant Gupta
813cd845f4 fix: explicit mouse move event user action (#6549)
* fix: explicit mouse move event user action

* fix: handle next element selection on click

* fix: handle the last 0 case

* fix: handle search reset
2024-11-27 19:51:57 +05:30
Yunus M
6aee991633 feat: handle keyboard navigations for column selection in logs explor… (#6548)
* feat: handle keyboard navigations for column selection in logs explorer options view

* chore: remove console log
2024-11-27 13:04:23 +00:00
Yunus M
2bfd31841e feat: improve empty hosts, incorrect metrics and no filter views (#6530)
* feat: improve empty hosts, incorrect metrics and no filter views

* feat: add infra monitoring - host lists - usage events (#6536)

* feat: add usasge events

* feat: add reqrest early access events

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-27 16:00:08 +05:30
Prashant Shahi
a320a16556 Merge pull request #6546 from SigNoz/release/v0.60.x
Release/v0.60.x
2024-11-27 15:54:49 +05:30
Prashant Shahi
7cd8442e6e chore(signoz): pin versions: SigNoz 0.60.0, SigNoz OtelCollector 0.111.13
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-11-27 15:13:08 +05:30
Raj Kamal Singh
486632b64e Chore/qs use collector simulator from signoz otel collector (#6539)
* chore: qs: logs pipeline preview: use collectorsimulator from signoz-otel-collector

* chore: qs: remove collectorsimulator: located in signoz-otel-collector now
2024-11-27 11:53:39 +05:30
Philipp
328d955a74 Fix for running signoz-schema-migrator under docker-swarm (#6489) 2024-11-27 03:15:32 +00:00
Nityananda Gohain
a3e57a1829 fix: add telemetry for trace migration (#6537) 2024-11-26 20:57:36 +05:30
Vikrant Gupta
24ab18d988 chore: move away from parallel usages of licenses v2 and v3 (#6527)
* chore: move all the usages of license v2 to license v3

* chore: added log lines for debugging
2024-11-25 23:51:45 +05:30
Srikanth Chekuri
2e4956c2f7 chore: add additional info for host metrics onboarding (#6529) 2024-11-25 23:23:42 +05:30
Nityananda Gohain
b85f7921f4 fix: update api's to repect the new changes in attributes table (#6526) 2024-11-25 17:05:43 +05:30
Nityananda Gohain
0c2a15d86f fix: add settings to allow distributed_product_mode for trace panel (#6517)
* fix: add settings to allow distributed_product_mode for trace panel

* fix: tests fixed

* fix: add 10gb memory limit

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-22 22:48:35 +05:30
Nityananda Gohain
afbba1ed44 fix: add v2 for getServices and GetTopOperations (#6516)
* fix: add v2 for getServices and GetTopOperations

* fix: add comments

* fix: update logic for filters

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-22 21:57:25 +05:30
Yunus M
20f748f9c4 chore: update http proxy middleware (#6499) 2024-11-22 14:21:55 +00:00
Vikrant Gupta
96b5e0920f fix: decrease the pad angle and remove the empty legend entries (#6507)
* fix: pie chart should not have padding between adjacent items

* fix: remove the labels which do not have any data
2024-11-22 11:06:47 +00:00
Srikanth Chekuri
7fe4f8cc56 chore: remove the fancy text while fetching data (#6505) 2024-11-22 10:50:25 +00:00
Srikanth Chekuri
ed6abe5a95 chore: enable sorting for hosts list (#6502) 2024-11-22 10:37:42 +00:00
SagarRajput-7
a6968d452c fix: updated folder name and structure (#6488) 2024-11-22 14:05:22 +05:30
SagarRajput-7
0c5db1937e fix: fixed back navigation issue for dashboard details coming from dashboard list table (#6496) 2024-11-22 13:49:02 +05:30
Nityananda Gohain
67058b2a17 feat: trace v4 integration (#6226)
* feat: trace v4 inital commit

* fix: add remaining files

* fix: integrate with querier

* fix: get trace by id api updated

* fix: add servicename resource filter

* fix: tests

* fix: use correct prepQUery

* fix: services page

* fix: minor fixes to use the new table in api's and querier

* fix: add support for window based pagination

* feat: support for faster trace detail

* fix: searchTraces

* fix: attribute enrichment updated and issue in group by

* fix: issues in group by

* fix: enrichment using alias

* fix: test file added

* fix: tests

* fix: group by with filters

* fix: add subquery

* fix: trigger builde

* fix: update pagination logic and few ch column names

* fix: update qb

* fix: add tests

* feat: minor fixes

* fix: update pagination logic

* fix: update pagination logic

* fix: remove utils

* fix: remove unwanted API's

* fix: attribute and attribute values v2

* fix: autocomplete api's updated

* fix: tests fixed

* feat: minor fixes

* fix: update telemetry functions

* fix: dont use alias, use proper col names

* fix: move models to it's own file

* fix: minor fixes

* fix: address comments

* fix: add to serviceoverview function

* fix: add changes to overview function

* fix: address comments

* fix: remove printlines

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-22 12:00:29 +05:30
Nityananda Gohain
e46d969143 feat: ttl api for new trace tables (#6497)
* feat: tt api for new trace tables

* fix: remove print and use correct context

* fix: update var name
2024-11-21 22:37:28 +05:30
Yunus M
e4505693b0 feat: added the host list view and filters (#6210) (#6501)
* feat: added the host list view and filters (#6210)

* feat: added the host list view and filters

* feat: removed group by filter and added autocomplete for where clause

* feat: updated the table view and added the pagination

* feat: pass updated filters to api to get filtered data in the list

* feat: added global time range and order by for cpu,memory,iowait,load

* feat: added order by and color codes for cpu and memory usage progress bar

* refactor: removed inline styles

* Host lists improvement (#6366)

* style: added new style changes for date time selection in host lists view

* style: added padding to date time selector

* style: removed unnecessary styles for host tabs

* style: removed unused css

* feat: added the host detail view (#6267)

* Host containers (#6297)

* feat: added the host detail view

* feat: completed containers and processes details view

* Show host metrics panels in metrics tab. (#6306)

* feat: added the host detail view

* feat: completed containers and processes details view

* feat: added host metrics panels in metrics tabs

* refactor: removed inline styles from host containers and processes tabs

* style: added top and bottom margin to containers and processes tab

* Metrics time selection (#6360)

* feat: added the host detail view

* feat: completed containers and processes details view

* feat: added host metrics panels in metrics tabs

* refactor: removed inline styles from host containers and processes tabs

* feat: added logs and traces tab in host metrics detail view

* chore: removed console statements

* feat: added DateTimeSelection component in metrics tab

* style: added top and bottom margin to containers and processes tab

* style: removed inline styles

* feat: added logs and traces tab in host metrics detail view (#6359)

* feat: added the host detail view

* feat: completed containers and processes details view

* feat: added host metrics panels in metrics tabs

* refactor: removed inline styles from host containers and processes tabs

* feat: added logs and traces tab in host metrics detail view

* chore: removed console statements

* feat: added filters and time selection in traces tab

* fix: resolved metrics,logs and traces tab issues

* feat: added navigation for logs and traces to respective explorer pages

* fix: added the code for logs tab and navigation to respective explorer page

* fix: added fixes for date time selection custom issue

* style: added styles for light mode

* refactor: removed unused code and added comments

* refactor: added new code for host metric attribute keys

* feat: reset query data once we are on infra monitoring page

* chore: remove optional parameter from get attributes and groupby interfaces

* feat: update ui as per the designs

* fix: logs list, time select and other ui issues

* feat: update title for infra monitoring page

* feat: update copies

* feat: update styles for light mode

* fix: reset page size on filter, open explorers in new tab, enable horizontal scroll

* feat: traces tab updates

* feat: move infra monitoring behind ff

* fix: remove sorting from host listing page

---------

Co-authored-by: Yunus M <myounis.ar@live.com>

* chore: fix lint errors

---------

Co-authored-by: rahulkeswani101 <rahul@signoz.io>
2024-11-21 21:53:05 +05:30
Prashant Shahi
2dad9a3093 Merge pull request #6498 from SigNoz/sync/post-release-v0.59
Sync/post release v0.59
2024-11-21 19:58:05 +05:30
Prashant Shahi
7b6bd83e9a Merge branch 'main' into sync/post-release-v0.59 2024-11-21 16:10:05 +05:30
Nityananda Gohain
d43adc24ef feat: update clickhouse reader to support new trace schema (#6479)
* feat: update clickhouse reader to support new trace schema

* fix: minor fixes

* fix: address comments

* fix: add changes to overview function

* fix: add changes to overview function

* fix: use hardcoded true

* fix: address comments
2024-11-20 23:35:44 +05:30
Nityananda Gohain
5044861773 fix: remove service overview API (#6495) 2024-11-20 22:51:29 +05:30
Prashant Shahi
71d1e12be7 Merge pull request #6490 from SigNoz/release/v0.59.x
Release/v0.59.x
2024-11-20 19:29:36 +05:30
Prashant Shahi
5a70123b06 chore(signoz): pin versions: SigNoz 0.59.0, SigNoz OtelCollector 0.111.9
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-11-20 16:45:18 +05:30
Prashant Shahi
f410df846a Merge branch 'main' into release/v0.59.x 2024-11-20 16:35:05 +05:30
Yunus M
d7bd72e2aa chore: update http proxy middleware (#6486) 2024-11-20 14:34:38 +05:30
Shaheer Kochai
20e64b5102 chore: add log events to alert history page (#6396)
* chore: pass active route with RouteTab's onChangeHandler

* chore: add log events to alert history page

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-20 04:38:27 +00:00
Vikrant Gupta
0b03ff07f1 chore: exactly match the list licenses v2 structure with FF on (#6481) 2024-11-19 19:10:59 +05:30
Vibhu Pandey
c01060ccf7 feat(key): enable edit access for gateway (#6480) 2024-11-19 12:43:25 +00:00
Nityananda Gohain
57c2326908 Trace static fields and structs for trace v4. (#6469)
* fix: update static fields and add response structs

* fix: update ch names

* fix: move models to it's own file
2024-11-19 14:38:12 +05:30
Vikrant Gupta
649560265e chore: set zeusURL via build time variable (#6475) 2024-11-19 13:19:01 +05:30
Prashant Shahi
c8d0f7638e Merge pull request #6471 from SigNoz/release/v0.58.x
Release/v0.58.2
2024-11-19 12:16:18 +05:30
Prashant Shahi
25484caa4c Merge branch 'main' into release/v0.58.x 2024-11-19 11:35:28 +05:30
Prashant Shahi
9ccc686c63 chore(signoz): pin versions: SigNoz 0.58.2
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-11-19 11:27:28 +05:30
Prashant Shahi
3ad6ff73df Merge branch 'develop' into release/v0.58.x 2024-11-19 11:27:01 +05:30
Srikanth Chekuri
c93cf1ce95 fix: incorrect formula for apdex (#6460) 2024-11-19 05:42:04 +00:00
Prashant Shahi
a9ced66258 Merge branch 'develop' into release/v0.58.x 2024-11-19 11:06:27 +05:30
Nityananda Gohain
98a350692b fix: update TestListTsRange to return all range (#6470) 2024-11-19 10:51:40 +05:30
Vikrant Gupta
d93f72f18d chore: use the license v2 key to fill licenses v3 on startup (#6468)
* feat: use the license v2 key to fill licenses v3 on startup

* chore: make the init only if the licenses v2 is present

* chore: address review comments
2024-11-18 17:55:00 +05:30
Shaheer Kochai
a59e7b9dfb feat: add 'create channel' option in channels list and refetch alert channels on opening the channels dropdown (#6416)
* feat: add channel creation option and auto-refresh channels list on dropdown open

* chore: move inline styles to style.ts

* fix: show the prompt to ask admin if the user doesn't have permissions

* fix: display create channel option only if the user has permission

* fix: prevent repeated new alert event logs + log new channel option inside dropdown
2024-11-18 06:30:06 +00:00
Nityananda Gohain
91bbeaf175 fix: remove unwanted trace API's (#6464) 2024-11-18 10:27:08 +05:30
Yunus M
22e61e1605 [Snyk] Security upgrade alpine from 3.18.6 to 3.20.3 (#6463)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-6913411
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249236
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249265
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249265
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249419

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-11-17 21:56:15 +05:30
Srikanth Chekuri
656d1c2b1c chore: add missing alert telemetry (#6459) 2024-11-16 19:16:05 +00:00
Srikanth Chekuri
493ae4fd07 chore: add user email to log_comment (#6461) 2024-11-17 00:36:10 +05:30
Srikanth Chekuri
cd1ec561b1 fix: compare op outside bounds for anomaly alert (#6458) 2024-11-16 20:17:34 +05:30
Nityananda Gohain
0acf39a532 feat: support for new enrichment logic in traces (#6438)
* feat: support for new enrichment logic in traces

* fix: default test added

* fix: update func name in links

* Update pkg/query-service/utils/logs_test.go

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2024-11-16 15:19:25 +05:30
Prashant Shahi
d859301d30 Merge branch 'develop' into release/v0.58.x 2024-11-16 04:50:33 +05:30
Nityananda Gohain
35f4eaa23b fix: update logs struct to fix live logs (#6453) 2024-11-15 22:42:16 +05:30
Prashant Shahi
07c24bcdf3 Merge pull request #6452 from SigNoz/release/v0.58.x
Release/v0.58.1
2024-11-15 22:36:10 +05:30
Nityananda Gohain
77c5f17dce feat: support for window based pagination in new trace v4 (#6440)
* feat: support for window based pagination in new trace v4

* fix: update pagination logic

* fix: update comment

* fix: substract correct length

* fix: revert changes

* fix: add tests for querier

* fix: rename matcher

* fix: handle offset inmemory for list queries in traces

* fix: correct var name

* fix: add max pagination limit for traces
2024-11-15 22:13:28 +05:30
Prashant Shahi
a11aadb712 Merge branch 'main' into release/v0.58.x 2024-11-15 22:06:09 +05:30
Prashant Shahi
bc9c7b5f1d chore(signoz): pin versions: SigNoz 0.58.1
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-11-15 22:02:47 +05:30
Prashant Shahi
1bba932d08 Merge branch 'develop' into release/v0.58.x 2024-11-15 22:01:55 +05:30
SagarRajput-7
c1478c4e54 feat: removed dashboard uuid is all cases be it duplicate, empty or somevalid, while import json (#6448)
* feat: removed dashboard uuid is all cases be it duplicate, empty or somevalid, while import json

* feat: added comment to better explain the logic
2024-11-15 19:35:29 +05:30
Yunus M
371224a64a fix: show org onboarding only to cloud customers (#6451) 2024-11-15 19:12:38 +05:30
Yunus M
504bc0d541 feat: ingestion limits - add toggle feature (#6430) 2024-11-15 08:32:31 +00:00
Nityananda Gohain
2faa0c6d4f feat: trace V4 QB (#6407)
* feat: trace V4 QB

* fix: update get column name and remove id

* fix: handle contains and update tests

* fix: remove unwanted step interval calculation

* fix: add test cases

* fix: add tests for static columns in QB

* fix: add more order by tests

* fix: update order by logic
2024-11-13 20:30:01 +05:30
Srikanth Chekuri
969ac5028e chore: add v2 metric writer to pipelines (#6345) 2024-11-13 10:41:28 +00:00
Prashant Shahi
3f7adeb040 Merge branch 'develop' into release/v0.58.x 2024-11-13 12:01:54 +05:30
Srikanth Chekuri
323da3494b chore: add experimental rate/increase calc (#6432) 2024-11-13 11:47:56 +05:30
Vikrant Gupta
01fda51959 chore: return proper http codes on unique constraint error (#6428) 2024-11-13 00:25:00 +05:30
Srikanth Chekuri
85ac21f253 fix: update request payload for span metrics queries (#6323) 2024-11-12 17:22:42 +00:00
Srikanth Chekuri
fd9e9f0fb3 chore: add k8s {deployment, daemonset, statefulset, job} resources (#6401) 2024-11-12 15:23:40 +00:00
Nityananda Gohain
d5523fc092 fix: ignore ts for panel type table (#6419) 2024-11-12 08:04:45 +00:00
Nityananda Gohain
2ec641b99e fix: add severity_text legend (#6415) 2024-11-12 05:54:22 +00:00
Ekansh Gupta
d1503f1418 feat: fixProducerAPI (#6422)
chore: bugfix
2024-11-12 05:30:36 +00:00
Vikrant Gupta
e974e9d47f feat: consume the new licenses v3 structure. (#6341)
* feat: setup for licenses v3 integration

* feat: added some more logic

* feat: validator changes

* chore: added a couple of todos

* feat: added config parameter for licenses v3 and the boot option

* feat: some typo fix

* feat: added refresh licenses handler

* feat: handle the start manager license activation

* chore: text updates

* feat: added list licenses call

* chore: refactor the entire code to cleanup interfaces

* fix: nil pointer error

* chore: some minor edits

* feat: model changes

* feat: model changes

* fix: utilise factory pattern

* feat: added default basic plan

* chore: added test cases for new license function

* feat: added more test cases

* chore: make the licenses id not null

* feat: cosmetic changes

* feat: cosmetic changes

* feat: update zeus URL

* chore: license testing fixes

* feat: added license status and category handling for query-service

* chore: added v3 support in v2 endpoint

* chore: http response codes and some code cleanup

* chore: added detailed test cases

* chore: address review comments

* chore: some misc cleanup
2024-11-12 01:40:10 +05:30
Shaheer Kochai
577a169508 feat: alert rename interaction (#6208)
* feat: alert rename interaction

* feat: add support for enter and escape shortcuts to submit and cancel rename

* chore: add missing alert field

* chore: update the style similar to dashboard rename

* refactor: remove buttonProps

* chore: add missing alert property to fix the build

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-11 19:13:07 +00:00
Shaheer Kochai
939e2a3570 fix: fix the issue of adding new query in new alert page changing the data source (#6286)
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2024-11-11 07:34:20 +00:00
Yunus M
b64326070c [Snyk] Fix for 2 vulnerabilities (#6215)
* fix: frontend/package.json & frontend/yarn.lock to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-UPLOT-6209224
- https://snyk.io/vuln/SNYK-JS-VUETEMPLATECOMPILER-8219888

* chore: upgrade design tokens to 1.1.3

---------

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: ahmadshaheer <ashaheerki@gmail.com>
2024-11-11 06:45:43 +00:00
SagarRajput-7
63872983c6 feat: added metric page in messaging queues (#6399)
* feat: added metric page in messaging queues

* feat: added misc fixes

* feat: removed a class name from mqcards

* feat: added lightMode styles for kafka 2.0 (#6400)

* feat: resolved comments and used strings
2024-11-09 13:04:43 +05:30
Prashant Shahi
eb6670980a Merge pull request #6405 from SigNoz/release/v0.58.x
Release/v0.58.x
2024-11-08 21:49:57 +05:30
Srikanth Chekuri
831540eaf0 fix: test notification missing for anomaly alert (#6391) 2024-11-08 15:40:09 +00:00
Prashant Shahi
48f3b9cacb chore(signoz): pin versions: SigNoz 0.58.0, SigNoz OtelCollector 0.111.8
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-11-08 16:02:59 +05:30
Prashant Shahi
eaf8571fe9 Merge branch 'main' into release/v0.58.x 2024-11-08 15:49:41 +05:30
Nityananda Gohain
22c10f9479 Issue 6367 (#6376)
* fix: issue with orderby by materialized column

* fix: tests

* fix: order by issue in old explorer as well
2024-11-08 07:05:32 +00:00
Yunus M
e748fb0655 chore: update events for onboarding part 2 (#6397) 2024-11-08 06:52:39 +00:00
SagarRajput-7
fdc54a62a9 fix: kafka - misc fix and features (#6379)
* feat: fixed multiple fixes and chores in kafka 2.0

* feat: fixed producer latency - producer-detail call

* feat: fixed mq-detail page layout and pagination

* feat: resolved comments
2024-11-07 23:49:47 +05:30
SagarRajput-7
abe0ab69b0 feat: added kafka - scenario - 4 - drop rate table (#6380)
* feat: added kafka - scenario - 4 - drop rate table

* feat: added api, new table and traceid redirection

* feat: code refactor
2024-11-07 23:37:54 +05:30
Shaheer Kochai
e623c92615 fix: adding the key requires double enter before it gets added as label key after the first label (#6296) 2024-11-07 15:03:59 +00:00
Shaheer Kochai
dc5917db01 chore: setup router compatibility package (#6285) 2024-11-07 19:02:23 +04:30
dependabot[bot]
d6a7f0b6f4 chore(deps): bump express from 4.19.2 to 4.21.1 in /frontend (#6166)
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.21.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.1)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-07 11:48:05 +05:30
Vikrant Gupta
471803115e feat: added support for instrumentation scope in logs (#6378)
* feat: added support for instrumentation scope in logs

* chore: remove console logs

* fix: the logic for rendering prefix

* feat: address review comments

---------

Co-authored-by: SagarRajput-7 <162284829+SagarRajput-7@users.noreply.github.com>
2024-11-07 11:47:35 +05:30
SagarRajput-7
8403a3362d feat: corrected the handling of relativeTime as null in alertHistory page (#6392) 2024-11-07 02:34:11 +05:30
Nityananda Gohain
64d46bc855 feat: support for scope in logs old and new qb (#6339) 2024-11-06 20:47:04 +05:30
SagarRajput-7
c9fee27604 feat: updated the design for Messaging Queue - summary section (#6319)
* feat: updated the design for Messaging Queue - summary section

* feat: resolved comments

* feat: added better logic for switch options and resolved query
2024-11-06 14:44:39 +05:30
SagarRajput-7
f1b6b2d3d8 feat: added onboarding detail for consumer setup (#6372)
* feat: added onboarding detail for consumer setup

* feat: corrected spelling

* feat: reorders imports correctly
2024-11-06 14:43:54 +05:30
Prashant Shahi
b10c22223b Merge pull request #6300 from SigNoz/release/signoz-0.57.0
Release/signoz 0.57.0
2024-10-29 00:45:14 +05:30
Prashant Shahi
cdde369748 Merge branch 'develop' into release/signoz-0.57.0 2024-10-28 21:26:47 +05:30
Prashant Shahi
523cbcd6fc chore: go mod tidy
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-10-28 19:40:23 +05:30
Prashant Shahi
eeadc021e1 chore(signoz): pin versions: SigNoz 0.57.0
Signed-off-by: Prashant Shahi <prashant@signoz.io>
2024-10-28 19:40:10 +05:30
747 changed files with 23108 additions and 10057 deletions

View File

@@ -3,7 +3,6 @@ name: build-pipeline
on:
pull_request:
branches:
- develop
- main
- release/v*

View File

@@ -3,7 +3,7 @@ name: "Update PR labels and Block PR until related docs are shipped for the feat
on:
pull_request:
branches:
- develop
- main
types: [opened, edited, labeled, unlabeled]
permissions:

View File

@@ -42,7 +42,7 @@ jobs:
kubectl create ns sample-application
# apply hotrod k8s manifest file
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/develop/sample-apps/hotrod/hotrod.yaml
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/main/sample-apps/hotrod/hotrod.yaml
# wait for all deployments in sample-application namespace to be READY
kubectl -n sample-application get deploy --output name | xargs -r -n1 -t kubectl -n sample-application rollout status --timeout=300s

View File

@@ -2,7 +2,8 @@ name: Jest Coverage - changed files
on:
pull_request:
branches: develop
branches:
- main
jobs:
build:
@@ -11,7 +12,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
ref: "refs/heads/develop"
ref: "refs/heads/main"
token: ${{ secrets.GITHUB_TOKEN }} # Provide the GitHub token for authentication
- name: Fetch branch

View File

@@ -4,7 +4,6 @@ on:
push:
branches:
- main
- develop
tags:
- v*

View File

@@ -3,7 +3,6 @@ on:
pull_request:
branches:
- main
- develop
paths:
- 'frontend/**'
defaults:

View File

@@ -1,12 +1,12 @@
name: staging-deployment
# Trigger deployment only on push to develop branch
# Trigger deployment only on push to main branch
on:
push:
branches:
- develop
- main
jobs:
deploy:
name: Deploy latest develop branch to staging
name: Deploy latest main branch to staging
runs-on: ubuntu-latest
environment: staging
permissions:

View File

@@ -44,7 +44,7 @@ jobs:
git add .
git stash push -m "stashed on $(date --iso-8601=seconds)"
git fetch origin
git checkout develop
git checkout main
git pull
# This is added to include the scenerio when new commit in PR is force-pushed
git branch -D ${GITHUB_BRANCH}

View File

@@ -339,7 +339,7 @@ to make SigNoz UI available at [localhost:3301](http://localhost:3301)
**5.1.1 To install the HotROD sample app:**
```bash
curl -sL https://github.com/SigNoz/signoz/raw/develop/sample-apps/hotrod/hotrod-install.sh \
curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh \
| HELM_RELEASE=my-release SIGNOZ_NAMESPACE=platform bash
```
@@ -362,7 +362,7 @@ kubectl -n sample-application run strzal --image=djbingham/curl \
**5.1.4 To delete the HotROD sample app:**
```bash
curl -sL https://github.com/SigNoz/signoz/raw/develop/sample-apps/hotrod/hotrod-delete.sh \
curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-delete.sh \
| HOTROD_NAMESPACE=sample-application bash
```

View File

@@ -8,6 +8,7 @@ BUILD_HASH ?= $(shell git rev-parse --short HEAD)
BUILD_TIME ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
BUILD_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
DEV_LICENSE_SIGNOZ_IO ?= https://staging-license.signoz.io/api/v1
ZEUS_URL ?= https://api.signoz.cloud
DEV_BUILD ?= "" # set to any non-empty value to enable dev build
# Internal variables or constants.
@@ -33,8 +34,9 @@ buildHash=${PACKAGE}/pkg/query-service/version.buildHash
buildTime=${PACKAGE}/pkg/query-service/version.buildTime
gitBranch=${PACKAGE}/pkg/query-service/version.gitBranch
licenseSignozIo=${PACKAGE}/ee/query-service/constants.LicenseSignozIo
zeusURL=${PACKAGE}/ee/query-service/constants.ZeusURL
LD_FLAGS=-X ${buildHash}=${BUILD_HASH} -X ${buildTime}=${BUILD_TIME} -X ${buildVersion}=${BUILD_VERSION} -X ${gitBranch}=${BUILD_BRANCH}
LD_FLAGS=-X ${buildHash}=${BUILD_HASH} -X ${buildTime}=${BUILD_TIME} -X ${buildVersion}=${BUILD_VERSION} -X ${gitBranch}=${BUILD_BRANCH} -X ${zeusURL}=${ZEUS_URL}
DEV_LD_FLAGS=-X ${licenseSignozIo}=${DEV_LICENSE_SIGNOZ_IO}
all: build-push-frontend build-push-query-service

View File

@@ -58,7 +58,7 @@ from the HotROD application, you should see the data generated from hotrod in Si
```sh
kubectl create ns sample-application
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/develop/sample-apps/hotrod/hotrod.yaml
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/main/sample-apps/hotrod/hotrod.yaml
```
To generate load:

View File

@@ -146,11 +146,12 @@ services:
condition: on-failure
query-service:
image: signoz/query-service:0.56.0
image: signoz/query-service:0.64.0
command:
[
"-config=/root/config/prometheus.yml",
"--use-logs-new-schema=true"
"--use-logs-new-schema=true",
"--use-trace-new-schema=true"
]
# ports:
# - "6060:6060" # pprof port
@@ -186,7 +187,7 @@ services:
<<: *db-depend
frontend:
image: signoz/frontend:0.56.0
image: signoz/frontend:0.64.0
deploy:
restart_policy:
condition: on-failure
@@ -199,7 +200,7 @@ services:
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
otel-collector:
image: signoz/signoz-otel-collector:0.111.5
image: signoz/signoz-otel-collector:0.111.16
command:
[
"--config=/etc/otel-collector-config.yaml",
@@ -237,13 +238,15 @@ services:
- query-service
otel-collector-migrator:
image: signoz/signoz-schema-migrator:0.111.5
image: signoz/signoz-schema-migrator:0.111.16
deploy:
restart_policy:
condition: on-failure
delay: 5s
command:
- "--dsn=tcp://clickhouse:9000"
- "sync"
- "--dsn=tcp://clickhouse:9000"
- "--up="
depends_on:
- clickhouse
# - clickhouse-2

View File

@@ -66,28 +66,6 @@ processors:
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
detectors: [env, system] # include ec2 for AWS, gcp for GCP and azure for Azure.
timeout: 2s
signozspanmetrics/cumulative:
metrics_exporter: clickhousemetricswrite
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
dimensions_cache_size: 100000
dimensions:
- name: service.namespace
default: default
- name: deployment.environment
default: default
# This is added to ensure the uniqueness of the timeseries
# Otherwise, identical timeseries produced by multiple replicas of
# collectors result in incorrect APM metrics
- name: signoz.collector.id
- name: service.version
- name: browser.platform
- name: browser.mobile
- name: k8s.cluster.name
- name: k8s.node.name
- name: k8s.namespace.name
- name: host.name
- name: host.type
- name: container.name
# memory_limiter:
# # 80% of maximum memory up to 2G
# limit_mib: 1500
@@ -132,12 +110,15 @@ exporters:
clickhousetraces:
datasource: tcp://clickhouse:9000/signoz_traces
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
use_new_schema: true
clickhousemetricswrite:
endpoint: tcp://clickhouse:9000/signoz_metrics
resource_to_telemetry_conversion:
enabled: true
clickhousemetricswrite/prometheus:
endpoint: tcp://clickhouse:9000/signoz_metrics
clickhousemetricswritev2:
dsn: tcp://clickhouse:9000/signoz_metrics
# logging: {}
clickhouselogsexporter:
dsn: tcp://clickhouse:9000/signoz_logs
@@ -161,20 +142,20 @@ service:
pipelines:
traces:
receivers: [jaeger, otlp]
processors: [signozspanmetrics/cumulative, signozspanmetrics/delta, batch]
processors: [signozspanmetrics/delta, batch]
exporters: [clickhousetraces]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [clickhousemetricswrite]
metrics/generic:
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
metrics/hostmetrics:
receivers: [hostmetrics]
processors: [resourcedetection, batch]
exporters: [clickhousemetricswrite]
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
metrics/prometheus:
receivers: [prometheus]
processors: [batch]
exporters: [clickhousemetricswrite/prometheus]
exporters: [clickhousemetricswrite/prometheus, clickhousemetricswritev2]
logs:
receivers: [otlp, tcplog/docker]
processors: [batch]

View File

@@ -69,10 +69,12 @@ services:
- --storage.path=/data
otel-collector-migrator:
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5}
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.16}
container_name: otel-migrator
command:
- "sync"
- "--dsn=tcp://clickhouse:9000"
- "--up="
depends_on:
clickhouse:
condition: service_healthy
@@ -84,7 +86,7 @@ services:
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
otel-collector:
container_name: signoz-otel-collector
image: signoz/signoz-otel-collector:0.111.5
image: signoz/signoz-otel-collector:0.111.16
command:
[
"--config=/etc/otel-collector-config.yaml",

View File

@@ -25,7 +25,8 @@ services:
command:
[
"-config=/root/config/prometheus.yml",
"--use-logs-new-schema=true"
"--use-logs-new-schema=true",
"--use-trace-new-schema=true"
]
ports:
- "6060:6060"

View File

@@ -162,12 +162,13 @@ services:
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
query-service:
image: signoz/query-service:${DOCKER_TAG:-0.56.0}
image: signoz/query-service:${DOCKER_TAG:-0.64.0}
container_name: signoz-query-service
command:
[
"-config=/root/config/prometheus.yml",
"--use-logs-new-schema=true"
"--use-logs-new-schema=true",
"--use-trace-new-schema=true"
]
# ports:
# - "6060:6060" # pprof port
@@ -201,7 +202,7 @@ services:
<<: *db-depend
frontend:
image: signoz/frontend:${DOCKER_TAG:-0.56.0}
image: signoz/frontend:${DOCKER_TAG:-0.64.0}
container_name: signoz-frontend
restart: on-failure
depends_on:
@@ -213,7 +214,7 @@ services:
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
otel-collector-migrator-sync:
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5}
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.16}
container_name: otel-migrator-sync
command:
- "sync"
@@ -228,7 +229,7 @@ services:
# condition: service_healthy
otel-collector-migrator-async:
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5}
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.16}
container_name: otel-migrator-async
command:
- "async"
@@ -245,7 +246,7 @@ services:
# condition: service_healthy
otel-collector:
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.5}
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.16}
container_name: signoz-otel-collector
command:
[

View File

@@ -167,13 +167,14 @@ services:
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
query-service:
image: signoz/query-service:${DOCKER_TAG:-0.56.0}
image: signoz/query-service:${DOCKER_TAG:-0.64.0}
container_name: signoz-query-service
command:
[
"-config=/root/config/prometheus.yml",
"-gateway-url=https://api.staging.signoz.cloud",
"--use-logs-new-schema=true"
"--use-logs-new-schema=true",
"--use-trace-new-schema=true"
]
# ports:
# - "6060:6060" # pprof port
@@ -208,7 +209,7 @@ services:
<<: *db-depend
frontend:
image: signoz/frontend:${DOCKER_TAG:-0.56.0}
image: signoz/frontend:${DOCKER_TAG:-0.64.0}
container_name: signoz-frontend
restart: on-failure
depends_on:
@@ -220,7 +221,7 @@ services:
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
otel-collector-migrator:
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5}
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.16}
container_name: otel-migrator
command:
- "--dsn=tcp://clickhouse:9000"
@@ -234,7 +235,7 @@ services:
otel-collector:
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.5}
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.16}
container_name: signoz-otel-collector
command:
[

View File

@@ -57,35 +57,11 @@ receivers:
labels:
job_name: otel-collector
processors:
batch:
send_batch_size: 10000
send_batch_max_size: 11000
timeout: 10s
signozspanmetrics/cumulative:
metrics_exporter: clickhousemetricswrite
metrics_flush_interval: 60s
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
dimensions_cache_size: 100000
dimensions:
- name: service.namespace
default: default
- name: deployment.environment
default: default
# This is added to ensure the uniqueness of the timeseries
# Otherwise, identical timeseries produced by multiple replicas of
# collectors result in incorrect APM metrics
- name: signoz.collector.id
- name: service.version
- name: browser.platform
- name: browser.mobile
- name: k8s.cluster.name
- name: k8s.node.name
- name: k8s.namespace.name
- name: host.name
- name: host.type
- name: container.name
# memory_limiter:
# # 80% of maximum memory up to 2G
# limit_mib: 1500
@@ -143,12 +119,15 @@ exporters:
clickhousetraces:
datasource: tcp://clickhouse:9000/signoz_traces
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
use_new_schema: true
clickhousemetricswrite:
endpoint: tcp://clickhouse:9000/signoz_metrics
resource_to_telemetry_conversion:
enabled: true
clickhousemetricswrite/prometheus:
endpoint: tcp://clickhouse:9000/signoz_metrics
clickhousemetricswritev2:
dsn: tcp://clickhouse:9000/signoz_metrics
clickhouselogsexporter:
dsn: tcp://clickhouse:9000/signoz_logs
timeout: 10s
@@ -168,20 +147,20 @@ service:
pipelines:
traces:
receivers: [jaeger, otlp]
processors: [signozspanmetrics/cumulative, signozspanmetrics/delta, batch]
processors: [signozspanmetrics/delta, batch]
exporters: [clickhousetraces]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [clickhousemetricswrite]
metrics/generic:
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
metrics/hostmetrics:
receivers: [hostmetrics]
processors: [resourcedetection, batch]
exporters: [clickhousemetricswrite]
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
metrics/prometheus:
receivers: [prometheus]
processors: [batch]
exporters: [clickhousemetricswrite/prometheus]
exporters: [clickhousemetricswrite/prometheus, clickhousemetricswritev2]
logs:
receivers: [otlp, tcplog/docker]
processors: [batch]

View File

@@ -1,5 +1,5 @@
# use a minimal alpine image
FROM alpine:3.18.6
FROM alpine:3.20.3
# Add Maintainer Info
LABEL maintainer="signoz"

View File

@@ -38,8 +38,9 @@ type APIHandlerOptions struct {
Cache cache.Cache
Gateway *httputil.ReverseProxy
// Querier Influx Interval
FluxInterval time.Duration
UseLogsNewSchema bool
FluxInterval time.Duration
UseLogsNewSchema bool
UseTraceNewSchema bool
}
type APIHandler struct {
@@ -65,6 +66,7 @@ func NewAPIHandler(opts APIHandlerOptions) (*APIHandler, error) {
Cache: opts.Cache,
FluxInterval: opts.FluxInterval,
UseLogsNewSchema: opts.UseLogsNewSchema,
UseTraceNewSchema: opts.UseTraceNewSchema,
})
if err != nil {
@@ -173,14 +175,22 @@ func (ah *APIHandler) RegisterRoutes(router *mux.Router, am *baseapp.AuthMiddlew
router.HandleFunc("/api/v1/dashboards/{uuid}/lock", am.EditAccess(ah.lockDashboard)).Methods(http.MethodPut)
router.HandleFunc("/api/v1/dashboards/{uuid}/unlock", am.EditAccess(ah.unlockDashboard)).Methods(http.MethodPut)
// v2
router.HandleFunc("/api/v2/licenses",
am.ViewAccess(ah.listLicensesV2)).
Methods(http.MethodGet)
// v3
router.HandleFunc("/api/v3/licenses", am.ViewAccess(ah.listLicensesV3)).Methods(http.MethodGet)
router.HandleFunc("/api/v3/licenses", am.AdminAccess(ah.applyLicenseV3)).Methods(http.MethodPost)
router.HandleFunc("/api/v3/licenses", am.AdminAccess(ah.refreshLicensesV3)).Methods(http.MethodPut)
router.HandleFunc("/api/v3/licenses/active", am.ViewAccess(ah.getActiveLicenseV3)).Methods(http.MethodGet)
// v4
router.HandleFunc("/api/v4/query_range", am.ViewAccess(ah.queryRangeV4)).Methods(http.MethodPost)
// Gateway
router.PathPrefix(gateway.RoutePrefix).HandlerFunc(am.AdminAccess(ah.ServeGatewayHTTP))
router.PathPrefix(gateway.RoutePrefix).HandlerFunc(am.EditAccess(ah.ServeGatewayHTTP))
ah.APIHandler.RegisterRoutes(router, am)

View File

@@ -9,6 +9,7 @@ import (
"go.signoz.io/signoz/ee/query-service/constants"
"go.signoz.io/signoz/ee/query-service/model"
"go.signoz.io/signoz/pkg/http/render"
"go.uber.org/zap"
)
@@ -59,6 +60,21 @@ type billingDetails struct {
} `json:"data"`
}
type ApplyLicenseRequest struct {
LicenseKey string `json:"key"`
}
type ListLicenseResponse map[string]interface{}
func convertLicenseV3ToListLicenseResponse(licensesV3 []*model.LicenseV3) []ListLicenseResponse {
listLicenses := []ListLicenseResponse{}
for _, license := range licensesV3 {
listLicenses = append(listLicenses, license.Data)
}
return listLicenses
}
func (ah *APIHandler) listLicenses(w http.ResponseWriter, r *http.Request) {
licenses, apiError := ah.LM().GetLicenses(context.Background())
if apiError != nil {
@@ -79,7 +95,7 @@ func (ah *APIHandler) applyLicense(w http.ResponseWriter, r *http.Request) {
RespondError(w, model.BadRequest(fmt.Errorf("license key is required")), nil)
return
}
license, apiError := ah.LM().Activate(r.Context(), l.Key)
license, apiError := ah.LM().ActivateV3(r.Context(), l.Key)
if apiError != nil {
RespondError(w, apiError, nil)
return
@@ -88,6 +104,68 @@ func (ah *APIHandler) applyLicense(w http.ResponseWriter, r *http.Request) {
ah.Respond(w, license)
}
func (ah *APIHandler) listLicensesV3(w http.ResponseWriter, r *http.Request) {
licenses, apiError := ah.LM().GetLicensesV3(r.Context())
if apiError != nil {
RespondError(w, apiError, nil)
return
}
ah.Respond(w, convertLicenseV3ToListLicenseResponse(licenses))
}
func (ah *APIHandler) getActiveLicenseV3(w http.ResponseWriter, r *http.Request) {
activeLicense, err := ah.LM().GetRepo().GetActiveLicenseV3(r.Context())
if err != nil {
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
return
}
// return 404 not found if there is no active license
if activeLicense == nil {
RespondError(w, &model.ApiError{Typ: model.ErrorNotFound, Err: fmt.Errorf("no active license found")}, nil)
return
}
// TODO deprecate this when we move away from key for stripe
activeLicense.Data["key"] = activeLicense.Key
render.Success(w, http.StatusOK, activeLicense.Data)
}
// this function is called by zeus when inserting licenses in the query-service
func (ah *APIHandler) applyLicenseV3(w http.ResponseWriter, r *http.Request) {
var licenseKey ApplyLicenseRequest
if err := json.NewDecoder(r.Body).Decode(&licenseKey); err != nil {
RespondError(w, model.BadRequest(err), nil)
return
}
if licenseKey.LicenseKey == "" {
RespondError(w, model.BadRequest(fmt.Errorf("license key is required")), nil)
return
}
_, apiError := ah.LM().ActivateV3(r.Context(), licenseKey.LicenseKey)
if apiError != nil {
RespondError(w, apiError, nil)
return
}
render.Success(w, http.StatusAccepted, nil)
}
func (ah *APIHandler) refreshLicensesV3(w http.ResponseWriter, r *http.Request) {
apiError := ah.LM().RefreshLicense(r.Context())
if apiError != nil {
RespondError(w, apiError, nil)
return
}
render.Success(w, http.StatusNoContent, nil)
}
func (ah *APIHandler) checkout(w http.ResponseWriter, r *http.Request) {
type checkoutResponse struct {
@@ -154,12 +232,38 @@ func (ah *APIHandler) getBilling(w http.ResponseWriter, r *http.Request) {
ah.Respond(w, billingResponse.Data)
}
func (ah *APIHandler) listLicensesV2(w http.ResponseWriter, r *http.Request) {
licenses, apiError := ah.LM().GetLicenses(context.Background())
if apiError != nil {
RespondError(w, apiError, nil)
func convertLicenseV3ToLicenseV2(licenses []*model.LicenseV3) []model.License {
licensesV2 := []model.License{}
for _, l := range licenses {
planKeyFromPlanName, ok := model.MapOldPlanKeyToNewPlanName[l.PlanName]
if !ok {
planKeyFromPlanName = model.Basic
}
licenseV2 := model.License{
Key: l.Key,
ActivationId: "",
PlanDetails: "",
FeatureSet: l.Features,
ValidationMessage: "",
IsCurrent: l.IsCurrent,
LicensePlan: model.LicensePlan{
PlanKey: planKeyFromPlanName,
ValidFrom: l.ValidFrom,
ValidUntil: l.ValidUntil,
Status: l.Status},
}
licensesV2 = append(licensesV2, licenseV2)
}
return licensesV2
}
func (ah *APIHandler) listLicensesV2(w http.ResponseWriter, r *http.Request) {
licensesV3, apierr := ah.LM().GetLicensesV3(r.Context())
if apierr != nil {
RespondError(w, apierr, nil)
return
}
licenses := convertLicenseV3ToLicenseV2(licensesV3)
resp := model.Licenses{
TrialStart: -1,

View File

@@ -26,8 +26,9 @@ func NewDataConnector(
dialTimeout time.Duration,
cluster string,
useLogsNewSchema bool,
useTraceNewSchema bool,
) *ClickhouseReader {
ch := basechr.NewReader(localDB, promConfigPath, lm, maxIdleConns, maxOpenConns, dialTimeout, cluster, useLogsNewSchema)
ch := basechr.NewReader(localDB, promConfigPath, lm, maxIdleConns, maxOpenConns, dialTimeout, cluster, useLogsNewSchema, useTraceNewSchema)
return &ClickhouseReader{
conn: ch.GetConn(),
appdb: localDB,

View File

@@ -31,7 +31,6 @@ import (
"go.signoz.io/signoz/ee/query-service/rules"
baseauth "go.signoz.io/signoz/pkg/query-service/auth"
"go.signoz.io/signoz/pkg/query-service/migrate"
"go.signoz.io/signoz/pkg/query-service/model"
v3 "go.signoz.io/signoz/pkg/query-service/model/v3"
licensepkg "go.signoz.io/signoz/ee/query-service/license"
@@ -78,6 +77,7 @@ type ServerOptions struct {
Cluster string
GatewayUrl string
UseLogsNewSchema bool
UseTraceNewSchema bool
}
// Server runs HTTP api service
@@ -156,6 +156,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
serverOptions.DialTimeout,
serverOptions.Cluster,
serverOptions.UseLogsNewSchema,
serverOptions.UseTraceNewSchema,
)
go qb.Start(readerReady)
reader = qb
@@ -189,6 +190,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
serverOptions.DisableRules,
lm,
serverOptions.UseLogsNewSchema,
serverOptions.UseTraceNewSchema,
)
if err != nil {
@@ -270,6 +272,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
FluxInterval: fluxInterval,
Gateway: gatewayProxy,
UseLogsNewSchema: serverOptions.UseLogsNewSchema,
UseTraceNewSchema: serverOptions.UseTraceNewSchema,
}
apiHandler, err := api.NewAPIHandler(apiOpts)
@@ -312,10 +315,10 @@ func (s *Server) createPrivateServer(apiHandler *api.APIHandler) (*http.Server,
r := baseapp.NewRouter()
r.Use(baseapp.LogCommentEnricher)
r.Use(setTimeoutMiddleware)
r.Use(s.analyticsMiddleware)
r.Use(loggingMiddlewarePrivate)
r.Use(baseapp.LogCommentEnricher)
apiHandler.RegisterPrivateRoutes(r)
@@ -348,17 +351,17 @@ func (s *Server) createPublicServer(apiHandler *api.APIHandler) (*http.Server, e
}
if user.User.OrgId == "" {
return nil, model.UnauthorizedError(errors.New("orgId is missing in the claims"))
return nil, basemodel.UnauthorizedError(errors.New("orgId is missing in the claims"))
}
return user, nil
}
am := baseapp.NewAuthMiddleware(getUserFromRequest)
r.Use(baseapp.LogCommentEnricher)
r.Use(setTimeoutMiddleware)
r.Use(s.analyticsMiddleware)
r.Use(loggingMiddleware)
r.Use(baseapp.LogCommentEnricher)
apiHandler.RegisterRoutes(r, am)
apiHandler.RegisterLogsRoutes(r, am)
@@ -736,7 +739,8 @@ func makeRulesManager(
cache cache.Cache,
disableRules bool,
fm baseint.FeatureLookup,
useLogsNewSchema bool) (*baserules.Manager, error) {
useLogsNewSchema bool,
useTraceNewSchema bool) (*baserules.Manager, error) {
// create engine
pqle, err := pqle.FromConfigPath(promConfigPath)
@@ -765,8 +769,10 @@ func makeRulesManager(
Cache: cache,
EvalDelay: baseconst.GetEvalDelay(),
PrepareTaskFunc: rules.PrepareTaskFunc,
UseLogsNewSchema: useLogsNewSchema,
PrepareTaskFunc: rules.PrepareTaskFunc,
UseLogsNewSchema: useLogsNewSchema,
UseTraceNewSchema: useTraceNewSchema,
PrepareTestRuleFunc: rules.TestNotification,
}
// create Manager

View File

@@ -14,6 +14,9 @@ var SaasSegmentKey = GetOrDefaultEnv("SIGNOZ_SAAS_SEGMENT_KEY", "")
var FetchFeatures = GetOrDefaultEnv("FETCH_FEATURES", "false")
var ZeusFeaturesURL = GetOrDefaultEnv("ZEUS_FEATURES_URL", "ZeusFeaturesURL")
// this is set via build time variable
var ZeusURL = "https://api.signoz.cloud"
func GetOrDefaultEnv(key string, fallback string) string {
v := os.Getenv(key)
if len(v) == 0 {

View File

@@ -2,14 +2,7 @@ package signozio
type status string
type ActivationResult struct {
Status status `json:"status"`
Data *ActivationResponse `json:"data,omitempty"`
ErrorType string `json:"errorType,omitempty"`
Error string `json:"error,omitempty"`
}
type ActivationResponse struct {
ActivationId string `json:"ActivationId"`
PlanDetails string `json:"PlanDetails"`
type ValidateLicenseResponse struct {
Status status `json:"status"`
Data map[string]interface{} `json:"data"`
}

View File

@@ -7,9 +7,9 @@ import (
"fmt"
"io"
"net/http"
"time"
"github.com/pkg/errors"
"go.uber.org/zap"
"go.signoz.io/signoz/ee/query-service/constants"
"go.signoz.io/signoz/ee/query-service/model"
@@ -23,12 +23,14 @@ const (
)
type Client struct {
Prefix string
Prefix string
GatewayUrl string
}
func New() *Client {
return &Client{
Prefix: constants.LicenseSignozIo,
Prefix: constants.LicenseSignozIo,
GatewayUrl: constants.ZeusURL,
}
}
@@ -36,82 +38,56 @@ func init() {
C = New()
}
// ActivateLicense sends key to license.signoz.io and gets activation data
func ActivateLicense(key, siteId string) (*ActivationResponse, *model.ApiError) {
licenseReq := map[string]string{
"key": key,
"siteId": siteId,
func ValidateLicenseV3(licenseKey string) (*model.LicenseV3, *model.ApiError) {
// Creating an HTTP client with a timeout for better control
client := &http.Client{
Timeout: 10 * time.Second,
}
reqString, _ := json.Marshal(licenseReq)
httpResponse, err := http.Post(C.Prefix+"/licenses/activate", APPLICATION_JSON, bytes.NewBuffer(reqString))
req, err := http.NewRequest("GET", C.GatewayUrl+"/v2/licenses/me", nil)
if err != nil {
zap.L().Error("failed to connect to license.signoz.io", zap.Error(err))
return nil, model.BadRequest(fmt.Errorf("unable to connect with license.signoz.io, please check your network connection"))
return nil, model.BadRequest(errors.Wrap(err, fmt.Sprintf("failed to create request: %w", err)))
}
httpBody, err := io.ReadAll(httpResponse.Body)
// Setting the custom header
req.Header.Set("X-Signoz-Cloud-Api-Key", licenseKey)
response, err := client.Do(req)
if err != nil {
zap.L().Error("failed to read activation response from license.signoz.io", zap.Error(err))
return nil, model.BadRequest(fmt.Errorf("failed to read activation response from license.signoz.io"))
}
defer httpResponse.Body.Close()
// read api request result
result := ActivationResult{}
err = json.Unmarshal(httpBody, &result)
if err != nil {
zap.L().Error("failed to marshal activation response from license.signoz.io", zap.Error(err))
return nil, model.InternalError(errors.Wrap(err, "failed to marshal license activation response"))
}
switch httpResponse.StatusCode {
case 200, 201:
return result.Data, nil
case 400, 401:
return nil, model.BadRequest(fmt.Errorf(fmt.Sprintf("failed to activate: %s", result.Error)))
default:
return nil, model.InternalError(fmt.Errorf(fmt.Sprintf("failed to activate: %s", result.Error)))
}
}
// ValidateLicense validates the license key
func ValidateLicense(activationId string) (*ActivationResponse, *model.ApiError) {
validReq := map[string]string{
"activationId": activationId,
}
reqString, _ := json.Marshal(validReq)
response, err := http.Post(C.Prefix+"/licenses/validate", APPLICATION_JSON, bytes.NewBuffer(reqString))
if err != nil {
return nil, model.BadRequest(errors.Wrap(err, "unable to connect with license.signoz.io, please check your network connection"))
return nil, model.BadRequest(errors.Wrap(err, fmt.Sprintf("failed to make post request: %w", err)))
}
body, err := io.ReadAll(response.Body)
if err != nil {
return nil, model.BadRequest(errors.Wrap(err, "failed to read validation response from license.signoz.io"))
return nil, model.BadRequest(errors.Wrap(err, fmt.Sprintf("failed to read validation response from %v", C.GatewayUrl)))
}
defer response.Body.Close()
switch response.StatusCode {
case 200, 201:
a := ActivationResult{}
case 200:
a := ValidateLicenseResponse{}
err = json.Unmarshal(body, &a)
if err != nil {
return nil, model.BadRequest(errors.Wrap(err, "failed to marshal license validation response"))
}
return a.Data, nil
case 400, 401:
license, err := model.NewLicenseV3(a.Data)
if err != nil {
return nil, model.BadRequest(errors.Wrap(err, "failed to generate new license v3"))
}
return license, nil
case 400:
return nil, model.BadRequest(errors.Wrap(fmt.Errorf(string(body)),
"bad request error received from license.signoz.io"))
fmt.Sprintf("bad request error received from %v", C.GatewayUrl)))
case 401:
return nil, model.Unauthorized(errors.Wrap(fmt.Errorf(string(body)),
fmt.Sprintf("unauthorized request error received from %v", C.GatewayUrl)))
default:
return nil, model.InternalError(errors.Wrap(fmt.Errorf(string(body)),
"internal error received from license.signoz.io"))
fmt.Sprintf("internal request error received from %v", C.GatewayUrl)))
}
}

View File

@@ -3,10 +3,12 @@ package license
import (
"context"
"database/sql"
"encoding/json"
"fmt"
"time"
"github.com/jmoiron/sqlx"
"github.com/mattn/go-sqlite3"
"go.signoz.io/signoz/ee/query-service/license/sqlite"
"go.signoz.io/signoz/ee/query-service/model"
@@ -48,9 +50,35 @@ func (r *Repo) GetLicenses(ctx context.Context) ([]model.License, error) {
return licenses, nil
}
// GetActiveLicense fetches the latest active license from DB.
// If the license is not present, expect a nil license and a nil error in the output.
func (r *Repo) GetActiveLicense(ctx context.Context) (*model.License, *basemodel.ApiError) {
func (r *Repo) GetLicensesV3(ctx context.Context) ([]*model.LicenseV3, error) {
licensesData := []model.LicenseDB{}
licenseV3Data := []*model.LicenseV3{}
query := "SELECT id,key,data FROM licenses_v3"
err := r.db.Select(&licensesData, query)
if err != nil {
return nil, fmt.Errorf("failed to get licenses from db: %v", err)
}
for _, l := range licensesData {
var licenseData map[string]interface{}
err := json.Unmarshal([]byte(l.Data), &licenseData)
if err != nil {
return nil, fmt.Errorf("failed to unmarshal data into licenseData : %v", err)
}
license, err := model.NewLicenseV3WithIDAndKey(l.ID, l.Key, licenseData)
if err != nil {
return nil, fmt.Errorf("failed to get licenses v3 schema : %v", err)
}
licenseV3Data = append(licenseV3Data, license)
}
return licenseV3Data, nil
}
func (r *Repo) GetActiveLicenseV2(ctx context.Context) (*model.License, *basemodel.ApiError) {
var err error
licenses := []model.License{}
@@ -79,6 +107,60 @@ func (r *Repo) GetActiveLicense(ctx context.Context) (*model.License, *basemodel
return active, nil
}
// GetActiveLicense fetches the latest active license from DB.
// If the license is not present, expect a nil license and a nil error in the output.
func (r *Repo) GetActiveLicense(ctx context.Context) (*model.License, *basemodel.ApiError) {
activeLicenseV3, err := r.GetActiveLicenseV3(ctx)
if err != nil {
return nil, basemodel.InternalError(fmt.Errorf("failed to get active licenses from db: %v", err))
}
if activeLicenseV3 == nil {
return nil, nil
}
activeLicenseV2 := model.ConvertLicenseV3ToLicenseV2(activeLicenseV3)
return activeLicenseV2, nil
}
func (r *Repo) GetActiveLicenseV3(ctx context.Context) (*model.LicenseV3, error) {
var err error
licenses := []model.LicenseDB{}
query := "SELECT id,key,data FROM licenses_v3"
err = r.db.Select(&licenses, query)
if err != nil {
return nil, basemodel.InternalError(fmt.Errorf("failed to get active licenses from db: %v", err))
}
var active *model.LicenseV3
for _, l := range licenses {
var licenseData map[string]interface{}
err := json.Unmarshal([]byte(l.Data), &licenseData)
if err != nil {
return nil, fmt.Errorf("failed to unmarshal data into licenseData : %v", err)
}
license, err := model.NewLicenseV3WithIDAndKey(l.ID, l.Key, licenseData)
if err != nil {
return nil, fmt.Errorf("failed to get licenses v3 schema : %v", err)
}
if active == nil &&
(license.ValidFrom != 0) &&
(license.ValidUntil == -1 || license.ValidUntil > time.Now().Unix()) {
active = license
}
if active != nil &&
license.ValidFrom > active.ValidFrom &&
(license.ValidUntil == -1 || license.ValidUntil > time.Now().Unix()) {
active = license
}
}
return active, nil
}
// InsertLicense inserts a new license in db
func (r *Repo) InsertLicense(ctx context.Context, l *model.License) error {
@@ -204,3 +286,59 @@ func (r *Repo) InitFeatures(req basemodel.FeatureSet) error {
}
return nil
}
// InsertLicenseV3 inserts a new license v3 in db
func (r *Repo) InsertLicenseV3(ctx context.Context, l *model.LicenseV3) *model.ApiError {
query := `INSERT INTO licenses_v3 (id, key, data) VALUES ($1, $2, $3)`
// licsense is the entity of zeus so putting the entire license here without defining schema
licenseData, err := json.Marshal(l.Data)
if err != nil {
return &model.ApiError{Typ: basemodel.ErrorBadData, Err: err}
}
_, err = r.db.ExecContext(ctx,
query,
l.ID,
l.Key,
string(licenseData),
)
if err != nil {
if sqliteErr, ok := err.(sqlite3.Error); ok {
if sqliteErr.ExtendedCode == sqlite3.ErrConstraintUnique {
zap.L().Error("error in inserting license data: ", zap.Error(sqliteErr))
return &model.ApiError{Typ: model.ErrorConflict, Err: sqliteErr}
}
}
zap.L().Error("error in inserting license data: ", zap.Error(err))
return &model.ApiError{Typ: basemodel.ErrorExec, Err: err}
}
return nil
}
// UpdateLicenseV3 updates a new license v3 in db
func (r *Repo) UpdateLicenseV3(ctx context.Context, l *model.LicenseV3) error {
// the key and id for the license can't change so only update the data here!
query := `UPDATE licenses_v3 SET data=$1 WHERE id=$2;`
license, err := json.Marshal(l.Data)
if err != nil {
return fmt.Errorf("insert license failed: license marshal error")
}
_, err = r.db.ExecContext(ctx,
query,
license,
l.ID,
)
if err != nil {
zap.L().Error("error in updating license data: ", zap.Error(err))
return fmt.Errorf("failed to update license in db: %v", err)
}
return nil
}

View File

@@ -7,6 +7,7 @@ import (
"time"
"github.com/jmoiron/sqlx"
"github.com/pkg/errors"
"sync"
@@ -45,8 +46,9 @@ type Manager struct {
failedAttempts uint64
// keep track of active license and features
activeLicense *model.License
activeFeatures basemodel.FeatureSet
activeLicense *model.License
activeLicenseV3 *model.LicenseV3
activeFeatures basemodel.FeatureSet
}
func StartManager(dbType string, db *sqlx.DB, features ...basemodel.Feature) (*Manager, error) {
@@ -74,9 +76,7 @@ func StartManager(dbType string, db *sqlx.DB, features ...basemodel.Feature) (*M
// start loads active license in memory and initiates validator
func (lm *Manager) start(features ...basemodel.Feature) error {
err := lm.LoadActiveLicense(features...)
return err
return lm.LoadActiveLicenseV3(features...)
}
func (lm *Manager) Stop() {
@@ -84,7 +84,7 @@ func (lm *Manager) Stop() {
<-lm.terminated
}
func (lm *Manager) SetActive(l *model.License, features ...basemodel.Feature) {
func (lm *Manager) SetActiveV3(l *model.LicenseV3, features ...basemodel.Feature) {
lm.mutex.Lock()
defer lm.mutex.Unlock()
@@ -92,8 +92,8 @@ func (lm *Manager) SetActive(l *model.License, features ...basemodel.Feature) {
return
}
lm.activeLicense = l
lm.activeFeatures = append(l.FeatureSet, features...)
lm.activeLicenseV3 = l
lm.activeFeatures = append(l.Features, features...)
// set default features
setDefaultFeatures(lm)
@@ -105,7 +105,7 @@ func (lm *Manager) SetActive(l *model.License, features ...basemodel.Feature) {
// we want to make sure only one validator runs,
// we already have lock() so good to go
lm.validatorRunning = true
go lm.Validator(context.Background())
go lm.ValidatorV3(context.Background())
}
}
@@ -114,14 +114,13 @@ func setDefaultFeatures(lm *Manager) {
lm.activeFeatures = append(lm.activeFeatures, baseconstants.DEFAULT_FEATURE_SET...)
}
// LoadActiveLicense loads the most recent active license
func (lm *Manager) LoadActiveLicense(features ...basemodel.Feature) error {
active, err := lm.repo.GetActiveLicense(context.Background())
func (lm *Manager) LoadActiveLicenseV3(features ...basemodel.Feature) error {
active, err := lm.repo.GetActiveLicenseV3(context.Background())
if err != nil {
return err
}
if active != nil {
lm.SetActive(active, features...)
lm.SetActiveV3(active, features...)
} else {
zap.L().Info("No active license found, defaulting to basic plan")
// if no active license is found, we default to basic(free) plan with all default features
@@ -163,13 +162,36 @@ func (lm *Manager) GetLicenses(ctx context.Context) (response []model.License, a
return
}
func (lm *Manager) GetLicensesV3(ctx context.Context) (response []*model.LicenseV3, apiError *model.ApiError) {
licenses, err := lm.repo.GetLicensesV3(ctx)
if err != nil {
return nil, model.InternalError(err)
}
for _, l := range licenses {
if lm.activeLicenseV3 != nil && l.Key == lm.activeLicenseV3.Key {
l.IsCurrent = true
}
if l.ValidUntil == -1 {
// for subscriptions, there is no end-date as such
// but for showing user some validity we default one year timespan
l.ValidUntil = l.ValidFrom + 31556926
}
response = append(response, l)
}
return response, nil
}
// Validator validates license after an epoch of time
func (lm *Manager) Validator(ctx context.Context) {
func (lm *Manager) ValidatorV3(ctx context.Context) {
zap.L().Info("ValidatorV3 started!")
defer close(lm.terminated)
tick := time.NewTicker(validationFrequency)
defer tick.Stop()
lm.Validate(ctx)
lm.ValidateV3(ctx)
for {
select {
@@ -180,17 +202,33 @@ func (lm *Manager) Validator(ctx context.Context) {
case <-lm.done:
return
case <-tick.C:
lm.Validate(ctx)
lm.ValidateV3(ctx)
}
}
}
}
// Validate validates the current active license
func (lm *Manager) Validate(ctx context.Context) (reterr error) {
func (lm *Manager) RefreshLicense(ctx context.Context) *model.ApiError {
license, apiError := validate.ValidateLicenseV3(lm.activeLicenseV3.Key)
if apiError != nil {
zap.L().Error("failed to validate license", zap.Error(apiError.Err))
return apiError
}
err := lm.repo.UpdateLicenseV3(ctx, license)
if err != nil {
return model.BadRequest(errors.Wrap(err, "failed to update the new license"))
}
lm.SetActiveV3(license)
return nil
}
func (lm *Manager) ValidateV3(ctx context.Context) (reterr error) {
zap.L().Info("License validation started")
if lm.activeLicense == nil {
if lm.activeLicenseV3 == nil {
return nil
}
@@ -210,52 +248,15 @@ func (lm *Manager) Validate(ctx context.Context) (reterr error) {
lm.mutex.Unlock()
}()
response, apiError := validate.ValidateLicense(lm.activeLicense.ActivationId)
if apiError != nil {
zap.L().Error("failed to validate license", zap.Error(apiError.Err))
return apiError.Err
err := lm.RefreshLicense(ctx)
if err != nil {
return err
}
if response.PlanDetails == lm.activeLicense.PlanDetails {
// license plan hasnt changed, nothing to do
return nil
}
if response.PlanDetails != "" {
// copy and replace the active license record
l := model.License{
Key: lm.activeLicense.Key,
CreatedAt: lm.activeLicense.CreatedAt,
PlanDetails: response.PlanDetails,
ValidationMessage: lm.activeLicense.ValidationMessage,
ActivationId: lm.activeLicense.ActivationId,
}
if err := l.ParsePlan(); err != nil {
zap.L().Error("failed to parse updated license", zap.Error(err))
return err
}
// updated plan is parsable, check if plan has changed
if lm.activeLicense.PlanDetails != response.PlanDetails {
err := lm.repo.UpdatePlanDetails(ctx, lm.activeLicense.Key, response.PlanDetails)
if err != nil {
// unexpected db write issue but we can let the user continue
// and wait for update to work in next cycle.
zap.L().Error("failed to validate license", zap.Error(err))
}
}
// activate the update license plan
lm.SetActive(&l)
}
return nil
}
// Activate activates a license key with signoz server
func (lm *Manager) Activate(ctx context.Context, key string) (licenseResponse *model.License, errResponse *model.ApiError) {
func (lm *Manager) ActivateV3(ctx context.Context, licenseKey string) (licenseResponse *model.LicenseV3, errResponse *model.ApiError) {
defer func() {
if errResponse != nil {
userEmail, err := auth.GetEmailFromJwt(ctx)
@@ -266,36 +267,22 @@ func (lm *Manager) Activate(ctx context.Context, key string) (licenseResponse *m
}
}()
response, apiError := validate.ActivateLicense(key, "")
license, apiError := validate.ValidateLicenseV3(licenseKey)
if apiError != nil {
zap.L().Error("failed to activate license", zap.Error(apiError.Err))
zap.L().Error("failed to get the license", zap.Error(apiError.Err))
return nil, apiError
}
l := &model.License{
Key: key,
ActivationId: response.ActivationId,
PlanDetails: response.PlanDetails,
}
// parse validity and features from the plan details
err := l.ParsePlan()
// insert the new license to the sqlite db
err := lm.repo.InsertLicenseV3(ctx, license)
if err != nil {
zap.L().Error("failed to activate license", zap.Error(err))
return nil, model.InternalError(err)
}
// store the license before activating it
err = lm.repo.InsertLicense(ctx, l)
if err != nil {
zap.L().Error("failed to activate license", zap.Error(err))
return nil, model.InternalError(err)
return nil, err
}
// license is valid, activate it
lm.SetActive(l)
return l, nil
lm.SetActiveV3(license)
return license, nil
}
// CheckFeature will be internally used by backend routines

View File

@@ -48,5 +48,16 @@ func InitDB(db *sqlx.DB) error {
return fmt.Errorf("error in creating feature_status table: %s", err.Error())
}
table_schema = `CREATE TABLE IF NOT EXISTS licenses_v3 (
id TEXT PRIMARY KEY,
key TEXT NOT NULL UNIQUE,
data TEXT
);`
_, err = db.Exec(table_schema)
if err != nil {
return fmt.Errorf("error in creating licenses_v3 table: %s", err.Error())
}
return nil
}

View File

@@ -94,6 +94,7 @@ func main() {
var cluster string
var useLogsNewSchema bool
var useTraceNewSchema bool
var cacheConfigPath, fluxInterval string
var enableQueryServiceLogOTLPExport bool
var preferSpanMetrics bool
@@ -102,8 +103,10 @@ func main() {
var maxOpenConns int
var dialTimeout time.Duration
var gatewayUrl string
var useLicensesV3 bool
flag.BoolVar(&useLogsNewSchema, "use-logs-new-schema", false, "use logs_v2 schema for logs")
flag.BoolVar(&useTraceNewSchema, "use-trace-new-schema", false, "use new schema for traces")
flag.StringVar(&promConfigPath, "config", "./config/prometheus.yml", "(prometheus config to read metrics)")
flag.StringVar(&skipTopLvlOpsPath, "skip-top-level-ops", "", "(config file to skip top level operations)")
flag.BoolVar(&disableRules, "rules.disable", false, "(disable rule evaluation)")
@@ -117,6 +120,7 @@ func main() {
flag.BoolVar(&enableQueryServiceLogOTLPExport, "enable.query.service.log.otlp.export", false, "(enable query service log otlp export)")
flag.StringVar(&cluster, "cluster", "cluster", "(cluster name - defaults to 'cluster')")
flag.StringVar(&gatewayUrl, "gateway-url", "", "(url to the gateway)")
flag.BoolVar(&useLicensesV3, "use-licenses-v3", false, "use licenses_v3 schema for licenses")
flag.Parse()
@@ -143,6 +147,7 @@ func main() {
Cluster: cluster,
GatewayUrl: gatewayUrl,
UseLogsNewSchema: useLogsNewSchema,
UseTraceNewSchema: useTraceNewSchema,
}
// Read the jwt secret key

View File

@@ -46,6 +46,13 @@ func BadRequest(err error) *ApiError {
}
}
func Unauthorized(err error) *ApiError {
return &ApiError{
Typ: basemodel.ErrorUnauthorized,
Err: err,
}
}
// BadRequestStr returns a ApiError object of bad request for string input
func BadRequestStr(s string) *ApiError {
return &ApiError{

View File

@@ -3,6 +3,8 @@ package model
import (
"encoding/base64"
"encoding/json"
"fmt"
"reflect"
"time"
"github.com/pkg/errors"
@@ -104,3 +106,165 @@ type SubscriptionServerResp struct {
Status string `json:"status"`
Data Licenses `json:"data"`
}
type Plan struct {
Name string `json:"name"`
}
type LicenseDB struct {
ID string `json:"id"`
Key string `json:"key"`
Data string `json:"data"`
}
type LicenseV3 struct {
ID string
Key string
Data map[string]interface{}
PlanName string
Features basemodel.FeatureSet
Status string
IsCurrent bool
ValidFrom int64
ValidUntil int64
}
func extractKeyFromMapStringInterface[T any](data map[string]interface{}, key string) (T, error) {
var zeroValue T
if val, ok := data[key]; ok {
if value, ok := val.(T); ok {
return value, nil
}
return zeroValue, fmt.Errorf("%s key is not a valid %s", key, reflect.TypeOf(zeroValue))
}
return zeroValue, fmt.Errorf("%s key is missing", key)
}
func NewLicenseV3(data map[string]interface{}) (*LicenseV3, error) {
var features basemodel.FeatureSet
// extract id from data
licenseID, err := extractKeyFromMapStringInterface[string](data, "id")
if err != nil {
return nil, err
}
delete(data, "id")
// extract key from data
licenseKey, err := extractKeyFromMapStringInterface[string](data, "key")
if err != nil {
return nil, err
}
delete(data, "key")
// extract status from data
status, err := extractKeyFromMapStringInterface[string](data, "status")
if err != nil {
return nil, err
}
planMap, err := extractKeyFromMapStringInterface[map[string]any](data, "plan")
if err != nil {
return nil, err
}
planName, err := extractKeyFromMapStringInterface[string](planMap, "name")
if err != nil {
return nil, err
}
// if license status is inactive then default it to basic
if status == LicenseStatusInactive {
planName = PlanNameBasic
}
featuresFromZeus := basemodel.FeatureSet{}
if _features, ok := data["features"]; ok {
featuresData, err := json.Marshal(_features)
if err != nil {
return nil, errors.Wrap(err, "failed to marshal features data")
}
if err := json.Unmarshal(featuresData, &featuresFromZeus); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal features data")
}
}
switch planName {
case PlanNameTeams:
features = append(features, ProPlan...)
case PlanNameEnterprise:
features = append(features, EnterprisePlan...)
case PlanNameBasic:
features = append(features, BasicPlan...)
default:
features = append(features, BasicPlan...)
}
if len(featuresFromZeus) > 0 {
for _, feature := range featuresFromZeus {
exists := false
for i, existingFeature := range features {
if existingFeature.Name == feature.Name {
features[i] = feature // Replace existing feature
exists = true
break
}
}
if !exists {
features = append(features, feature) // Append if it doesn't exist
}
}
}
data["features"] = features
_validFrom, err := extractKeyFromMapStringInterface[float64](data, "valid_from")
if err != nil {
_validFrom = 0
}
validFrom := int64(_validFrom)
_validUntil, err := extractKeyFromMapStringInterface[float64](data, "valid_until")
if err != nil {
_validUntil = 0
}
validUntil := int64(_validUntil)
return &LicenseV3{
ID: licenseID,
Key: licenseKey,
Data: data,
PlanName: planName,
Features: features,
ValidFrom: validFrom,
ValidUntil: validUntil,
Status: status,
}, nil
}
func NewLicenseV3WithIDAndKey(id string, key string, data map[string]interface{}) (*LicenseV3, error) {
licenseDataWithIdAndKey := data
licenseDataWithIdAndKey["id"] = id
licenseDataWithIdAndKey["key"] = key
return NewLicenseV3(licenseDataWithIdAndKey)
}
func ConvertLicenseV3ToLicenseV2(l *LicenseV3) *License {
planKeyFromPlanName, ok := MapOldPlanKeyToNewPlanName[l.PlanName]
if !ok {
planKeyFromPlanName = Basic
}
return &License{
Key: l.Key,
ActivationId: "",
PlanDetails: "",
FeatureSet: l.Features,
ValidationMessage: "",
IsCurrent: l.IsCurrent,
LicensePlan: LicensePlan{
PlanKey: planKeyFromPlanName,
ValidFrom: l.ValidFrom,
ValidUntil: l.ValidUntil,
Status: l.Status},
}
}

View File

@@ -0,0 +1,170 @@
package model
import (
"encoding/json"
"testing"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.signoz.io/signoz/pkg/query-service/model"
)
func TestNewLicenseV3(t *testing.T) {
testCases := []struct {
name string
data []byte
pass bool
expected *LicenseV3
error error
}{
{
name: "Error for missing license id",
data: []byte(`{}`),
pass: false,
error: errors.New("id key is missing"),
},
{
name: "Error for license id not being a valid string",
data: []byte(`{"id": 10}`),
pass: false,
error: errors.New("id key is not a valid string"),
},
{
name: "Error for missing license key",
data: []byte(`{"id":"does-not-matter"}`),
pass: false,
error: errors.New("key key is missing"),
},
{
name: "Error for invalid string license key",
data: []byte(`{"id":"does-not-matter","key":10}`),
pass: false,
error: errors.New("key key is not a valid string"),
},
{
name: "Error for missing license status",
data: []byte(`{"id":"does-not-matter", "key": "does-not-matter","category":"FREE"}`),
pass: false,
error: errors.New("status key is missing"),
},
{
name: "Error for invalid string license status",
data: []byte(`{"id":"does-not-matter","key": "does-not-matter", "category":"FREE", "status":10}`),
pass: false,
error: errors.New("status key is not a valid string"),
},
{
name: "Error for missing license plan",
data: []byte(`{"id":"does-not-matter","key":"does-not-matter-key","category":"FREE","status":"ACTIVE"}`),
pass: false,
error: errors.New("plan key is missing"),
},
{
name: "Error for invalid json license plan",
data: []byte(`{"id":"does-not-matter","key":"does-not-matter-key","category":"FREE","status":"ACTIVE","plan":10}`),
pass: false,
error: errors.New("plan key is not a valid map[string]interface {}"),
},
{
name: "Error for invalid license plan",
data: []byte(`{"id":"does-not-matter","key":"does-not-matter-key","category":"FREE","status":"ACTIVE","plan":{}}`),
pass: false,
error: errors.New("name key is missing"),
},
{
name: "Parse the entire license properly",
data: []byte(`{"id":"does-not-matter","key":"does-not-matter-key","category":"FREE","status":"ACTIVE","plan":{"name":"TEAMS"},"valid_from": 1730899309,"valid_until": -1}`),
pass: true,
expected: &LicenseV3{
ID: "does-not-matter",
Key: "does-not-matter-key",
Data: map[string]interface{}{
"plan": map[string]interface{}{
"name": "TEAMS",
},
"category": "FREE",
"status": "ACTIVE",
"valid_from": float64(1730899309),
"valid_until": float64(-1),
},
PlanName: PlanNameTeams,
ValidFrom: 1730899309,
ValidUntil: -1,
Status: "ACTIVE",
IsCurrent: false,
Features: model.FeatureSet{},
},
},
{
name: "Fallback to basic plan if license status is inactive",
data: []byte(`{"id":"does-not-matter","key":"does-not-matter-key","category":"FREE","status":"INACTIVE","plan":{"name":"TEAMS"},"valid_from": 1730899309,"valid_until": -1}`),
pass: true,
expected: &LicenseV3{
ID: "does-not-matter",
Key: "does-not-matter-key",
Data: map[string]interface{}{
"plan": map[string]interface{}{
"name": "TEAMS",
},
"category": "FREE",
"status": "INACTIVE",
"valid_from": float64(1730899309),
"valid_until": float64(-1),
},
PlanName: PlanNameBasic,
ValidFrom: 1730899309,
ValidUntil: -1,
Status: "INACTIVE",
IsCurrent: false,
Features: model.FeatureSet{},
},
},
{
name: "fallback states for validFrom and validUntil",
data: []byte(`{"id":"does-not-matter","key":"does-not-matter-key","category":"FREE","status":"ACTIVE","plan":{"name":"TEAMS"},"valid_from":1234.456,"valid_until":5678.567}`),
pass: true,
expected: &LicenseV3{
ID: "does-not-matter",
Key: "does-not-matter-key",
Data: map[string]interface{}{
"plan": map[string]interface{}{
"name": "TEAMS",
},
"valid_from": 1234.456,
"valid_until": 5678.567,
"category": "FREE",
"status": "ACTIVE",
},
PlanName: PlanNameTeams,
ValidFrom: 1234,
ValidUntil: 5678,
Status: "ACTIVE",
IsCurrent: false,
Features: model.FeatureSet{},
},
},
}
for _, tc := range testCases {
var licensePayload map[string]interface{}
err := json.Unmarshal(tc.data, &licensePayload)
require.NoError(t, err)
license, err := NewLicenseV3(licensePayload)
if license != nil {
license.Features = make(model.FeatureSet, 0)
delete(license.Data, "features")
}
if tc.pass {
require.NoError(t, err)
require.NotNil(t, license)
assert.Equal(t, tc.expected, license)
} else {
require.Error(t, err)
assert.EqualError(t, err, tc.error.Error())
require.Nil(t, license)
}
}
}

View File

@@ -9,6 +9,21 @@ const SSO = "SSO"
const Basic = "BASIC_PLAN"
const Pro = "PRO_PLAN"
const Enterprise = "ENTERPRISE_PLAN"
var (
PlanNameEnterprise = "ENTERPRISE"
PlanNameTeams = "TEAMS"
PlanNameBasic = "BASIC"
)
var (
MapOldPlanKeyToNewPlanName map[string]string = map[string]string{PlanNameBasic: Basic, PlanNameTeams: Pro, PlanNameEnterprise: Enterprise}
)
var (
LicenseStatusInactive = "INACTIVE"
)
const DisableUpsell = "DISABLE_UPSELL"
const Onboarding = "ONBOARDING"
const ChatSupport = "CHAT_SUPPORT"

View File

@@ -61,6 +61,11 @@ func NewAnomalyRule(
zap.L().Info("creating new AnomalyRule", zap.String("id", id), zap.Any("opts", opts))
if p.RuleCondition.CompareOp == baserules.ValueIsBelow {
target := -1 * *p.RuleCondition.Target
p.RuleCondition.Target = &target
}
baseRule, err := baserules.NewBaseRule(id, p, reader, opts...)
if err != nil {
return nil, err

View File

@@ -1,10 +1,15 @@
package rules
import (
"context"
"fmt"
"time"
"github.com/google/uuid"
basemodel "go.signoz.io/signoz/pkg/query-service/model"
baserules "go.signoz.io/signoz/pkg/query-service/rules"
"go.signoz.io/signoz/pkg/query-service/utils/labels"
"go.uber.org/zap"
)
func PrepareTaskFunc(opts baserules.PrepareTaskOptions) (baserules.Task, error) {
@@ -21,6 +26,7 @@ func PrepareTaskFunc(opts baserules.PrepareTaskOptions) (baserules.Task, error)
opts.FF,
opts.Reader,
opts.UseLogsNewSchema,
opts.UseTraceNewSchema,
baserules.WithEvalDelay(opts.ManagerOpts.EvalDelay),
)
@@ -79,6 +85,107 @@ func PrepareTaskFunc(opts baserules.PrepareTaskOptions) (baserules.Task, error)
return task, nil
}
// TestNotification prepares a dummy rule for given rule parameters and
// sends a test notification. returns alert count and error (if any)
func TestNotification(opts baserules.PrepareTestRuleOptions) (int, *basemodel.ApiError) {
ctx := context.Background()
if opts.Rule == nil {
return 0, basemodel.BadRequest(fmt.Errorf("rule is required"))
}
parsedRule := opts.Rule
var alertname = parsedRule.AlertName
if alertname == "" {
// alertname is not mandatory for testing, so picking
// a random string here
alertname = uuid.New().String()
}
// append name to indicate this is test alert
parsedRule.AlertName = fmt.Sprintf("%s%s", alertname, baserules.TestAlertPostFix)
var rule baserules.Rule
var err error
if parsedRule.RuleType == baserules.RuleTypeThreshold {
// add special labels for test alerts
parsedRule.Annotations[labels.AlertSummaryLabel] = fmt.Sprintf("The rule threshold is set to %.4f, and the observed metric value is {{$value}}.", *parsedRule.RuleCondition.Target)
parsedRule.Labels[labels.RuleSourceLabel] = ""
parsedRule.Labels[labels.AlertRuleIdLabel] = ""
// create a threshold rule
rule, err = baserules.NewThresholdRule(
alertname,
parsedRule,
opts.FF,
opts.Reader,
opts.UseLogsNewSchema,
opts.UseTraceNewSchema,
baserules.WithSendAlways(),
baserules.WithSendUnmatched(),
)
if err != nil {
zap.L().Error("failed to prepare a new threshold rule for test", zap.String("name", rule.Name()), zap.Error(err))
return 0, basemodel.BadRequest(err)
}
} else if parsedRule.RuleType == baserules.RuleTypeProm {
// create promql rule
rule, err = baserules.NewPromRule(
alertname,
parsedRule,
opts.Logger,
opts.Reader,
opts.ManagerOpts.PqlEngine,
baserules.WithSendAlways(),
baserules.WithSendUnmatched(),
)
if err != nil {
zap.L().Error("failed to prepare a new promql rule for test", zap.String("name", rule.Name()), zap.Error(err))
return 0, basemodel.BadRequest(err)
}
} else if parsedRule.RuleType == baserules.RuleTypeAnomaly {
// create anomaly rule
rule, err = NewAnomalyRule(
alertname,
parsedRule,
opts.FF,
opts.Reader,
opts.Cache,
baserules.WithSendAlways(),
baserules.WithSendUnmatched(),
)
if err != nil {
zap.L().Error("failed to prepare a new anomaly rule for test", zap.String("name", rule.Name()), zap.Error(err))
return 0, basemodel.BadRequest(err)
}
} else {
return 0, basemodel.BadRequest(fmt.Errorf("failed to derive ruletype with given information"))
}
// set timestamp to current utc time
ts := time.Now().UTC()
count, err := rule.Eval(ctx, ts)
if err != nil {
zap.L().Error("evaluating rule failed", zap.String("rule", rule.Name()), zap.Error(err))
return 0, basemodel.InternalError(fmt.Errorf("rule evaluation failed"))
}
alertsFound, ok := count.(int)
if !ok {
return 0, basemodel.InternalError(fmt.Errorf("something went wrong"))
}
rule.SendAlerts(ctx, ts, 0, time.Duration(1*time.Minute), opts.NotifyFunc)
return alertsFound, nil
}
// newTask returns an appropriate group for
// rule type
func newTask(taskType baserules.TaskType, name string, frequency time.Duration, rules []baserules.Rule, opts *baserules.ManagerOptions, notify baserules.NotifyFunc, ruleDB baserules.RuleDB) baserules.Task {

View File

@@ -13,8 +13,3 @@ if [ "$branch" = "main" ]; then
echo "${color_red}${bold}You can't commit directly to the main branch${reset}"
exit 1
fi
if [ "$branch" = "develop" ]; then
echo "${color_red}${bold}You can't commit directly to the develop branch${reset}"
exit 1
fi

View File

@@ -40,9 +40,9 @@
"@monaco-editor/react": "^4.3.1",
"@radix-ui/react-tabs": "1.0.4",
"@radix-ui/react-tooltip": "1.0.7",
"@sentry/react": "7.102.1",
"@sentry/webpack-plugin": "2.16.0",
"@signozhq/design-tokens": "0.0.8",
"@sentry/react": "8.41.0",
"@sentry/webpack-plugin": "2.22.6",
"@signozhq/design-tokens": "1.1.4",
"@uiw/react-md-editor": "3.23.5",
"@visx/group": "3.3.0",
"@visx/shape": "3.5.0",
@@ -76,7 +76,7 @@
"fontfaceobserver": "2.3.0",
"history": "4.10.1",
"html-webpack-plugin": "5.5.0",
"http-proxy-middleware": "2.0.7",
"http-proxy-middleware": "3.0.3",
"i18next": "^21.6.12",
"i18next-browser-languagedetector": "^6.1.3",
"i18next-http-backend": "^1.3.2",
@@ -87,6 +87,8 @@
"lodash-es": "^4.17.21",
"lucide-react": "0.379.0",
"mini-css-extract-plugin": "2.4.5",
"overlayscrollbars": "^2.8.1",
"overlayscrollbars-react": "^0.5.6",
"papaparse": "5.4.1",
"posthog-js": "1.160.3",
"rc-tween-one": "3.0.6",
@@ -107,11 +109,10 @@
"react-query": "3.39.3",
"react-redux": "^7.2.2",
"react-router-dom": "^5.2.0",
"react-router-dom-v5-compat": "6.27.0",
"react-syntax-highlighter": "15.5.0",
"react-use": "^17.3.2",
"react-virtuoso": "4.0.3",
"overlayscrollbars-react": "^0.5.6",
"overlayscrollbars": "^2.8.1",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"rehype-raw": "7.0.0",
@@ -127,7 +128,7 @@
"uuid": "^8.3.2",
"web-vitals": "^0.2.4",
"webpack": "5.94.0",
"webpack-dev-server": "^4.15.1",
"webpack-dev-server": "^4.15.2",
"webpack-retry-chunk-load-plugin": "3.1.1",
"xstate": "^4.31.0"
},
@@ -240,6 +241,7 @@
"semver": "7.5.4",
"xml2js": "0.5.0",
"phin": "^3.7.1",
"body-parser": "1.20.3"
"body-parser": "1.20.3",
"http-proxy-middleware": "3.0.3"
}
}

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none"><path fill="#A65F3E" d="M8.04 10.331a.41.41 0 0 1-.414-.414.4.4 0 0 1 .121-.292l8.071-8.071a.414.414 0 1 1 .585.585l-8.07 8.071a.4.4 0 0 1-.293.121"/><path fill="#A65F3E" d="M16.11 1.5c.09 0 .178.034.245.101a.35.35 0 0 1 0 .492l-8.07 8.07a.346.346 0 0 1-.49 0 .35.35 0 0 1 0-.49l8.07-8.072a.35.35 0 0 1 .245-.101m0-.133a.48.48 0 0 0-.338.14L7.7 9.578a.47.47 0 0 0-.14.34.475.475 0 0 0 .478.478c.13 0 .25-.05.34-.14l8.07-8.071a.48.48 0 0 0-.339-.818"/><path fill="#FFE082" d="m1.701 12.438 3.89 3.889c.873-.963 1.62-2.057 2.023-3.313.03-.091.034-.24.128-.359.451-.566 1.865-2.008.706-3.167-1.106-1.106-2.438.227-2.994.686-.17.14-.384.228-.606.276-1.493.326-3.034 1.869-3.147 1.988"/><path fill="#FFE082" d="M8.385 8.577a.62.62 0 0 1 .393-.085c.098.018.237.135.38.28.144.143.28.304.32.408s-.005.242-.005.242c-.116.23-.383.69-.6.624-.24-.074-.482-.305-.66-.479a1.5 1.5 0 0 1-.276-.328c-.096-.177.008-.324.129-.447.086-.082.232-.17.319-.215"/><path fill="#F9C248" d="M8.327 8.975c.116.11.21.243.339.338.252.185.455.097.62-.052.049-.044.122-.1.17-.055a.1.1 0 0 1 .025.051.45.45 0 0 1-.045.273 1.3 1.3 0 0 1-.433.529c-.032.022-.07.044-.11.032a.12.12 0 0 1-.056-.045c-.207-.244-.37-.533-.626-.724-.103-.076-.364-.132-.298-.303.1-.262.317-.137.414-.044"/><path fill="#F9C248" d="M7.614 13.014c.028-.091.033-.24.127-.359.515-.645 1.223-1.38 1.145-2.275-.01-.123-.169-.75-.342-.514-.04.052-.024.315-.03.379-.1 1.172-1.02 1.821-1.19 2.024s-.164.393-.31.695a5 5 0 0 1-.61.947c-.379.47-.825.88-1.286 1.27a.8.8 0 0 0-.203.217c-.131.241.153.406.305.558l.369.368c.873-.961 1.62-2.055 2.025-3.31"/><path fill="#E2A610" d="M5.537 15.809c-.1-.157-.242-.3-.317-.458a.24.24 0 0 1-.03-.123c.01-.08.13-.15.187-.198q.129-.108.254-.22c.162-.149.314-.314.419-.509.017-.031.032-.07.016-.102-.035-.065-.238.152-.275.186-.105.092-.208.187-.318.272-.146.113-.422.304-.618.213-.1-.046-.19-.169-.263-.249-.084-.094-.164-.191-.252-.283a17 17 0 0 0-.592-.582c-.05-.046-.06-.066-.003-.122a10 10 0 0 0 .546-.58c.022-.025.044-.067.017-.09-.018-.015-.048-.004-.07.007-.26.138-.467.354-.692.544-.055.046-.214-.13-.249-.158-.092-.073-.154-.102-.046-.21.484-.49.972-.946 1.554-1.323.107-.07.22-.14.28-.253-.01-.03-.054-.026-.085-.015-.807.29-1.89 1.291-1.983 1.38-.162.158-.454-.206-.885-.481-.147-.094 0-.235.038-.279.26-.307.603-.642.603-.642-.127.013-.956.76-1.054.873-.084.097-.17.184-.175.318a.52.52 0 0 0 .107.325c.77 1.05 2.586 2.794 3.23 3.253.384.274.502.224.659.068a.35.35 0 0 0 .105-.3.65.65 0 0 0-.108-.263"/><path fill="#A65F3E" d="M8.835 10.176s-.438-.825-1.017-1.074c0 0-.02-.054.02-.1.052-.057.12-.07.157-.046.427.265.812.619 1.007 1.102.039.093-.131.23-.167.118"/><path fill="#F44336" d="M7.64 12.88c-.528-.818-1.63-1.937-2.46-2.524-.066-.046.204-.204.272-.156a9.7 9.7 0 0 1 2.31 2.398c.045.067-.091.33-.123.282M8.193 12.078c-.506-.71-1.521-1.738-2.238-2.312-.062-.05.182-.22.232-.181.755.602 1.668 1.499 2.18 2.263.037.057-.138.282-.174.23"/></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" fill="none"><path fill="#616161" fill-rule="evenodd" d="M8.096 2.885H4.372V2.51h3.724zM8.096 4.79H4.372v-.375h3.724z" clip-rule="evenodd"/><path fill="#9E9E9E" d="M7.098 15.539H5.662V.936s.134-.311.719-.311.719.311.719.311v14.603z"/><path fill="#757575" d="M6.73.671V12.47H5.662v1.074c.181.001.345.023.493.055.336.074.576.37.576.714v1.227H7.1V.936c-.002 0-.08-.179-.37-.265"/><path fill="#2196F3" d="M10.58.54a3.03 3.03 0 0 0-3.028 3.038 3.02 3.02 0 0 0 3.027 3.028 3.025 3.025 0 0 0 3.028-3.028A3.035 3.035 0 0 0 10.579.54"/><path fill="#fff" d="M11.902 1.671c-.19-.048-.569-.098-1.321-.098-.753 0-1.132.05-1.322.098-.112.029-.488.185-.488.606v2.598c0 .142.115.258.258.258h.095v.288c0 .084.068.151.152.151h.306a.15.15 0 0 0 .151-.151v-.288h1.693v.288c0 .084.067.151.15.151h.307a.15.15 0 0 0 .151-.151v-.288h.098a.26.26 0 0 0 .259-.258V2.277c0-.404-.377-.579-.49-.606m-2.139.206c0-.064.051-.115.115-.115h1.403c.063 0 .115.051.115.115v.204a.115.115 0 0 1-.115.115H9.878a.115.115 0 0 1-.115-.115zm.024 2.736a.08.08 0 0 1-.078.078h-.308a.264.264 0 0 1-.264-.264v-.139c0-.042.035-.077.077-.077h.31c.144 0 .263.117.263.264zm2.235-.186a.264.264 0 0 1-.264.264h-.309a.08.08 0 0 1-.077-.078v-.138c0-.145.117-.264.264-.264h.308c.043 0 .078.035.078.077zm.07-1.129c0 .168-.363.46-1.513.46s-1.512-.27-1.512-.46v-.767c0-.05.05-.175.175-.175h2.695c.125 0 .155.126.155.175z"/><path fill="#F5F5F5" d="M8.61 12.867H4.15a.285.285 0 0 1-.285-.285v-5.15c0-.158.127-.285.285-.285h4.457c.158 0 .285.127.285.285v5.15a.285.285 0 0 1-.284.285"/><path fill="#82AEC0" d="M8.128 12.015H4.632l-.01-4.07H8.12z" opacity=".8"/><path fill="#F5F5F5" fill-rule="evenodd" d="M6.246 12.07V7.945h.25v4.123z" clip-rule="evenodd"/><path fill="#616161" d="M6.246 7.946H4.622v.34h1.624z"/><path fill="#F5F5F5" fill-rule="evenodd" d="M8.142 11.307H4.618v-.125h3.524zM8.142 10.482H4.618v-.125h3.524zM8.12 9.657H4.621v-.125H8.12zM8.12 8.833H4.617v-.125H8.12z" clip-rule="evenodd"/><path fill="#616161" d="M8.118 9.426H6.495v.34h1.623zM6.253 10.25H4.635v.34h1.618z"/><path fill="#9E9E9E" fill-rule="evenodd" d="M4.15 7.334a.097.097 0 0 0-.097.098v5.15c0 .054.044.097.098.097h4.458a.097.097 0 0 0 .097-.097v-5.15a.097.097 0 0 0-.098-.098zm-.472.098c0-.261.212-.473.473-.473h4.457c.261 0 .473.212.473.473v5.15c0 .26-.211.472-.472.472H4.151a.47.47 0 0 1-.473-.472z" clip-rule="evenodd"/><path fill="#757575" d="M4.17 12.682c-.194.017-.194-.11-.194-.145V7.493c0-.141.115-.256.256-.256H8.56c.118 0 .172.071.148.216 0 0-.015-.092-.128-.092H4.233a.133.133 0 0 0-.132.132v5.045c0 .117.069.144.069.144"/><path fill="#FFCA28" d="M4.9 1.775H.642v3.7h4.26z"/><path fill="#9E9E9E" d="M4.663 1.775c.132 0 .238.106.238.237v3.225a.237.237 0 0 1-.238.237H.88a.237.237 0 0 1-.238-.237V2.012c0-.131.107-.237.238-.237zm0-.25H.88a.49.49 0 0 0-.488.487v3.225c0 .269.22.487.488.487h3.783a.49.49 0 0 0 .488-.487V2.012a.487.487 0 0 0-.488-.487"/><path fill="#FFFDE7" fill-rule="evenodd" d="M4.902 3.11H.642v-.25h4.26zM4.902 4.388H.642v-.25h4.26z" clip-rule="evenodd"/><path fill="#757575" d="M1.975 2.186H.904v.282h1.07zM1.711 4.777H.904v.283h.807zM4.552 4.777h-.807v.283h.807zM4.552 2.186h-.807v.282h.807zM3.795 3.482H3.33v.282h.465zM4.552 3.482h-.465v.282h.465zM2.388 3.482H.904v.282h1.484z"/></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 408 KiB

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="19.932999999999996 68.509 228.155 228.155" xmlns="http://www.w3.org/2000/svg"><path d="M101.885 207.092c7.865 0 14.241 6.376 14.241 14.241v61.09c0 7.865-6.376 14.24-14.241 14.24-7.864 0-14.24-6.375-14.24-14.24v-61.09c0-7.864 6.376-14.24 14.24-14.24z" fill="#a4c639"/><path d="M69.374 133.645c-.047.54-.088 1.086-.088 1.638v92.557c0 9.954 7.879 17.973 17.66 17.973h94.124c9.782 0 17.661-8.02 17.661-17.973v-92.557c0-.552-.02-1.1-.066-1.638H69.374z" fill="#a4c639"/><path d="M166.133 207.092c7.865 0 14.241 6.376 14.241 14.241v61.09c0 7.865-6.376 14.24-14.241 14.24-7.864 0-14.24-6.375-14.24-14.24v-61.09c0-7.864 6.376-14.24 14.24-14.24zM46.405 141.882c7.864 0 14.24 6.376 14.24 14.241v61.09c0 7.865-6.376 14.241-14.24 14.241-7.865 0-14.241-6.376-14.241-14.24v-61.09c-.001-7.865 6.375-14.242 14.241-14.242zM221.614 141.882c7.864 0 14.24 6.376 14.24 14.241v61.09c0 7.865-6.376 14.241-14.24 14.241-7.865 0-14.241-6.376-14.241-14.24v-61.09c0-7.865 6.376-14.242 14.241-14.242zM69.79 127.565c.396-28.43 25.21-51.74 57.062-54.812h14.312c31.854 3.073 56.666 26.384 57.062 54.812H69.79z" fill="#a4c639"/><path d="M74.743 70.009l15.022 26.02M193.276 70.009l-15.023 26.02" fill="none" stroke="#a4c639" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><path d="M114.878 102.087c.012 3.974-3.277 7.205-7.347 7.216-4.068.01-7.376-3.202-7.388-7.176v-.04c-.011-3.975 3.278-7.205 7.347-7.216 4.068-.011 7.376 3.2 7.388 7.176v.04zM169.874 102.087c.012 3.974-3.277 7.205-7.347 7.216-4.068.01-7.376-3.202-7.388-7.176v-.04c-.011-3.975 3.278-7.205 7.347-7.216 4.068-.011 7.376 3.2 7.388 7.176v.04z" fill="#ffffff"/></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve">
<g>
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="15.9594" y1="-13.0143" x2="44.3068" y2="15.3332" gradientTransform="matrix(1 0 0 -1 0 61)">
<stop offset="9.677000e-02" style="stop-color:#0095D5"/>
<stop offset="0.3007" style="stop-color:#238AD9"/>
<stop offset="0.6211" style="stop-color:#557BDE"/>
<stop offset="0.8643" style="stop-color:#7472E2"/>
<stop offset="1" style="stop-color:#806EE3"/>
</linearGradient>
<polygon id="XMLID_2_" style="fill:url(#XMLID_3_);" points="0,60 30.1,29.9 60,60 "/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="4.2092" y1="48.9409" x2="20.6734" y2="65.405" gradientTransform="matrix(1 0 0 -1 0 61)">
<stop offset="0.1183" style="stop-color:#0095D5"/>
<stop offset="0.4178" style="stop-color:#3C83DC"/>
<stop offset="0.6962" style="stop-color:#6D74E1"/>
<stop offset="0.8333" style="stop-color:#806EE3"/>
</linearGradient>
<polygon style="fill:url(#SVGID_1_);" points="0,0 30.1,0 0,32.5 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-10.1017" y1="5.8362" x2="45.7315" y2="61.6694" gradientTransform="matrix(1 0 0 -1 0 61)">
<stop offset="0.1075" style="stop-color:#C757BC"/>
<stop offset="0.2138" style="stop-color:#D0609A"/>
<stop offset="0.4254" style="stop-color:#E1725C"/>
<stop offset="0.6048" style="stop-color:#EE7E2F"/>
<stop offset="0.743" style="stop-color:#F58613"/>
<stop offset="0.8232" style="stop-color:#F88909"/>
</linearGradient>
<polygon style="fill:url(#SVGID_2_);" points="30.1,0 0,31.7 0,60 30.1,29.9 60,0 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1 +0,0 @@
<svg width="2370" height="2500" viewBox="0 0 256 270" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet"><path d="M127.606.341L.849 44.95 20.88 211.022l106.86 58.732 107.412-59.528L255.175 44.16 127.606.341z" fill="#B3B3B3"/><path d="M242.532 53.758L127.31 14.466v241.256l96.561-53.441 18.66-148.523z" fill="#A6120D"/><path d="M15.073 54.466l17.165 148.525 95.07 52.731V14.462L15.074 54.465z" fill="#DD1B16"/><path d="M159.027 142.898L127.31 157.73H93.881l-15.714 39.305-29.228.54L127.31 23.227l31.717 119.672zm-3.066-7.467l-28.44-56.303-23.329 55.334h23.117l28.652.97z" fill="#F2F2F2"/><path d="M127.309 23.226l.21 55.902 26.47 55.377h-26.62l-.06 23.189 36.81.035 17.204 39.852 27.967.518-81.981-174.873z" fill="#B3B3B3"/></svg>

Before

Width:  |  Height:  |  Size: 749 B

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 98.18" style="enable-background:new 0 0 122.88 98.18" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;} .st0{fill:#1668dc;} .st1{fill:#FFFFFF;}</style><g><path class="st0" d="M3.42,0h116.05c1.88,0,3.41,1.54,3.41,3.41v91.36c0,1.88-1.54,3.41-3.41,3.41l-116.05,0 C1.54,98.18,0,96.65,0,94.77L0,3.41C0,1.53,1.54,0,3.42,0L3.42,0L3.42,0z M25.89,8.19c2.05,0,3.72,1.67,3.72,3.72 c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72C22.17,9.85,23.83,8.19,25.89,8.19L25.89,8.19z M103.07,7.69l2.52,2.77 l2.52-2.77l1.97,1.79l-2.69,2.96l2.69,2.96l-1.97,1.79l-2.52-2.77l-2.52,2.77l-1.97-1.79l2.69-2.96l-2.69-2.96L103.07,7.69 L103.07,7.69z M14.52,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72 C10.79,9.85,12.46,8.19,14.52,8.19L14.52,8.19z M37.26,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72 c-2.05,0-3.72-1.67-3.72-3.72C33.54,9.85,35.21,8.19,37.26,8.19L37.26,8.19z M14.05,22.75h93.33c1.77,0,3.22,1.49,3.22,3.22v59.2 c0,1.73-1.49,3.22-3.22,3.22l-93.33,0c-1.73,0-3.22-1.45-3.22-3.22v-59.2C10.84,24.2,12.29,22.75,14.05,22.75L14.05,22.75 L14.05,22.75z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg width="2207" height="2500" viewBox="0 0 256 290" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M256 199.305l-127.957-18.797L0 199.329l128.01 47.439L256 199.305" fill="#B7CA9D"/><path d="M25.621 197.113l21.63 6.761 1.971-2.238V50.284l-1.971-2.585-21.63 8.274v141.14" fill="#4B612C"/><path d="M123.832 190.423l-76.581 13.451V47.703l76.581 17.222v125.498" fill="#759C3E"/><path d="M89.686 216.889l-29.848-9.201V14.928L89.686.004l2.612 2.845v210.858l-2.612 3.182" fill="#4B612C"/><path d="M191.967 192.894L89.686 216.889V0l102.281 39.866v153.028" fill="#759C3E"/><path d="M127.965 244.714L0 199.329v26.324l127.965 63.983v-44.922" fill="#4B612C"/><path d="M256 225.622l-128.035 64.014v-44.922L256 199.305v26.317" fill="#759C3E"/><path d="M220.039 155.692h-31.026l-88.445 6.026L128 166.775l92.039-11.083" fill="#B7CA9D"/><path d="M100.568 219.906l27.42 8.226.789-.849-.023-61.849-.789-.758-27.397-2.958v58.188" fill="#4B612C"/><path d="M220.039 155.692l-92.074 8.98.023 63.46 92.051-27.711v-44.729" fill="#759C3E"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="504.09" height="215.994"
viewBox="0 0 504.09 215.994" overflow="visible" enable-background="new 0 0 504.09 215.994" xml:space="preserve">
<path fill="#092E20" d="M504.09,187.994c0,15.464-12.536,28-28,28H28c-15.464,0-28-12.536-28-28V28C0,12.536,12.536,0,28,0h448.09
c15.464,0,28,12.536,28,28V187.994z"/>
<g>
<g>
<path fill="#FFFFFF" d="M86.945,33.919h23.872v110.496c-12.246,2.325-21.237,3.255-31.002,3.255
c-29.142,0-44.333-13.174-44.333-38.443c0-24.336,16.122-40.147,41.078-40.147c3.875,0,6.82,0.311,10.386,1.239V33.919z
M86.945,89.539c-2.79-0.929-5.115-1.239-8.06-1.239c-12.091,0-19.067,7.441-19.067,20.46c0,12.713,6.666,19.688,18.912,19.688
c2.634,0,4.805-0.155,8.215-0.618V89.539z"/>
<path fill="#FFFFFF" d="M148.793,70.783v55.341c0,19.065-1.395,28.21-5.58,36.117c-3.876,7.596-8.992,12.399-19.532,17.67
l-22.167-10.541c10.541-4.96,15.656-9.297,18.911-15.966c3.411-6.819,4.497-14.727,4.497-35.498V70.783H148.793z M124.922,34.046
h23.871v24.493h-23.871V34.046z"/>
<path fill="#FFFFFF" d="M163.212,76.209c10.542-4.961,20.617-7.13,31.623-7.13c12.246,0,20.306,3.255,23.872,9.611
c2.014,3.564,2.634,8.214,2.634,18.137v48.517c-10.697,1.552-24.182,2.636-34.102,2.636c-19.996,0-28.988-6.977-28.988-22.476
c0-16.744,11.936-24.493,41.234-26.975v-5.271c0-4.339-2.17-5.888-8.216-5.888c-8.835,0-18.756,2.479-28.058,7.285V76.209z
M200.57,114.187c-15.812,1.552-20.927,4.031-20.927,10.231c0,4.65,2.946,6.821,9.456,6.821c3.566,0,6.82-0.311,11.471-1.084
V114.187z"/>
<path fill="#FFFFFF" d="M232.968,74.505c14.105-3.722,25.731-5.426,37.512-5.426c12.246,0,21.082,2.788,26.354,8.216
c4.96,5.113,6.509,10.693,6.509,22.632v46.813h-23.871v-45.884c0-9.145-3.1-12.557-11.625-12.557c-3.255,0-6.2,0.311-11.007,1.706
v56.734h-23.871V74.505z"/>
<path fill="#FFFFFF" d="M312.623,159.761c8.372,4.339,16.742,6.354,25.577,6.354c15.655,0,22.321-6.354,22.321-21.546
c0-0.154,0-0.31,0-0.467c-4.65,2.326-9.301,3.257-15.5,3.257c-20.927,0-34.26-13.797-34.26-35.652
c0-27.128,19.688-42.473,54.564-42.473c10.232,0,19.688,1.084,31.159,3.407l-8.174,17.222c-6.356-1.241-0.509-0.167-5.312-0.632
v2.48l0.309,10.074l0.154,13.022c0.155,3.253,0.155,6.51,0.311,9.764c0,2.945,0,4.342,0,6.512c0,20.462-1.705,30.073-6.82,37.977
c-7.441,11.627-20.307,17.362-38.598,17.362c-9.301,0-17.36-1.396-25.732-4.651V159.761z M360.057,88.455c-0.31,0-0.619,0-0.774,0
h-1.706c-4.649-0.155-10.074,1.084-13.796,3.409c-5.734,3.257-8.681,9.146-8.681,17.518c0,11.937,5.892,18.756,16.432,18.756
c3.255,0,5.891-0.62,8.99-1.55v-1.705v-6.51c0-2.79-0.154-5.892-0.154-9.146l-0.154-11.006l-0.156-7.905V88.455z"/>
<path fill="#FFFFFF" d="M433.543,68.77c23.871,0,38.443,15.037,38.443,39.371c0,24.957-15.19,40.613-39.373,40.613
c-23.873,0-38.599-15.036-38.599-39.216C394.015,84.424,409.207,68.77,433.543,68.77z M433.076,129.533
c9.147,0,14.573-7.596,14.573-20.773c0-13.019-5.271-20.771-14.415-20.771c-9.457,0-14.884,7.598-14.884,20.771
C418.351,121.938,423.777,129.533,433.076,129.533z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -1,7 +0,0 @@
<svg width="456" height="456" viewBox="0 0 456 456" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="456" height="456" fill="#512BD4"/>
<path d="M81.2738 291.333C78.0496 291.333 75.309 290.259 73.052 288.11C70.795 285.906 69.6665 283.289 69.6665 280.259C69.6665 277.173 70.795 274.529 73.052 272.325C75.309 270.121 78.0496 269.019 81.2738 269.019C84.5518 269.019 87.3193 270.121 89.5763 272.325C91.887 274.529 93.0424 277.173 93.0424 280.259C93.0424 283.289 91.887 285.906 89.5763 288.11C87.3193 290.259 84.5518 291.333 81.2738 291.333Z" fill="white"/>
<path d="M210.167 289.515H189.209L133.994 202.406C132.597 200.202 131.441 197.915 130.528 195.546H130.044C130.474 198.081 130.689 203.508 130.689 211.827V289.515H112.149V171H134.477L187.839 256.043C190.096 259.57 191.547 261.994 192.192 263.316H192.514C191.977 260.176 191.708 254.859 191.708 247.365V171H210.167V289.515Z" fill="white"/>
<path d="M300.449 289.515H235.561V171H297.87V187.695H254.746V221.249H294.485V237.861H254.746V272.903H300.449V289.515Z" fill="white"/>
<path d="M392.667 187.695H359.457V289.515H340.272V187.695H307.143V171H392.667V187.695Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 70 80" fill="#fff" fill-rule="evenodd" width="2188" height="2500"><style>.B{fill:#f58536}.C{fill:#9d5025}</style><use xlink:href="#A" x="2.188" y="2.5"/><symbol id="A" overflow="visible"><path d="M3.51 14.898L0 16.56v46.88l3.51 1.662L17.423 40 3.51 14.898z" class="C"/><path d="M11.694 63.285L3.51 65.102V14.898l8.183 1.77v46.618z" class="B"/><path d="M7.382 13.06l4.312-2.03L21.9 40 11.694 68.97l-4.312-2.03V13.06z" class="C"/><path d="M21.9 66.24l-10.205 2.73V11.03L21.9 13.77v52.47z" class="B"/><path d="M16.5 8.747l5.4-2.556L55.616 40 21.9 73.8l-5.4-2.546V8.747z" class="C"/><path d="M58.357 61.03L21.9 73.8V6.19l36.458 12.614V61.03z" class="B"/><path d="M53.634 33.693l-6.807.418-18.82-1.506L35 0l18.645 33.693z" fill="#6b3a19"/><path d="M35 31.934V0l-6.982 3.304v29.3l6.982-.67z" class="C"/><path d="M53.635 33.693V8.824L35 0v31.934l18.645 1.76z" class="B"/><path d="M53.634 46.094l-6.448-.39-19.18 1.536L35 80l18.645-33.907z" fill="#fbbf93"/><path d="M28.008 47.24v29.465L35 80V47.842l-6.982-.602z" class="C"/><path d="M35 47.842V80l18.645-8.824V46.093L35 47.842z" class="B"/><path d="M70 44.558l-4.004-.156-10.38.865L60 68.163l10-23.605z" fill="#fbbf93"/><path d="M60 45.49v22.672l10-4.733V44.558l-10 .933z" class="B"/><path d="M70 35.248l-4.004.155-10.38-.875L60 11.837l10 23.41z" fill="#6b3a19"/><path d="M70 35.248V16.57l-10-4.733v22.46l10 .952z" class="B"/><path d="M55.616 67.065L60 68.163V45.5l-4.394-.224v21.798zm0-54.13L60 11.837v22.46l-4.394.233V12.935z" class="C"/></symbol></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="64" height="64"><path d="M32 24.795c-1.164.296-1.884.013-2.53-.957l-4.594-6.356-.664-.88-5.365 7.257c-.613.873-1.256 1.253-2.4.944l6.87-9.222-6.396-8.33c1.1-.214 1.86-.105 2.535.88l4.765 6.435 4.8-6.4c.615-.873 1.276-1.205 2.38-.883l-2.48 3.288-3.36 4.375c-.4.5-.345.842.023 1.325L32 24.795zM.008 15.427l.562-2.764C2.1 7.193 8.37 4.92 12.694 8.3c2.527 1.988 3.155 4.8 3.03 7.95H1.48c-.214 5.67 3.867 9.092 9.07 7.346 1.825-.613 2.9-2.042 3.438-3.83.273-.896.725-1.036 1.567-.78-.43 2.236-1.4 4.104-3.45 5.273-3.063 1.75-7.435 1.184-9.735-1.248C1 21.6.434 19.812.18 17.9c-.04-.316-.12-.617-.18-.92q.008-.776.008-1.552zm1.498-.38h12.872c-.084-4.1-2.637-7.012-6.126-7.037-3.83-.03-6.58 2.813-6.746 7.037z"/></svg>

Before

Width:  |  Height:  |  Size: 777 B

View File

@@ -1 +0,0 @@
<svg height="376pt" viewBox="31 16.6 309.2 337.4" width="376pt" xmlns="http://www.w3.org/2000/svg"><g fill="#f0ad4e"><path d="m65.9 24.7c-23.2 24-34.9 48.2-34.9 72.3 0 5.5.4 10.2 1 10.5s1 1.6 1 2.8c0 2.8 2.4 9.7 5.6 16.2 4.2 8.7 10.3 14.8 26.9 26.8 13 9.4 20.2 20 22.6 33.4l1.3 7.2 3.6-1.5c9.1-3.9 16.1-5.3 37-7.5 13.4-1.4 18.6-3.4 24.8-9.5 8.8-8.8 4.6-14.5-22.9-30.8-29.6-17.6-40.2-25.8-51.7-40.1-9.2-11.5-13.9-21-16.2-32.8-2.2-11 .8-28.4 7.5-44 1.9-4.6 3.5-8.6 3.5-9 0-2.1-3.3.1-9.1 6z"/><path d="m332.5 32.8c-.5.4-1.8 2.4-2.7 4.4-5.8 12.4-25 24.1-55.3 33.5-2.7.9-7.5 2.3-10.5 3.3-3 .9-8.9 2.8-13 4-50.9 15.5-59.8 23.5-78 69.5-8.2 20.6-12.5 27.5-21 33.1-7.1 4.8-12.9 6.4-29 8.4-25.6 3.1-35.5 6.1-43.5 13.2-4.9 4.2-6.5 8.6-6.5 17.4 0 4-.4 7.5-.8 7.8-.5.3-1.4 3-2.1 6.1-1 4.2-1 6.3-.1 9 1.4 4.1 5.3 7.5 8.8 7.5 2.5 0 2.6-.7.7-5.2-.4-1.1.2-2.5 1.9-4.3 2.2-2.2 3.3-2.5 10.1-2.5 7.8 0 10.4-.8 14.1-4.2 2.1-1.9 2.2-1.9 5 1.2 5.9 6.5 21.3 15.7 40.5 24.3 9.1 4.1 14.8 9 19.1 16.6 2.9 5 3.3 6.4 3.3 13.6 0 11.7-4.2 19.7-12.4 23.5-1.4.7-3.4 1.6-4.3 2.1-1 .5-4.7.9-8.3.9h-6.5l-2.1 4.7c-1.2 2.7-2.7 6-3.5 7.4-1.1 2.2-1.1 2.9 0 4.5 1.3 1.7 1.7 1.5 6.5-3.4 5-5.1 8.1-6.6 8.1-3.8 0 .8-1.8 2.8-3.9 4.5-4.9 3.9-5.6 6.7-3.3 13.3 1.9 5.4 4.4 7 5 3.3.2-1.1 1.7-3.3 3.3-4.9 1.6-1.5 2.9-3.4 2.9-4.1s.7-1.8 1.5-2.5c2.2-1.8 3.1 1.4 1.7 6.4-.9 3.4-.8 4.4.5 5.8 1 1.1 1.3 2.6.9 4.3-.4 1.8-.2 2.5.7 2.5 1.4 0 4.7-3.1 4.7-4.4 0-.4.9-2.1 2.1-3.7 2.1-3 2.2-3.6.3-14.2-.3-2-.2-3.7.2-3.7 2.1 0 9.3 4.6 9.7 6.2.7 2.6 3.7 1.1 3.7-1.9 0-3.8-2.7-8-6-9.5-3.3-1.4-3.9-3.6-1.2-4.4 6.3-2 12.2-5.6 17.5-10.9 6.4-6.2 7.5-7.5 11.6-13.5 5.7-8.3 11-12 17.1-12 8.4 0 34.8 11.8 55.2 24.7 9.5 6 28.1 19 31.2 21.8.6.6 4 3.1 7.6 5.7 3.6 2.5 9.8 7.3 13.8 10.7 4 3.3 7.6 6.1 8 6.1 3.3 0 4.4-8.6 1.5-11.2-1-.8-4.5-3-7.8-4.8-7.3-4.1-21.4-13.6-27.5-18.7-13.8-11.3-31.4-33.4-43.1-54.1-1.1-1.7-2.8-4.8-3.9-6.8-8.4-14.7-24.4-33.4-28.7-33.4-1.7 0-1.7-.1 1-13 .8-4.1 2-11.1 2.6-15.5 1.8-12.2 4.4-26.1 6.3-33 5.4-20.3 16.9-34.4 37.8-46.2 29.3-16.7 41-27 49.4-43.7 4.5-8.9 5.4-11.1 8.1-21.1 1.4-5.1 3.1-17.5 2.4-17.5-.2 0-.8.4-1.4.8z"/><path d="m159.5 269.3c-.2.7-.5 3.2-.8 5.8-.6 7-5.3 16.3-10.7 21.3-6.5 6.1-10.5 8-13.9 6.7-1.4-.5-5.4-1.3-8.8-1.6-5-.6-6.8-.3-9.2 1.1-2.6 1.5-3.1 2.5-3.1 5.6 0 4.4-.1 4.3 3.6 2.3 1.6-.8 3.5-1.5 4.2-1.5 2.1 0 1.3 2-1.3 3.2-2.9 1.3-3.7 3.8-3.9 11.6-.1 5.9 1.7 8.2 3.3 4 .5-1.3 2.4-3.1 4.2-4.1 1.9-1 4.5-3.6 5.9-5.7 2.6-4.4 4-5.1 4-2.1 0 6.4 3.3 6.7 6.1.5 1.7-3.4 2.6-4.3 3.8-3.8 3.3 1.4 7.2 1.6 8.6.4s1.3-1.6-.6-3.6c-1.2-1.3-2.1-2.5-1.8-2.7 2.2-1.6 7-2.7 11.9-2.7 8.8 0 10-1.5 10-12.8 0-11.5-3-19.7-7.9-21.8-2.5-1-3.3-1.1-3.6-.1zm80.5 21.5c0 .5 3.7 2.8 8.3 5.1 22.1 11.7 35.7 24.4 40.8 38.5 2.3 6.1 2.4 8.3.4 12.9-2.5 6.1-2.9 6 13.3 5.5 14.6-.5 23.2-2.1 23.2-4.4 0-1.1-12-12.4-16.4-15.3-1.2-.8-2.3-1.8-2.6-2.1s-2.3-1.9-4.5-3.6c-2.2-1.6-4.6-3.4-5.2-3.9-.7-.6-2.3-1.8-3.5-2.7-1.3-1-4.1-3.2-6.3-4.9s-5.6-4-7.5-5c-4.6-2.5-7.4-4.3-8-5-.7-.8-14.5-8.3-21-11.4-3-1.4-6.3-3-7.2-3.5-2.2-1.2-3.8-1.3-3.8-.2z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M56.813 127.586c-1.903-.227-3.899-.52-4.434-.652a48.078 48.078 0 00-2.375-.5 36.042 36.042 0 01-2.703-.633c-4.145-1.188-4.442-1.285-7.567-2.563-2.875-1.172-8.172-3.91-9.984-5.156-.496-.344-.96-.621-1.031-.621-.07 0-1.23-.816-2.578-1.813-8.57-6.343-15.004-14.043-19.653-23.527-.8-1.629-1.453-3.074-1.453-3.21 0-.134-.144-.505-.32-.817-.363-.649-.88-2.047-1.297-3.492a20.047 20.047 0 00-.625-1.813c-.195-.46-.352-1.02-.352-1.246 0-.227-.195-.965-.433-1.645-.238-.675-.43-1.472-.43-1.77 0-.296-.187-1.32-.418-2.276C.598 73.492 0 67.379 0 63.953c0-3.422.598-9.535 1.16-11.894.23-.957.418-2 .418-2.32 0-.321.145-.95.32-1.4.18-.448.41-1.253.516-1.788.11-.535.36-1.457.563-2.055l.59-1.726c.433-1.293.835-2.387 1.027-2.813.11-.238.539-1.21.957-2.16.676-1.535 2.125-4.43 2.972-5.945.309-.555.426-.739 2.098-3.352 2.649-4.148 7.176-9.309 11.39-12.988 1.485-1.297 6.446-5.063 6.669-5.063.062 0 .53-.281 1.043-.625 1.347-.902 2.668-1.668 4.39-2.531a53.06 53.06 0 001.836-.953c.285-.164.82-.41 3.567-1.64.605-.27 1.257-.516 3.136-1.173.414-.144 1.246-.449 1.84-.672.598-.222 1.301-.406 1.563-.406.258 0 .937-.18 1.508-.402.57-.223 1.605-.477 2.304-.563.696-.082 1.621-.277 2.055-.43.43-.148 1.61-.34 2.621-.425a72.572 72.572 0 003.941-.465c2.688-.394 8.532-.394 11.192 0a75.02 75.02 0 003.781.445c.953.079 2.168.278 2.703.442.535.16 1.461.36 2.055.433.594.079 1.594.325 2.222.551.63.23 1.344.414 1.59.414s.754.137 1.125.309c.375.168 1.168.449 1.766.625.594.18 1.613.535 2.27.797.652.261 1.527.605 1.945.761.77.29 6.46 3.137 7.234 3.622 6.281 3.917 9.512 6.476 13.856 10.964 5.238 5.414 8.715 10.57 12.254 18.16.25.536.632 1.329.851 1.758.215.434.395.942.395 1.13 0 .19.18.76.402 1.269.602 1.383 1.117 2.957 1.36 4.16.12.59.343 1.32.495 1.621.153.3.332 1.063.403 1.688.07.624.277 1.648.453 2.269 1.02 3.531 1.527 13.934.91 18.535-.183 1.367-.39 3.02-.46 3.672-.118 1.117-.708 4.004-1.212 5.945l-.52 2.055c-.98 3.957-3.402 9.594-6.359 14.809-1.172 2.07-5.101 7.668-5.843 8.324-.067.058-.399.45-.735.863-.336.418-1.414 1.586-2.39 2.594-4.301 4.441-7.77 7.187-13.86 10.969-.722.449-6.847 3.441-7.992 3.906-.594.238-1.586.64-2.203.89-.613.247-1.297.454-1.512.458-.215.003-.781.195-1.258.425-.476.23-1.082.422-1.351.426-.266.004-1.043.192-1.727.418-.683.23-1.633.477-2.11.55-.476.075-1.495.278-2.269.45-.773.172-3.11.508-5.187.746a59.06 59.06 0 01-13.945-.031zm4.703-12.5c.3-.234.609-.7.691-1.027.18-.723 29.234-58.97 29.781-59.7.461-.617.504-1.605.082-1.953-.222-.187-3.004-.246-10.43-.234-5.57.012-10.253.016-10.406.012-.226-.008-.273-3.73-.25-19.672.016-10.817-.035-19.766-.113-19.89-.078-.126-.383-.227-.68-.227-.418 0-.613.18-.87.808-.485 1.168-1.825 3.82-8.348 16.485a3554.569 3554.569 0 00-4.055 7.89c-1.156 2.262-2.98 5.813-4.047 7.89a8751.248 8751.248 0 00-8.598 16.759c-4.933 9.636-5.53 10.785-5.742 11.039-.41.496-.633 1.64-.402 2.07.21.394.629.41 11.043.394 5.953-.007 10.863.024 10.914.07.137.141.086 37.31-.055 38.196-.093.582-.031.89.235 1.156.46.461.586.457 1.25-.066zm0 0" fill="#049688"/></svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,242 +0,0 @@
<svg version="1.1" id="Layer_1" xmlns:x="ns_extend;" xmlns:i="ns_ai;" xmlns:graph="ns_graphs;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 108.6 78" style="enable-background:new 0 0 108.6 78;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
.st2{opacity:0.8;fill:url(#SVGID_3_);enable-background:new ;}
.st3{opacity:0.8;fill:url(#SVGID_4_);enable-background:new ;}
.st4{opacity:0.8;fill:url(#SVGID_5_);enable-background:new ;}
.st5{fill:url(#SVGID_6_);}
.st6{opacity:0.8;fill:url(#SVGID_7_);enable-background:new ;}
.st7{opacity:0.3;fill:url(#SVGID_8_);enable-background:new ;}
.st8{opacity:0.3;fill:url(#SVGID_9_);enable-background:new ;}
.st9{opacity:0.3;fill:url(#SVGID_10_);enable-background:new ;}
.st10{opacity:0.3;fill:url(#SVGID_11_);enable-background:new ;}
.st11{fill:url(#SVGID_12_);}
.st12{opacity:0.3;fill:url(#SVGID_13_);enable-background:new ;}
.st13{opacity:0.8;fill:url(#SVGID_14_);enable-background:new ;}
.st14{fill:url(#SVGID_15_);}
.st15{fill:url(#SVGID_16_);}
.st16{fill:#282E38;}
</style>
<metadata>
<sfw xmlns="ns_sfw;">
<slices>
</slices>
<sliceSourceBounds bottomLeftOrigin="true" height="78" width="108.6" x="-147.2" y="2.8">
</sliceSourceBounds>
</sfw>
</metadata>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="110.5698" y1="70.9492" x2="2.0982" y2="62.3315" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.2986" style="stop-color:#0097CE">
</stop>
<stop offset="0.3791" style="stop-color:#0999C5">
</stop>
<stop offset="0.5119" style="stop-color:#229DAD">
</stop>
<stop offset="0.6469" style="stop-color:#42A38F">
</stop>
<stop offset="0.7352" style="stop-color:#5DAD82">
</stop>
<stop offset="0.9239" style="stop-color:#A1C661">
</stop>
<stop offset="1" style="stop-color:#BED153">
</stop>
</linearGradient>
<path class="st0" d="M108.3,17.3c-2.5-0.4-8-0.5-18.9,1.8c-1.3,0.3-2.6,0.5-3.9,0.4c-1.4-0.2-2.9-0.5-4.2-0.9
c-6-2.1-10.9-1.4-13.8,0.1c-1.7,0.9-3.2,2.3-4.3,3.9c-1.8,2.5-5.6,10-10.7,12c-2.9,1.9-6,3.8-8.8,6.6c-1.7,1.8-2.2,6.1-6.8,10.3
c-4.5,6.7-10.2,12.5-16.9,17c-8.6,6.1-15.9,8-15.9,8s19.2,5.4,40.2-4.7c16-7.7,24.3-22.6,26.2-25.9L81,28c0.9-1.6,2.6-3.8,4.2-4.6
c0.5-0.3,1-0.5,1.1-0.6c1.2-0.6,2.4-1.1,3.6-1.5c7.3-2.7,14.9-2.9,18.4-3.3C108.7,17.9,108.7,17.4,108.3,17.3z">
</path>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-3.3872" y1="99.1067" x2="101.7764" y2="70.6323" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="8.199000e-02" style="stop-color:#3D65AF">
</stop>
<stop offset="0.2305" style="stop-color:#2372B8">
</stop>
<stop offset="0.5058" style="stop-color:#00B8BB">
</stop>
</linearGradient>
<path class="st1" d="M108.3,17.3c-2.5-0.4-8-0.5-18.9,1.8c-1.3,0.3-2.6,0.5-3.9,0.4c-1.4-0.2-2.9-0.5-4.2-0.9
c-6.1-2.1-10.8-1.5-13.8,0.1c-1.7,0.9-3.2,2.3-4.3,3.9c-1.8,2.5-5.6,10-10.7,12c-5.8-5.5-10.9-10.2-15.8-14.3
c-2.8-2.2-5.5-4.4-7.8-5.9c-5.7-4-11.6-7.6-17.8-10.7C8.3,2.5,5.5,1.4,2.4,0.2C1.1-0.2,0.3,0.4,0.1,1.5C0,1.8-0.1,2.8,0.5,4.4
C2,8.6,3.9,12.6,6.1,16.5C7,18.1,8,19.7,9,21.4c4.9,7.8,10.6,15,17,21.4c1.3,1.3,2.6,2.5,4,3.6c1.7,1.4,3.4,2.7,5.2,3.9
c0.2,0.1,1,0.6,1.6,1c1.2,0.6,2.7,1.4,3.7,1.8c4,1.9,8.4,2.8,12.8,2.8c6.4,0.2,11.6-1.9,14.2-5.4c1.1-1.5,2.1-3,3-4.6L81,28
c0.9-1.6,2.6-3.8,4.2-4.6c0.5-0.3,1-0.5,1.1-0.6c1.1-0.5,1.1-0.4,2.3-0.8c7.4-2.7,16.3-3.6,19.8-4c0.1,0,0.1,0,0.2-0.1
c0.1-0.1,0.1-0.1,0.1-0.2c0-0.1,0-0.2-0.1-0.2C108.5,17.4,108.4,17.3,108.3,17.3z">
</path>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-4.240106e-02" y1="111.6313" x2="57.0864" y2="96.1629" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st2" d="M0,2.1C0,2,0.1,1.8,0,1.7C0.1,1.8,0.1,2,0,2.1z">
</path>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="14.2865" y1="112.4456" x2="67.4928" y2="112.4456" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st3" d="M4.9,1C4.8,1,4.7,0.9,4.6,1C4.8,1,4.9,1.1,5.1,1.2C5.1,1.1,5,1.1,4.9,1z">
</path>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="15.0621" y1="111.7076" x2="62.3568" y2="111.7076" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st4" d="M6.7,1.8c-0.1,0-0.2-0.1-0.2-0.1c0.1,0.1,0.3,0.1,0.5,0.2C6.8,1.8,6.7,1.8,6.7,1.8z">
</path>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="5.8502" y1="99.4376" x2="54.3686" y2="86.3005" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#2483C5">
</stop>
<stop offset="0.1672" style="stop-color:#2486C7">
</stop>
<stop offset="0.676" style="stop-color:#29B1DF">
</stop>
<stop offset="0.9352" style="stop-color:#2BC2E8">
</stop>
</linearGradient>
<path class="st5" d="M40.7,35.7c3.9,0.6,8,0.2,11.7-1.2c-3.5-3.3-6.8-6.3-9.9-9c-1.6-1.4-3.1-2.7-4.5-3.9c-0.1-0.1-0.2-0.1-0.2-0.2
c-0.4-0.4-0.8-0.6-1.1-0.9c-0.1-0.1-0.2-0.2-0.2-0.2C33.7,18,31,16,28.8,14.4C22.9,10.3,17,6.5,11,3.7c-0.5-0.3-1-0.5-1.6-0.8
C9.2,2.8,9.1,2.8,8.9,2.7C32,15.4,39.4,26.9,40.7,35.7z">
</path>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="9.0343" y1="108.5579" x2="56.3287" y2="108.5579" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st6" d="M0.9,5.5C0.7,5.2,0.6,4.8,0.4,4.4C0.6,4.7,0.7,5.1,0.9,5.5z">
</path>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="0" y1="111.2669" x2="5.794769e-02" y2="111.2669" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st7" d="M0,2.3c0-0.1,0-0.1,0.1-0.1C0.1,2.2,0.1,2.2,0,2.3z">
</path>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="228.4462" y1="112.9745" x2="117.6531" y2="112.9745" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st8" d="M2.5,0.1C3.2,0.4,3.9,0.7,4.6,1C3.9,0.7,3.2,0.4,2.5,0.1z">
</path>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="42.7481" y1="110.1772" x2="21.7874" y2="110.1772" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st9" d="M0,2.3C0,3,0.2,3.7,0.4,4.4C0.2,3.7,0,3,0,2.3z">
</path>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="220.6359" y1="111.1786" x2="115.833" y2="111.1786" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st10" d="M8.6,2.6l0.3,0.2c-0.6-0.3-1.3-0.6-2-0.9C7.1,2,7.3,2.1,7.5,2.2C7.9,2.3,8.2,2.4,8.6,2.6z">
</path>
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-3.6727" y1="91.1328" x2="42.6712" y2="78.5846" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#3B67AD">
</stop>
<stop offset="0.5697" style="stop-color:#227CAA">
</stop>
<stop offset="0.9352" style="stop-color:#118AA8">
</stop>
</linearGradient>
<path class="st11" d="M15.4,23.3C9.2,18.3,3.4,11.2,0.9,5.6c5.8,14.9,20.9,36,34.3,44.8c0.2,0.2,1,0.6,1.7,1
c1.7-2.7,4.9-8.3,3.8-15.7C32.4,34.6,23.5,30,15.4,23.3z">
</path>
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="133.4601" y1="112.0615" x2="70.578" y2="112.0615" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st12" d="M6.4,1.7L5.2,1.2c0.1,0,0.1,0.1,0.2,0.1C5.7,1.4,6,1.5,6.4,1.7z">
</path>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="755.9692" y1="95.6936" x2="4900.1494" y2="95.6936" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st13" d="M15.4,23.3c8.1,6.7,17,11.2,25.3,12.3C39.4,26.9,32,15.3,8.9,2.8c-0.1,0-0.2-0.1-0.3-0.2
c-0.3-0.2-0.7-0.3-1-0.5C7.4,2,7.2,2,7,1.8C6.8,1.8,6.7,1.7,6.5,1.7C6.1,1.5,5.8,1.3,5.4,1.2c-0.1,0-0.1-0.1-0.2-0.1
C5,1.1,4.9,1,4.7,1C4,0.7,3.3,0.4,2.6,0.1C1.2-0.3,0.5,0.4,0.2,1.4c0,0.1,0,0.2-0.1,0.4c-0.1,0.1,0,0.3,0,0.5c0,0.1,0,0.1-0.1,0.1
c0,0.7,0.2,1.4,0.4,2.1c0.1,0.4,0.3,0.8,0.5,1.2C3.4,11.2,9.3,18.3,15.4,23.3z">
</path>
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-2.6385" y1="102.0505" x2="43.843" y2="89.4649" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#3A67B0">
</stop>
<stop offset="0.5622" style="stop-color:#357FBD">
</stop>
<stop offset="0.9352" style="stop-color:#3290C6">
</stop>
</linearGradient>
<path class="st14" d="M15.4,23.3c8.1,6.7,17,11.2,25.3,12.3C39.4,26.9,32,15.3,8.9,2.8c-0.1,0-0.2-0.1-0.3-0.2
c-0.3-0.2-0.7-0.3-1-0.5C7.4,2,7.2,2,7,1.8C6.8,1.8,6.7,1.7,6.5,1.7C6.1,1.5,5.8,1.3,5.4,1.2c-0.1,0-0.1-0.1-0.2-0.1
C5,1.1,4.9,1,4.7,1C4,0.7,3.3,0.4,2.6,0.1C1.2-0.3,0.5,0.4,0.2,1.4c0,0.1,0,0.2-0.1,0.4c-0.1,0.1,0,0.3,0,0.5c0,0.1,0,0.1-0.1,0.1
c0,0.7,0.2,1.4,0.4,2.1c0.1,0.4,0.3,0.8,0.5,1.2C3.4,11.2,9.3,18.3,15.4,23.3z">
</path>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="56.1575" y1="92.6466" x2="104.2326" y2="79.6295" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1724" style="stop-color:#4E5CA8">
</stop>
<stop offset="0.9937" style="stop-color:#1FC3F3">
</stop>
</linearGradient>
<path class="st15" d="M108.3,17.3c-2.5-0.4-8-0.5-18.9,1.8c-1.3,0.3-2.6,0.5-3.9,0.4c-1.4-0.2-2.9-0.5-4.2-0.9
c-2.8-1-5.8-1.5-8.8-1.4c-2.1,0.1-4,0.8-5.7,2c-1.4,0.9-2.5,2.1-3.5,3.4c-1.8,2.5-5.6,10-10.7,12c4.1,3.9,10.3,7.1,16.2,5.2
c5.6-1.9,9.1-6.9,10.2-8.6c1.1-1.7,2.4-3.4,3.7-4.9c1.9-2,4.3-3.5,6.9-4.4c6.6-2.2,16.6-3.6,19-3.8
C108.7,17.9,108.7,17.4,108.3,17.3z">
</path>
<path class="st16" d="M75.9,25.5c1,0,1.7-0.8,1.7-1.8c0-1-0.8-1.8-1.7-1.8c-1,0-1.7,0.8-1.7,1.8C74.2,24.7,74.9,25.5,75.9,25.5z">
</path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,91 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1274 1047" style="enable-background:new 0 0 1274 1047;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
.st2{fill:url(#SVGID_3_);}
.st3{fill:url(#SVGID_4_);}
.st4{fill:url(#SVGID_5_);}
.st5{fill:url(#SVGID_6_);}
.st6{fill:url(#SVGID_7_);}
.st7{fill:url(#SVGID_8_);}
.st8{fill:#FFFFFF;}
</style>
<g>
<g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="21.0001" y1="1105.2095" x2="1258.6993" y2="1105.2095" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#2A59A2"/>
<stop offset="1" style="stop-color:#2A59A2"/>
</linearGradient>
<path class="st0" d="M1252.1,450.3c-6.5,0-16.5,0-22.1,0c-40.2-0.5-117.3,3.8-187.2,64.2c-166.9,144.5-205,357.2-490.6,472
C314.3,1082.1,21,991.6,21,991.6s261.7-18.2,296.4-217.9c27.1-156.2-115-267.1-204.2-408C22.5,222.2-0.8,103,42.9,51.5
C166.8-94.8,508,300.7,677.4,354c165.8,52.1,277.7-68.9,415-51.1c43.8,5.6,65.2,24.5,79.4,48.6c4.8,8.1,16.6,35.7,27.1,45.9
c10.3,10,24,17.4,36.8,24.9C1252,431.9,1268.1,450.3,1252.1,450.3z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-28.9755" y1="1316.5281" x2="1280.1417" y2="1316.5281" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#91D3F2"/>
<stop offset="0.2664" style="stop-color:#6FB2DE"/>
<stop offset="0.5214" style="stop-color:#5598CE"/>
<stop offset="0.6729" style="stop-color:#4B8FC8"/>
</linearGradient>
<path class="st1" d="M468,221.5c-41-31.2-83.3-63.9-124.9-93.7l0,0c-9.4-6.7-18.8-13.3-28.1-19.7l0,0
C203.5,31.8,100.1-16,42.9,51.5C-0.8,103,22.5,222.2,113.3,365.7c0.9,1.5,1.9,2.9,2.8,4.4c47.3,73.2,184.5,244.7,509.7,237.4
c21.4-22.7,53.9-65.6,95.9-112.3C653.6,385.1,551,289.1,468,221.5z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="21.1001" y1="817.0737" x2="1267.8341" y2="817.0737" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#2C9EC7"/>
<stop offset="0.4037" style="stop-color:#2C63A5"/>
<stop offset="1" style="stop-color:#395DA1"/>
</linearGradient>
<path class="st2" d="M795.8,738.9c1.3-48.8-7.6-96.9-24.5-143.4c-42.7,6.4-90.8,10.8-145.5,12C586,649.8,495.1,762.8,344.5,864.6
c-200.5,135.6-323.4,127-323.4,127s293.4,90.5,531.2-5.1c85.3-34.3,148.6-77.3,199.8-124.7C760.5,853.8,794,812,795.8,738.9z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="21.0793" y1="1078.65" x2="1267.8134" y2="1078.65" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#2F75B1"/>
<stop offset="1" style="stop-color:#356EAC"/>
</linearGradient>
<path class="st3" d="M721.8,495.2c-42,46.6-74.6,89.6-95.9,112.3c54.8-1.2,102.9-5.6,145.5-12c-5-13.9-10.8-27.6-17.2-41.1
C744.6,534.3,733.7,514.5,721.8,495.2z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="467.9999" y1="1271.65" x2="1274.9838" y2="1271.65" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#2F81B6"/>
<stop offset="1" style="stop-color:#3B5EA9"/>
</linearGradient>
<path class="st4" d="M965.6,318.3c-87.8,26.6-175.5,71.1-288.2,35.7c-55.8-17.5-130.3-72.2-209.4-132.5
c83,67.6,185.6,163.5,253.8,273.7C784,426.3,867,349.3,965.6,318.3z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="467.9684" y1="962.7" x2="1274.9521" y2="962.7" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#1E3773"/>
<stop offset="1" style="stop-color:#203370"/>
</linearGradient>
<path class="st5" d="M771.4,595.5c16.9,46.5,25.8,94.6,24.5,143.4c-1.9,73-35.4,114.8-43.8,122.9
c120.1-111.1,173.8-246,290.8-347.3c21.8-18.8,44.2-32.2,66.1-41.7h-0.1C1032.2,505,949,568.7,771.4,595.5z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="990.2508" y1="895.2981" x2="990.2508" y2="1337.8136" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#2C5A9A"/>
<stop offset="1" style="stop-color:#374580"/>
</linearGradient>
<path class="st6" d="M1252.1,450.3c16,0-0.1-18.4-16.3-27.9c-12.8-7.6-26.5-15-36.8-24.9c-10.6-10.2-22.4-37.9-27.1-45.9
c-14.3-24.2-35.6-43-79.4-48.6c-44-5.7-85.4,2.9-126.8,15.4c-98.6,31-181.7,108-243.9,176.9c11.9,19.3,22.9,39,32.4,59.1
c6.4,13.6,12.2,27.3,17.2,41.1c177.7-26.8,260.8-90.5,337.5-122.7h0.1c48.3-21,93.5-22.9,121.1-22.5
C1235.7,450.3,1245.7,450.3,1252.1,450.3z"/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-113.5052" y1="949.0955" x2="804.8284" y2="949.0955" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0.1115" style="stop-color:#38B1DA"/>
<stop offset="1" style="stop-color:#326FB5"/>
</linearGradient>
<path class="st7" d="M344.5,864.6C495.1,762.8,586,649.8,625.8,607.5c-325.2,7.3-462.4-164.2-509.7-237.4
C205.4,509,344.3,619.2,317.5,773.7C282.8,973.4,21.1,991.6,21.1,991.6S144,1000.2,344.5,864.6z"/>
<ellipse class="st8" cx="1083.4" cy="377.4" rx="26" ry="25.8"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><g transform="matrix(.061615 0 0 .061615 -1.430818 -1.2754)"><defs><path id="A" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="B"><use xlink:href="#A"/></clipPath><g clip-path="url(#B)"><path d="M360.3 779.7L520 939.5 959.4 500H639.9z" fill="#39cefd"/></g><defs><path id="C" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="D"><use xlink:href="#C"/></clipPath><path clip-path="url(#D)" d="M639.9 20.7h319.5l-679 679.1L120.6 540z" fill="#39cefd"/><defs><path id="E" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="F"><use xlink:href="#E"/></clipPath><path clip-path="url(#F)" d="M520 939.5l119.9 119.8h319.5L679.8 779.7z" fill="#03569b"/><defs><path id="G" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="H"><use xlink:href="#G"/></clipPath><linearGradient id="I" gradientUnits="userSpaceOnUse" x1="566.635" y1="970.339" x2="685.65" y2="851.324"><stop offset="0" stop-color="#1a237e" stop-opacity=".4"/><stop offset="1" stop-color="#1a237e" stop-opacity="0"/></linearGradient><path clip-path="url(#H)" d="M757 857.4l-77.2-77.7L520 939.5z" fill="url(#I)"/><defs><path id="J" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="K"><use xlink:href="#J"/></clipPath><g clip-path="url(#K)"><path d="M360.282 779.645L520.086 619.84 679.9 779.645 520.086 939.45z" fill="#16b9fd"/></g><radialGradient id="L" cx="7824.659" cy="-2855.979" r="5082.889" gradientTransform="matrix(0.25,0,0,-0.25,-1812,-622.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity=".1"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></radialGradient><path d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z" fill="url(#L)"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 115.28 122.88" style="enable-background:new 0 0 115.28 122.88" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;}</style><g><path class="st0" d="M25.38,57h64.88V37.34H69.59c-2.17,0-5.19-1.17-6.62-2.6c-1.43-1.43-2.3-4.01-2.3-6.17V7.64l0,0H8.15 c-0.18,0-0.32,0.09-0.41,0.18C7.59,7.92,7.55,8.05,7.55,8.24v106.45c0,0.14,0.09,0.32,0.18,0.41c0.09,0.14,0.28,0.18,0.41,0.18 c22.78,0,58.09,0,81.51,0c0.18,0,0.17-0.09,0.27-0.18c0.14-0.09,0.33-0.28,0.33-0.41v-11.16H25.38c-4.14,0-7.56-3.4-7.56-7.56 V64.55C17.82,60.4,21.22,57,25.38,57L25.38,57z M29.49,68.38h7.43v18.15h11.63v5.92H29.49V68.38L29.49,68.38z M49.89,80.43 c0-3.93,1.09-6.99,3.28-9.17c2.19-2.19,5.24-3.28,9.15-3.28c4.01,0,7.09,1.08,9.26,3.22c2.17,2.15,3.25,5.16,3.25,9.04 c0,2.81-0.47,5.11-1.42,6.91c-0.95,1.8-2.32,3.2-4.11,4.2c-1.79,1-4.02,1.5-6.69,1.5c-2.71,0-4.96-0.43-6.74-1.29 c-1.78-0.87-3.22-2.23-4.32-4.11C50.44,85.58,49.89,83.24,49.89,80.43L49.89,80.43z M57.31,80.44c0,2.43,0.45,4.17,1.36,5.23 c0.91,1.06,2.14,1.59,3.7,1.59c1.6,0,2.84-0.52,3.71-1.56c0.88-1.04,1.32-2.9,1.32-5.6c0-2.26-0.46-3.92-1.37-4.96 c-0.92-1.05-2.16-1.57-3.73-1.57c-1.5,0-2.71,0.53-3.62,1.59C57.77,76.24,57.31,77.99,57.31,80.44L57.31,80.44z M90.42,83.74v-5.01 h11.49v10.23c-2.2,1.5-4.15,2.53-5.83,3.07c-1.69,0.54-3.7,0.81-6.02,0.81c-2.86,0-5.19-0.49-6.99-1.46 c-1.8-0.97-3.19-2.42-4.18-4.35c-0.99-1.92-1.48-4.13-1.48-6.63c0-2.63,0.54-4.91,1.62-6.85c1.08-1.94,2.67-3.41,4.76-4.42 c1.63-0.78,3.83-1.17,6.58-1.17c2.66,0,4.64,0.24,5.96,0.72c1.32,0.48,2.41,1.23,3.28,2.24c0.87,1.01,1.52,2.3,1.96,3.85 l-7.16,1.29c-0.3-0.91-0.8-1.61-1.5-2.09c-0.71-0.49-1.6-0.73-2.7-0.73c-1.62,0-2.92,0.57-3.89,1.7c-0.97,1.13-1.45,2.92-1.45,5.37 c0,2.6,0.49,4.46,1.47,5.57c0.97,1.11,2.34,1.68,4.09,1.68c0.83,0,1.62-0.12,2.37-0.36c0.75-0.24,1.61-0.65,2.59-1.22v-2.25H90.42 L90.42,83.74z M97.79,57h9.93c4.16,0,7.56,3.41,7.56,7.56v31.42c0,4.15-3.41,7.56-7.56,7.56h-9.93v13.55c0,1.61-0.65,3.04-1.7,4.1 c-1.06,1.06-2.49,1.7-4.1,1.7c-29.44,0-56.59,0-86.18,0c-1.61,0-3.04-0.64-4.1-1.7c-1.06-1.06-1.7-2.49-1.7-4.1V5.85 c0-1.61,0.65-3.04,1.7-4.1c1.06-1.06,2.53-1.7,4.1-1.7h58.72C64.66,0,64.8,0,64.94,0c0.64,0,1.29,0.28,1.75,0.69h0.09 c0.09,0.05,0.14,0.09,0.23,0.18l29.99,30.36c0.51,0.51,0.88,1.2,0.88,1.98c0,0.23-0.05,0.41-0.09,0.65V57L97.79,57z M67.52,27.97 V8.94l21.43,21.7H70.19c-0.74,0-1.38-0.32-1.89-0.78C67.84,29.4,67.52,28.71,67.52,27.97L67.52,27.97z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -12.5 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<defs>
<path d="M252.925854,103.237077 L200.327344,11.759667 C196.302579,4.62225703 188.80054,0.148424726 180.607902,0 L75.3908814,0 C67.1970912,0.14438548 59.6931984,4.61932363 55.6714398,11.759667 L3.05292985,102.997083 C-1.01764328,110.080373 -1.01764328,118.793146 3.05292985,125.876436 L55.6514404,217.87383 C59.6319755,225.112707 67.1159052,229.735134 75.370882,230.053486 L180.587903,230.053486 C188.842442,229.770144 196.339809,225.166896 200.327344,217.933829 L252.925854,126.456419 C257.024715,119.259311 257.024715,110.434185 252.925854,103.237077 Z" id="path-1">
</path>
</defs>
<g>
<mask id="mask-2" fill="white">
<use xlink:href="#path-1">
</use>
</mask>
<g fill-rule="nonzero">
</g>
<path d="M252.925854,103.237077 L200.327344,11.759667 C196.302579,4.62225703 188.80054,0.148424726 180.607902,0 L75.3908814,0 C67.1970912,0.14438548 59.6931984,4.61932363 55.6714398,11.759667 L3.05292985,102.997083 C-1.01764328,110.080373 -1.01764328,118.793146 3.05292985,125.876436 L55.6514404,217.87383 C59.6319755,225.112707 67.1159052,229.735134 75.370882,230.053486 L180.587903,230.053486 C188.842442,229.770144 196.339809,225.166896 200.327344,217.933829 L252.925854,126.456419 C257.024715,119.259311 257.024715,110.434185 252.925854,103.237077 Z" fill="#4285F4" fill-rule="nonzero" mask="url(#mask-2)">
</path>
<path d="M187.167605,84.731603 L179.915711,92.6409485 L181.549379,139.638797 L174.676019,149.60019 L170.691462,145.615633 L174.357254,145.615633 L174.357254,129.318795 L156.765435,111.726976 L143.468746,118.373047 L99.3678929,74.1725271 L78.1302045,85.5484371 L75.500397,107.583037 L82.9515184,147.906753 L93.7496677,158.485752 L88.8287399,165.478649 L153.076098,231.236816 L179.915711,231.236816 C188.138614,230.95456 197.044276,225.565698 201.016528,218.360352 L244.795336,142.356934 L187.167605,84.731603 Z" fill="#000000" fill-rule="nonzero" opacity="0.0700000003" mask="url(#mask-2)">
</path>
<polygon fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" points="88.8287399 165.478649 99.3678929 154.939496 83.5691247 139.140728 83.5691247 89.9712953 99.3678929 74.1725271 88.8287399 63.6333741 67.730511 84.731603 67.730511 144.38042">
</polygon>
<circle fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" cx="105.1455" cy="114.556012" r="7.47104423">
</circle>
<circle fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" cx="127.498865" cy="114.556012" r="7.47104423">

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>.cls-1{fill:none;}.cls-2{fill:#669df6;}.cls-3{fill:#4285f4;}.cls-4{fill:#aecbfa;}</style>
</defs>
<title>Icon_24px_LoadBalancing_Color</title>
<g data-name="Product Icons">
<g data-name="colored-32/load-balancing">
<rect class="cls-1" width="24" height="24"/>
<g >
<rect class="cls-2" x="18" y="12" width="2" height="4"/>
<rect class="cls-2" x="11" y="12" width="2" height="4"/>
<rect class="cls-2" x="4" y="12" width="2" height="4"/>
<polygon id="Fill-2" class="cls-3" points="13 11 11 11 11 7 13 7 13 11"/>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#669df6;}.cls-2{fill:#4285f4;}</style></defs><title>Icon_24px_Monitoring_Color</title><g data-name="Product Icons"><rect class="cls-1" x="10.83" y="15.84" width="2.33" height="2.64"/><path class="cls-2" d="M18.48,13.87a.56.56,0,0,1-.4-.17L14,9.47l-2.74,2.89a.57.57,0,0,1-.76.05L8.42,10.73l-2.2,2.92a.56.56,0,0,1-.45.22H2v1.71a.75.75,0,0,0,.74.75H21.26a.75.75,0,0,0,.74-.75V13.87Z"/><path class="cls-1" d="M5.5,12.76,7.88,9.6a.55.55,0,0,1,.37-.22.63.63,0,0,1,.42.12l2.12,1.72,2.8-2.94a.54.54,0,0,1,.4-.17h0a.54.54,0,0,1,.4.17l4.33,4.48H22V6a.74.74,0,0,0-.74-.74H2.74A.74.74,0,0,0,2,6v6.81Z"/><rect class="cls-2" x="8.67" y="18.18" width="6.67" height="0.61" rx="0.3"/></g></svg>

Before

Width:  |  Height:  |  Size: 789 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#aecbfa;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:#4285f4;}</style></defs><title>Icon_24px_CloudRun_Color</title><g data-name="Product Icons"><g ><polygon class="cls-1" points="8.9 2.63 12.02 12 21.38 12 8.9 2.63"/><polygon class="cls-2" points="21.38 12 12.02 12 8.9 21.38 21.38 12"/><polygon class="cls-2" points="3.44 21.38 6.57 19.81 8.9 12 5.78 12 3.44 21.38"/><polygon class="cls-1" points="3.44 2.63 5.78 12 8.9 12 6.57 4.19 3.44 2.63"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 574 B

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>.cls-1{fill:#aecbfa;}.cls-1,.cls-2,.cls-3{fill-rule:evenodd;}.cls-2{fill:#669df6;}.cls-3{fill:#4285f4;}</style>
</defs>
<title>Icon_24px_SQL_Color</title>
<g data-name="Product Icons">
<g >
<polygon class="cls-1" points="4.67 10.44 4.67 13.45 12 17.35 12 14.34 4.67 10.44"/>
<polygon class="cls-1" points="4.67 15.09 4.67 18.1 12 22 12 18.99 4.67 15.09"/>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="800" width="1200" viewBox="-19.20015 -28.483 166.4013 170.898"><g transform="translate(0 -7.034)"><linearGradient y2="120.789" x2="64" y1="7.034" x1="64" gradientUnits="userSpaceOnUse" id="a"><stop offset="0" stop-color="#4387fd"/><stop offset="1" stop-color="#4683ea"/></linearGradient><path d="M27.79 115.217L1.54 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.5 11.5 0 019.96-5.75h52.5a11.5 11.5 0 019.959 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.5 11.5 0 01-9.959 5.75h-52.5a11.499 11.499 0 01-9.96-5.75z" fill="url(#a)"/></g><g transform="translate(0 -7.034)"><defs><path d="M27.791 115.217L1.541 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.499 11.499 0 019.959-5.75h52.5a11.5 11.5 0 019.96 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.499 11.499 0 01-9.96 5.75h-52.5a11.499 11.499 0 01-9.959-5.75z" id="b"/></defs><clipPath id="c"><use height="100%" width="100%" xlink:href="#b" overflow="visible"/></clipPath><path clip-path="url(#c)" opacity=".07" d="M49.313 53.875l-7.01 6.99 5.957 5.958-5.898 10.476 44.635 44.636 10.816.002L118.936 84 85.489 50.55z"/></g><path d="M84.7 43.236H43.264c-.667 0-1.212.546-1.212 1.214v8.566c0 .666.546 1.212 1.212 1.212H84.7c.667 0 1.213-.546 1.213-1.212v-8.568c0-.666-.545-1.213-1.212-1.213m-6.416 7.976a2.484 2.484 0 01-2.477-2.48 2.475 2.475 0 012.477-2.477c1.37 0 2.48 1.103 2.48 2.477a2.48 2.48 0 01-2.48 2.48m6.415 8.491l-41.436.002c-.667 0-1.212.546-1.212 1.214v8.565c0 .666.546 1.213 1.212 1.213H84.7c.667 0 1.213-.547 1.213-1.213v-8.567c0-.666-.545-1.214-1.212-1.214m-6.416 7.976a2.483 2.483 0 01-2.477-2.48 2.475 2.475 0 012.477-2.477 2.48 2.48 0 110 4.956" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="800" width="1200" viewBox="-19.20015 -28.483 166.4013 170.898"><g transform="translate(0 -7.034)"><linearGradient y2="120.789" x2="64" y1="7.034" x1="64" gradientUnits="userSpaceOnUse" id="a"><stop offset="0" stop-color="#4387fd"/><stop offset="1" stop-color="#4683ea"/></linearGradient><path d="M27.79 115.217L1.54 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.5 11.5 0 019.96-5.75h52.5a11.5 11.5 0 019.959 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.5 11.5 0 01-9.959 5.75h-52.5a11.499 11.499 0 01-9.96-5.75z" fill="url(#a)"/></g><g transform="translate(0 -7.034)"><defs><path d="M27.791 115.217L1.541 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.499 11.499 0 019.959-5.75h52.5a11.5 11.5 0 019.96 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.5 11.5 0 01-9.96 5.75h-52.5a11.499 11.499 0 01-9.959-5.75z" id="b"/></defs><clipPath id="c"><use height="100%" width="100%" xlink:href="#b" overflow="visible"/></clipPath><path clip-path="url(#c)" opacity=".07" d="M72.531 46.25l-6.75-6.75-3.125 6.687-6.671-6.671-1.641 8.088-5.938 1.02-1.232 5.282-7.683 1.835 6.884 6.884-6.81 3.033 6.81 6.81-6.854 2.928 46.682 46.682 11.464-.037 21.552-38.926L75.635 39.53z"/></g><g fill="#fff"><path d="M69.831 50.062H58.422c-.668 0-1.215.547-1.215 1.214l.001 11.407a1.22 1.22 0 001.214 1.215H69.83a1.22 1.22 0 001.215-1.215V51.276c0-.667-.546-1.214-1.213-1.214"/><path d="M87.89 49.142c.6 0 1.09-.492 1.09-1.09v-1.776c0-.598-.49-1.09-1.09-1.09h-5.55V40a1.22 1.22 0 00-1.213-1.213h-5.209l.001-5.57c0-.597-.49-1.089-1.089-1.089l-1.777.001c-.6 0-1.09.491-1.09 1.089l.001 5.568h-5.86v-5.57c0-.596-.49-1.088-1.088-1.088l-1.779.001c-.599 0-1.089.491-1.089 1.089l.001 5.568-5.86.001v-5.571c0-.596-.49-1.088-1.088-1.088h-1.778c-.598 0-1.09.492-1.09 1.09l.002 5.569h-5.207A1.22 1.22 0 0045.912 40v5.187h-5.549c-.597 0-1.088.492-1.088 1.09l.001 1.778c0 .598.49 1.088 1.088 1.088h5.548l.002 5.86h-5.55c-.598 0-1.089.49-1.089 1.088l.001 1.777c0 .6.49 1.09 1.088 1.09h5.55v5.86l-5.55-.001c-.598 0-1.089.491-1.089 1.089l.001 1.777c0 .6.49 1.089 1.088 1.089h5.55v5.19c0 .665.547 1.213 1.213 1.213h5.208v5.567c0 .6.49 1.09 1.089 1.09H55.2c.598 0 1.088-.49 1.088-1.09l.001-5.567h5.859l.001 5.567c0 .6.49 1.09 1.09 1.09h1.776c.598 0 1.088-.49 1.088-1.09l.001-5.567h5.859l.001 5.567c0 .6.49 1.09 1.09 1.09h1.775c.599 0 1.09-.49 1.09-1.09v-5.567h5.206a1.22 1.22 0 001.214-1.214l.001-5.189 5.55-.001c.599 0 1.089-.489 1.089-1.088v-1.775c0-.6-.49-1.09-1.09-1.09h-5.548v-5.86l5.549-.002c.6 0 1.09-.488 1.09-1.088v-1.775c0-.6-.49-1.09-1.09-1.09h-5.55v-5.86h5.55zm-9.647 21.955H50.009V42.862l28.236-.001z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1 +0,0 @@
<svg id="Artwork" xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><path d="M19.73,6.56a1.73,1.73,0,0,0-1.68,1.68,1.83,1.83,0,0,0,.89,1.48v6.9l-5.16,3.06.8,1.28,5.55-3.25a.84.84,0,0,0,.4-.69V9.72a1.64,1.64,0,0,0,.89-1.48A1.61,1.61,0,0,0,19.73,6.56Z" style="fill:#aecbfa"/><path id="Path-2" data-name="Path" d="M18,5.48,12.39,2.32a1.18,1.18,0,0,0-.79,0L5.25,6A1.72,1.72,0,0,0,2.57,7.35,1.73,1.73,0,0,0,4.26,9,1.73,1.73,0,0,0,5.94,7.35L12,3.9l5.15,3Z" style="fill:#aecbfa"/><path id="Path-3" data-name="Path" d="M11.2,18.5a1.57,1.57,0,0,0-.89.29l-5.16-3V9.92H3.56v6.31a.84.84,0,0,0,.4.69L9.52,20v.09a1.69,1.69,0,0,0,3.37,0A1.65,1.65,0,0,0,11.2,18.5Z" style="fill:#aecbfa"/><polygon id="Path-4" data-name="Path" points="16.96 8.63 12.1 5.78 7.13 8.63 12.1 11.4 16.96 8.63" style="fill:#669df6"/><polygon points="12.1 12.38 6.84 9.32 6.84 11.79 12.1 14.75 12.1 12.38" style="fill:#669df6"/><polygon points="12.1 15.73 6.84 12.68 6.84 14.75 12.1 17.81 12.1 15.73" style="fill:#669df6"/><path d="M12.09,12.38v2.37l5.26-3.06V9.33Zm4.32-.94a.38.38,0,1,1,0-.76.38.38,0,0,1,0,.76Z" style="fill:#4285f4"/><path d="M12.09,15.73V17.8l5.26-3.05V12.68Zm4.32-1.07a.38.38,0,1,1,0-.76.38.38,0,0,1,0,.76Z" style="fill:#4285f4"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#aecbfa;}.cls-2{fill:#669df6;}.cls-3{fill:#4285f4;}</style></defs><title>Icon_24px_VirtualPrivateCloud_Color</title><g data-name="Product Icons"><rect class="cls-1" x="16" y="2" width="6" height="6"/><rect class="cls-2" x="19" y="2" width="3" height="6"/><rect class="cls-1" x="16" y="16" width="6" height="6"/><rect class="cls-2" x="19" y="16" width="3" height="6"/><rect class="cls-1" x="2" y="2" width="6" height="6"/><rect class="cls-2" x="5" y="2" width="3" height="6"/><rect class="cls-1" x="2" y="16" width="6" height="6"/><rect class="cls-2" x="5" y="16" width="3" height="6"/><rect class="cls-2" x="8" y="4" width="8" height="2"/><rect class="cls-2" x="8" y="18" width="8" height="2"/><rect class="cls-2" x="18" y="8" width="2" height="8"/><rect class="cls-2" x="4" y="8" width="2" height="8"/><rect class="cls-3" x="4" y="8" width="2" height="2"/><rect class="cls-3" x="18" y="8" width="2" height="2"/><rect class="cls-3" x="8" y="4" width="2" height="2"/><rect class="cls-3" x="8" y="18" width="2" height="2"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,60 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 254.5 225" style="enable-background:new 0 0 254.5 225;" xml:space="preserve">
<style type="text/css">
.st0{fill:#2DBCAF;}
.st1{fill:#5DC9E1;}
.st2{fill:#FDDD00;}
.st3{fill:#CE3262;}
.st4{fill:#00ACD7;}
.st5{fill:#FFFFFF;}
</style>
<g>
<g>
<g>
<g>
<path class="st4" d="M40.2,101.1c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5l35.7,0c0.4,0,0.5,0.3,0.3,0.6
l-1.7,2.6c-0.2,0.3-0.7,0.6-1,0.6L40.2,101.1z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path class="st4" d="M25.1,110.3c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5l45.6,0c0.4,0,0.6,0.3,0.5,0.6
l-0.8,2.4c-0.1,0.4-0.5,0.6-0.9,0.6L25.1,110.3z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path class="st4" d="M49.3,119.5c-0.4,0-0.5-0.3-0.3-0.6l1.4-2.5c0.2-0.3,0.6-0.6,1-0.6l20,0c0.4,0,0.6,0.3,0.6,0.7l-0.2,2.4
c0,0.4-0.4,0.7-0.7,0.7L49.3,119.5z"/>
</g>
</g>
</g>
<g>
<g id="CXHf1q_3_">
<g>
<g>
<path class="st4" d="M153.1,99.3c-6.3,1.6-10.6,2.8-16.8,4.4c-1.5,0.4-1.6,0.5-2.9-1c-1.5-1.7-2.6-2.8-4.7-3.8
c-6.3-3.1-12.4-2.2-18.1,1.5c-6.8,4.4-10.3,10.9-10.2,19c0.1,8,5.6,14.6,13.5,15.7c6.8,0.9,12.5-1.5,17-6.6
c0.9-1.1,1.7-2.3,2.7-3.7c-3.6,0-8.1,0-19.3,0c-2.1,0-2.6-1.3-1.9-3c1.3-3.1,3.7-8.3,5.1-10.9c0.3-0.6,1-1.6,2.5-1.6
c5.1,0,23.9,0,36.4,0c-0.2,2.7-0.2,5.4-0.6,8.1c-1.1,7.2-3.8,13.8-8.2,19.6c-7.2,9.5-16.6,15.4-28.5,17
c-9.8,1.3-18.9-0.6-26.9-6.6c-7.4-5.6-11.6-13-12.7-22.2c-1.3-10.9,1.9-20.7,8.5-29.3c7.1-9.3,16.5-15.2,28-17.3
c9.4-1.7,18.4-0.6,26.5,4.9c5.3,3.5,9.1,8.3,11.6,14.1C154.7,98.5,154.3,99,153.1,99.3z"/>
</g>
<g>
<path class="st4" d="M186.2,154.6c-9.1-0.2-17.4-2.8-24.4-8.8c-5.9-5.1-9.6-11.6-10.8-19.3c-1.8-11.3,1.3-21.3,8.1-30.2
c7.3-9.6,16.1-14.6,28-16.7c10.2-1.8,19.8-0.8,28.5,5.1c7.9,5.4,12.8,12.7,14.1,22.3c1.7,13.5-2.2,24.5-11.5,33.9
c-6.6,6.7-14.7,10.9-24,12.8C191.5,154.2,188.8,154.3,186.2,154.6z M210,114.2c-0.1-1.3-0.1-2.3-0.3-3.3
c-1.8-9.9-10.9-15.5-20.4-13.3c-9.3,2.1-15.3,8-17.5,17.4c-1.8,7.8,2,15.7,9.2,18.9c5.5,2.4,11,2.1,16.3-0.6
C205.2,129.2,209.5,122.8,210,114.2z"/>
</g>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Made by gilbarbara: https://github.com/gilbarbara/logos -->
<svg width="285px" height="285px" viewBox="-14.5 0 285 285" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M230.4,0 C244.39552,0 255.77047,11.2315104 255.99657,25.1765997 L256,25.6 L256,258.844444 C256,272.839964 244.765005,284.214915 230.823296,284.441014 L230.4,284.444444 L25.6,284.444444 C11.60448,284.444444 0.2295296,273.209449 0.003430144,259.26774 L0,258.844444 L0,25.6 C0,11.60096 11.2349952,0.2294592 25.1767043,0.003429088 L25.6,0 L230.4,0 Z M230.4,14.2222222 L25.6,14.2222222 C19.426,14.2222222 14.3820625,19.169691 14.2259468,25.3068692 L14.2222222,25.6 L14.2222222,258.844444 C14.2222222,265.018444 19.169691,270.062382 25.3068692,270.218498 L25.6,270.222222 L230.4,270.222222 C236.5775,270.222222 241.618047,265.274753 241.774056,259.137575 L241.777778,258.844444 L241.777778,25.6 C241.777778,19.328 236.675556,14.2222222 230.4,14.2222222 Z M64,184.888889 L96,213.333333 L64,241.777778 L64,184.888889 Z M92.4444444,42.6666667 L92.4444444,123.416889 C106.645333,118.794667 126.496,113.777778 145.777778,113.777778 C163.36,113.777778 173.884444,120.689778 179.616,126.488889 C191.7248,138.738489 192.013158,154.309103 191.997015,156.385666 L191.996444,156.444444 L192,241.777778 L163.555556,241.777778 L163.555556,156.835556 C163.416889,150.197333 160.216889,142.222222 145.777778,142.222222 C117.146098,142.222222 85.0644658,156.478539 84.1117507,156.905113 L84.0924444,156.913778 L64,166.016 L64,42.6666667 L92.4444444,42.6666667 Z M192,42.6666667 C190.08,58.8231111 183.530667,74.3111111 170.666667,88.8888889 L170.666667,88.8888889 L142.222222,88.8888889 C153.400889,74.2222222 160.419556,58.7875556 163.555556,42.6666667 L163.555556,42.6666667 Z" fill="#430098"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 98.18" style="enable-background:new 0 0 122.88 98.18" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;} .st0{fill:#1668dc;} .st1{fill:#FFFFFF;}</style><g><path class="st0" d="M3.42,0h116.05c1.88,0,3.41,1.54,3.41,3.41v91.36c0,1.88-1.54,3.41-3.41,3.41l-116.05,0 C1.54,98.18,0,96.65,0,94.77L0,3.41C0,1.53,1.54,0,3.42,0L3.42,0L3.42,0z M25.89,8.19c2.05,0,3.72,1.67,3.72,3.72 c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72C22.17,9.85,23.83,8.19,25.89,8.19L25.89,8.19z M103.07,7.69l2.52,2.77 l2.52-2.77l1.97,1.79l-2.69,2.96l2.69,2.96l-1.97,1.79l-2.52-2.77l-2.52,2.77l-1.97-1.79l2.69-2.96l-2.69-2.96L103.07,7.69 L103.07,7.69z M14.52,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72 C10.79,9.85,12.46,8.19,14.52,8.19L14.52,8.19z M37.26,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72 c-2.05,0-3.72-1.67-3.72-3.72C33.54,9.85,35.21,8.19,37.26,8.19L37.26,8.19z M14.05,22.75h93.33c1.77,0,3.22,1.49,3.22,3.22v59.2 c0,1.73-1.49,3.22-3.22,3.22l-93.33,0c-1.73,0-3.22-1.45-3.22-3.22v-59.2C10.84,24.2,12.29,22.75,14.05,22.75L14.05,22.75 L14.05,22.75z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="446" height="231" viewBox="0, 0, 446, 231">
<path d="M 13.009,0 433.107,0 C440.228,0 446,5.772 446,12.893 l0,205.214 C446,225.228 440.228,231 433.107,231 L13.009,231 C5.889,231 0.116,225.228 0.116,218.107 l0,-205.214 C0.116,5.772 5.889,0 13.009,0 z" fill="#27415E"/>
<path d="m64.431,149.881 0,-36.665 c0.243,-8.863 5.221,-13.962 10.927,-13.962 8.985,0 10.806,7.406 10.927,13.962 l0,36.665 18.212,0 0,-39.7 c0,-2.064 -0.243,-5.949 -1.215,-9.713 C101.097,91.605 89.32,87.113 83.25,87.113 c-9.227,0 -14.933,3.642 -18.697,9.227 l-0.243,-0.243 0,-33.873 -18.09,0 0,87.657 z" fill="#FFF"/>
<path d="m112.51,88.934 0,12.141 12.262,0 0,29.988 c0,13.234 3.035,20.64 17.24,20.64 2.55,0 12.262,-0.85 14.326,-1.822 l0,-10.684 c-1.942,0.122 -3.885,0.365 -5.827,0.365 -6.314,0 -7.528,-2.186 -7.528,-10.199 l0,-28.288 13.72,0 0,-12.141 -13.72,0 0,-18.576 -18.211,6.556 0,12.02 z" fill="#FFF" id="t"/>
<use transform="translate(47.228,0)" xlink:href="#t" />
<path d="m230.762,88.934 -18.454,0 c0.243,4.006 0.607,8.134 0.607,12.141 l0,72.117 18.211,0 0,-31.931 0.243,0 c3.885,7.163 10.684,10.442 18.576,10.442 17.847,0 26.224,-16.634 26.224,-32.295 0,-16.391 -9.591,-32.295 -28.531,-32.295 -6.313,0 -12.869,3.763 -16.269,8.863 l-0.243,0 z m0.364,30.474 c0,-8.378 3.279,-20.154 13.113,-20.154 11.655,0 13.112,10.805 13.112,20.154 0,9.348 -1.457,20.154 -13.112,20.154 -9.834,0 -13.113,-11.777 -13.113,-20.154 z" fill="#FFF"/>
<path d="m305.672,149.881 0,-16.147 -15.419,0 0,16.147 z m0,-44.921 0,-16.147 -15.419,0 0,16.147 z" fill="#FFF"/>
<path d="m363.584,62.224 -14.083,0 -29.624,99.313 14.205,0 z" fill="#FFF" id="slash"/>
<use transform="translate(43.472,0)" xlink:href="#slash" />
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 192.756 192.756" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd" clip-rule="evenodd">
<path fill="#ffffff" d="M0 0h192.756v192.756H0V0z"/>
<path d="M80.372 101.729s-4.604 2.679 3.28 3.584c9.554 1.091 14.434.934 24.959-1.057 0 0 2.771 1.735 6.639 3.236-23.601 10.113-53.413-.585-34.878-5.763zM77.487 88.532s-5.165 3.823 2.726 4.639c10.206 1.054 18.262 1.14 32.211-1.544 0 0 1.926 1.955 4.957 3.023-28.531 8.345-60.307.657-39.894-6.118z" fill="#3174b9"/>
<path d="M101.797 66.143c5.818 6.697-1.525 12.72-1.525 12.72s14.766-7.621 7.984-17.168c-6.332-8.899-11.189-13.32 15.102-28.566-.001-.001-41.27 10.303-21.561 33.014z" fill="#ca3132"/>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 192.756 192.756" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd" clip-rule="evenodd">
<path fill="#ffffff" d="M0 0h192.756v192.756H0V0z"/>
<path d="M80.372 101.729s-4.604 2.679 3.28 3.584c9.554 1.091 14.434.934 24.959-1.057 0 0 2.771 1.735 6.639 3.236-23.601 10.113-53.413-.585-34.878-5.763zM77.487 88.532s-5.165 3.823 2.726 4.639c10.206 1.054 18.262 1.14 32.211-1.544 0 0 1.926 1.955 4.957 3.023-28.531 8.345-60.307.657-39.894-6.118z" fill="#3174b9"/>
<path d="M101.797 66.143c5.818 6.697-1.525 12.72-1.525 12.72s14.766-7.621 7.984-17.168c-6.332-8.899-11.189-13.32 15.102-28.566-.001-.001-41.27 10.303-21.561 33.014z" fill="#ca3132"/>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 630 630">
<rect width="630" height="630" fill="#f7df1e"/>
<path d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
</svg>

Before

Width:  |  Height:  |  Size: 687 B

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="598" viewBox="-5.64904,-5.64904,342.033,199.599" width="1024" xmlns="http://www.w3.org/2000/svg">
<path d="m215.233 169.638 4.51938 9.06669h-3.82425l-4.39355-8.78042h-4.99513v8.78042h-3.2549v-22.1919h9.70328c3.85802 0 7.11292 2.06082 7.11292 6.62726 0 3.5491-1.86454 5.73766-4.86775 6.49797zm-2.24517-9.98706h-6.44838v7.13361h6.44838c2.2129 0 3.76134-1.14045 3.76134-3.55065 0-2.31476-1.51617-3.58296-3.76134-3.58296z" fill="#c00"/>
<path d="m238.115 171.542h-10.9693c.34835 3.20129 2.14999 4.5649 4.1741 4.5649 1.39036 0 2.49683-.50635 3.60326-1.3313l1.929 2.0916c-1.45327 1.39441-3.19197 2.18702-5.72253 2.18702-3.88718 0-7.17582-3.13816-7.17582-8.65421 0-5.64379 2.97253-8.68807 7.26943-8.68807 4.7097 0 6.98705 3.83537 6.98705 8.3387 0 .60025-.06293 1.142-.09515 1.49136zm-7.11288-6.8812c-2.18223 0-3.50965 1.52061-3.79508 4.18475h7.71292c-.15654-2.28245-1.23076-4.18475-3.91784-4.18475z" fill="#c00"/>
<path d="m252.243 178.705v-1.58371c-1.20158 1.10967-2.59195 1.93307-4.33066 1.93307-3.57255 0-6.3855-2.59795-6.3855-8.94047 0-5.7069 3.0984-8.40181 6.54358-8.40181 1.67578 0 3.25641.88805 4.17411 1.9023v-6.34099l3.22421-1.68068v23.1123h-3.22574zm.03224-11.7924c-.7274-.98347-2.24515-2.18857-3.88871-2.18857-2.33874 0-3.60324 1.7761-3.60324 5.29442 0 4.18474 1.32741 6.0224 3.73063 6.0224 1.54842 0 2.90808-1.04657 3.76132-2.12238z" fill="#c00"/>
<path d="m282.775 178.705v-9.95474h-10.1806v9.95474h-3.31783v-22.1919h3.31783v8.97127h10.1806v-8.97127h3.31779v22.1919z" fill="#c00"/>
<path d="m300.882 178.705v-1.64681c-1.13714 1.14045-2.75004 1.99617-4.55164 1.99617-2.68708 0-5.75322-1.5206-5.75322-5.61146 0-3.70917 2.84512-5.38984 6.60646-5.38984 1.54994 0 2.78224.22163 3.6984.6341v-1.23742c0-1.80686-1.10647-2.82111-3.12906-2.82111-1.70649 0-3.03545.31705-4.33068 1.04656l-1.2645-2.47175c1.58065-.98348 3.35159-1.49136 5.69033-1.49136 3.69839 0 6.22895 1.80687 6.22895 5.58068v11.4122h-3.19504zm0-7.09975c-.88394-.4448-2.02262-.73106-3.79355-.73106-2.08554 0-3.41449.95115-3.41449 2.47329 0 1.64681 1.04353 2.75802 3.19198 2.75802 1.74024 0 3.25644-1.07735 4.01452-2.12392v-2.37633z" fill="#c00"/>
<path d="m316.686 178.293c-.79186.44478-1.89678.7603-3.19352.7603-2.30805 0-3.73063-1.42518-3.73063-4.40637v-9.60537h-2.37096v-2.98119h2.37096v-4.75574l3.19353-1.71145v6.46719h4.10966v2.98119h-4.10966v9.03591c0 1.55293.50487 1.99771 1.70649 1.99771.85323 0 1.80161-.31703 2.40162-.66641z" fill="#c00"/>
<path d="m163.265 78.5313c5.47854-2.75033 9.20763-7.85081 9.20763-14.1302 0-14.6351-13.2191-17.784-25.2672-17.5778h-32.5121-.18569-18.0255v46.7294c0 6.78578-2.35869 9.13595-6.5589 9.13595-4.51327 0-7.05151-2.54563-7.05151-7.16901v-6.47181h-17.1415v3.03044c0 15.6278 5.97268 26.3166 24.48 26.3166 15.0959 0 23.0774-6.70421 24.2974-19.9433v18.475h33.5756c14.9793 0 27.2193-5.10204 27.2193-21.7948 0-7.94932-4.59-14.4304-12.0374-16.6005zm-30.5417-17.5762h14.0892c3.82578 0 7.44592 1.68068 7.44592 6.77963 0 5.00661-4.30612 6.67651-7.44592 6.67651h-14.0892v-13.4561zm14.5818 41.3457h-14.5818v-16.1126h14.5818c5.48775 0 9.79691 2.07005 9.79691 8.24175 0 5.8023-4.01606 7.87082-9.79691 7.87082z" fill="#c00"/>
<path d="m138.217 166.834c0-11.8432-9.5836-21.4655-21.3985-21.4655-11.8379 0-21.4154 9.6223-21.4154 21.4655 0 11.8647 9.57746 21.467 21.4154 21.467 11.8149 0 21.3985-9.60229 21.3985-21.467z" fill="#c00"/>
<path d="m81.3524 160.062c0-10.4934-8.49098-19.006-18.9631-19.006-10.4706 0-18.9554 8.51109-18.9554 19.006 0 10.5026 8.4833 19.0184 18.9554 19.0184s18.9631-8.51571 18.9631-19.0184z" fill="#c00"/>
<path d="m38.514 125.712c0-9.47608-7.64846-17.1622-17.1108-17.1622-9.46543 0-17.1262 7.68615-17.1262 17.1622 0 9.50223 7.66075 17.1884 17.1262 17.1884 9.46084 0 17.1108-7.68615 17.1108-17.1884z" fill="#c00"/>
<path d="m30.5662 77.9003c0-8.47415-6.83666-15.323-15.277-15.323-8.43879 0-15.2893 6.84735-15.2893 15.323 0 8.46491 6.85047 15.3353 15.2893 15.3353 8.44033 0 15.277-6.87197 15.277-15.3353z" fill="#c00"/>
<path d="m51.9924 34.9662c0-7.10899-5.76398-12.8759-12.8477-12.8759-7.08834 0-12.8431 5.76691-12.8431 12.8759 0 7.11514 5.75476 12.8774 12.8431 12.8774 7.08373 0 12.8477-5.7623 12.8477-12.8774z" fill="#c00"/>
<path d="m88.6694 15.951c0-6.43334-5.19464-11.6523-11.6108-11.6523-6.41465 0-11.6185 5.219-11.6185 11.6523 0 6.4441 5.20537 11.6631 11.6185 11.6631 6.41772 0 11.6108-5.219 11.6108-11.6631z" fill="#c00"/>
<path d="m127.205 9.81468c0-5.42062-4.37209-9.81468-9.78157-9.81468-5.39567 0-9.78617 4.39406-9.78617 9.81468 0 5.42678 4.3905 9.8193 9.78617 9.8193 5.40948 0 9.78157-4.39252 9.78157-9.8193z" fill="#c00"/>
<path d="m306.505 86.4929c-7.63466-1.66528-19.3069-2.54564-19.3069-7.36755 0-3.53988 4.41813-3.82769 7.15128-3.82769 2.05482 0 3.90405.39709 5.28977 1.27282 1.35662.8865 2.14232 2.26244 2.14232 4.41099h15.3752c-.59083-13.2453-12.2462-16.4896-23.3858-16.4896-9.28129 0-21.3387 2.89654-23.0068 13.1437-2.2789-10.4365-12.8047-13.1437-22.9316-13.1437-9.99029 0-23.7265 3.34288-23.7265 15.6154 0 .21701.03222.4017.03685.61255-3.8749-9.69001-13.0288-16.228-24.8038-16.228-12.7357 0-22.2579 7.4599-25.4775 18.4627 2.46151 3.32132 3.75671 7.65382 3.75671 12.1772 0 3.71379-.58928 7.00125-1.70493 9.87933 4.37822 8.11553 12.8032 13.3838 23.4257 13.3838 11.2855 0 20.1386-5.9593 24.2698-14.9583 2.16992 11.5569 13.4462 14.9583 24.4877 14.9583 9.49459 0 19.9806-3.1197 23.2938-11.9617 3.42985 9.15595 13.6426 11.9617 23.6652 11.9617 11.4512 0 24.3787-4.51102 24.3787-18.1626-.00155-4.22014-2.65641-11.6708-12.929-13.7393zm-107.166 19.1415c-7.74208 0-10.0946-7.6492-10.0946-14.1395 0-6.47182 2.35255-14.2442 10.0946-14.2442 7.73287 0 10.179 7.77387 10.179 14.2442-.00155 6.49181-2.44617 14.1395-10.179 14.1395zm48.6592 1.95308c-2.34488 0-4.60381-.57254-6.17218-1.75762-1.6543-1.2759-2.74385-3.14125-2.74385-5.68688h-14.2074c.83022-2.69647 1.28908-5.593 1.28908-8.64805 0-1.4252-.12738-2.80728-.31307-4.16475 3.89329 6.73346 13.6656 7.3891 21.8574 9.46993 2.92497.67873 8.11959 1.4775 8.11959 5.39445 0 4.03238-4.61147 5.39292-7.82954 5.39292zm46.9574 0c-2.34335 0-4.60074-.57254-6.17062-1.75762-1.65433-1.2759-2.74389-3.14125-2.74389-5.68688h-13.569c-.03527-4.23399-2.72083-11.5954-12.926-13.65-7.63313-1.66528-18.7943-2.54564-18.7943-7.36755 0-3.53988 4.92761-3.82769 7.66074-3.82769 2.05637 0 3.90405.39709 5.28978 1.27282 1.35812.8865 2.14232 2.26244 2.14232 4.41099h14.7629c.59235 12.8574 13.8099 13.216 24.058 15.8202 2.92648.67873 8.11956 1.4775 8.11956 5.39445.00155 4.03084-4.61148 5.39138-7.82954 5.39138z" fill="#61615c"/>
<path d="m320.927 55.6529h1.48089l2.22826 3.67224h1.44405l-2.41086-3.73995c1.23841-.15699 2.17914-.81572 2.17914-2.32247 0-1.69145-.97908-2.42096-2.97407-2.42096h-3.22572v8.48338h1.27831zm0-1.0989v-2.63335h1.75405c.87014 0 1.84153.20316 1.84153 1.25434 0 1.3036-.97139 1.37901-2.05484 1.37901z" fill="#61615c"/>
<path d="m330.735 55.0989c0 4.58643-3.71373 8.29868-8.28533 8.29868-4.58233 0-8.29608-3.71225-8.29608-8.29868 0-4.59722 3.71375-8.3187 8.29608-8.3187 4.5716.00153 8.28533 3.72148 8.28533 8.3187zm-8.28687-6.83965c-3.78125 0-6.83206 3.05045-6.83206 6.83965 0 3.77227 3.05081 6.82117 6.83206 6.82117 3.75976 0 6.81057-3.0489 6.81057-6.82117.00155-3.7892-3.05081-6.83965-6.81057-6.83965z" fill="#61615c"/>
<path d="m166.086 179.053c-1.67578 0-3.25642-.8865-4.17258-1.90075v1.55292h-3.22574v-21.4316l3.22574-1.68068v8.05244c1.20006-1.11121 2.59041-1.93461 4.33065-1.93461 3.57102 0 6.38396 2.59949 6.38396 8.94049 0 5.70842-3.09684 8.4018-6.54203 8.4018zm-.4435-14.3288c-1.54995 0-2.90961 1.04657-3.76131 2.12546v7.00588c.7274.98346 2.24359 2.18702 3.88715 2.18702 2.33874 0 3.60479-1.77301 3.60479-5.29287 0-4.18629-1.32744-6.02549-3.73063-6.02549z" fill="#61615c"/>
<path d="m182.487 184.57h-3.44518l2.40166-6.18246-6.10159-16.328h3.57256l2.71778 8.1494c.50489 1.45751 1.26451 3.9308 1.45327 4.84809.28544-.98193.98062-3.3598 1.4855-4.78498l2.81447-8.21251h3.44518l-8.34365 22.5105z" fill="#61615c"/>
</svg>

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -1 +0,0 @@
<svg width="2065" height="2500" viewBox="0 0 256 310" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M0 245.262l16.322 8.161L19 248.668V59.333l-2.678-3.494L0 64v181.262" fill="#9D5025"/><path d="M47.678 63.57l-31.356-7.731v197.584l31.356-7.302V63.57" fill="#F68536"/><path d="M143.893 78.604l22.335-11.597 74.309 28.778-19.758 2.577-76.886-19.758" fill="#6B3A19"/><path d="M144.752 230.658l21.906 11.597 74.308-28.778-19.758-2.578-76.456 19.759" fill="#FBBF93"/><path d="M150.336 198.872l39.087 5.155 2.244-4.027v-90l-2.244-4.765-39.087 5.154v88.483M35.651 45.96l24.054-12.027L62.333 39v231l-2.628 5.329-24.054-12.027V45.96" fill="#9D5025"/><path d="M108.671 259.007l-48.966 15.892V33.933l48.966 15.893v209.181" fill="#F68536"/><path d="M89.772 289.933L128 309.262l4-4.595v-299L128 0 89.772 19.329v270.604M219.919 98.362l19.759-2.577 1.697 2.465V211l-1.697 2.906-19.759-2.577V98.362" fill="#9D5025"/><path d="M189.423 105.235v99.221l40.805-49.825-40.805-49.396" fill="#F68536"/><path d="M239.678 55.839L128 0v309.262l128-64V64l-16.322-8.161zm0 158.217l-73.45 21.936V73.27l73.45 21.936v118.85z" fill="#F68536"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<svg baseProfile="full" height="200px" version="1.1" width="200px" xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink"><defs /><circle cx="40" cy="50" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="50" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="75" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="125" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="150" /><circle cx="40" cy="100" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="50" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="75" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="125" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="150" /><circle cx="40" cy="150" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="50" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="75" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="125" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="150" /><circle cx="100" cy="50" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="50" y2="100" /><circle cx="100" cy="75" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="75" y2="100" /><circle cx="100" cy="125" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="125" y2="100" /><circle cx="100" cy="150" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="150" y2="100" /><circle cx="160" cy="100" fill="#4A90E2" r="8" /></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M119.616813,0.0688905149 C119.066276,0.118932037 117.314565,0.294077364 115.738025,0.419181169 C79.3775171,3.69690087 45.3192571,23.3131775 23.7481916,53.4631946 C11.7364614,70.2271045 4.05395894,89.2428829 1.15112414,109.384595 C0.12512219,116.415429 0,118.492153 0,128.025062 C0,137.557972 0.12512219,139.634696 1.15112414,146.665529 C8.10791789,194.730411 42.3163245,235.11392 88.7116325,250.076335 C97.0197458,252.753556 105.778299,254.580072 115.738025,255.680985 C119.616813,256.106338 136.383187,256.106338 140.261975,255.680985 C157.453763,253.779407 172.017986,249.525878 186.382014,242.194795 C188.584164,241.068861 189.00958,240.768612 188.709286,240.518404 C188.509091,240.36828 179.124927,227.782837 167.86393,212.570214 L147.393939,184.922273 L121.743891,146.965779 C107.630108,126.098464 96.0187683,109.034305 95.9186706,109.034305 C95.8185728,109.009284 95.7184751,125.873277 95.6684262,146.465363 C95.5933529,182.52028 95.5683284,183.971484 95.1178886,184.82219 C94.4672532,186.048207 93.9667644,186.548623 92.915738,187.099079 C92.114956,187.499411 91.4142717,187.574474 87.6355816,187.574474 L83.3063539,187.574474 L82.1552297,186.848872 C81.4044966,186.373477 80.8539589,185.747958 80.4785924,185.022356 L79.9530792,183.896422 L80.0031281,133.729796 L80.0782014,83.5381493 L80.8539589,82.5623397 C81.25435,82.0369037 82.1051808,81.3613431 82.7057674,81.0360732 C83.7317693,80.535658 84.1321603,80.4856165 88.4613881,80.4856165 C93.5663734,80.4856165 94.4172043,80.6857826 95.7434995,82.1369867 C96.1188661,82.5373189 110.007429,103.454675 126.623656,128.650581 C143.239883,153.846488 165.962072,188.250034 177.122972,205.139048 L197.392766,235.839522 L198.418768,235.163961 C207.502639,229.259062 217.112023,220.852086 224.719453,212.09482 C240.910264,193.504394 251.345455,170.835585 254.848876,146.665529 C255.874878,139.634696 256,137.557972 256,128.025062 C256,118.492153 255.874878,116.415429 254.848876,109.384595 C247.892082,61.3197135 213.683675,20.9362052 167.288368,5.97379012 C159.105376,3.32158945 150.396872,1.49507389 140.637341,0.394160408 C138.234995,0.143952798 121.693842,-0.131275573 119.616813,0.0688905149 L119.616813,0.0688905149 Z M172.017986,77.4831252 C173.219159,78.0836234 174.195112,79.2345784 174.545455,80.435575 C174.74565,81.0861148 174.795699,94.9976579 174.74565,126.348671 L174.670577,171.336 L166.73783,159.17591 L158.780059,147.01582 L158.780059,114.313685 C158.780059,93.1711423 158.880156,81.2862808 159.030303,80.7108033 C159.430694,79.3096407 160.306549,78.2087272 161.507722,77.5581875 C162.533724,77.0327515 162.909091,76.98271 166.837928,76.98271 C170.541544,76.98271 171.19218,77.0327515 172.017986,77.4831252 Z" fill="#000000">
</path>
</g>

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 32 32" preserveAspectRatio="xMidYMid" fill="#8cc84b"><path d="M14.656.427c.8-.453 1.82-.455 2.6 0L29.2 7.16c.747.42 1.247 1.253 1.24 2.114v13.5c.005.897-.544 1.748-1.332 2.16l-11.88 6.702a2.6 2.6 0 0 1-2.639-.073l-3.565-2.06c-.243-.145-.516-.26-.688-.495.152-.204.422-.23.642-.32.496-.158.95-.4 1.406-.656.115-.08.256-.05.366.022l3.04 1.758c.217.125.437-.04.623-.145l11.665-6.583c.144-.07.224-.222.212-.38V9.334c.016-.18-.087-.344-.25-.417L16.19 2.244a.41.41 0 0 0-.465-.001L3.892 8.93c-.16.073-.27.235-.25.415v13.37c-.014.158.07.307.215.375l3.162 1.785c.594.32 1.323.5 1.977.265a1.5 1.5 0 0 0 .971-1.409l.003-13.29c-.014-.197.172-.36.363-.34h1.52c.2-.005.357.207.33.405L12.18 23.88c.001 1.188-.487 2.48-1.586 3.063-1.354.7-3.028.553-4.366-.12l-3.4-1.88c-.8-.4-1.337-1.264-1.332-2.16v-13.5a2.46 2.46 0 0 1 1.282-2.141L14.656.427zM18.1 9.785c1.727-.1 3.576-.066 5.13.785 1.203.652 1.87 2.02 1.892 3.358-.034.18-.222.28-.394.267-.5-.001-1.002.007-1.504-.003-.213.008-.336-.188-.363-.376-.144-.64-.493-1.273-1.095-1.582-.924-.463-1.996-.44-3.004-.43-.736.04-1.527.103-2.15.535-.48.328-.624 1-.453 1.522.16.383.603.506.964.62 2.082.544 4.287.5 6.33 1.207.845.292 1.672.86 1.962 1.745.378 1.186.213 2.604-.63 3.556-.684.784-1.68 1.2-2.675 1.442-1.323.295-2.695.302-4.038.17-1.263-.144-2.577-.476-3.552-1.336-.834-.724-1.24-1.852-1.2-2.94.01-.184.193-.312.37-.297h1.5c.202-.014.35.16.36.35.093.6.322 1.25.854 1.6 1.026.662 2.313.616 3.487.635.973-.043 2.065-.056 2.86-.7.42-.367.543-.98.43-1.508-.123-.446-.6-.653-1-.8-2.055-.65-4.285-.414-6.32-1.15-.826-.292-1.625-.844-1.942-1.693-.443-1.2-.24-2.687.693-3.607.9-.915 2.22-1.268 3.47-1.394z"/></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 103.53" style="enable-background:new 0 0 122.88 103.53" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;} .st0{fill:#1668dc;} .st1{fill:#FFFFFF;}</style><g><path class="st0" d="M5.47,0h111.93c3.01,0,5.47,2.46,5.47,5.47v92.58c0,3.01-2.46,5.47-5.47,5.47H5.47 c-3.01,0-5.47-2.46-5.47-5.47V5.47C0,2.46,2.46,0,5.47,0L5.47,0z M31.84,38.55l17.79,18.42l2.14,2.13l-2.12,2.16L31.68,80.31 l-5.07-5l15.85-16.15L26.81,43.6L31.84,38.55L31.84,38.55z M94.1,79.41H54.69v-6.84H94.1V79.41L94.1,79.41z M38.19,9.83 c3.19,0,5.78,2.59,5.78,5.78s-2.59,5.78-5.78,5.78c-3.19,0-5.78-2.59-5.78-5.78S35,9.83,38.19,9.83L38.19,9.83z M18.95,9.83 c3.19,0,5.78,2.59,5.78,5.78s-2.59,5.78-5.78,5.78c-3.19,0-5.78-2.59-5.78-5.78S15.75,9.83,18.95,9.83L18.95,9.83z M7.49,5.41 h107.91c1.15,0,2.09,0.94,2.09,2.09v18.32H5.4V7.5C5.4,6.35,6.34,5.41,7.49,5.41L7.49,5.41z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,96 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg height="383.5975" id="svg3430" version="1.1" viewBox="0 0 711.20123 383.5975" width="711.20123" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg">
<title id="title3510">Official PHP Logo</title>
<metadata id="metadata3436">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title>Official PHP Logo</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Colin Viebrock</dc:title>
</cc:Agent>
</dc:creator>
<dc:description/>
<dc:contributor>
<cc:Agent>
<dc:title/>
</cc:Agent>
</dc:contributor>
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/"/>
<dc:rights>
<cc:Agent>
<dc:title>Copyright Colin Viebrock 1997 - All rights reserved.</dc:title>
</cc:Agent>
</dc:rights>
<dc:date>1997</dc:date>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike"/>
</cc:License>
</rdf:RDF>
</metadata>
<defs id="defs3434">
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3444">
<path d="M 11.52,162 C 11.52,81.677 135.307,16.561 288,16.561 l 0,0 c 152.693,0 276.481,65.116 276.481,145.439 l 0,0 c 0,80.322 -123.788,145.439 -276.481,145.439 l 0,0 C 135.307,307.439 11.52,242.322 11.52,162" id="path3446"/>
</clipPath>
<radialGradient cx="0" cy="0" fx="0" fy="0" gradientTransform="matrix(363.05789,0,0,-363.05789,177.52002,256.30713)" gradientUnits="userSpaceOnUse" id="radialGradient3452" r="1" spreadMethod="pad">
<stop id="stop3454" offset="0" style="stop-opacity:1;stop-color:#aeb2d5"/>
<stop id="stop3456" offset="0.3" style="stop-opacity:1;stop-color:#aeb2d5"/>
<stop id="stop3458" offset="0.75" style="stop-opacity:1;stop-color:#484c89"/>
<stop id="stop3460" offset="1" style="stop-opacity:1;stop-color:#484c89"/>
</radialGradient>
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3468">
<path d="M 0,324 576,324 576,0 0,0 0,324 Z" id="path3470"/>
</clipPath>
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3480">
<path d="M 0,324 576,324 576,0 0,0 0,324 Z" id="path3482"/>
</clipPath>
</defs>
<g id="g3438" transform="matrix(1.25,0,0,-1.25,-4.4,394.29875)">
<g id="g3440">
<g clip-path="url(#clipPath3444)" id="g3442">
<g id="g3448">
<g id="g3450">
<path d="M 11.52,162 C 11.52,81.677 135.307,16.561 288,16.561 l 0,0 c 152.693,0 276.481,65.116 276.481,145.439 l 0,0 c 0,80.322 -123.788,145.439 -276.481,145.439 l 0,0 C 135.307,307.439 11.52,242.322 11.52,162" id="path3462" style="fill:url(#radialGradient3452);stroke:none"/>
</g>
</g>
</g>
</g>
<g id="g3464">
<g clip-path="url(#clipPath3468)" id="g3466">
<g id="g3472" transform="translate(288,27.3594)">
<path d="M 0,0 C 146.729,0 265.68,60.281 265.68,134.641 265.68,209 146.729,269.282 0,269.282 -146.729,269.282 -265.68,209 -265.68,134.641 -265.68,60.281 -146.729,0 0,0" id="path3474" style="fill:#777bb3;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
</g>
</g>
<g id="g3476">
<g clip-path="url(#clipPath3480)" id="g3478">
<g id="g3484" transform="translate(161.7344,145.3066)">
<path d="m 0,0 c 12.065,0 21.072,2.225 26.771,6.611 5.638,4.341 9.532,11.862 11.573,22.353 1.903,9.806 1.178,16.653 -2.154,20.348 C 32.783,53.086 25.417,55 14.297,55 L -4.984,55 -15.673,0 0,0 Z m -63.063,-67.75 c -0.895,0 -1.745,0.4 -2.314,1.092 -0.57,0.691 -0.801,1.601 -0.63,2.48 L -37.679,81.573 C -37.405,82.982 -36.17,84 -34.734,84 L 26.32,84 C 45.508,84 59.79,78.79 68.767,68.513 77.792,58.182 80.579,43.741 77.05,25.592 75.614,18.198 73.144,11.331 69.709,5.183 66.27,-0.972 61.725,-6.667 56.198,-11.747 49.582,-17.939 42.094,-22.429 33.962,-25.071 25.959,-27.678 15.681,-29 3.414,-29 l -24.722,0 -7.06,-36.322 c -0.274,-1.41 -1.508,-2.428 -2.944,-2.428 l -31.751,0 z" id="path3486" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3488" transform="translate(159.2236,197.3071)">
<path d="m 0,0 16.808,0 c 13.421,0 18.083,-2.945 19.667,-4.7 2.628,-2.914 3.124,-9.058 1.435,-17.767 C 36.012,-32.217 32.494,-39.13 27.452,-43.012 22.29,-46.986 13.898,-49 2.511,-49 L -9.523,-49 0,0 Z m 28.831,35 -61.055,0 c -2.872,0 -5.341,-2.036 -5.889,-4.855 l -28.328,-145.751 c -0.342,-1.759 0.12,-3.578 1.259,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 31.75,0 c 2.873,0 5.342,2.036 5.89,4.855 l 6.588,33.895 22.249,0 c 12.582,0 23.174,1.372 31.479,4.077 8.541,2.775 16.399,7.48 23.354,13.984 5.752,5.292 10.49,11.232 14.08,17.657 3.591,6.427 6.171,13.594 7.668,21.302 3.715,19.104 0.697,34.402 -8.969,45.466 C 63.965,29.444 48.923,35 28.831,35 m -45.633,-90 19.313,0 c 12.801,0 22.336,2.411 28.601,7.234 6.266,4.824 10.492,12.875 12.688,24.157 2.101,10.832 1.144,18.476 -2.871,22.929 C 36.909,3.773 28.87,6 16.808,6 L -4.946,6 -16.802,-55 M 28.831,29 C 47.198,29 60.597,24.18 69.019,14.539 77.44,4.898 79.976,-8.559 76.616,-25.836 75.233,-32.953 72.894,-39.46 69.601,-45.355 66.304,-51.254 61.999,-56.648 56.679,-61.539 50.339,-67.472 43.296,-71.7 35.546,-74.218 27.796,-76.743 17.925,-78 5.925,-78 l -27.196,0 -7.531,-38.75 -31.75,0 28.328,145.75 61.055,0" id="path3490" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3492" transform="translate(311.583,116.3066)">
<path d="m 0,0 c -0.896,0 -1.745,0.4 -2.314,1.092 -0.571,0.691 -0.802,1.6 -0.631,2.48 L 9.586,68.061 C 10.778,74.194 10.484,78.596 8.759,80.456 7.703,81.593 4.531,83.5 -4.848,83.5 L -27.55,83.5 -43.305,2.428 C -43.579,1.018 -44.814,0 -46.25,0 l -31.5,0 c -0.896,0 -1.745,0.4 -2.315,1.092 -0.57,0.691 -0.801,1.601 -0.63,2.48 l 28.328,145.751 c 0.274,1.409 1.509,2.427 2.945,2.427 l 31.5,0 c 0.896,0 1.745,-0.4 2.315,-1.091 0.57,-0.692 0.801,-1.601 0.63,-2.481 L -21.813,113 2.609,113 c 18.605,0 31.221,-3.28 38.569,-10.028 7.49,-6.884 9.827,-17.891 6.947,-32.719 L 34.945,2.428 C 34.671,1.018 33.437,0 32,0 L 0,0 Z" id="path3494" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3496" transform="translate(293.6611,271.0571)">
<path d="m 0,0 -31.5,0 c -2.873,0 -5.342,-2.036 -5.89,-4.855 l -28.328,-145.751 c -0.342,-1.759 0.12,-3.578 1.26,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 31.5,0 c 2.872,0 5.342,2.036 5.89,4.855 l 15.283,78.645 20.229,0 c 9.363,0 11.328,-2 11.407,-2.086 0.568,-0.611 1.315,-3.441 0.082,-9.781 l -12.531,-64.489 c -0.342,-1.759 0.12,-3.578 1.26,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 32,0 c 2.872,0 5.342,2.036 5.89,4.855 l 13.179,67.825 c 3.093,15.921 0.447,27.864 -7.861,35.5 -7.928,7.281 -21.208,10.82 -40.599,10.82 l -20.784,0 6.143,31.605 C 6.231,-5.386 5.77,-3.566 4.63,-2.184 3.49,-0.801 1.792,0 0,0 m 0,-6 -7.531,-38.75 28.062,0 c 17.657,0 29.836,-3.082 36.539,-9.238 6.703,-6.16 8.711,-16.141 6.032,-29.938 l -13.18,-67.824 -32,0 12.531,64.488 c 1.426,7.336 0.902,12.34 -1.574,15.008 -2.477,2.668 -7.746,4.004 -15.805,4.004 l -25.176,0 -16.226,-83.5 -31.5,0 L -31.5,-6 0,-6" id="path3498" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3500" transform="translate(409.5498,145.3066)">
<path d="m 0,0 c 12.065,0 21.072,2.225 26.771,6.611 5.638,4.34 9.532,11.861 11.574,22.353 1.903,9.806 1.178,16.653 -2.155,20.348 C 32.783,53.086 25.417,55 14.297,55 L -4.984,55 -15.673,0 0,0 Z m -63.062,-67.75 c -0.895,0 -1.745,0.4 -2.314,1.092 -0.57,0.691 -0.802,1.601 -0.631,2.48 L -37.679,81.573 C -37.404,82.982 -36.17,84 -34.733,84 L 26.32,84 C 45.509,84 59.79,78.79 68.768,68.513 77.793,58.183 80.579,43.742 77.051,25.592 75.613,18.198 73.144,11.331 69.709,5.183 66.27,-0.972 61.725,-6.667 56.198,-11.747 49.582,-17.939 42.094,-22.429 33.962,-25.071 25.959,-27.678 15.681,-29 3.414,-29 l -24.723,0 -7.057,-36.322 c -0.275,-1.41 -1.509,-2.428 -2.946,-2.428 l -31.75,0 z" id="path3502" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3504" transform="translate(407.0391,197.3071)">
<path d="M 0,0 16.808,0 C 30.229,0 34.891,-2.945 36.475,-4.7 39.104,-7.614 39.6,-13.758 37.91,-22.466 36.012,-32.217 32.493,-39.13 27.452,-43.012 22.29,-46.986 13.898,-49 2.511,-49 L -9.522,-49 0,0 Z m 28.831,35 -61.054,0 c -2.872,0 -5.341,-2.036 -5.889,-4.855 L -66.44,-115.606 c -0.342,-1.759 0.12,-3.578 1.259,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 31.75,0 c 2.872,0 5.342,2.036 5.89,4.855 l 6.587,33.895 22.249,0 c 12.582,0 23.174,1.372 31.479,4.077 8.541,2.775 16.401,7.481 23.356,13.986 5.752,5.291 10.488,11.23 14.078,17.655 3.591,6.427 6.171,13.594 7.668,21.302 3.715,19.105 0.697,34.403 -8.969,45.467 C 63.965,29.444 48.924,35 28.831,35 m -45.632,-90 19.312,0 c 12.801,0 22.336,2.411 28.601,7.234 6.267,4.824 10.492,12.875 12.688,24.157 2.102,10.832 1.145,18.476 -2.871,22.929 C 36.909,3.773 28.87,6 16.808,6 L -4.946,6 -16.801,-55 M 28.831,29 C 47.198,29 60.597,24.18 69.019,14.539 77.441,4.898 79.976,-8.559 76.616,-25.836 75.233,-32.953 72.894,-39.46 69.601,-45.355 66.304,-51.254 61.999,-56.648 56.679,-61.539 50.339,-67.472 43.296,-71.7 35.546,-74.218 27.796,-76.743 17.925,-78 5.925,-78 l -27.196,0 -7.53,-38.75 -31.75,0 28.328,145.75 61.054,0" id="path3506" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.885 16c-8.124 0-7.617 3.523-7.617 3.523l.01 3.65h7.752v1.095H21.197S16 23.678 16 31.876c0 8.196 4.537 7.906 4.537 7.906h2.708v-3.804s-.146-4.537 4.465-4.537h7.688s4.32.07 4.32-4.175v-7.019S40.374 16 31.885 16zm-4.275 2.454c.771 0 1.395.624 1.395 1.395s-.624 1.395-1.395 1.395a1.393 1.393 0 0 1-1.395-1.395c0-.771.624-1.395 1.395-1.395z" fill="url(#a)"/><path d="M32.115 47.833c8.124 0 7.617-3.523 7.617-3.523l-.01-3.65H31.97v-1.095h10.832S48 40.155 48 31.958c0-8.197-4.537-7.906-4.537-7.906h-2.708v3.803s.146 4.537-4.465 4.537h-7.688s-4.32-.07-4.32 4.175v7.019s-.656 4.247 7.833 4.247zm4.275-2.454a1.393 1.393 0 0 1-1.395-1.395c0-.77.624-1.394 1.395-1.394s1.395.623 1.395 1.394c0 .772-.624 1.395-1.395 1.395z" fill="url(#b)"/><defs><linearGradient id="a" x1="19.075" y1="18.782" x2="34.898" y2="34.658" gradientUnits="userSpaceOnUse"><stop stop-color="#387EB8"/><stop offset="1" stop-color="#366994"/></linearGradient><linearGradient id="b" x1="28.809" y1="28.882" x2="45.803" y2="45.163" gradientUnits="userSpaceOnUse"><stop stop-color="#FFE052"/><stop offset="1" stop-color="#FFC331"/></linearGradient></defs></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.885 16c-8.124 0-7.617 3.523-7.617 3.523l.01 3.65h7.752v1.095H21.197S16 23.678 16 31.876c0 8.196 4.537 7.906 4.537 7.906h2.708v-3.804s-.146-4.537 4.465-4.537h7.688s4.32.07 4.32-4.175v-7.019S40.374 16 31.885 16zm-4.275 2.454c.771 0 1.395.624 1.395 1.395s-.624 1.395-1.395 1.395a1.393 1.393 0 0 1-1.395-1.395c0-.771.624-1.395 1.395-1.395z" fill="url(#a)"/><path d="M32.115 47.833c8.124 0 7.617-3.523 7.617-3.523l-.01-3.65H31.97v-1.095h10.832S48 40.155 48 31.958c0-8.197-4.537-7.906-4.537-7.906h-2.708v3.803s.146 4.537-4.465 4.537h-7.688s-4.32-.07-4.32 4.175v7.019s-.656 4.247 7.833 4.247zm4.275-2.454a1.393 1.393 0 0 1-1.395-1.395c0-.77.624-1.394 1.395-1.394s1.395.623 1.395 1.394c0 .772-.624 1.395-1.395 1.395z" fill="url(#b)"/><defs><linearGradient id="a" x1="19.075" y1="18.782" x2="34.898" y2="34.658" gradientUnits="userSpaceOnUse"><stop stop-color="#387EB8"/><stop offset="1" stop-color="#366994"/></linearGradient><linearGradient id="b" x1="28.809" y1="28.882" x2="45.803" y2="45.163" gradientUnits="userSpaceOnUse"><stop stop-color="#FFE052"/><stop offset="1" stop-color="#FFC331"/></linearGradient></defs></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="80px" height="80px" viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 64 (93537) - https://sketch.com -->
<title>Icon-Architecture/64/Arch_Amazon-RDS_64</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="0%" y1="100%" x2="100%" y2="0%" id="linearGradient-1">
<stop stop-color="#2E27AD" offset="0%"></stop>
<stop stop-color="#527FFF" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Icon-Architecture/64/Arch_Amazon-RDS_64" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icon-Architecture-BG/64/Database" fill="url(#linearGradient-1)">
<rect id="Rectangle" x="0" y="0" width="80" height="80"></rect>
</g>
<path d="M15.414,14 L24.707,23.293 L23.293,24.707 L14,15.414 L14,23 L12,23 L12,13 C12,12.448 12.447,12 13,12 L23,12 L23,14 L15.414,14 Z M68,13 L68,23 L66,23 L66,15.414 L56.707,24.707 L55.293,23.293 L64.586,14 L57,14 L57,12 L67,12 C67.553,12 68,12.448 68,13 L68,13 Z M66,57 L68,57 L68,67 C68,67.552 67.553,68 67,68 L57,68 L57,66 L64.586,66 L55.293,56.707 L56.707,55.293 L66,64.586 L66,57 Z M65.5,39.213 C65.5,35.894 61.668,32.615 55.25,30.442 L55.891,28.548 C63.268,31.045 67.5,34.932 67.5,39.213 C67.5,43.495 63.268,47.383 55.89,49.879 L55.249,47.984 C61.668,45.812 65.5,42.534 65.5,39.213 L65.5,39.213 Z M14.556,39.213 C14.556,42.393 18.143,45.585 24.152,47.753 L23.473,49.634 C16.535,47.131 12.556,43.333 12.556,39.213 C12.556,35.094 16.535,31.296 23.473,28.792 L24.152,30.673 C18.143,32.842 14.556,36.034 14.556,39.213 L14.556,39.213 Z M24.707,56.707 L15.414,66 L23,66 L23,68 L13,68 C12.447,68 12,67.552 12,67 L12,57 L14,57 L14,64.586 L23.293,55.293 L24.707,56.707 Z M40,31.286 C32.854,31.286 29,29.44 29,28.686 C29,27.931 32.854,26.086 40,26.086 C47.145,26.086 51,27.931 51,28.686 C51,29.44 47.145,31.286 40,31.286 L40,31.286 Z M40.029,39.031 C33.187,39.031 29,37.162 29,36.145 L29,31.284 C31.463,32.643 35.832,33.286 40,33.286 C44.168,33.286 48.537,32.643 51,31.284 L51,36.145 C51,37.163 46.835,39.031 40.029,39.031 L40.029,39.031 Z M40.029,46.667 C33.187,46.667 29,44.798 29,43.781 L29,38.862 C31.431,40.291 35.742,41.031 40.029,41.031 C44.292,41.031 48.578,40.292 51,38.867 L51,43.781 C51,44.799 46.835,46.667 40.029,46.667 L40.029,46.667 Z M40,53.518 C32.883,53.518 29,51.605 29,50.622 L29,46.498 C31.431,47.927 35.742,48.667 40.029,48.667 C44.292,48.667 48.578,47.929 51,46.503 L51,50.622 C51,51.605 47.117,53.518 40,53.518 L40,53.518 Z M40,24.086 C33.739,24.086 27,25.525 27,28.686 L27,50.622 C27,53.836 33.54,55.518 40,55.518 C46.46,55.518 53,53.836 53,50.622 L53,28.686 C53,25.525 46.261,24.086 40,24.086 L40,24.086 Z" id="Amazon-RDS_Icon_64_Squid" fill="#FFFFFF"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" fill="#d30001" viewBox="0 0 411 155">
<g>
<path d="M242.3 76.8h-19.5c-13.9 0-18.6 12.6-18.6 18.6v52.2h19.5v-12.5H242v12.5h18.9V95.4c0-15.2-13.8-18.6-18.6-18.6Zm-.4 38.1h-18.3V97.6s0-3.9 6.1-3.9h6.7c5.4 0 5.5 3.9 5.5 3.9v17.3Z"/>
<path d="M194.9 101c0-22.6-21.2-24.7-21.2-24.7h-38.2v71.3h19.2v-17.2l16.6 17.2h28.4l-22.3-22.5s17.5-1.5 17.5-24.1Zm-24.9 9.5h-15.3V94.2h15.4s4.3 1.6 4.3 8.1-4.4 8.2-4.4 8.2Z"/>
<path d="M379.374 120.643c.333.002.446.002 0 0Z"/>
<path d="M385.3 103.4H369V95h32.3V76.8h-31c-8 0-18.7 6.6-18.7 18.9v6.3c0 12.3 10.6 18.6 18.7 18.6 5.868.026 8.304.039 9.074.043-1.298-.008-5.906-.043 6.326-.043v8.8l-33.1.1v18.1h32.7c6.7 0 18.2-4.9 18.6-18.6v-7c0-11.7-9.6-18.6-18.6-18.6Z"/>
<path d="M269.8 76.8h20.3v70.8h-20.3z"/>
<path d="M318.6 76.8h-20.2v70.8h47.5v-18.3h-27.3V76.8z"/>
</g>
<g>
<path d="M180 17.8c-.9-.5-3.4-1.7-9.7-3.5l-.4 6.6c3.3 1.1 6.5 2.3 9.7 3.6l.4-6.7Z"/>
<path d="M124.9 18.9c-29.2 2.6-65 29.1-86 64.1S15 147.6 15 147.6h79s-15.1-68.9 34.9-96.8c10.9-5.3 45.6-25.1 102.4 16.9 1.8-1.5 3.5-2.7 3.5-2.7s-52-51.9-109.9-46.1Z"/>
<path d="m54.7 54.7-7.1-6.2c-2.6 2.5-5.1 5-7.4 7.5l7.7 6.6c2.1-2.7 4.4-5.4 6.8-7.9Z"/>
<path d="M92.5 25 88 18.1c-2.5 1.3-5.1 2.7-7.8 4.3l4.6 7c2.6-1.6 5.1-3.1 7.7-4.4Z"/>
<path d="M24.5 99.4 13 95.2c-1.9 4.3-4 9.3-5 12l11.5 4.2c1.3-3.4 3.4-8.3 5-12Z"/>
<path d="M133.1 14.5h1l-2-6.1c-3.1 0-6.3.2-9.6.6l1.9 5.9c2.9-.3 5.8-.4 8.7-.4Z"/>
<path d="M97 127.6c.2 5.3.7 9.6 1.2 12.6l12 4.3c-.9-3.9-1.8-8.3-2.4-13L97 127.6Z"/>
<path d="m137.9 51.3 2.3 6.9c2.9-1.4 5.8-2.6 8.7-3.5l-2.2-6.6c-3.4 1-6.3 2.1-8.8 3.2Z"/>
<path d="M169.7 52c3.3.1 6.6.5 9.9 1.2l.4-6.2c-3.4-.7-6.7-1.1-9.9-1.3l-.4 6.3Z"/>
<path d="M101.5 91.2c-1.3 3.7-2.2 7.4-3 11l8.1 6.4c.4-3.9 1.1-7.8 2.1-11.7l-7.2-5.7Z"/>
<path d="m113 70 4.8 7.2c1.7-2.5 3.7-4.8 5.9-7.1l-4.5-6.8c-2.3 2.1-4.4 4.4-6.2 6.7Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1200 800" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g id="Layer-1" serif:id="Layer 1">
<g transform="matrix(1,0,0,1,597.344,637.02)">
<path d="M0,-279.559C-121.238,-279.559 -231.39,-264.983 -312.939,-241.23L-312.939,-38.329C-231.39,-14.575 -121.238,0 0,0C138.76,0 262.987,-19.092 346.431,-49.186L346.431,-230.37C262.987,-260.465 138.76,-279.559 0,-279.559" style="fill:rgb(165,43,0);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,1068.75,575.642)">
<path d="M0,-53.32L-14.211,-82.761C-14.138,-83.879 -14.08,-84.998 -14.08,-86.121C-14.08,-119.496 -48.786,-150.256 -107.177,-174.883L-107.177,2.643C-79.932,-8.849 -57.829,-21.674 -42.021,-35.482C-46.673,-16.775 -62.585,21.071 -75.271,47.686C-96.121,85.752 -103.671,118.889 -102.703,120.53C-102.086,121.563 -94.973,110.59 -84.484,92.809C-60.074,58.028 -13.82,-8.373 -4.575,-25.287C5.897,-44.461 0,-53.32 0,-53.32" style="fill:rgb(165,43,0);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,149.064,591.421)">
<path d="M0,-99.954C0,-93.526 1.293,-87.194 3.788,-80.985L-4.723,-65.835C-4.723,-65.835 -11.541,-56.989 0.465,-38.327C11.055,-21.872 64.1,42.54 92.097,76.271C104.123,93.564 112.276,104.216 112.99,103.187C114.114,101.554 105.514,69.087 81.631,32.046C70.487,12.151 57.177,-14.206 49.189,-33.675C71.492,-19.559 100.672,-6.755 135.341,4.265L135.341,-204.17C51.797,-177.622 0,-140.737 0,-99.954" style="fill:rgb(165,43,0);fill-rule:nonzero;"/>
</g>
<g transform="matrix(-65.8097,-752.207,-752.207,65.8097,621.707,796.312)">
<path d="M0.991,-0.034L0.933,0.008C0.933,0.014 0.933,0.02 0.933,0.026L0.99,0.069C0.996,0.073 0.999,0.08 0.998,0.087C0.997,0.094 0.992,0.1 0.986,0.103L0.92,0.133C0.919,0.139 0.918,0.145 0.916,0.15L0.964,0.203C0.968,0.208 0.97,0.216 0.968,0.222C0.965,0.229 0.96,0.234 0.953,0.236L0.882,0.254C0.88,0.259 0.877,0.264 0.875,0.27L0.91,0.33C0.914,0.336 0.914,0.344 0.91,0.35C0.907,0.356 0.9,0.36 0.893,0.361L0.82,0.365C0.817,0.369 0.813,0.374 0.81,0.379L0.832,0.445C0.835,0.452 0.833,0.459 0.828,0.465C0.824,0.47 0.816,0.473 0.809,0.472L0.737,0.462C0.733,0.466 0.729,0.47 0.724,0.474L0.733,0.544C0.734,0.551 0.731,0.558 0.725,0.562C0.719,0.566 0.711,0.568 0.704,0.565L0.636,0.542C0.631,0.546 0.626,0.549 0.621,0.552L0.615,0.621C0.615,0.629 0.61,0.635 0.604,0.638C0.597,0.641 0.589,0.641 0.583,0.638L0.521,0.602C0.52,0.603 0.519,0.603 0.518,0.603L0.406,0.729C0.406,0.729 0.394,0.747 0.359,0.725C0.329,0.705 0.206,0.599 0.141,0.543C0.109,0.52 0.089,0.504 0.09,0.502C0.093,0.499 0.149,0.509 0.217,0.554C0.278,0.588 0.371,0.631 0.38,0.619C0.38,0.619 0.396,0.604 0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575C0.407,0.576 0.407,0.576 0.406,0.575C0.406,0.575 0.091,0.024 0.305,-0.531C0.311,-0.593 0.275,-0.627 0.275,-0.627C0.266,-0.639 0.178,-0.598 0.12,-0.566C0.055,-0.523 0.002,-0.513 0,-0.516C-0.001,-0.518 0.018,-0.533 0.049,-0.555C0.11,-0.608 0.227,-0.707 0.256,-0.726C0.289,-0.748 0.301,-0.73 0.301,-0.73L0.402,-0.615C0.406,-0.614 0.41,-0.613 0.415,-0.613L0.47,-0.658C0.475,-0.663 0.483,-0.664 0.49,-0.662C0.497,-0.66 0.502,-0.655 0.504,-0.648L0.522,-0.58C0.527,-0.578 0.533,-0.576 0.538,-0.574L0.602,-0.608C0.608,-0.612 0.616,-0.612 0.623,-0.608C0.629,-0.605 0.633,-0.599 0.633,-0.592L0.637,-0.522C0.642,-0.519 0.647,-0.515 0.652,-0.512L0.721,-0.534C0.728,-0.536 0.736,-0.535 0.741,-0.531C0.747,-0.526 0.75,-0.519 0.749,-0.512L0.738,-0.443C0.742,-0.439 0.746,-0.435 0.751,-0.431L0.823,-0.439C0.83,-0.44 0.837,-0.437 0.842,-0.432C0.847,-0.426 0.848,-0.419 0.845,-0.412L0.821,-0.347C0.824,-0.342 0.828,-0.337 0.831,-0.332L0.903,-0.327C0.911,-0.327 0.917,-0.322 0.92,-0.316C0.924,-0.31 0.924,-0.302 0.92,-0.296L0.883,-0.236C0.885,-0.231 0.887,-0.226 0.889,-0.22L0.959,-0.202C0.966,-0.2 0.972,-0.195 0.974,-0.188C0.976,-0.181 0.974,-0.174 0.969,-0.168L0.92,-0.116C0.921,-0.111 0.923,-0.105 0.924,-0.099L0.988,-0.068C0.995,-0.065 0.999,-0.059 1,-0.052C1.001,-0.045 0.997,-0.038 0.991,-0.034ZM0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575Z" style="fill:url(#_Linear1);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,450.328,483.629)">
<path d="M0,167.33C-1.664,165.91 -2.536,165.068 -2.536,165.068L140.006,153.391C23.733,0 -69.418,122.193 -79.333,135.855L-79.333,167.33L0,167.33Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,747.12,477.333)">
<path d="M0,171.974C1.663,170.554 2.536,169.71 2.536,169.71L-134.448,159.687C-18.12,0 69.421,126.835 79.335,140.497L79.335,171.974L0,171.974Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(-1.53e-05,-267.211,-267.211,1.53e-05,809.465,764.23)">
<path d="M1,-0.586C1,-0.586 0.768,-0.528 0.524,-0.165L0.5,-0.064C0.5,-0.064 1.1,0.265 0.424,0.731C0.424,0.731 0.508,0.586 0.405,0.197C0.405,0.197 0.131,0.376 0.14,0.736C0.14,0.736 -0.275,0.391 0.324,-0.135C0.324,-0.135 0.539,-0.691 1,-0.736L1,-0.586Z" style="fill:url(#_Linear2);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,677.392,509.61)">
<path d="M0,-92.063C0,-92.063 43.486,-139.678 86.974,-92.063C86.974,-92.063 121.144,-28.571 86.974,3.171C86.974,3.171 31.062,47.615 0,3.171C0,3.171 -37.275,-31.75 0,-92.063" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,727.738,435.209)">
<path d="M0,0.002C0,18.543 -10.93,33.574 -24.408,33.574C-37.885,33.574 -48.814,18.543 -48.814,0.002C-48.814,-18.539 -37.885,-33.572 -24.408,-33.572C-10.93,-33.572 0,-18.539 0,0.002" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,483.3,502.984)">
<path d="M0,-98.439C0,-98.439 74.596,-131.467 94.956,-57.748C94.956,-57.748 116.283,28.178 33.697,33.028C33.697,33.028 -71.613,12.745 0,-98.439" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,520.766,436.428)">
<path d="M0,0C0,19.119 -11.27,34.627 -25.173,34.627C-39.071,34.627 -50.344,19.119 -50.344,0C-50.344,-19.124 -39.071,-34.627 -25.173,-34.627C-11.27,-34.627 0,-19.124 0,0" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(-1.53e-05,-239.021,-239.021,1.53e-05,402.161,775.388)">
<path d="M0.367,0.129C-0.364,-0.441 0.223,-0.711 0.223,-0.711C0.259,-0.391 0.472,-0.164 0.472,-0.164C0.521,-0.548 0.525,-0.77 0.525,-0.77C1.203,-0.256 0.589,0.161 0.589,0.161C0.627,0.265 0.772,0.372 0.906,0.451L1,0.77C0.376,0.403 0.367,0.129 0.367,0.129Z" style="fill:url(#_Linear3);fill-rule:nonzero;"/>
</g>
</g>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,1.38778e-17,-1,0,-0.000650515)"><stop offset="0" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="0.33" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(244,150,0);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,-1,0,1.23438e-06)"><stop offset="0" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.15" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.74" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(247,76,0);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,1.32349e-23,1.32349e-23,-1,0,-9.1568e-07)"><stop offset="0" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.15" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.74" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(247,76,0);stop-opacity:1"/></linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 97.1 97"><defs><style>.cls-1{fill:#6db33f;}</style></defs><title>spring-icon</title><g id="Layer_2" data-name="Layer 2"><g id="logos"><path class="cls-1" d="M88.4,5.6a42.32,42.32,0,0,1-5.2,9.1A48.46,48.46,0,1,0,15.5,84l1.8,1.6A48.41,48.41,0,0,0,96.8,52C98.2,39.8,94.5,24.2,88.4,5.6ZM22.5,84.4a4.12,4.12,0,1,1-.6-5.8A4.21,4.21,0,0,1,22.5,84.4ZM88.1,69.9C76.2,85.8,50.6,80.4,34.3,81.2c0,0-2.9.2-5.8.6,0,0,1.1-.5,2.5-1,11.5-4,16.9-4.8,23.9-8.4C68,65.7,81.1,51,83.7,35.8c-5,14.6-20.2,27.2-34,32.3C40.2,71.6,23.1,75,23.1,75l-.7-.4c-11.6-5.7-12-30.9,9.2-39,9.3-3.6,18.1-1.6,28.2-4,10.7-2.5,23.1-10.5,28.1-21C93.5,27.5,100.3,53.7,88.1,69.9Z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 703 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M63.93 17.608a17.91 17.91 0 0 0-.405-3.78c-.5-2.553-1.828-4.893-3.8-6.7a12.05 12.05 0 0 0-3.447-2.258c-1.243-.6-2.57-1-3.94-1.22-1.354-.25-2.85-.25-4.203-.368h-33.45a24.7 24.7 0 0 0-3.113.251c-1.027.114-2.033.36-3 .736l-.95.368a17.47 17.47 0 0 0-2.585 1.589c-.264.25-.545.368-.81.602a10.91 10.91 0 0 0-2.48 3.044C1.09 11.02.63 12.258.405 13.544A35.75 35.75 0 0 0 0 17.307V46.46a17.91 17.91 0 0 0 .405 3.78c.5 2.553 1.828 4.893 3.8 6.7a12.06 12.06 0 0 0 3.394 2.191c1.243.6 2.57 1 3.94 1.22 1.354.25 2.85.25 4.203.368h32.466a24.49 24.49 0 0 0 4.203-.368c1.344-.22 2.648-.627 3.87-1.204a15.54 15.54 0 0 0 3.517-2.191 10.9 10.9 0 0 0 2.445-3.044c.67-1.138 1.128-2.377 1.354-3.663a35.75 35.75 0 0 0 .405-3.78v-28.85z" fill="#f05138"/><path d="M42.737 47.713c-5.698 2.96-13.525 3.26-21.386.234C15.218 45.6 9.967 41.557 6.28 36.34c1.72 1.22 3.592 2.232 5.575 3.01 8.125 3.345 16.268 3.194 21.984 0-7.545-5.46-14.34-11.798-20.225-18.866a21.17 21.17 0 0 1-2.708-3.345c6.18 4.937 12.754 9.41 19.663 13.38-5.032-4.852-9.66-10.07-13.84-15.605C23.7 21.277 31.363 26.917 39.59 31.74l.88.468a15.18 15.18 0 0 0 .616-1.673c1.9-6.222-.264-13.296-5.012-19.15 10.992 5.97 17.5 17.193 14.79 26.593 0 .25-.14.502-.23.753l.088.1c5.434 6.105 3.94 12.56 3.254 11.34-2.972-5.1-8.477-3.53-11.238-2.46z" fill="#fefefe"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M63.93 17.608a17.91 17.91 0 0 0-.405-3.78c-.5-2.553-1.828-4.893-3.8-6.7a12.05 12.05 0 0 0-3.447-2.258c-1.243-.6-2.57-1-3.94-1.22-1.354-.25-2.85-.25-4.203-.368h-33.45a24.7 24.7 0 0 0-3.113.251c-1.027.114-2.033.36-3 .736l-.95.368a17.47 17.47 0 0 0-2.585 1.589c-.264.25-.545.368-.81.602a10.91 10.91 0 0 0-2.48 3.044C1.09 11.02.63 12.258.405 13.544A35.75 35.75 0 0 0 0 17.307V46.46a17.91 17.91 0 0 0 .405 3.78c.5 2.553 1.828 4.893 3.8 6.7a12.06 12.06 0 0 0 3.394 2.191c1.243.6 2.57 1 3.94 1.22 1.354.25 2.85.25 4.203.368h32.466a24.49 24.49 0 0 0 4.203-.368c1.344-.22 2.648-.627 3.87-1.204a15.54 15.54 0 0 0 3.517-2.191 10.9 10.9 0 0 0 2.445-3.044c.67-1.138 1.128-2.377 1.354-3.663a35.75 35.75 0 0 0 .405-3.78v-28.85z" fill="#f05138"/><path d="M42.737 47.713c-5.698 2.96-13.525 3.26-21.386.234C15.218 45.6 9.967 41.557 6.28 36.34c1.72 1.22 3.592 2.232 5.575 3.01 8.125 3.345 16.268 3.194 21.984 0-7.545-5.46-14.34-11.798-20.225-18.866a21.17 21.17 0 0 1-2.708-3.345c6.18 4.937 12.754 9.41 19.663 13.38-5.032-4.852-9.66-10.07-13.84-15.605C23.7 21.277 31.363 26.917 39.59 31.74l.88.468a15.18 15.18 0 0 0 .616-1.673c1.9-6.222-.264-13.296-5.012-19.15 10.992 5.97 17.5 17.193 14.79 26.593 0 .25-.14.502-.23.753l.088.1c5.434 6.105 3.94 12.56 3.254 11.34-2.972-5.1-8.477-3.53-11.238-2.46z" fill="#fefefe"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.279" height="424" viewBox="0 209.445 595.279 424" xmlns:v="https://vecta.io/nano"><path fill="#d1a41a" d="M531.64 594.445L437.037 493.74l-10.896 7.205c-52.431-30.908-91.661-75.49-111.786-142.345-71.662 17.629-155.214 62.845-209.047 124.013.01.012.021.023.03.037-53.459 57.869-87.91 112.324-97.033 132.129l52.169.334c-2.015-23.424 4.09-42.951 20-64.668 72.167-98.5 343.167 15 450.167 76.5l57-.5c-.001 0-8.501-37.5-56.001-32h0z"/><path fill="#ffdc76" d="M428.14 500.945c-110.127-54.949-140-189-113-281 0 0 20.5 9.5 40 55.5 44.646-12.799 96.667-14.001 142-1.5 0 0 5.5-36 38.5-53 4.992 21.339 38 191-107.5 280z"/><path d="M229.617 394.569L261.671 379l18.317 49.455-50.371-33.886zm-35.945 18.088l19.919-11.906 18.316 32.284-38.235-20.378zm-38.693 24.956l17.399-11.447 8.7 29.764-26.099-18.317zm308.172 82.424l-11.448-11.447-16.026 25.184 27.474-13.737zm22.896 27.474l-9.158-9.158-27.476 18.316 36.634-9.158zM315.64 346.862l-1.311-18.231 32.055 16.256-30.744 1.975zm10.139 26.644l-6.389-13.561 22.415 9.211-16.026 4.35zm210.638-19.233l4.578-13.736-25.185 10.531 20.607 3.205zm-9.158 27.933l2.289-11.219-18.316 5.495 16.027 5.724zm-222.086 35.488h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418zm183.163 17.859h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418z"/><path d="M547.277 286.323l-.1-.151c-.042-11.562-3.627-60.43-10.2-73.884-17.838 6.819-50.32 28.961-57.572 51.537-35.134-5.291-74.799-4.652-109.706 1.388-5.802-24.4-34.905-42.871-56.892-53.361-9.271 15.758-13.396 52.22-12.331 78.217-.039.027-.083.053-.122.083 4.08 108.774 57.119 176.502 126.478 217.549 71.4-41.047 122.399-121.09 120.358-221.427.029.017.061.031.087.049zM427.816 493.599c-109.027-54.727-129.652-193.147-111.064-266.803 5.168 28.505 14.552 46.291 34.905 54.957 18.88-5.445 40.823-8.739 63.263-9.765l16.179 37.412 11.968-37.497c20.707.828 40.93 3.638 58.645 8.554 18.698-13.683 26.066-34.662 29.919-52.906 4.94 21.254 4.375 67.272 4.397 67.272l.138-.755C538 384.597 492.189 456.66 427.817 493.601l-.001-.002z"/><path d="M583.444 607.021c-11.197-12.611-33.094-18.563-51.453-18.129-13.011-15.576-88.398-95.549-88.398-95.549l-5.235 6.613 91.12 98.51 3.943-.34c24.707-2.129 38.759 11.357 42.613 15.553 2.721 3.08 4.374 5.883 5.282 8.074h-50.093c-114.693-60.201-215.56-102.617-321.865-111.966.235-14.98 2.878-31.924 7.978-50.852l-9.838-2.691c-5.234 19.43-7.978 36.943-8.296 52.678a506.01 506.01 0 0 0-33.772-1.129c-9.61 0-18.361.898-26.294 2.463-10.403-10.467-19.266-20.434-26.746-29.873 49.64-51.994 131.692-99.197 202.865-116.527l-2.313-10.034c-76.612 18.585-160.479 69.095-207.171 118.124-21.669-29.418-30.373-53.59-32.866-71.833-3.218-23.032 2.26-44.239 15.866-61.343 21.307-26.68 51.453-28.505 82.731-23.26-.607 4.948.039 9.669 2.006 12.587 8.229 12.223 52.359 16.534 78.881 4.675-19.493-27.364-58.934-40.818-69.813-35.574-3.627 1.779-6.347 5.04-8.229 8.87-10.767-1.936-21.442-3.375-29.24-3.329-27.427.202-48.507 9.851-64.146 29.417-15.413 19.269-21.646 43.099-18.02 69.096 3.444 24.627 15.549 50.852 35.812 77.989l-9.768 10.764c-49.413 55.641-85.68 115.617-85.68 125.42v5.131h65.279l-1.144-6.088c-3.695-19.611 3.672-44.24 18.767-62.482 9.475-11.492 25.16-24.629 49.866-30.785 21.896 21.504 49.866 44.24 80.92 66.359h48.506v-5.131c0-5.793-2.855-10.855-8.023-14.275-7.662-5.039-19.493-5.746-30.373-2.012-10.358-11.605-16.185-27.137-17.431-46.291 105.398 9.395 206.038 52.221 319.597 111.967h62.559l-.002-4.063c-.997-12-8.38-20.736-8.38-20.736l-.002.002zM77.981 545.906c-15.458 18.768-23.573 43.557-21.76 64.764H14.968c8.273-17.992 41.254-70.008 89.759-122.686 6.71 8.348 14.167 16.762 22.372 25.313-23.801 7.229-39.666 20.66-49.413 32.609h.295zm288.822-221.515l-.003-.001-.002.005.005-.004z"/><path d="M507.276 325.238v-6.687c-24.772 0-39.609 9.799-46.707 30.68h-53.575c3.746-16.713 4.388-33.106-1.131-42.585-3.113-5.334-8.014-8.173-14.172-8.173-22.071 0-30.781 22.621-31.138 23.582l6.247 2.334c.249-.827 7.556-19.204 24.954-19.204 3.801 0 6.471 1.534 8.402 4.854 4.52 7.784 3.786 23.078.031 39.151h-30.451v6.686l28.959.027c-3.091 10.967-7.418 21.796-12.294 30.451l-1.578 2.771 38.235 24.04-21.477 14.15 3.687 5.586 24.041-15.821 25.871 16.895 3.549-5.652-24.04-14.86 37.777-24.499c-.013-.015-.02-.029-.029-.042l-.13-.076.043-.007c-7.92-11.674-10.417-21.655-7.123-32.962l31.219.041.067-6.64h-29.077c5.496-12.661 13.052-24.04 39.84-24.04h0zm-78.24 83.779l-28.16-17.744 55.178.014-27.018 17.73h0zm29.395-53.114c-2.381 7.555-1.419 18.935 4.419 28.619h-67.999c4.144-8.288 7.968-18.385 10.761-28.619h52.819z"/></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.279" height="424" viewBox="0 209.445 595.279 424" xmlns:v="https://vecta.io/nano"><path fill="#d1a41a" d="M531.64 594.445L437.037 493.74l-10.896 7.205c-52.431-30.908-91.661-75.49-111.786-142.345-71.662 17.629-155.214 62.845-209.047 124.013.01.012.021.023.03.037-53.459 57.869-87.91 112.324-97.033 132.129l52.169.334c-2.015-23.424 4.09-42.951 20-64.668 72.167-98.5 343.167 15 450.167 76.5l57-.5c-.001 0-8.501-37.5-56.001-32h0z"/><path fill="#ffdc76" d="M428.14 500.945c-110.127-54.949-140-189-113-281 0 0 20.5 9.5 40 55.5 44.646-12.799 96.667-14.001 142-1.5 0 0 5.5-36 38.5-53 4.992 21.339 38 191-107.5 280z"/><path d="M229.617 394.569L261.671 379l18.317 49.455-50.371-33.886zm-35.945 18.088l19.919-11.906 18.316 32.284-38.235-20.378zm-38.693 24.956l17.399-11.447 8.7 29.764-26.099-18.317zm308.172 82.424l-11.448-11.447-16.026 25.184 27.474-13.737zm22.896 27.474l-9.158-9.158-27.476 18.316 36.634-9.158zM315.64 346.862l-1.311-18.231 32.055 16.256-30.744 1.975zm10.139 26.644l-6.389-13.561 22.415 9.211-16.026 4.35zm210.638-19.233l4.578-13.736-25.185 10.531 20.607 3.205zm-9.158 27.933l2.289-11.219-18.316 5.495 16.027 5.724zm-222.086 35.488h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418zm183.163 17.859h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418z"/><path d="M547.277 286.323l-.1-.151c-.042-11.562-3.627-60.43-10.2-73.884-17.838 6.819-50.32 28.961-57.572 51.537-35.134-5.291-74.799-4.652-109.706 1.388-5.802-24.4-34.905-42.871-56.892-53.361-9.271 15.758-13.396 52.22-12.331 78.217-.039.027-.083.053-.122.083 4.08 108.774 57.119 176.502 126.478 217.549 71.4-41.047 122.399-121.09 120.358-221.427.029.017.061.031.087.049zM427.816 493.599c-109.027-54.727-129.652-193.147-111.064-266.803 5.168 28.505 14.552 46.291 34.905 54.957 18.88-5.445 40.823-8.739 63.263-9.765l16.179 37.412 11.968-37.497c20.707.828 40.93 3.638 58.645 8.554 18.698-13.683 26.066-34.662 29.919-52.906 4.94 21.254 4.375 67.272 4.397 67.272l.138-.755C538 384.597 492.189 456.66 427.817 493.601l-.001-.002z"/><path d="M583.444 607.021c-11.197-12.611-33.094-18.563-51.453-18.129-13.011-15.576-88.398-95.549-88.398-95.549l-5.235 6.613 91.12 98.51 3.943-.34c24.707-2.129 38.759 11.357 42.613 15.553 2.721 3.08 4.374 5.883 5.282 8.074h-50.093c-114.693-60.201-215.56-102.617-321.865-111.966.235-14.98 2.878-31.924 7.978-50.852l-9.838-2.691c-5.234 19.43-7.978 36.943-8.296 52.678a506.01 506.01 0 0 0-33.772-1.129c-9.61 0-18.361.898-26.294 2.463-10.403-10.467-19.266-20.434-26.746-29.873 49.64-51.994 131.692-99.197 202.865-116.527l-2.313-10.034c-76.612 18.585-160.479 69.095-207.171 118.124-21.669-29.418-30.373-53.59-32.866-71.833-3.218-23.032 2.26-44.239 15.866-61.343 21.307-26.68 51.453-28.505 82.731-23.26-.607 4.948.039 9.669 2.006 12.587 8.229 12.223 52.359 16.534 78.881 4.675-19.493-27.364-58.934-40.818-69.813-35.574-3.627 1.779-6.347 5.04-8.229 8.87-10.767-1.936-21.442-3.375-29.24-3.329-27.427.202-48.507 9.851-64.146 29.417-15.413 19.269-21.646 43.099-18.02 69.096 3.444 24.627 15.549 50.852 35.812 77.989l-9.768 10.764c-49.413 55.641-85.68 115.617-85.68 125.42v5.131h65.279l-1.144-6.088c-3.695-19.611 3.672-44.24 18.767-62.482 9.475-11.492 25.16-24.629 49.866-30.785 21.896 21.504 49.866 44.24 80.92 66.359h48.506v-5.131c0-5.793-2.855-10.855-8.023-14.275-7.662-5.039-19.493-5.746-30.373-2.012-10.358-11.605-16.185-27.137-17.431-46.291 105.398 9.395 206.038 52.221 319.597 111.967h62.559l-.002-4.063c-.997-12-8.38-20.736-8.38-20.736l-.002.002zM77.981 545.906c-15.458 18.768-23.573 43.557-21.76 64.764H14.968c8.273-17.992 41.254-70.008 89.759-122.686 6.71 8.348 14.167 16.762 22.372 25.313-23.801 7.229-39.666 20.66-49.413 32.609h.295zm288.822-221.515l-.003-.001-.002.005.005-.004z"/><path d="M507.276 325.238v-6.687c-24.772 0-39.609 9.799-46.707 30.68h-53.575c3.746-16.713 4.388-33.106-1.131-42.585-3.113-5.334-8.014-8.173-14.172-8.173-22.071 0-30.781 22.621-31.138 23.582l6.247 2.334c.249-.827 7.556-19.204 24.954-19.204 3.801 0 6.471 1.534 8.402 4.854 4.52 7.784 3.786 23.078.031 39.151h-30.451v6.686l28.959.027c-3.091 10.967-7.418 21.796-12.294 30.451l-1.578 2.771 38.235 24.04-21.477 14.15 3.687 5.586 24.041-15.821 25.871 16.895 3.549-5.652-24.04-14.86 37.777-24.499c-.013-.015-.02-.029-.029-.042l-.13-.076.043-.007c-7.92-11.674-10.417-21.655-7.123-32.962l31.219.041.067-6.64h-29.077c5.496-12.661 13.052-24.04 39.84-24.04h0zm-78.24 83.779l-28.16-17.744 55.178.014-27.018 17.73h0zm29.395-53.114c-2.381 7.555-1.419 18.935 4.419 28.619h-67.999c4.144-8.288 7.968-18.385 10.761-28.619h52.819z"/></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.0" id="katman_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 800 600" style="enable-background:new 0 0 800 600;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
</style>
<path d="M364.7,246.1h16.9L363.2,300h-16.9l-18.5-53.9h17.1l10.2,33h0.2C355.3,279.1,364.7,246.1,364.7,246.1z M436,300h-39.4v-53.9
h39.2v13.6h-23.6v7.1h20.9v12.2h-20.9v7.4H436V300z M477.6,245.2c11.3,0,19.6,5.8,22.1,15.1l-14.7,6.4c-0.7-4.2-2.9-7.4-7.6-7.4
c-5.3,0-9.3,4.4-9.3,14c0,9.6,3.8,14.2,9.3,14.2c4.5,0,6.9-3.4,7.6-7.6l14.7,6.4c-2.5,9.3-10.9,15.1-22.1,15.1
c-16.2,0-26.1-10.7-26.1-28S461.4,245.2,477.6,245.2z M527.9,300v-40.3h-16.2v-13.6h48.5v13.6H544V300H527.9L527.9,300z
M625.6,273.1c0,17.2-10,28-26.1,28c-16,0-26.1-10.7-26.1-28s10.2-28,26.1-28C615.6,245.2,625.6,255.9,625.6,273.1z M590.2,273.1
c0,8.7,3.3,14.2,9.4,14.2s9.4-5.3,9.4-14.2c0-8.7-3.3-14.2-9.4-14.2S590.2,264.2,590.2,273.1z M674.6,300c-1.5-1.8-2-3.4-2.5-6.4
l-1.1-6c-0.7-3.8-2.5-4.9-5.8-4.9h-6.4V300h-16v-53.9h25.6c12.2,0,20.7,4.7,20.7,16.5c0,7.8-5.3,12.3-11.1,13.4v0.2
c4.7,0.7,7.4,3.6,8.5,8.5l2,8.5c0.7,2.9,1.6,4.7,3.4,6.7C692,300,674.6,300,674.6,300z M666.4,259.3h-7.8V270h7.8
c3.8,0,5.8-1.6,5.8-5.4C672.2,261.1,670.4,259.3,666.4,259.3z M344.9,340.5c3.3,0.4,5.6,2.4,5.6,6c0,4.4-2.7,7.3-8.7,7.3h-9.3v-26.1
h8.9c5.1,0,8.2,2.4,8.2,6.9C349.6,337.7,347.6,339.9,344.9,340.5L344.9,340.5z M335.8,339.4h5.4c3.3,0,5.1-1.5,5.1-4.5
s-1.8-4.5-5.1-4.5h-5.4V339.4z M335.8,351h5.8c3.6,0,5.4-1.6,5.4-4.5c0-2.9-2-4.5-5.4-4.5h-5.8V351z M363.8,340.3l7.1-12.7h3.4
l-8.9,15.8v10.2h-3.3v-10.2l-9.1-15.8h3.6L363.8,340.3L363.8,340.3z M390.5,327.6h7.6c7.3,0,12.7,4,12.7,12.9s-5.4,13.1-12.7,13.1
h-7.6V327.6z M393.7,350.8h4.4c4.7,0,9.3-2.5,9.3-10.3s-4.5-10.2-9.3-10.2h-4.4C393.7,330.3,393.7,350.8,393.7,350.8z M429.9,346.5
H419l-2.5,7.3h-3.3l9.4-26.1h3.6l9.4,26.1h-3.3L429.9,346.5L429.9,346.5z M419.9,343.6h8.9l-4.4-12.5L419.9,343.6z M444,353.7v-23.2
h-8.7v-2.9h20.9v2.9h-8.7v23.2H444z M472.3,346.5h-10.9l-2.5,7.3h-3.3l9.4-26.1h3.6l9.4,26.1h-3.3L472.3,346.5z M462.5,343.6h8.9
l-4.4-12.5L462.5,343.6z M483.2,327.6h7.6c7.3,0,12.7,4,12.7,12.9s-5.4,13.1-12.7,13.1h-7.6V327.6z M486.5,350.8h4.4
c4.7,0,9.3-2.5,9.3-10.3s-4.5-10.2-9.3-10.2h-4.4C486.5,330.3,486.5,350.8,486.5,350.8z M530.6,340.7c0,8.4-4.5,13.4-11.3,13.4
s-11.3-5.1-11.3-13.4c0-8.4,4.5-13.4,11.3-13.4S530.6,332.3,530.6,340.7z M511.6,340.7c0,6.4,2.7,10.7,7.8,10.7s7.8-4.4,7.8-10.7
c0-6.4-2.7-10.7-7.8-10.7S511.6,334.3,511.6,340.7z M556.6,340.5v13.1H554l-0.5-3.8c-0.9,2.7-3.8,4.4-7.3,4.4
c-6.5,0-11.1-4.9-11.1-13.4c0-8.7,4.9-13.6,11.4-13.6c4.7,0,8,2,9.4,6l-2.9,1.6c-0.9-3.1-3.4-4.9-6.7-4.9c-5.1,0-8,4-8,10.7
c0,6.4,2.5,10.7,8,10.7c3.4,0,6.7-1.8,6.7-6.5V343h-6.4v-2.7h9.8L556.6,340.5z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="128.0459" y1="579.2074" x2="313.2256" y2="472.2935" gradientTransform="matrix(1 0 0 1 -20.96 -225.764)">
<stop offset="0" style="stop-color:#10E7FF"/>
<stop offset="0.103" style="stop-color:#33D5FF"/>
<stop offset="0.255" style="stop-color:#60BDFF"/>
<stop offset="0.408" style="stop-color:#86AAFF"/>
<stop offset="0.56" style="stop-color:#A39AFF"/>
<stop offset="0.71" style="stop-color:#B790FF"/>
<stop offset="0.858" style="stop-color:#C489FF"/>
<stop offset="1" style="stop-color:#C887FF"/>
</linearGradient>
<path class="st0" d="M199.7,408.2l-92.2-54.1V245.9l92.2-54.1l92.2,54.1v108.2L199.7,408.2z M120.3,346.5l79.1,46.5l79.1-46.5v-92.9
l-79-46.5l-79.3,46.5C120.3,253.5,120.3,346.5,120.3,346.5z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="185.3542" y1="542.0127" x2="277.202" y2="488.9837" gradientTransform="matrix(1 0 0 1 -20.96 -225.764)">
<stop offset="0" style="stop-color:#10E7FF"/>
<stop offset="0.103" style="stop-color:#33D5FF"/>
<stop offset="0.255" style="stop-color:#60BDFF"/>
<stop offset="0.408" style="stop-color:#86AAFF"/>
<stop offset="0.56" style="stop-color:#A39AFF"/>
<stop offset="0.71" style="stop-color:#B790FF"/>
<stop offset="0.858" style="stop-color:#C489FF"/>
<stop offset="1" style="stop-color:#C887FF"/>
</linearGradient>
<path class="st1" d="M239.4,270.6l-32.3,56.8l10.5,18.5l42.8-75.3C260.5,270.6,239.4,270.6,239.4,270.6z M203.3,270.6L171,327.4
l10.5,18.5l42.8-75.3C224.4,270.6,203.3,270.6,203.3,270.6z M138.9,270.6l42.8,75.3l10.5-18.5l-32.3-56.8
C159.9,270.6,138.9,270.6,138.9,270.6z M138.9,270.6l42.8,75.3l10.5-18.5l-32.3-56.8C159.9,270.6,138.9,270.6,138.9,270.6z
M203.3,270.6L171,327.4l10.5,18.5l42.8-75.3C224.4,270.6,203.3,270.6,203.3,270.6z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -1 +0,0 @@
<svg fill="none" viewBox="0 0 1155 1000" xmlns="http://www.w3.org/2000/svg"><path d="m577.3 0 577.4 1000h-1154.7z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 134 B

View File

@@ -1 +0,0 @@
<svg height="58.054" width="64.06" xmlns="http://www.w3.org/2000/svg"><path d="m561.16106 571.25413c-2.21807 0-4.00374 1.7857-4.00374 4.0037v38.0355c0 2.2181 1.78567 4.0038 4.00374 4.0038h20.01869v8.0075h-8.00747v2.0018h-4.00374v2.0019h40.03738v-2.0019h-4.00373v-2.0018h-8.00748v-8.0075h20.01869c2.21807 0 4.00374-1.7857 4.00374-4.0038v-38.0355c0-2.218-1.78567-4.0037-4.00374-4.0037zm0 4.0037h56.05234v38.0355h-56.05234zm29.02711 7.5696-10.88517 5.5051 10.88517 6.5061 11.13539-6.5061zm-10.88517 7.507v12.0112l10.00935 6.0056v-12.0112zm22.02056.062-10.00934 6.0056v12.0112l10.00934-6.0056z" fill="#00bcf2" transform="translate(-557.157 -571.254)"/></svg>

Before

Width:  |  Height:  |  Size: 654 B

View File

@@ -1 +0,0 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 76.64"><defs><style>.cls-1{fill:#f68633;}.cls-2{fill:#fff;}</style></defs><title>aws-vpc</title><path class="cls-1" d="M15.92,32.33c0-.31,0-.6,0-.91A31.4,31.4,0,0,1,76,18.59,15.91,15.91,0,0,1,100.86,31.2c12.39,1.06,22,13.08,22,22.65v2.08c0,10.3-11.13,20.71-24.85,20.71H24.85C11.13,76.64,0,66.23,0,55.93V53.86C0,45.93,6.62,35,15.92,32.34Z"/><path class="cls-2" d="M32,36.24h4.89l4.89,23h.07l5.18-23H52L44.68,65.1H38.82L32,36.24Zm22.88,0h9.14c5.55,0,8,3.48,8,8.41,0,5.18-3,8.53-8.45,8.53H59.54V65.11H54.93V36.24ZM59.53,49.7h3.28c2.45,0,4.6-1.33,4.6-5,0-3.11-1.24-5-4.94-5H59.52v10Zm34.16,5.06v.6c0,5.22-2.1,10.31-8.89,10.31-7.28,0-9.54-4.69-9.54-15s2.27-15,9.58-15c8.21,0,8.69,6.06,8.69,9.06v.53h-4.6v-.48c0-2.67-.81-5.74-4.13-5.62s-4.93,2.1-4.93,11.4,1.54,11.64,4.93,11.64c3.84,0,4.29-4.29,4.29-7v-.5l4.6,0Z"/></svg>

Before

Width:  |  Height:  |  Size: 908 B

View File

@@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.46 122.88" style="enable-background:new 0 0 122.46 122.88" xml:space="preserve"><style type="text/css"><![CDATA[
.st0{fill:#0078D6;}
]]></style><g><path class="st0" d="M0,17.53v41.52h50.07v-48.4L0,17.53L0,17.53z M56.11,9.68L122.46,0v58.63H56.11V9.68L56.11,9.68z M0,64.16 v41.52l50.07,7.01V64.16H0L0,64.16z M56.11,64.81h66.35v58.07l-66.35-9.4V64.81L56.11,64.81z"/></g></svg>

Before

Width:  |  Height:  |  Size: 557 B

View File

@@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.46 122.88" style="enable-background:new 0 0 122.46 122.88" xml:space="preserve"><style type="text/css"><![CDATA[
.st0{fill:#0078D6;}
]]></style><g><path class="st0" d="M0,17.53v41.52h50.07v-48.4L0,17.53L0,17.53z M56.11,9.68L122.46,0v58.63H56.11V9.68L56.11,9.68z M0,64.16 v41.52l50.07,7.01V64.16H0L0,64.16z M56.11,64.81h66.35v58.07l-66.35-9.4V64.81L56.11,64.81z"/></g></svg>

Before

Width:  |  Height:  |  Size: 557 B

View File

@@ -0,0 +1,12 @@
{
"workspaceSuspended": "Your workspace is locked",
"gotQuestions": "Got Questions?",
"contactUs": "Contact Us",
"actionHeader": "Pay to continue",
"actionDescription": "Pay now to keep enjoying all the great features youve been using.",
"yourDataIsSafe": "Your data is safe with us until",
"actNow": "Act now to avoid any disruptions and continue where you left off.",
"contactAdmin": "Contact your admin to proceed with the upgrade.",
"continueMyJourney": "Settle your bill to continue",
"somethingWentWrong": "Something went wrong"
}

Some files were not shown because too many files have changed in this diff Show More