annotate vendor/gopkg.in/yaml.v3/yamlprivateh.go @ 81:6ce24b93c8d0 draft

I keep inserting random bugs Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Tue, 12 Dec 2023 14:27:29 +0000
parents d8727551f403
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
74
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
1 //
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
2 // Copyright (c) 2011-2019 Canonical Ltd
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
3 // Copyright (c) 2006-2010 Kirill Simonov
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
4 //
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
5 // Permission is hereby granted, free of charge, to any person obtaining a copy of
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
6 // this software and associated documentation files (the "Software"), to deal in
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
7 // the Software without restriction, including without limitation the rights to
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
8 // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
9 // of the Software, and to permit persons to whom the Software is furnished to do
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
10 // so, subject to the following conditions:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
11 //
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
12 // The above copyright notice and this permission notice shall be included in all
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
13 // copies or substantial portions of the Software.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
14 //
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
21 // SOFTWARE.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
22
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
23 package yaml
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
24
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
25 const (
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
26 // The size of the input raw buffer.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
27 input_raw_buffer_size = 512
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
28
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
29 // The size of the input buffer.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
30 // It should be possible to decode the whole raw buffer.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
31 input_buffer_size = input_raw_buffer_size * 3
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
32
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
33 // The size of the output buffer.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
34 output_buffer_size = 128
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
35
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
36 // The size of the output raw buffer.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
37 // It should be possible to encode the whole output buffer.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
38 output_raw_buffer_size = (output_buffer_size*2 + 2)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
39
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
40 // The size of other stacks and queues.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
41 initial_stack_size = 16
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
42 initial_queue_size = 16
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
43 initial_string_size = 16
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
44 )
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
45
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
46 // Check if the character at the specified position is an alphabetical
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
47 // character, a digit, '_', or '-'.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
48 func is_alpha(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
49 return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
50 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
51
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
52 // Check if the character at the specified position is a digit.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
53 func is_digit(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
54 return b[i] >= '0' && b[i] <= '9'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
55 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
56
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
57 // Get the value of a digit.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
58 func as_digit(b []byte, i int) int {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
59 return int(b[i]) - '0'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
60 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
61
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
62 // Check if the character at the specified position is a hex-digit.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
63 func is_hex(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
64 return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
65 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
66
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
67 // Get the value of a hex-digit.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
68 func as_hex(b []byte, i int) int {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
69 bi := b[i]
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
70 if bi >= 'A' && bi <= 'F' {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
71 return int(bi) - 'A' + 10
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
72 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
73 if bi >= 'a' && bi <= 'f' {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
74 return int(bi) - 'a' + 10
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
75 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
76 return int(bi) - '0'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
77 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
78
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
79 // Check if the character is ASCII.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
80 func is_ascii(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
81 return b[i] <= 0x7F
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
82 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
83
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
84 // Check if the character at the start of the buffer can be printed unescaped.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
85 func is_printable(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
86 return ((b[i] == 0x0A) || // . == #x0A
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
87 (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
88 (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
89 (b[i] > 0xC2 && b[i] < 0xED) ||
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
90 (b[i] == 0xED && b[i+1] < 0xA0) ||
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
91 (b[i] == 0xEE) ||
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
92 (b[i] == 0xEF && // #xE000 <= . <= #xFFFD
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
93 !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
94 !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
95 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
96
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
97 // Check if the character at the specified position is NUL.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
98 func is_z(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
99 return b[i] == 0x00
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
100 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
101
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
102 // Check if the beginning of the buffer is a BOM.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
103 func is_bom(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
104 return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
105 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
106
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
107 // Check if the character at the specified position is space.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
108 func is_space(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
109 return b[i] == ' '
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
110 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
111
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
112 // Check if the character at the specified position is tab.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
113 func is_tab(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
114 return b[i] == '\t'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
115 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
116
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
117 // Check if the character at the specified position is blank (space or tab).
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
118 func is_blank(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
119 //return is_space(b, i) || is_tab(b, i)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
120 return b[i] == ' ' || b[i] == '\t'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
121 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
122
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
123 // Check if the character at the specified position is a line break.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
124 func is_break(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
125 return (b[i] == '\r' || // CR (#xD)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
126 b[i] == '\n' || // LF (#xA)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
127 b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
128 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
129 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
130 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
131
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
132 func is_crlf(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
133 return b[i] == '\r' && b[i+1] == '\n'
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
134 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
135
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
136 // Check if the character is a line break or NUL.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
137 func is_breakz(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
138 //return is_break(b, i) || is_z(b, i)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
139 return (
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
140 // is_break:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
141 b[i] == '\r' || // CR (#xD)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
142 b[i] == '\n' || // LF (#xA)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
143 b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
144 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
145 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
146 // is_z:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
147 b[i] == 0)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
148 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
149
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
150 // Check if the character is a line break, space, or NUL.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
151 func is_spacez(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
152 //return is_space(b, i) || is_breakz(b, i)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
153 return (
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
154 // is_space:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
155 b[i] == ' ' ||
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
156 // is_breakz:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
157 b[i] == '\r' || // CR (#xD)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
158 b[i] == '\n' || // LF (#xA)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
159 b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
160 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
161 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
162 b[i] == 0)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
163 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
164
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
165 // Check if the character is a line break, space, tab, or NUL.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
166 func is_blankz(b []byte, i int) bool {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
167 //return is_blank(b, i) || is_breakz(b, i)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
168 return (
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
169 // is_blank:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
170 b[i] == ' ' || b[i] == '\t' ||
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
171 // is_breakz:
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
172 b[i] == '\r' || // CR (#xD)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
173 b[i] == '\n' || // LF (#xA)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
174 b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
175 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
176 b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
177 b[i] == 0)
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
178 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
179
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
180 // Determine the width of the character.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
181 func width(b byte) int {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
182 // Don't replace these by a switch without first
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
183 // confirming that it is being inlined.
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
184 if b&0x80 == 0x00 {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
185 return 1
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
186 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
187 if b&0xE0 == 0xC0 {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
188 return 2
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
189 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
190 if b&0xF0 == 0xE0 {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
191 return 3
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
192 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
193 if b&0xF8 == 0xF0 {
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
194 return 4
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
195 }
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
196 return 0
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
197
d8727551f403 The Empress (III)
yakumo.izuru
parents:
diff changeset
198 }