negarmoji 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +64 -0
- data/.gitignore +144 -5
- data/.gitlab-ci.yml +124 -0
- data/.gitlab/issue_templates/Default.md +20 -0
- data/.gitlab/merge_request_templates/Default.md +25 -0
- data/.rubocop.yml +47 -0
- data/.rubocop_todo.yml +7 -0
- data/CHANGELOG.md +6 -0
- data/CODE_OF_CONDUCT.md +78 -0
- data/CONTRIBUTING.md +190 -21
- data/CREDITS +11 -0
- data/Gemfile +5 -3
- data/README.md +81 -0
- data/ROADMAP.md +28 -0
- data/Rakefile +7 -5
- data/SUPPORT.md +6 -0
- data/db/dump.rb +35 -37
- data/db/emoji-test-parser.rb +28 -33
- data/db/negarmoji.json +20788 -18818
- data/lib/negarmoji/character.rb +12 -6
- data/lib/negarmoji/emoji.rb +71 -146
- data/lib/negarmoji/version.rb +1 -1
- data/logo.svg +200 -0
- data/negarmoji.gemspec +11 -4
- data/script/ci_rubygems.sh +13 -0
- data/script/dev_release.py +91 -0
- data/script/dev_revert_tag.py +39 -0
- data/script/test.sh +12 -0
- data/script/test_module.sh +10 -0
- data/script/test_style.sh +18 -0
- data/test/documentation_test.rb +17 -10
- data/test/emoji_test.rb +44 -54
- data/test/test_helper.rb +12 -2
- data/vendor/{unicode-negarmoji-test.txt → unicode-emoji-test.txt} +4028 -3842
- metadata +109 -11
- data/.travis.yml +0 -12
- data/script/console +0 -16
- data/script/release +0 -31
- data/script/test +0 -14
data/lib/negarmoji/character.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module Emoji
|
4
|
-
class Character
|
3
|
+
module Emoji # :nodoc:
|
4
|
+
class Character # :nodoc:
|
5
5
|
# Inspect individual Unicode characters in a string by dumping its
|
6
6
|
# codepoints in hexadecimal format.
|
7
7
|
def self.hex_inspect(str)
|
@@ -9,7 +9,9 @@ module Emoji
|
|
9
9
|
end
|
10
10
|
|
11
11
|
# True if the emoji is not a standard Emoji character.
|
12
|
-
def custom?
|
12
|
+
def custom?
|
13
|
+
!raw
|
14
|
+
end
|
13
15
|
|
14
16
|
# A list of names uniquely referring to this emoji.
|
15
17
|
attr_reader :aliases
|
@@ -26,7 +28,9 @@ module Emoji
|
|
26
28
|
# The iOS version where this emoji first debuted
|
27
29
|
attr_accessor :ios_version
|
28
30
|
|
29
|
-
def name
|
31
|
+
def name
|
32
|
+
aliases.first
|
33
|
+
end
|
30
34
|
|
31
35
|
def add_alias(name)
|
32
36
|
aliases << name
|
@@ -36,7 +40,9 @@ module Emoji
|
|
36
40
|
attr_reader :unicode_aliases
|
37
41
|
|
38
42
|
# Raw Unicode string for an emoji. Nil if emoji is non-standard.
|
39
|
-
def raw
|
43
|
+
def raw
|
44
|
+
unicode_aliases.first
|
45
|
+
end
|
40
46
|
|
41
47
|
def add_unicode_alias(str)
|
42
48
|
unicode_aliases << str
|
@@ -81,7 +87,7 @@ module Emoji
|
|
81
87
|
if custom?
|
82
88
|
"#{name}.#{extension}"
|
83
89
|
else
|
84
|
-
hex_name = hex_inspect.gsub(
|
90
|
+
hex_name = hex_inspect.gsub(%r{-(fe0f|200d)\b}, "")
|
85
91
|
"#{hex_name}.#{extension}"
|
86
92
|
end
|
87
93
|
end
|
data/lib/negarmoji/emoji.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require "negarmoji/character"
|
5
4
|
require "json"
|
6
5
|
|
7
|
-
module Emoji
|
6
|
+
module Emoji # :nodoc:
|
8
7
|
extend self
|
9
8
|
|
10
9
|
def data_file
|
11
|
-
File.expand_path("
|
10
|
+
File.expand_path("../../db/negarmoji.json", __dir__)
|
12
11
|
end
|
13
12
|
|
14
13
|
def all
|
15
14
|
return @all if defined? @all
|
15
|
+
|
16
16
|
@all = []
|
17
17
|
parse_data_file
|
18
18
|
@all
|
@@ -22,15 +22,15 @@ module Emoji
|
|
22
22
|
# The character is added to the `Emoji.all` set.
|
23
23
|
def create(name)
|
24
24
|
emoji = Emoji::Character.new(name)
|
25
|
-
|
25
|
+
all << edit_emoji(emoji) { yield emoji if block_given? }
|
26
26
|
emoji
|
27
27
|
end
|
28
28
|
|
29
29
|
# Public: Yield an negarmoji to the block and update the indices in case its
|
30
30
|
# aliases or unicode_aliases lists changed.
|
31
31
|
def edit_emoji(emoji)
|
32
|
-
@names_index ||=
|
33
|
-
@unicodes_index ||=
|
32
|
+
@names_index ||= {}
|
33
|
+
@unicodes_index ||= {}
|
34
34
|
|
35
35
|
yield emoji
|
36
36
|
|
@@ -55,158 +55,83 @@ module Emoji
|
|
55
55
|
end
|
56
56
|
|
57
57
|
private
|
58
|
-
|
58
|
+
|
59
|
+
VARIATION_SELECTOR_16 = "\u{fe0f}"
|
59
60
|
|
60
61
|
# Characters which must have VARIATION_SELECTOR_16 to render as color negarmoji:
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
"\u{2600}", # sun
|
80
|
-
"\u{2601}", # cloud
|
81
|
-
"\u{2602}", # umbrella
|
82
|
-
"\u{2744}", # snowflake
|
83
|
-
"\u{2603}", # snowman
|
84
|
-
"\u{2660}", # spade suit
|
85
|
-
"\u{2665}", # heart suit
|
86
|
-
"\u{2666}", # diamond suit
|
87
|
-
"\u{2663}", # club suit
|
88
|
-
"\u{260e}", # telephone
|
89
|
-
"\u{2709}", # envelope
|
90
|
-
"\u{270F}", # pencil
|
91
|
-
"\u{2712}", # black nib
|
92
|
-
"\u{2702}", # scissors
|
93
|
-
"\u{26a0}", # warning
|
94
|
-
"\u{2B06}", # up arrow
|
95
|
-
"\u{2197}", # up-right arrow
|
96
|
-
"\u{27A1}", # right arrow
|
97
|
-
"\u{2198}", # down-right arrow
|
98
|
-
"\u{2B07}", # down arrow
|
99
|
-
"\u{2199}", # down-left arrow
|
100
|
-
"\u{2B05}", # left arrow
|
101
|
-
"\u{2196}", # up-left arrow
|
102
|
-
"\u{2195}", # up-down arrow
|
103
|
-
"\u{2194}", # left-right arrow
|
104
|
-
"\u{21A9}", # right arrow curving left
|
105
|
-
"\u{21AA}", # left arrow curving right
|
106
|
-
"\u{2934}", # right arrow curving up
|
107
|
-
"\u{2935}", # right arrow curving down
|
108
|
-
"\u{2721}", # star of David
|
109
|
-
"\u{262F}", # yin yang
|
110
|
-
"\u{271D}", # latin cross
|
111
|
-
"\u{25B6}", # play button
|
112
|
-
"\u{25C0}", # reverse button
|
113
|
-
"\u{23CF}", # eject button
|
114
|
-
"\u{2640}", # female sign
|
115
|
-
"\u{2642}", # male sign
|
116
|
-
"\u{267B}", # recycling symbol
|
117
|
-
"\u{2611}", # ballot box with check
|
118
|
-
"\u{2714}", # heavy check mark
|
119
|
-
"\u{2716}", # heavy multiplication x
|
120
|
-
"\u{303D}", # part alternation mark
|
121
|
-
"\u{2733}", # eight-spoked asterisk
|
122
|
-
"\u{2734}", # eight-pointed star
|
123
|
-
"\u{2747}", # sparkle
|
124
|
-
"\u{203C}", # double exclamation mark
|
125
|
-
"\u{2049}", # exclamation question mark
|
126
|
-
"\u{23}\u{20E3}", # keycap: #
|
127
|
-
"\u{2A}\u{20E3}", # keycap: *
|
128
|
-
"\u{30}\u{20E3}", # keycap: 0
|
129
|
-
"\u{31}\u{20E3}", # keycap: 1
|
130
|
-
"\u{32}\u{20E3}", # keycap: 2
|
131
|
-
"\u{33}\u{20E3}", # keycap: 3
|
132
|
-
"\u{34}\u{20E3}", # keycap: 4
|
133
|
-
"\u{35}\u{20E3}", # keycap: 5
|
134
|
-
"\u{36}\u{20E3}", # keycap: 6
|
135
|
-
"\u{37}\u{20E3}", # keycap: 7
|
136
|
-
"\u{38}\u{20E3}", # keycap: 8
|
137
|
-
"\u{39}\u{20E3}", # keycap: 9
|
138
|
-
"\u{2139}", # information
|
139
|
-
"\u{24C2}", # circled M
|
140
|
-
"\u{1F17F}", # P button
|
141
|
-
"\u{3297}", # Japanese “congratulations” button
|
142
|
-
"\u{3299}", # Japanese “secret” button
|
143
|
-
"\u{25AA}", # black small square
|
144
|
-
"\u{25AB}", # white small square
|
145
|
-
"\u{25FB}", # white medium square
|
146
|
-
"\u{25FC}", # black medium square
|
147
|
-
].freeze
|
148
|
-
|
149
|
-
private_constant :VARIATION_SELECTOR_16, :TEXT_GLYPHS
|
150
|
-
|
151
|
-
def parse_data_file
|
152
|
-
data = File.open(data_file, "r:UTF-8") do |file|
|
153
|
-
JSON.parse(file.read, symbolize_names: true)
|
154
|
-
end
|
62
|
+
TEXT_GLYPHS = [
|
63
|
+
"\u{1f237}", # Japanese "monthly amount" button
|
64
|
+
"\u{1f202}", # Japanese "service charge" button
|
65
|
+
"\u{1f170}", # A button (blood type)
|
66
|
+
"\u{1f171}", # B button (blood type)
|
67
|
+
"\u{1f17e}", # O button (blood type)
|
68
|
+
"\u{00a9}", # copyright
|
69
|
+
"\u{00ae}", # registered
|
70
|
+
"\u{2122}", # trade mark
|
71
|
+
"\u{3030}" # wavy dash
|
72
|
+
].freeze
|
73
|
+
|
74
|
+
private_constant :VARIATION_SELECTOR_16, :TEXT_GLYPHS
|
75
|
+
|
76
|
+
def parse_data_file
|
77
|
+
data = File.open(data_file, "r:UTF-8") do |file|
|
78
|
+
JSON.parse(file.read, :symbolize_names => true)
|
79
|
+
end
|
155
80
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
81
|
+
dedup = if "".respond_to?(:-@)
|
82
|
+
# Ruby >= 2.3 this is equivalent to .freeze
|
83
|
+
# Ruby >= 2.5 this will freeze and dedup
|
84
|
+
->(str) { -str }
|
85
|
+
else
|
86
|
+
->(str) { str.freeze }
|
87
|
+
end
|
163
88
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
end
|
89
|
+
append_unicode = lambda do |emoji, raw|
|
90
|
+
unless TEXT_GLYPHS.include?(raw) || emoji.unicode_aliases.include?(raw)
|
91
|
+
emoji.add_unicode_alias(dedup.call(raw))
|
168
92
|
end
|
93
|
+
end
|
169
94
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
end
|
95
|
+
data.each do |raw_emoji|
|
96
|
+
create(nil) do |emoji|
|
97
|
+
raw_emoji.fetch(:aliases).each { |name| emoji.add_alias(dedup.call(name)) }
|
98
|
+
if (raw = raw_emoji[:emoji])
|
99
|
+
append_unicode.call(emoji, raw)
|
100
|
+
start_pos = 0
|
101
|
+
while (found_index = raw.index(VARIATION_SELECTOR_16, start_pos))
|
102
|
+
# register every variant where one VARIATION_SELECTOR_16 is removed
|
103
|
+
raw_alternate = raw.dup
|
104
|
+
raw_alternate[found_index] = ""
|
105
|
+
append_unicode.call(emoji, raw_alternate)
|
106
|
+
start_pos = found_index + 1
|
107
|
+
end
|
108
|
+
if start_pos.positive?
|
109
|
+
# register a variant with all VARIATION_SELECTOR_16 removed
|
110
|
+
append_unicode.call(emoji, raw.gsub(VARIATION_SELECTOR_16, ""))
|
111
|
+
else
|
112
|
+
# register a variant where VARIATION_SELECTOR_16 is added
|
113
|
+
append_unicode.call(emoji, "#{raw}#{VARIATION_SELECTOR_16}")
|
190
114
|
end
|
191
|
-
raw_emoji.fetch(:tags).each { |tag| emoji.add_tag(dedup.call(tag)) }
|
192
|
-
|
193
|
-
emoji.category = dedup.call(raw_emoji[:category])
|
194
|
-
emoji.description = dedup.call(raw_emoji[:description])
|
195
|
-
emoji.unicode_version = dedup.call(raw_emoji[:unicode_version])
|
196
|
-
emoji.ios_version = dedup.call(raw_emoji[:ios_version])
|
197
115
|
end
|
116
|
+
raw_emoji.fetch(:tags).each { |tag| emoji.add_tag(dedup.call(tag)) }
|
117
|
+
|
118
|
+
emoji.category = dedup.call(raw_emoji[:category])
|
119
|
+
emoji.description = dedup.call(raw_emoji[:description])
|
120
|
+
emoji.unicode_version = dedup.call(raw_emoji[:unicode_version])
|
121
|
+
emoji.ios_version = dedup.call(raw_emoji[:ios_version])
|
198
122
|
end
|
199
123
|
end
|
124
|
+
end
|
200
125
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
126
|
+
def names_index
|
127
|
+
all unless defined? @all
|
128
|
+
@names_index
|
129
|
+
end
|
205
130
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
131
|
+
def unicodes_index
|
132
|
+
all unless defined? @all
|
133
|
+
@unicodes_index
|
134
|
+
end
|
210
135
|
end
|
211
136
|
|
212
137
|
# Preload negarmoji into memory
|
data/lib/negarmoji/version.rb
CHANGED
data/logo.svg
ADDED
@@ -0,0 +1,200 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<svg width="100mm" height="100mm" version="1.1" viewBox="0 0 100.001 100" 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:xlink="http://www.w3.org/1999/xlink">
|
3
|
+
<title>Negareh Emoji Library Logo</title>
|
4
|
+
<defs>
|
5
|
+
<polygon id="d" points="1 1 2 1 1 2"/>
|
6
|
+
<polygon id="c" points="-1 -1 -2 -1 -1 -2"/>
|
7
|
+
</defs>
|
8
|
+
<metadata>
|
9
|
+
<rdf:RDF>
|
10
|
+
<cc:Work rdf:about="">
|
11
|
+
<dc:format>image/svg+xml</dc:format>
|
12
|
+
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
13
|
+
<dc:title>Negareh Emoji Library Logo</dc:title>
|
14
|
+
<cc:license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/4.0/"/>
|
15
|
+
<dc:date>2019/11/27</dc:date>
|
16
|
+
<dc:creator>
|
17
|
+
<cc:Agent>
|
18
|
+
<dc:title>Mohammad Mahdi Baghbani Pourvahid</dc:title>
|
19
|
+
</cc:Agent>
|
20
|
+
</dc:creator>
|
21
|
+
<dc:publisher>
|
22
|
+
<cc:Agent>
|
23
|
+
<dc:title>Azadeh Afzar</dc:title>
|
24
|
+
</cc:Agent>
|
25
|
+
</dc:publisher>
|
26
|
+
<dc:source>OpenMoji</dc:source>
|
27
|
+
</cc:Work>
|
28
|
+
<cc:License rdf:about="http://creativecommons.org/licenses/by-nc-sa/4.0/">
|
29
|
+
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
|
30
|
+
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
|
31
|
+
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
|
32
|
+
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
|
33
|
+
<cc:prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse"/>
|
34
|
+
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
|
35
|
+
<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike"/>
|
36
|
+
</cc:License>
|
37
|
+
</rdf:RDF>
|
38
|
+
</metadata>
|
39
|
+
<g transform="translate(-68.817 16.149)">
|
40
|
+
<g transform="matrix(2.0047 0 0 2.0047 -63.847 -89.535)">
|
41
|
+
<g transform="translate(0 -1.3339)">
|
42
|
+
<g transform="matrix(.26458 0 0 .26458 75.775 49.185)">
|
43
|
+
<circle cx="35.034" cy="36.051" r="23" fill="#fcea2b"/>
|
44
|
+
<path d="m25.533 27.489c-1.2653-3.3541-6.441-3.5687-6.1168 1.3178 0.0431 0.6485 0.281 1.2724 0.6414 1.8135l5.3179 6.4224 5.2212-6.266c0.5796-0.6964 0.9224-1.5779 0.905-2.4853-0.0863-4.3523-5.0509-4.0351-6.1274-0.8036" fill="#d22f27"/>
|
45
|
+
<path d="m44.835 27.489c-1.2547-3.3541-6.3873-3.5687-6.0658 1.3178 0.0428 0.6485 0.2787 1.2724 0.6361 1.8135l5.2737 6.4224 5.1777-6.266c0.5747-0.6964 0.9147-1.5779 0.8974-2.4853-0.0856-4.3523-5.0089-4.0351-6.0763-0.8036" fill="#d22f27"/>
|
46
|
+
<polygon points="40.572 44.181 22.558 43.423 24.905 50.12 30.624 52.777 39.103 52.777 44.576 50.12 46.692 47.272 47.39 43.423" fill="#fff"/>
|
47
|
+
<g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2">
|
48
|
+
<path d="m47.145 44.598"/>
|
49
|
+
<path d="m22.968 44.598"/>
|
50
|
+
<circle cx="35.034" cy="36.051" r="23"/>
|
51
|
+
<path d="m22.558 42.724s12.758 3.0979 24.894 0.0669"/>
|
52
|
+
<path d="m47.62 42.724c0 5.6296-4.1784 10.105-12.554 10.105-8.3738 0-12.607-4.4888-12.607-10.105"/>
|
53
|
+
<path d="m25.533 27.489c-1.2653-3.3541-6.441-3.5687-6.1168 1.3178 0.0431 0.6485 0.281 1.2724 0.6414 1.8135l5.3179 6.4224 5.2212-6.266c0.5796-0.6964 0.9224-1.5779 0.905-2.4853-0.0863-4.3523-5.0509-4.0351-6.1274-0.8036"/>
|
54
|
+
<path d="m44.835 27.489c-1.2547-3.3541-6.3873-3.5687-6.0658 1.3178 0.0428 0.6485 0.2787 1.2724 0.6361 1.8135l5.2737 6.4224 5.1777-6.266c0.5747-0.6964 0.9147-1.5779 0.8974-2.4853-0.0856-4.3523-5.0089-4.0351-6.0763-0.8036"/>
|
55
|
+
</g>
|
56
|
+
</g>
|
57
|
+
<g transform="matrix(.26458 0 0 .26458 97.867 38.332)">
|
58
|
+
<clipPath id="b">
|
59
|
+
<use width="100%" height="100%" overflow="visible" xlink:href="#d"/>
|
60
|
+
</clipPath>
|
61
|
+
<clipPath id="a" clip-path="url(#b)">
|
62
|
+
<use width="100%" height="100%" overflow="visible" xlink:href="#c"/>
|
63
|
+
</clipPath>
|
64
|
+
<rect x="8.6371" y="8.0565" width="55.25" height="56" clip-path="url(#a)" fill="#fcea2b"/>
|
65
|
+
<circle cx="35.887" cy="36.056" r="23" fill="#fcea2b"/>
|
66
|
+
<path d="m45.331 38.564c3.9628 0 7.1782-2.8618 7.1782-6.3889 0-1.7646 0.4473-3.5291-0.8519-4.6852s-4.3449-1.7037-6.3264-1.7037c-2.3567 0-5.1428 0.1434-6.4514 1.7037-0.8933 1.0652-0.7268 3.2534-0.7268 4.6852 1e-4 3.5271 3.2128 6.3889 7.1783 6.3889z" fill="#3f3f3f"/>
|
67
|
+
<path d="m25.738 38.564c3.9628 0 7.1782-2.8618 7.1782-6.3889 0-1.7646 0.4473-3.5291-0.8519-4.6852s-4.3449-1.7037-6.3264-1.7037c-2.3567 0-5.1428 0.1434-6.4514 1.7037-0.8933 1.0652-0.7268 3.2534-0.7268 4.6852 1e-4 3.5271 3.2128 6.3889 7.1783 6.3889z" fill="#3f3f3f"/>
|
68
|
+
<path d="m33.816 35.632" fill="#9b9b9a" stroke="#9b9b9a" stroke-miterlimit="10" stroke-width="2"/>
|
69
|
+
<g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2">
|
70
|
+
<circle cx="35.887" cy="36.056" r="23"/>
|
71
|
+
<path d="m45.702 44.862c-6.574 3.5248-14.045 3.6576-19.63 0"/>
|
72
|
+
<path d="m18.883 30.464s-0.953 8.5508 6.8608 7.9185c2.6197-0.212 7.8164-0.6507 7.867-8.3427 0.0046-0.6979-0.0078-1.5989-0.8108-2.6298-1.0647-1.3669-3.5716-1.9711-9.9446-1.422 1e-4 1e-4 -3.4462-0.099-3.9724 4.476z"/>
|
73
|
+
<polyline points="18.953 29.931 18.52 26.559 22.353 26.032"/>
|
74
|
+
<path d="m52.741 30.464s0.953 8.5508-6.8608 7.9185c-2.6197-0.212-7.8164-0.6507-7.867-8.3427-0.0046-0.6979 0.0078-1.5989 0.8108-2.6298 1.0647-1.3669 3.5716-1.9711 9.9446-1.422 0 1e-4 3.4463-0.099 3.9724 4.476z"/>
|
75
|
+
<path d="m31.505 26.416s4.1241 2.5339 8.6569 0"/>
|
76
|
+
<path d="m38.014 30.04"/>
|
77
|
+
<path d="m33.61 30.04"/>
|
78
|
+
<path d="m33.536 31.318s2.2019-3.7509 4.5362 0"/>
|
79
|
+
<polyline points="52.664 29.933 53.097 26.562 49.264 26.034"/>
|
80
|
+
<path d="m33.955 30.027s1.7954-3.7509 3.6988 0"/>
|
81
|
+
</g>
|
82
|
+
</g>
|
83
|
+
<g transform="matrix(.26458 0 0 .26458 67.864 38.114)">
|
84
|
+
<circle cx="35.782" cy="36.8" r="23.928" fill="#fcea2b"/>
|
85
|
+
<path d="m50.46 43.15c0 1.59-0.29 3.11-0.87 4.49-12.49 3.03-25.43 0.34-27.49-0.13-0.55-1.34-0.83-2.81-0.83-4.36h0.11s14.8 3.59 28.89 0.07z" fill="#fff"/>
|
86
|
+
<path d="m49.59 47.64c-1.79 4.27-6.35 7.23-13.69 7.23-7.41 0-12.03-3.03-13.8-7.36 2.06 0.4699 15 3.1599 27.49 0.13z" fill="#ea5a47"/>
|
87
|
+
<path d="m14.446 39.904c-1.8659 0.1575-5.6386 0.7325-7.7337 2.8276-0.6567 0.6547-1.0168 1.5262-1.0168 2.451 0 0.9268 0.3601 1.7984 1.0168 2.4552 1.3115 1.3114 3.5968 1.3114 4.9062 0 2.095-2.0951 2.6699-5.8679 2.8275-7.7338z" fill="#92d3f5"/>
|
88
|
+
<path d="m59.582 47.638c1.3094 1.3114 3.5947 1.3114 4.9062 0 0.6567-0.6568 1.0168-1.5283 1.0168-2.4552 0-0.9248-0.3601-1.7963-1.0168-2.451-2.095-2.0951-5.8678-2.67-7.7337-2.8276 0.1576 1.866 0.7325 5.6388 2.8275 7.7338z" fill="#92d3f5"/>
|
89
|
+
<path d="m34.682 29.837" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
90
|
+
<path d="m34.682 30.473" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
91
|
+
<path d="m58.629 34.141c-0.0064-0.0559-0.0131-0.1118-0.0199-0.1675-1.3934-11.369-11.083-20.173-22.828-20.173-11.622 0-21.245 8.7256-22.796 19.92-0.0148 0.1069-0.0386 0.3127-0.052 0.4201" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
92
|
+
<path d="m16.965 50.029c4.179 5.7684 11.149 9.771 18.817 9.771 7.6676 0 14.578-3.9186 18.757-9.6871" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
93
|
+
<path d="m31.576 36.994c-0.3672 0-0.7207-0.2032-0.8965-0.5528-0.0098-0.0195-1.2129-2.3222-3.418-2.3222-2.2305 0-3.4062 2.2988-3.418 2.3222-0.2461 0.4942-0.8457 0.6934-1.3418 0.4473-0.4941-0.2481-0.6933-0.8477-0.4472-1.3418 0.0703-0.1406 1.7539-3.4277 5.207-3.4277s5.1367 3.2871 5.207 3.4277c0.2481 0.4941 0.0469 1.0937-0.4472 1.3418-0.1426 0.0703-0.2969 0.1055-0.4453 0.1055z"/>
|
94
|
+
<path d="m48.826 36.994c-0.3672 0-0.7207-0.2032-0.8965-0.5528-0.0098-0.0195-1.2129-2.3222-3.418-2.3222-2.2305 0-3.4062 2.2988-3.418 2.3222-0.2461 0.4942-0.8457 0.6934-1.3418 0.4473-0.4941-0.2481-0.6933-0.8477-0.4472-1.3418 0.0703-0.1406 1.7539-3.4277 5.207-3.4277s5.1367 3.2871 5.207 3.4277c0.2481 0.4941 0.0469 1.0937-0.4472 1.3418-0.1426 0.0703-0.2969 0.1055-0.4453 0.1055z"/>
|
95
|
+
<path d="m9.165 50.75c-1.4854 0-2.8827-0.5791-3.9344-1.6307-1.0516-1.0516-1.6306-2.449-1.6306-3.9364 0-1.4854 0.579-2.8827 1.6306-3.9323 3.4618-3.4618 10.044-3.5006 10.322-3.5006 0.579 0 1.0475 0.4686 1.0475 1.0475 0 0.2782-0.0388 6.86-3.5006 10.322-1.0496 1.0517-2.447 1.6307-3.9344 1.6307zm5.2806-10.846c-1.8659 0.1575-5.6386 0.7325-7.7337 2.8276-0.6567 0.6547-1.0168 1.5262-1.0168 2.451 0 0.9268 0.3601 1.7984 1.0168 2.4552 1.3115 1.3114 3.5968 1.3114 4.9062 0 2.095-2.0951 2.6699-5.8679 2.8275-7.7338z"/>
|
96
|
+
<path d="m58.101 49.119c-3.4618-3.4617-3.5006-10.044-3.5006-10.322 0-0.579 0.4686-1.0475 1.0475-1.0475 0.2783 0 6.8601 0.0389 10.322 3.5006 1.0516 1.0496 1.6306 2.4469 1.6306 3.9322 0 1.4874-0.579 2.8848-1.6306 3.9364-1.0517 1.0516-2.449 1.6307-3.9344 1.6307-1.4874 0-2.8848-0.579-3.9344-1.6307zm1.4813-1.4812c1.3094 1.3114 3.5947 1.3114 4.9062 0 0.6567-0.6568 1.0168-1.5283 1.0168-2.4552 0-0.9248-0.3601-1.7963-1.0168-2.451-2.095-2.0951-5.8678-2.67-7.7337-2.8276 0.1576 1.866 0.7325 5.6388 2.8275 7.7338z"/>
|
97
|
+
<path d="m20.124 29c0.7207-1.3857 1.9278-2.4541 3.3907-3 1.4052-0.7002 3.0205-0.8486 4.5302-0.4209" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
98
|
+
<path d="m50.735 29c-1.582-2.7724-4.8037-4.1699-7.9092-3.4306" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
99
|
+
<path d="m50.46 43.15c0 1.59-0.29 3.11-0.87 4.49-12.49 3.03-25.43 0.34-27.49-0.13-0.55-1.34-0.83-2.81-0.83-4.36h0.11s14.8 3.59 28.89 0.07z" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
100
|
+
<path d="m49.59 47.64c-1.79 4.27-6.35 7.23-13.69 7.23-7.41 0-12.03-3.03-13.8-7.36 2.06 0.4699 15 3.1599 27.49 0.13z" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
101
|
+
</g>
|
102
|
+
<g transform="matrix(.26458 0 0 .26458 83.663 37.469)">
|
103
|
+
<path d="m34.109 61c12.702 0 23-10.165 23-22.703 0-5.6768-2.1107-10.867-5.5995-14.847-0.0837-0.0955-0.1683-0.1904-0.2536-0.2845-1.2483-1.3773-2.6643-2.6032-4.2165-3.6466-3.6847-2.4769-8.1363-3.9248-12.93-3.9248-12.703 0-23 10.164-23 22.703 0 12.538 10.297 22.703 23 22.703z" fill="#fcea2b"/>
|
104
|
+
<path d="m34.109 61c12.702 0 23-10.165 23-22.703 0-5.6768-2.1107-10.867-5.5995-14.847-0.0837-0.0955-0.1683-0.1904-0.2536-0.2845-1.2483-1.3773-2.6643-2.6032-4.2165-3.6466-3.6847-2.4769-8.1363-3.9248-12.93-3.9248-12.703 0-23 10.164-23 22.703 0 12.538 10.297 22.703 23 22.703z" fill="none" stroke="#fcea2b" stroke-miterlimit="10" stroke-width="1.8"/>
|
105
|
+
<path d="m43.924 47.4c-5.8513 4.7083-14.1 4.6878-19.63 0" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
106
|
+
<path d="m29.993 36.787c-0.3672 0-0.7207-0.2032-0.8965-0.5528-0.0098-0.0195-1.2129-2.3222-3.418-2.3222-2.2305 0-3.4062 2.2988-3.418 2.3222-0.2461 0.4942-0.8457 0.6934-1.3418 0.4473-0.4941-0.2481-0.6933-0.8477-0.4472-1.3418 0.0703-0.1406 1.7539-3.4277 5.207-3.4277s5.1367 3.2871 5.207 3.4277c0.2481 0.4941 0.0469 1.0937-0.4472 1.3418-0.1426 0.0704-0.2969 0.1055-0.4453 0.1055z"/>
|
107
|
+
<path d="m47.243 36.787c-0.3672 0-0.7207-0.2032-0.8965-0.5528-0.0098-0.0195-1.2129-2.3222-3.418-2.3222-2.2305 0-3.4062 2.2988-3.418 2.3222-0.2461 0.4942-0.8457 0.6934-1.3418 0.4473-0.4941-0.2481-0.6933-0.8477-0.4472-1.3418 0.0703-0.1406 1.7539-3.4277 5.207-3.4277s5.1367 3.2871 5.207 3.4277c0.2481 0.4941 0.0469 1.0937-0.4472 1.3418-0.1426 0.0704-0.2969 0.1055-0.4453 0.1055z"/>
|
108
|
+
<path d="m45.88 18.664c-3.4345-2.0487-7.4493-3.2257-11.739-3.2257-4.2227 0-8.179 1.1403-11.578 3.1299" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
109
|
+
<path d="m15.821 24.564c-2.9048 3.8443-4.6276 8.6317-4.6276 13.822-1e-4 12.674 10.273 22.948 22.948 22.948 12.674 1e-4 22.948-10.274 22.948-22.948 0-5.2484-1.7617-10.085-4.7262-13.951" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
110
|
+
<ellipse cx="34" cy="17" rx="25" ry="5.2885" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
111
|
+
<ellipse cx="34" cy="17" rx="25" ry="5.2885" fill="none" stroke="#61b2e4" stroke-miterlimit="10" stroke-width="2.1"/>
|
112
|
+
</g>
|
113
|
+
<g transform="matrix(.26458 0 0 .26458 90.094 49.082)">
|
114
|
+
<circle cx="37.03" cy="36.4" r="22.569" fill="#fcea2b"/>
|
115
|
+
<path d="m53.698 44.439c-1.9101-0.5703-3.9277 0.5201-4.498 2.4301-0.1899 0.6362-0.2018 1.3099-0.0342 1.948l0.111 0.3522 3.797 9.7215 8.5568-6.0862c0.6097-0.4613 1.0532-1.1008 1.275-1.8435 0.5703-1.91-0.5199-3.9283-2.4306-4.4987-1.3381-0.3995-2.7576-0.0041-3.7038 1.0317-0.0808 0.0887-0.2057 0.1237-0.3214 0.0892-0.1151-0.0344-0.2004-0.1321-0.2199-0.2508-0.2229-1.3849-1.1932-2.4938-2.5319-2.8935z" fill="#d22f27"/>
|
116
|
+
<path d="m49.549 47.429" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
117
|
+
<path d="m21.275 30.056c0.4075-1.5078 1.358-2.8098 2.6702-3.656 1.2228-0.9847 2.769-1.4753 4.3352-1.3805" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
118
|
+
<path d="m51.744 31.12c-2.2698-2.2443-5.7488-2.7231-8.5407-1.1752" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
119
|
+
<path d="m47.728 35.911c-0.8065-0.4709-1.7748-0.9088-2.8803-0.9263-1.1197-0.0177-2.1249 0.3098-3.1914 0.7782" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
120
|
+
<path d="m59.056 41.412c0.4107-1.7201 0.6282-3.5153 0.6282-5.3612 0-12.703-10.298-23-23-23-12.703 0-23 10.297-23 23 0 12.702 10.297 23 23 23 3.6206 0 7.0459-0.8367 10.093-2.3272" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
121
|
+
<circle cx="28.724" cy="35.357" r="2.5549"/>
|
122
|
+
<path d="m37.099 42.142s10.525 3.1956 0 5.5637c0 0 10.458 2.9883 0 4.9125" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
123
|
+
<path d="m52.838 59.681c-0.0922-0.0275-0.1669-0.0965-0.2021-0.1863l-3.9508-10.116-0.1223-0.387c-0.2011-0.7638-0.1868-1.5548 0.036-2.301 0.6693-2.2418 3.0375-3.521 5.2787-2.8519 1.3869 0.4141 2.4365 1.4756 2.8438 2.836 1.087-0.9142 2.5469-1.2265 3.9332-0.8126 2.2424 0.6695 3.5216 3.0377 2.8523 5.2795-0.2602 0.8716-0.781 1.622-1.5054 2.1699l-8.8916 6.3252c-0.0787 0.0557-0.179 0.0724-0.2718 0.0447zm0.86-15.242c-1.9101-0.5703-3.9277 0.5201-4.498 2.4301-0.1899 0.6362-0.2018 1.3099-0.0342 1.948l0.111 0.3522 3.797 9.7215 8.5568-6.0862c0.6097-0.4613 1.0532-1.1008 1.275-1.8435 0.5703-1.91-0.5199-3.9283-2.4306-4.4987-1.3381-0.3995-2.7576-0.0041-3.7038 1.0317-0.0808 0.0887-0.2057 0.1237-0.3214 0.0892-0.1151-0.0344-0.2004-0.1321-0.2199-0.2508-0.2229-1.3849-1.1932-2.4938-2.5319-2.8935z" fill="none" stroke="#000" stroke-miterlimit="10"/>
|
124
|
+
</g>
|
125
|
+
</g>
|
126
|
+
<g transform="matrix(1.9426 0 0 1.9426 -27.201 -11.684)">
|
127
|
+
<g transform="matrix(.85101 0 0 .85101 28.652 27.699)">
|
128
|
+
<g transform="matrix(.35278 0 0 -.35278 33.489 16.876)">
|
129
|
+
<path d="m0 0h-4v-7h4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
130
|
+
</g>
|
131
|
+
<g transform="matrix(.35278 0 0 -.35278 32.078 18.111)">
|
132
|
+
<path d="m0 0h3" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
133
|
+
</g>
|
134
|
+
</g>
|
135
|
+
</g>
|
136
|
+
<g transform="matrix(1.6509 0 0 1.6509 59.026 42.171)">
|
137
|
+
<g transform="matrix(.35278 0 0 -.35278 21.495 19.345)">
|
138
|
+
<path d="m0 0-3 7-3-7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
139
|
+
</g>
|
140
|
+
<g transform="matrix(.35278 0 0 -.35278 19.731 18.754)">
|
141
|
+
<path d="m0 0h4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
142
|
+
</g>
|
143
|
+
</g>
|
144
|
+
<g transform="matrix(1.648 0 0 1.648 40.818 42.226)">
|
145
|
+
<g transform="matrix(.35278 0 0 -.35278 40.545 16.876)">
|
146
|
+
<path d="m0 0v-7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
147
|
+
</g>
|
148
|
+
<g transform="matrix(.35278 0 0 -.35278 41.956 16.876)">
|
149
|
+
<path d="m0 0v-7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
150
|
+
</g>
|
151
|
+
<path d="m41.956 18.106h-1.4111" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".70556"/>
|
152
|
+
</g>
|
153
|
+
<g transform="matrix(.58141 0 0 -.58141 75.938 74.108)">
|
154
|
+
<path d="m0 0v7l5-7v7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
155
|
+
</g>
|
156
|
+
<g transform="matrix(.58322 0 0 -.58322 88.15 70.4)">
|
157
|
+
<path d="m0 0c-0.441 0.392-1.022 0.629-1.659 0.629-1.38 0-2.5-1.119-2.5-2.5v-2c0-1.38 1.12-2.5 2.5-2.5 1.381 0 2.5 1.12 2.5 2.5v1.014h-2" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
158
|
+
</g>
|
159
|
+
<g transform="matrix(1.6506 0 0 1.6506 -26.639 34.574)">
|
160
|
+
<g transform="matrix(.35278 0 0 -.35278 75.126 23.951)">
|
161
|
+
<path d="m0 0v7h2.669c0.963 0 1.744-0.781 1.744-1.744s-0.781-1.743-1.744-1.743h-2.669" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
162
|
+
</g>
|
163
|
+
<g transform="matrix(.35278 0 0 -.35278 76.072 22.712)">
|
164
|
+
<path d="m0 0 1.517-3.513" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
165
|
+
</g>
|
166
|
+
</g>
|
167
|
+
<g transform="matrix(1.9426 0 0 1.9426 -6.0344 -11.684)">
|
168
|
+
<g transform="matrix(.85101 0 0 .85101 28.652 27.699)">
|
169
|
+
<g transform="matrix(.35278 0 0 -.35278 33.489 16.876)">
|
170
|
+
<path d="m0 0h-4v-7h4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
171
|
+
</g>
|
172
|
+
<g transform="matrix(.35278 0 0 -.35278 32.078 18.111)">
|
173
|
+
<path d="m0 0h3" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
174
|
+
</g>
|
175
|
+
</g>
|
176
|
+
</g>
|
177
|
+
<g transform="matrix(.58232 0 0 -.58232 88.53 83.26)">
|
178
|
+
<path d="m0 0v7l-3-6-3 6v-7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
179
|
+
</g>
|
180
|
+
<g transform="matrix(.58322 0 0 -.58322 92.763 83.26)">
|
181
|
+
<path d="m0 0v0c-1.38 0-2.5 1.119-2.5 2.5v2c0 1.381 1.12 2.5 2.5 2.5 1.381 0 2.5-1.119 2.5-2.5v-2c0-1.381-1.119-2.5-2.5-2.5z" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
182
|
+
</g>
|
183
|
+
<g transform="matrix(.5823 0 0 -.5823 98.924 78.981)">
|
184
|
+
<path d="m0 0v-4.5c0-1.381-1.119-2.5-2.5-2.5-0.643 0-1.229 0.243-1.673 0.642" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
185
|
+
</g>
|
186
|
+
<g transform="matrix(1.9426 0 0 1.9426 -28.635 -2.5312)">
|
187
|
+
<g transform="matrix(.85101 0 0 .85101 28.652 27.699)">
|
188
|
+
<g transform="matrix(.35278 0 0 -.35278 33.489 16.876)">
|
189
|
+
<path d="m0 0h-4v-7h4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
190
|
+
</g>
|
191
|
+
<g transform="matrix(.35278 0 0 -.35278 32.078 18.111)">
|
192
|
+
<path d="m0 0h3" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
193
|
+
</g>
|
194
|
+
</g>
|
195
|
+
</g>
|
196
|
+
<path d="m101.76 78.956v4.3044" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".93151"/>
|
197
|
+
</g>
|
198
|
+
</g>
|
199
|
+
</svg>
|
200
|
+
|