playwright-ruby-client 0.5.7 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/documentation/README.md +33 -0
  4. data/documentation/babel.config.js +3 -0
  5. data/documentation/docs/api/accessibility.md +7 -0
  6. data/documentation/docs/api/browser.md +185 -0
  7. data/documentation/docs/api/browser_context.md +398 -0
  8. data/documentation/docs/api/browser_type.md +105 -0
  9. data/documentation/docs/api/cdp_session.md +7 -0
  10. data/documentation/docs/api/console_message.md +41 -0
  11. data/documentation/docs/api/dialog.md +74 -0
  12. data/documentation/docs/api/element_handle.md +640 -0
  13. data/documentation/docs/api/experimental/_category_.yml +3 -0
  14. data/documentation/docs/api/experimental/android.md +25 -0
  15. data/documentation/docs/api/experimental/android_device.md +91 -0
  16. data/documentation/docs/api/experimental/android_input.md +38 -0
  17. data/documentation/docs/api/experimental/android_socket.md +7 -0
  18. data/documentation/docs/api/experimental/android_web_view.md +7 -0
  19. data/documentation/docs/api/file_chooser.md +51 -0
  20. data/documentation/docs/api/frame.md +867 -0
  21. data/documentation/docs/api/js_handle.md +116 -0
  22. data/documentation/docs/api/keyboard.md +157 -0
  23. data/documentation/docs/api/mouse.md +69 -0
  24. data/documentation/docs/api/page.md +1469 -0
  25. data/documentation/docs/api/playwright.md +63 -0
  26. data/documentation/docs/api/request.md +188 -0
  27. data/documentation/docs/api/response.md +97 -0
  28. data/documentation/docs/api/route.md +80 -0
  29. data/documentation/docs/api/selectors.md +23 -0
  30. data/documentation/docs/api/touchscreen.md +8 -0
  31. data/documentation/docs/api/tracing.md +54 -0
  32. data/documentation/docs/api/web_socket.md +7 -0
  33. data/documentation/docs/api/worker.md +7 -0
  34. data/documentation/docs/article/api_coverage.mdx +11 -0
  35. data/documentation/docs/article/getting_started.md +152 -0
  36. data/documentation/docs/article/guides/_category_.yml +3 -0
  37. data/documentation/docs/article/guides/download_playwright_driver.md +49 -0
  38. data/documentation/docs/article/guides/launch_browser.md +119 -0
  39. data/documentation/docs/article/guides/rails_integration.md +51 -0
  40. data/{docs → documentation/docs/include}/api_coverage.md +10 -1
  41. data/documentation/docusaurus.config.js +107 -0
  42. data/documentation/package.json +39 -0
  43. data/documentation/sidebars.js +15 -0
  44. data/documentation/src/components/HomepageFeatures.js +61 -0
  45. data/documentation/src/components/HomepageFeatures.module.css +13 -0
  46. data/documentation/src/css/custom.css +44 -0
  47. data/documentation/src/pages/index.js +50 -0
  48. data/documentation/src/pages/index.module.css +41 -0
  49. data/documentation/src/pages/markdown-page.md +7 -0
  50. data/documentation/static/.nojekyll +0 -0
  51. data/documentation/static/img/playwright-logo.svg +9 -0
  52. data/documentation/static/img/undraw_dropdown_menu.svg +1 -0
  53. data/documentation/static/img/undraw_web_development.svg +1 -0
  54. data/documentation/static/img/undraw_windows.svg +1 -0
  55. data/documentation/yarn.lock +8805 -0
  56. data/lib/playwright/channel_owner.rb +3 -0
  57. data/lib/playwright/channel_owners/binding_call.rb +33 -0
  58. data/lib/playwright/channel_owners/browser.rb +27 -2
  59. data/lib/playwright/channel_owners/browser_context.rb +54 -3
  60. data/lib/playwright/channel_owners/browser_type.rb +8 -1
  61. data/lib/playwright/channel_owners/element_handle.rb +17 -16
  62. data/lib/playwright/channel_owners/frame.rb +29 -34
  63. data/lib/playwright/channel_owners/js_handle.rb +2 -10
  64. data/lib/playwright/channel_owners/page.rb +29 -45
  65. data/lib/playwright/download.rb +3 -2
  66. data/lib/playwright/events.rb +4 -0
  67. data/lib/playwright/input_files.rb +0 -8
  68. data/lib/playwright/javascript.rb +0 -10
  69. data/lib/playwright/javascript/expression.rb +2 -7
  70. data/lib/playwright/playwright_api.rb +1 -5
  71. data/lib/playwright/tracing_impl.rb +31 -0
  72. data/lib/playwright/version.rb +2 -1
  73. data/lib/playwright_api/accessibility.rb +7 -88
  74. data/lib/playwright_api/android.rb +8 -65
  75. data/lib/playwright_api/android_device.rb +8 -8
  76. data/lib/playwright_api/browser.rb +15 -126
  77. data/lib/playwright_api/browser_context.rb +63 -429
  78. data/lib/playwright_api/browser_type.rb +33 -84
  79. data/lib/playwright_api/cdp_session.rb +2 -25
  80. data/lib/playwright_api/console_message.rb +8 -6
  81. data/lib/playwright_api/dialog.rb +11 -69
  82. data/lib/playwright_api/element_handle.rb +102 -300
  83. data/lib/playwright_api/file_chooser.rb +0 -21
  84. data/lib/playwright_api/frame.rb +105 -571
  85. data/lib/playwright_api/js_handle.rb +16 -73
  86. data/lib/playwright_api/keyboard.rb +22 -166
  87. data/lib/playwright_api/mouse.rb +1 -45
  88. data/lib/playwright_api/page.rb +202 -1217
  89. data/lib/playwright_api/playwright.rb +14 -99
  90. data/lib/playwright_api/request.rb +15 -93
  91. data/lib/playwright_api/response.rb +7 -7
  92. data/lib/playwright_api/route.rb +9 -86
  93. data/lib/playwright_api/selectors.rb +6 -72
  94. data/lib/playwright_api/tracing.rb +39 -0
  95. data/lib/playwright_api/web_socket.rb +1 -1
  96. data/lib/playwright_api/worker.rb +6 -42
  97. data/playwright.gemspec +2 -2
  98. metadata +59 -20
  99. data/lib/playwright/javascript/function.rb +0 -67
@@ -140,7 +140,7 @@
140
140
  * evaluate_handle
141
141
  * fill
142
142
  * focus
143
- * ~~frame_element~~
143
+ * frame_element
144
144
  * get_attribute
145
145
  * goto
146
146
  * hover
@@ -313,6 +313,7 @@
313
313
  * expect_event
314
314
  * expect_page
315
315
  * ~~wait_for_event~~
316
+ * tracing
316
317
 
317
318
  ## ~~CDPSession~~
318
319
 
@@ -333,6 +334,8 @@
333
334
 
334
335
  ## BrowserType
335
336
 
337
+ * ~~connect~~
338
+ * connect_over_cdp
336
339
  * executable_path
337
340
  * launch
338
341
  * ~~launch_persistent_context~~
@@ -347,6 +350,12 @@
347
350
  * selectors
348
351
  * webkit
349
352
 
353
+ ## Tracing
354
+
355
+ * export
356
+ * start
357
+ * stop
358
+
350
359
  ## Android
351
360
 
352
361
  * devices
@@ -0,0 +1,107 @@
1
+ /** @type {import('@docusaurus/types').DocusaurusConfig} */
2
+ module.exports = {
3
+ title: 'playwright-ruby-client',
4
+ tagline: 'Playwright client library for Ruby',
5
+ url: 'https://playwright-ruby-client.vercel.app',
6
+ baseUrl: '/',
7
+ onBrokenLinks: 'throw',
8
+ onBrokenMarkdownLinks: 'warn',
9
+ favicon: 'img/playwright-logo.svg',
10
+ organizationName: 'YusukeIwaki', // Usually your GitHub org/user name.
11
+ projectName: 'playwright-ruby-client', // Usually your repo name.
12
+ themeConfig: {
13
+ navbar: {
14
+ title: 'playwright-ruby-client',
15
+ logo: {
16
+ alt: 'Playwright',
17
+ src: 'img/playwright-logo.svg',
18
+ },
19
+ items: [
20
+ {
21
+ type: 'doc',
22
+ docId: 'article/getting_started',
23
+ position: 'left',
24
+ label: 'Docs',
25
+ },
26
+ {
27
+ type: 'doc',
28
+ docId: 'api/playwright',
29
+ position: 'left',
30
+ label: 'API',
31
+ },
32
+ {
33
+ href: 'https://github.com/YusukeIwaki/playwright-ruby-client',
34
+ 'aria-label': 'GitHub',
35
+ className: 'header-github-link',
36
+ position: 'right',
37
+ },
38
+ ],
39
+ },
40
+ footer: {
41
+ style: 'dark',
42
+ links: [
43
+ {
44
+ title: 'Docs',
45
+ items: [
46
+ {
47
+ label: 'Getting started',
48
+ to: '/docs/article/getting_started',
49
+ },
50
+ {
51
+ label: 'API reference',
52
+ to: '/docs/api/playwright',
53
+ },
54
+ ],
55
+ },
56
+ {
57
+ title: 'Source codes',
58
+ items: [
59
+ {
60
+ label: 'playwright-ruby-client',
61
+ to: 'https://github.com/YusukeIwaki/playwright-ruby-client',
62
+ },
63
+ {
64
+ label: 'capybara-playwright-driver',
65
+ to: 'https://github.com/YusukeIwaki/capybara-playwright-driver',
66
+ },
67
+ ],
68
+ },
69
+ {
70
+ title: 'HowTo',
71
+ items: [
72
+ {
73
+ label: 'Develop Playwright driver for Ruby',
74
+ to: 'https://yusukeiwaki.hatenablog.com/entry/2021/01/13/how-to-create-playwright-ruby-client',
75
+ },
76
+ {
77
+ label: 'Implement your own Capybara driver',
78
+ to: 'https://zenn.dev/yusukeiwaki/scraps/280aabf289ae29',
79
+ },
80
+ ],
81
+ },
82
+ ],
83
+ copyright: `Copyright © ${new Date().getFullYear()} @YusukeIwaki. <p>Built with <a href="https://v2.docusaurus.io/">Docusaurus</a>.</p>`,
84
+ },
85
+ prism: {
86
+ additionalLanguages: ['bash', 'ruby'],
87
+ },
88
+ },
89
+ presets: [
90
+ [
91
+ '@docusaurus/preset-classic',
92
+ {
93
+ docs: {
94
+ sidebarPath: require.resolve('./sidebars.js'),
95
+ },
96
+ blog: {
97
+ feedOptions: {
98
+ type: null,
99
+ },
100
+ },
101
+ theme: {
102
+ customCss: require.resolve('./src/css/custom.css'),
103
+ },
104
+ },
105
+ ],
106
+ ],
107
+ };
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "playwright-ruby-docs",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "docusaurus": "docusaurus",
7
+ "start": "docusaurus start",
8
+ "build": "docusaurus build",
9
+ "swizzle": "docusaurus swizzle",
10
+ "deploy": "docusaurus deploy",
11
+ "clear": "docusaurus clear",
12
+ "serve": "docusaurus serve",
13
+ "write-translations": "docusaurus write-translations",
14
+ "write-heading-ids": "docusaurus write-heading-ids"
15
+ },
16
+ "dependencies": {
17
+ "@docusaurus/core": "2.0.0-beta.0",
18
+ "@docusaurus/preset-classic": "2.0.0-beta.0",
19
+ "@mdx-js/react": "^1.6.21",
20
+ "@svgr/webpack": "^5.5.0",
21
+ "clsx": "^1.1.1",
22
+ "file-loader": "^6.2.0",
23
+ "react": "^17.0.1",
24
+ "react-dom": "^17.0.1",
25
+ "url-loader": "^4.1.1"
26
+ },
27
+ "browserslist": {
28
+ "production": [
29
+ ">0.5%",
30
+ "not dead",
31
+ "not op_mini all"
32
+ ],
33
+ "development": [
34
+ "last 1 chrome version",
35
+ "last 1 firefox version",
36
+ "last 1 safari version"
37
+ ]
38
+ }
39
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Creating a sidebar enables you to:
3
+ - create an ordered group of docs
4
+ - render a sidebar for each doc of that group
5
+ - provide next/previous navigation
6
+
7
+ The sidebars can be generated from the filesystem, or explicitly defined here.
8
+
9
+ Create as many sidebars as you want.
10
+ */
11
+
12
+ module.exports = {
13
+ docsSidebar: [{ type: 'autogenerated', dirName: 'article' }],
14
+ apiSidebar: [{ type: 'autogenerated', dirName: 'api' }],
15
+ };
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import clsx from 'clsx';
3
+ import styles from './HomepageFeatures.module.css';
4
+
5
+ const FeatureList = [
6
+ {
7
+ title: 'Test across modern browsers',
8
+ Svg: require('../../static/img/undraw_windows.svg').default,
9
+ description: (
10
+ <>
11
+ Provide browser automation for Chrome, MS Edge, Firefox, and WebKit.
12
+ </>
13
+ ),
14
+ },
15
+ {
16
+ title: 'Make more relyable tests',
17
+ Svg: require('../../static/img/undraw_dropdown_menu.svg').default,
18
+ description: (
19
+ <>
20
+ Automate with JavaScript-based Playwright protocol, which precisely wait for elements.
21
+ </>
22
+ ),
23
+ },
24
+ {
25
+ title: 'Work with Ruby on Rails',
26
+ Svg: require('../../static/img/undraw_web_development.svg').default,
27
+ description: (
28
+ <>
29
+ Keep your existing system specs for Rails. Just use <a href="https://rubygems.org/gems/capybara-playwright-driver">capybara-playwright-driver</a>.
30
+ </>
31
+ ),
32
+ },
33
+ ];
34
+
35
+ function Feature({ Svg, title, description }) {
36
+ return (
37
+ <div className={clsx('col col--4')}>
38
+ <div className="text--center">
39
+ <Svg className={styles.featureSvg} alt={title} />
40
+ </div>
41
+ <div className="text--center padding-horiz--md">
42
+ <h3>{title}</h3>
43
+ <p>{description}</p>
44
+ </div>
45
+ </div>
46
+ );
47
+ }
48
+
49
+ export default function HomepageFeatures() {
50
+ return (
51
+ <section className={styles.features}>
52
+ <div className="container">
53
+ <div className="row">
54
+ {FeatureList.map((props, idx) => (
55
+ <Feature key={idx} {...props} />
56
+ ))}
57
+ </div>
58
+ </div>
59
+ </section>
60
+ );
61
+ }
@@ -0,0 +1,13 @@
1
+ /* stylelint-disable docusaurus/copyright-header */
2
+
3
+ .features {
4
+ display: flex;
5
+ align-items: center;
6
+ padding: 2rem 0;
7
+ width: 100%;
8
+ }
9
+
10
+ .featureSvg {
11
+ height: 200px;
12
+ width: 200px;
13
+ }
@@ -0,0 +1,44 @@
1
+ /* stylelint-disable docusaurus/copyright-header */
2
+ /**
3
+ * Any CSS included here will be global. The classic template
4
+ * bundles Infima by default. Infima is a CSS framework designed to
5
+ * work well for content-centric websites.
6
+ */
7
+
8
+ /* You can override the default Infima variables here. */
9
+ :root {
10
+ --ifm-color-primary: #0094d9;
11
+ --ifm-color-primary-dark: #0085c3;
12
+ --ifm-color-primary-darker: #0076ad;
13
+ --ifm-color-primary-darkest: #006797;
14
+ --ifm-color-primary-light: #199edc;
15
+ --ifm-color-primary-lighter: #32a9e0;
16
+ --ifm-color-primary-lightest: #4cb4e4;
17
+
18
+ --ifm-code-font-size: 95%;
19
+ }
20
+
21
+ .docusaurus-highlight-code-line {
22
+ background-color: rgb(72, 77, 91);
23
+ display: block;
24
+ margin: 0 calc(-1 * var(--ifm-pre-padding));
25
+ padding: 0 var(--ifm-pre-padding);
26
+ }
27
+
28
+ .header-github-link:hover {
29
+ opacity: 0.6;
30
+ }
31
+
32
+ .header-github-link:before {
33
+ content: '';
34
+ width: 24px;
35
+ height: 24px;
36
+ display: flex;
37
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
38
+ no-repeat;
39
+ }
40
+
41
+ html[data-theme='dark'] .header-github-link:before {
42
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
43
+ no-repeat;
44
+ }
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import clsx from 'clsx';
3
+ import Layout from '@theme/Layout';
4
+ import Link from '@docusaurus/Link';
5
+ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
6
+ import styles from './index.module.css';
7
+ import HomepageFeatures from '../components/HomepageFeatures';
8
+
9
+ function HomepageHeader() {
10
+ const { siteConfig } = useDocusaurusContext();
11
+ return (
12
+ <header className={clsx('hero hero--dark', styles.heroBanner)}>
13
+ <div className="container">
14
+ <h1 className="hero__title">{siteConfig.title}</h1>
15
+ <p className="hero__subtitle">{siteConfig.tagline}</p>
16
+ <div className={styles.indexCtas}>
17
+ <Link
18
+ className="button button--lg button--primary"
19
+ to="/docs/article/getting_started">
20
+ Getting started
21
+ </Link>
22
+
23
+ <span className={styles.indexCtasGitHubButtonWrapper}>
24
+ <iframe
25
+ className={styles.indexCtasGitHubButton}
26
+ src="https://ghbtns.com/github-btn.html?user=YusukeIwaki&amp;repo=playwright-ruby-client&amp;type=star&amp;count=true&amp;size=large"
27
+ width={160}
28
+ height={30}
29
+ title="GitHub Stars"
30
+ />
31
+ </span>
32
+ </div>
33
+ </div>
34
+ </header>
35
+ );
36
+ }
37
+
38
+ export default function Home() {
39
+ const { siteConfig } = useDocusaurusContext();
40
+ return (
41
+ <Layout
42
+ title={siteConfig.title}
43
+ description="Cross-browser end-to-end testing for modern web apps">
44
+ <HomepageHeader />
45
+ <main>
46
+ <HomepageFeatures />
47
+ </main>
48
+ </Layout>
49
+ );
50
+ }
@@ -0,0 +1,41 @@
1
+ /* stylelint-disable docusaurus/copyright-header */
2
+
3
+ /**
4
+ * CSS files with the .module.css suffix will be treated as CSS modules
5
+ * and scoped locally.
6
+ */
7
+
8
+ .heroBanner {
9
+ padding: 4rem 0;
10
+ text-align: center;
11
+ position: relative;
12
+ overflow: hidden;
13
+ }
14
+
15
+ @media screen and (max-width: 966px) {
16
+ .heroBanner {
17
+ padding: 2rem;
18
+ }
19
+ }
20
+
21
+ .indexCtas {
22
+ --ifm-button-size-multiplier: 1.6;
23
+ display: flex;
24
+ flex-wrap: wrap;
25
+ align-items: center;
26
+ justify-content: center;
27
+ margin-top: 24px;
28
+ }
29
+
30
+ .indexCtas a:last-of-type {
31
+ margin: 20px 36px;
32
+ }
33
+
34
+ .indexCtasGitHubButtonWrapper {
35
+ display: flex;
36
+ }
37
+
38
+ .indexCtasGitHubButton {
39
+ border: none;
40
+ overflow: hidden;
41
+ }
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: Markdown page example
3
+ ---
4
+
5
+ # Markdown page example
6
+
7
+ You don't need React to write simple standalone pages.
File without changes
@@ -0,0 +1,9 @@
1
+ <svg width="400" height="400" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M136.444 221.556C123.558 225.213 115.104 231.625 109.535 238.032C114.869 233.364 122.014 229.08 131.652 226.348C141.51 223.554 149.92 223.574 156.869 224.915V219.481C150.941 218.939 144.145 219.371 136.444 221.556ZM108.946 175.876L61.0895 188.484C61.0895 188.484 61.9617 189.716 63.5767 191.36L104.153 180.668C104.153 180.668 103.578 188.077 98.5847 194.705C108.03 187.559 108.946 175.876 108.946 175.876ZM149.005 288.347C81.6582 306.486 46.0272 228.438 35.2396 187.928C30.2556 169.229 28.0799 155.067 27.5 145.928C27.4377 144.979 27.4665 144.179 27.5336 143.446C24.04 143.657 22.3674 145.473 22.7077 150.721C23.2876 159.855 25.4633 174.016 30.4473 192.721C41.2301 233.225 76.8659 311.273 144.213 293.134C158.872 289.185 169.885 281.992 178.152 272.81C170.532 279.692 160.995 285.112 149.005 288.347ZM161.661 128.11V132.903H188.077C187.535 131.206 186.989 129.677 186.447 128.11H161.661Z" fill="#2D4552"/>
3
+ <path d="M193.981 167.584C205.861 170.958 212.144 179.287 215.465 186.658L228.711 190.42C228.711 190.42 226.904 164.623 203.57 157.995C181.741 151.793 168.308 170.124 166.674 172.496C173.024 167.972 182.297 164.268 193.981 167.584ZM299.422 186.777C277.573 180.547 264.145 198.916 262.535 201.255C268.89 196.736 278.158 193.031 289.837 196.362C301.698 199.741 307.976 208.06 311.307 215.436L324.572 219.212C324.572 219.212 322.736 193.41 299.422 186.777ZM286.262 254.795L176.072 223.99C176.072 223.99 177.265 230.038 181.842 237.869L274.617 263.805C282.255 259.386 286.262 254.795 286.262 254.795ZM209.867 321.102C122.618 297.71 133.166 186.543 147.284 133.865C153.097 112.156 159.073 96.0203 164.029 85.204C161.072 84.5953 158.623 86.1529 156.203 91.0746C150.941 101.747 144.212 119.124 137.7 143.45C123.586 196.127 113.038 307.29 200.283 330.682C241.406 341.699 273.442 324.955 297.323 298.659C274.655 319.19 245.714 330.701 209.867 321.102Z" fill="#2D4552"/>
4
+ <path d="M161.661 262.296V239.863L99.3324 257.537C99.3324 257.537 103.938 230.777 136.444 221.556C146.302 218.762 154.713 218.781 161.661 220.123V128.11H192.869C189.471 117.61 186.184 109.526 183.423 103.909C178.856 94.612 174.174 100.775 163.545 109.665C156.059 115.919 137.139 129.261 108.668 136.933C80.1966 144.61 57.179 142.574 47.5752 140.911C33.9601 138.562 26.8387 135.572 27.5049 145.928C28.0847 155.062 30.2605 169.224 35.2445 187.928C46.0272 228.433 81.663 306.481 149.01 288.342C166.602 283.602 179.019 274.233 187.626 262.291H161.661V262.296ZM61.0848 188.484L108.946 175.876C108.946 175.876 107.551 194.288 89.6087 199.018C71.6614 203.743 61.0848 188.484 61.0848 188.484Z" fill="#E2574C"/>
5
+ <path d="M341.786 129.174C329.345 131.355 299.498 134.072 262.612 124.185C225.716 114.304 201.236 97.0224 191.537 88.8994C177.788 77.3834 171.74 69.3802 165.788 81.4857C160.526 92.163 153.797 109.54 147.284 133.866C133.171 186.543 122.623 297.706 209.867 321.098C297.093 344.47 343.53 242.92 357.644 190.238C364.157 165.917 367.013 147.5 367.799 135.625C368.695 122.173 359.455 126.078 341.786 129.174ZM166.497 172.756C166.497 172.756 180.246 151.372 203.565 158C226.899 164.628 228.706 190.425 228.706 190.425L166.497 172.756ZM223.42 268.713C182.403 256.698 176.077 223.99 176.077 223.99L286.262 254.796C286.262 254.791 264.021 280.578 223.42 268.713ZM262.377 201.495C262.377 201.495 276.107 180.126 299.422 186.773C322.736 193.411 324.572 219.208 324.572 219.208L262.377 201.495Z" fill="#2EAD33"/>
6
+ <path d="M139.88 246.04L99.3324 257.532C99.3324 257.532 103.737 232.44 133.607 222.496L110.647 136.33L108.663 136.933C80.1918 144.611 57.1742 142.574 47.5704 140.911C33.9554 138.563 26.834 135.572 27.5001 145.929C28.08 155.063 30.2557 169.224 35.2397 187.929C46.0225 228.433 81.6583 306.481 149.005 288.342L150.989 287.719L139.88 246.04ZM61.0848 188.485L108.946 175.876C108.946 175.876 107.551 194.288 89.6087 199.018C71.6615 203.743 61.0848 188.485 61.0848 188.485Z" fill="#D65348"/>
7
+ <path d="M225.27 269.163L223.415 268.712C182.398 256.698 176.072 223.99 176.072 223.99L232.89 239.872L262.971 124.281L262.607 124.185C225.711 114.304 201.232 97.0224 191.532 88.8994C177.783 77.3834 171.735 69.3802 165.783 81.4857C160.526 92.163 153.797 109.54 147.284 133.866C133.171 186.543 122.623 297.706 209.867 321.097L211.655 321.5L225.27 269.163ZM166.497 172.756C166.497 172.756 180.246 151.372 203.565 158C226.899 164.628 228.706 190.425 228.706 190.425L166.497 172.756Z" fill="#1D8D22"/>
8
+ <path d="M141.946 245.451L131.072 248.537C133.641 263.019 138.169 276.917 145.276 289.195C146.513 288.922 147.74 288.687 149 288.342C152.302 287.451 155.364 286.348 158.312 285.145C150.371 273.361 145.118 259.789 141.946 245.451ZM137.7 143.451C132.112 164.307 127.113 194.326 128.489 224.436C130.952 223.367 133.554 222.371 136.444 221.551L138.457 221.101C136.003 188.939 141.308 156.165 147.284 133.866C148.799 128.225 150.318 122.978 151.832 118.085C149.393 119.637 146.767 121.228 143.776 122.867C141.759 129.093 139.722 135.898 137.7 143.451Z" fill="#C04B41"/>
9
+ </svg>
@@ -0,0 +1 @@
1
+ <svg id="b4f08fc7-2376-4427-aaee-2fcb33ba957a" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="920.65722" height="698" viewBox="0 0 920.65722 698"><path d="M1032.14359,753.9339l3.66231-9.02216a122.5608,122.5608,0,0,1,13.5191-2.84147l-.301,4.38652,1.87512-4.61937c5.64237-.8,9.42953-.97256,9.42953-.97256s-7.609,18.27912-20.07485,31.33511l-12.48664.457,9.28206,2.674a49.585,49.585,0,0,1-4.85668,3.9041c-17.17157,12.02418-35.01884,16.16352-39.86312,9.24554s5.14891-22.27369,22.32041-34.29787a65.28,65.28,0,0,1,18.05119-8.3695Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M999.746,712.541l-4.64573-13.32924a177.67624,177.67624,0,0,1,12.00233-16.03129l3.86987,5.06475-2.37861-6.82462c5.37859-6.27066,9.33749-10.08264,9.33749-10.08264s9.2065,27.18625,8.12584,53.33265l-13.15982,12.44678,12.66652-5.97061a71.88307,71.88307,0,0,1-1.55261,8.89894c-7.19225,29.52592-22.6657,51.11234-34.561,48.21482s-15.708-29.18193-8.51578-58.7078a94.634,94.634,0,0,1,11.64746-26.388Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><ellipse cx="760.46206" cy="690.3389" rx="148.43381" ry="7.6611" fill="#e6e6e6"/><path d="M400.95844,220.04928H296.09807v1.91528H400.95844a19.46557,19.46557,0,1,1,0,38.93114H242.2866a19.46557,19.46557,0,0,1,0-38.93114h5.92959v-1.91528H242.2866a21.38085,21.38085,0,0,0,0,42.7617H400.95844a21.38085,21.38085,0,0,0,0-42.7617Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M400.95844,286.12627H296.09807v1.91528H400.95844a19.46557,19.46557,0,0,1,0,38.93114H242.2866a19.46557,19.46557,0,1,1,0-38.93114h5.92959v-1.91528H242.2866a21.38085,21.38085,0,0,0,0,42.76169H400.95844a21.38085,21.38085,0,0,0,0-42.76169Z" transform="translate(-139.67139 -101)" fill="#00b0ff"/><path d="M400.95844,352.20326H296.09807v1.91527H400.95844a19.46557,19.46557,0,1,1,0,38.93114H242.2866a19.46557,19.46557,0,1,1,0-38.93114h5.92959v-1.91527H242.2866a21.38084,21.38084,0,0,0,0,42.76169H400.95844a21.38085,21.38085,0,0,0,0-42.76169Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path id="bcf0cfa3-66a2-4303-bdd5-8030f4bfd15a" data-name="Path 40" d="M260.05213,214.98944a5.69491,5.69491,0,0,0,0,11.38828H285.0328a5.69491,5.69491,0,0,0,.187-11.38828q-.09348-.00158-.187,0Z" transform="translate(-139.67139 -101)" fill="#3f3d56"/><path id="ec7ee251-c029-4a40-a2db-c56bfeeebca2" data-name="Path 40" d="M260.05213,282.02407a5.6949,5.6949,0,0,0,0,11.38827H285.0328a5.6949,5.6949,0,0,0,.187-11.38827q-.09348-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#3f3d56"/><path id="a580efb3-72c6-475f-9d34-6093d6a0cbd0" data-name="Path 40" d="M260.05213,347.14342a5.6949,5.6949,0,0,0,0,11.38827H285.0328a5.6949,5.6949,0,0,0,.187-11.38827q-.09348-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#3f3d56"/><path id="fe8fe944-e2e2-4630-bb61-cdb395efd789" data-name="Path 40" d="M250.144,235.736a5.6949,5.6949,0,0,0,0,11.38827H392.91407a5.6949,5.6949,0,1,0,.187-11.38827q-.09349-.00158-.187,0Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M400.95844,157.80285H296.09807v1.91527H400.95844a19.46557,19.46557,0,0,1,0,38.93115H242.2866a19.46558,19.46558,0,0,1,0-38.93115h5.92959v-1.91527H242.2866a21.38085,21.38085,0,0,0,0,42.76169H400.95844a21.38085,21.38085,0,0,0,0-42.76169Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path id="bcfa29a8-6865-4c73-8c61-6a785352b808" data-name="Path 40" d="M260.05213,152.743a5.6949,5.6949,0,0,0,0,11.38827H285.0328a5.6949,5.6949,0,0,0,.187-11.38827q-.09348-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#3f3d56"/><path id="e794b9a0-7aca-4299-a24e-8f26dee3f545" data-name="Path 40" d="M250.144,173.48956a5.69491,5.69491,0,0,0,0,11.38828H392.91407a5.69491,5.69491,0,1,0,.187-11.38828q-.09349-.00158-.187,0Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path id="bf86555d-9ede-426e-830a-ea26134fbb4f" data-name="Path 40" d="M250.144,301.813a5.6949,5.6949,0,0,0,0,11.38827H392.91407a5.6949,5.6949,0,1,0,.187-11.38827q-.09349-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#00b0ff"/><path id="bd15929f-7f71-4330-8805-c384166b6a45" data-name="Path 40" d="M250.144,367.89a5.6949,5.6949,0,0,0,0,11.38827H392.91407a5.6949,5.6949,0,1,0,.187-11.38827q-.09349-.00158-.187,0Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><polygon points="325.216 206.951 303.669 194.511 303.669 219.391 325.216 206.951 303.669 194.511 303.669 219.391 325.216 206.951" fill="#00b0ff"/><path d="M483.56115,443.83422H146.85367a4.31409,4.31409,0,0,1-4.30937-4.30937V108.18228a4.31409,4.31409,0,0,1,4.30937-4.30937H496.39135a4.31408,4.31408,0,0,1,4.30937,4.30937V304.35967h2.87291V108.18228A7.19014,7.19014,0,0,0,496.39135,101H146.85367a7.19014,7.19014,0,0,0-7.18228,7.18228V439.52485a7.19014,7.19014,0,0,0,7.18228,7.18228H483.56115Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M792.48525,299.57149H490.65741c-3.91715,0-7.09626,2.48027-7.09626,5.53634v65.32883H799.58152V305.10783C799.58152,302.05176,796.4024,299.57149,792.48525,299.57149Z" transform="translate(-139.67139 -101)" fill="#00b0ff"/><path d="M794.31451,297.65621H488.82815a7.18489,7.18489,0,0,0-7.18228,7.18228V549.03605a7.18489,7.18489,0,0,0,7.18228,7.18228H794.31451a7.18489,7.18489,0,0,0,7.18228-7.18228V304.83849A7.18489,7.18489,0,0,0,794.31451,297.65621Zm4.30937,251.37984a4.31589,4.31589,0,0,1-4.30937,4.30937H488.82815a4.31588,4.31588,0,0,1-4.30936-4.30937V304.83849a4.31584,4.31584,0,0,1,4.30936-4.30937H794.31451a4.31585,4.31585,0,0,1,4.30937,4.30937Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M720.90725,406.17146H616.04688v1.91528H720.90725a19.46557,19.46557,0,1,1,0,38.93114H562.23542a19.46557,19.46557,0,1,1,0-38.93114H568.165v-1.91528h-5.92959a21.38085,21.38085,0,0,0,0,42.7617H720.90725a21.38085,21.38085,0,0,0,0-42.7617Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M720.90725,472.24845H616.04688v1.91528H720.90725a19.46557,19.46557,0,1,1,0,38.93114H562.23542a19.46557,19.46557,0,1,1,0-38.93114H568.165v-1.91528h-5.92959a21.38084,21.38084,0,1,0,0,42.76169H720.90725a21.38084,21.38084,0,0,0,0-42.76169Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path id="f0e892c8-c763-4555-99cb-2aee4aa2c1bd" data-name="Path 40" d="M580.00094,402.06926a5.6949,5.6949,0,0,0,0,11.38827h24.98067a5.6949,5.6949,0,0,0,.187-11.38827q-.09349-.00157-.187,0Z" transform="translate(-139.67139 -101)" fill="#3f3d56"/><path id="b030a2e8-ef2c-42ed-9562-f4777aec2710" data-name="Path 40" d="M580.00094,467.18861a5.6949,5.6949,0,0,0,0,11.38827h24.98067a5.6949,5.6949,0,0,0,.187-11.38827q-.09349-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#3f3d56"/><path id="b7b74475-3363-467c-a0a1-8003b6263e2a" data-name="Path 40" d="M570.0928,421.85818a5.6949,5.6949,0,0,0,0,11.38827H712.86288a5.6949,5.6949,0,1,0,.187-11.38827q-.09349-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path id="ef56dfc7-cfad-4aec-8de6-97ba4c392594" data-name="Path 40" d="M570.0928,487.93517a5.6949,5.6949,0,0,0,0,11.38827H712.86288a5.6949,5.6949,0,1,0,.187-11.38827q-.09349-.00159-.187,0Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><circle cx="385.94644" cy="234.00407" r="20.60062" fill="#fff"/><path id="b00574f6-7832-428e-9f30-d233874666a9" data-name="Path 40" d="M562.56554,318.74158a5.10451,5.10451,0,0,0,0,10.20765H690.53465a5.10451,5.10451,0,1,0,.16759-10.20765q-.08379-.00142-.16759,0Z" transform="translate(-139.67139 -101)" fill="#fff"/><path id="a75f2174-018f-4ccd-a38d-4db47ce7fed4" data-name="Path 40" d="M562.56554,341.05892a5.10451,5.10451,0,0,0,0,10.20765h210.3716a5.10451,5.10451,0,1,0,.16759-10.20765q-.08379-.00141-.16759,0Z" transform="translate(-139.67139 -101)" fill="#fff"/><path d="M967.78907,361.02725,925.653,365.81543c.5752-12.94269-.51886-25.01518-4.78819-35.43258l34.475-12.44929C952.25049,330.8218,958.0519,345.52318,967.78907,361.02725Z" transform="translate(-139.67139 -101)" fill="#a0616a"/><path d="M972.87044,504.75417,986.51905,529.119a12.65986,12.65986,0,0,1-4.85786,17.23216q-.08163.04577-.16389.09025h0a12.65988,12.65988,0,0,1-18.62606-9.934l-2.21945-23.28461-7.56144-88.8781L940.1924,365.88493l26.77919-7.6025,12.46489,65.74008Z" transform="translate(-139.67139 -101)" fill="#a0616a"/><path d="M995.56055,764.19262l-17.23747-.95763-38.3055-170.45947-81.39919,171.4171-17.23747-.95763,49.79715-264.308.95763-47.88187,62.24644-3.83055c23.26427,25.58483,36.43985,52.04418,38.3055,79.48391Z" transform="translate(-139.67139 -101)" fill="#2f2e41"/><path d="M857.2204,794.12224c-3.26283,1.48912-6.3997-10.93287-8.74809-7.87105-7.8866,10.2828-26.24864,7.05726-26.1664,5.86951a4.81229,4.81229,0,0,1-3.10888-6.054q.03516-.10942.07558-.21714h0a4.81234,4.81234,0,0,1,3.33875-2.97894l8.18721-2.04679,12.85516-22.60735,13.12333-.88656h0a31.35317,31.35317,0,0,1,5.79884,26.74663C861.385,788.93724,859.54651,793.06063,857.2204,794.12224Z" transform="translate(-139.67139 -101)" fill="#2f2e41"/><path d="M993.282,794.12224c-3.26282,1.48912-6.39905-10.9324-8.74814-7.87105-9.08592,11.84083-26.778,7.754-26.1664,5.86951a4.81229,4.81229,0,0,1-3.10876-6.05409q.03516-.10941.07552-.21708h0a4.81234,4.81234,0,0,1,3.33875-2.97894l8.18727-2.04685,12.85516-22.60735,14.00994-1.77307.35386.57871a36.12278,36.12278,0,0,1,3.871,29.53743C996.785,790.29257,995.1991,793.24731,993.282,794.12224Z" transform="translate(-139.67139 -101)" fill="#2f2e41"/><circle cx="789.81221" cy="208.3148" r="29.68676" fill="#a0616a"/><path d="M956.29742,452.00281l-64.16172,3.83055-5.74582-36.39023c-5.94806-16.35807,1.48614-31.38542,13.40692-45.9666l24.89858-27.77148,34.475-.95764h0a25.74905,25.74905,0,0,1,17.52054,21.30521,101.92091,101.92091,0,0,1-10.66014,59.20671Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><path d="M886.38988,533.402l4.59121,27.54722a12.65985,12.65985,0,0,1-10.40636,14.5689q-.09231.01544-.18476.0294h0a12.65991,12.65991,0,0,1-14.16145-15.6546l5.79686-22.66043,22.9833-86.18737,7.6611-59.37352,27.77148,1.91527-10.534,66.077Z" transform="translate(-139.67139 -101)" fill="#a0616a"/><path d="M965.08443,423.7525h-.68678c-12.94927-11.2205-24.20238-23.799-15.11459-39.5465-7.70733-19.5621-16.29977-39.87668-15.7805-52.44427a36.85553,36.85553,0,0,0-8.37243-25.624c-8.19-9.56691-10.01282-13.83954-24.97088-10.2216h0a28.34334,28.34334,0,0,1,27.947-28.73421q.71191-.00992,1.4236.016l9.34526.33982c7.14891.26,29.99643,3.18237,34.90169,7.89995a22.75912,22.75912,0,0,1,6.51537,19.13694c-.91689,7.80021,1.544,14.68735,8.11871,20.46246,12.5874,13.01622,17.779,26.522,10.64237,40.84367-5.38688,15.16161-5.12959,27.64135,8.76551,33.64085h0C1012.33148,406.8405,982.98168,423.7525,965.08443,423.7525Z" transform="translate(-139.67139 -101)" fill="#2f2e41"/><path d="M933.31412,403.1633c-11.88695-9.09367-23.70136-9.812-35.43259-.95764l3.20356-36.36465a19.77215,19.77215,0,0,1,18.82876-20.09066h0a19.77218,19.77218,0,0,1,20.69021,18.80941q.03026.63446.01964,1.26988Z" transform="translate(-139.67139 -101)" fill="#e6e6e6"/><ellipse cx="790.29102" cy="214.06063" rx="3.83055" ry="7.18228" fill="#a0616a"/></svg>