bungie_sdk 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/.rubocop.yml +147 -0
- data/.solargraph.yml +23 -0
- data/.travis.yml +6 -0
- data/.vim/coc-settings.json +12 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +133 -0
- data/LICENSE.txt +21 -0
- data/README.md +56 -0
- data/Rakefile +6 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/bin/tapioca +29 -0
- data/bungie_sdk.gemspec +35 -0
- data/lib/bungie_sdk/agent.rb +166 -0
- data/lib/bungie_sdk/character.rb +82 -0
- data/lib/bungie_sdk/client.rb +72 -0
- data/lib/bungie_sdk/item.rb +83 -0
- data/lib/bungie_sdk/membership.rb +30 -0
- data/lib/bungie_sdk/profile.rb +36 -0
- data/lib/bungie_sdk/token_manager.rb +136 -0
- data/lib/bungie_sdk/vendor.rb +64 -0
- data/lib/bungie_sdk/version.rb +4 -0
- data/lib/bungie_sdk.rb +104 -0
- data/sorbet/config +3 -0
- data/sorbet/rbi/gems/addressable.rbi +151 -0
- data/sorbet/rbi/gems/addressable@2.8.0.rbi +224 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
- data/sorbet/rbi/gems/bungie_sdk.rbi +15 -0
- data/sorbet/rbi/gems/coderay.rbi +285 -0
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +1005 -0
- data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +185 -0
- data/sorbet/rbi/gems/dotenv.rbi +68 -0
- data/sorbet/rbi/gems/dotenv@2.7.6.rbi +88 -0
- data/sorbet/rbi/gems/ethon.rbi +716 -0
- data/sorbet/rbi/gems/ethon@0.15.0.rbi +883 -0
- data/sorbet/rbi/gems/faraday-net_http.rbi +33 -0
- data/sorbet/rbi/gems/faraday-net_http@2.0.1.rbi +78 -0
- data/sorbet/rbi/gems/faraday.rbi +696 -0
- data/sorbet/rbi/gems/faraday@2.2.0.rbi +685 -0
- data/sorbet/rbi/gems/ffi.rbi +560 -0
- data/sorbet/rbi/gems/ffi@1.15.5.rbi +849 -0
- data/sorbet/rbi/gems/gem-release.rbi +582 -0
- data/sorbet/rbi/gems/gem-release@2.2.2.rbi +644 -0
- data/sorbet/rbi/gems/hashie.rbi +160 -0
- data/sorbet/rbi/gems/jwt.rbi +274 -0
- data/sorbet/rbi/gems/jwt@2.3.0.rbi +437 -0
- data/sorbet/rbi/gems/launchy.rbi +226 -0
- data/sorbet/rbi/gems/launchy@2.5.0.rbi +327 -0
- data/sorbet/rbi/gems/method_source.rbi +64 -0
- data/sorbet/rbi/gems/method_source@1.0.0.rbi +72 -0
- data/sorbet/rbi/gems/multi_json.rbi +62 -0
- data/sorbet/rbi/gems/multi_json@1.15.0.rbi +96 -0
- data/sorbet/rbi/gems/multi_xml.rbi +35 -0
- data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +36 -0
- data/sorbet/rbi/gems/oauth2.rbi +143 -0
- data/sorbet/rbi/gems/oauth2@1.4.9.rbi +181 -0
- data/sorbet/rbi/gems/parallel@1.22.1.rbi +8 -0
- data/sorbet/rbi/gems/parser@3.1.1.0.rbi +1196 -0
- data/sorbet/rbi/gems/pry.rbi +1898 -0
- data/sorbet/rbi/gems/pry@0.14.1.rbi +2486 -0
- data/sorbet/rbi/gems/public_suffix.rbi +104 -0
- data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +145 -0
- data/sorbet/rbi/gems/rack.rbi +21 -0
- data/sorbet/rbi/gems/rack@2.2.3.rbi +1622 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +8 -0
- data/sorbet/rbi/gems/rake.rbi +644 -0
- data/sorbet/rbi/gems/rake@12.3.3.rbi +804 -0
- data/sorbet/rbi/gems/rbi@0.0.14.rbi +2073 -0
- data/sorbet/rbi/gems/regexp_parser@2.3.0.rbi +8 -0
- data/sorbet/rbi/gems/rexml@3.2.5.rbi +672 -0
- data/sorbet/rbi/gems/rspec-core.rbi +1898 -0
- data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +2468 -0
- data/sorbet/rbi/gems/rspec-expectations.rbi +1171 -0
- data/sorbet/rbi/gems/rspec-expectations@3.11.0.rbi +1634 -0
- data/sorbet/rbi/gems/rspec-mocks.rbi +1094 -0
- data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +1497 -0
- data/sorbet/rbi/gems/rspec-support.rbi +280 -0
- data/sorbet/rbi/gems/rspec-support@3.11.0.rbi +511 -0
- data/sorbet/rbi/gems/rspec.rbi +15 -0
- data/sorbet/rbi/gems/rspec@3.11.0.rbi +40 -0
- data/sorbet/rbi/gems/rubocop-ast@1.17.0.rbi +8 -0
- data/sorbet/rbi/gems/rubocop-sorbet@0.6.7.rbi +8 -0
- data/sorbet/rbi/gems/rubocop@1.27.0.rbi +8 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +8 -0
- data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
- data/sorbet/rbi/gems/spoom@1.1.11.rbi +1445 -0
- data/sorbet/rbi/gems/tapioca@0.7.1.rbi +1677 -0
- data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
- data/sorbet/rbi/gems/typhoeus.rbi +301 -0
- data/sorbet/rbi/gems/typhoeus@1.4.0.rbi +450 -0
- data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +8 -0
- data/sorbet/rbi/gems/unparser@0.6.4.rbi +8 -0
- data/sorbet/rbi/gems/webrick@1.7.0.rbi +601 -0
- data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +235 -0
- data/sorbet/rbi/gems/yard@0.9.27.rbi +3966 -0
- data/sorbet/rbi/hidden-definitions/errors.txt +4013 -0
- data/sorbet/rbi/hidden-definitions/hidden.rbi +8945 -0
- data/sorbet/rbi/sorbet-typed/lib/faraday/all/faraday.rbi +82 -0
- data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
- data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +24 -0
- data/sorbet/rbi/todo.rbi +8 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +4 -0
- metadata +236 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for types exported from the `diff-lcs` gem.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca gem diff-lcs`.
|
|
6
|
+
|
|
7
|
+
module Diff; end
|
|
8
|
+
|
|
9
|
+
module Diff::LCS
|
|
10
|
+
def diff(other, callbacks = T.unsafe(nil), &block); end
|
|
11
|
+
def lcs(other, &block); end
|
|
12
|
+
def patch(patchset); end
|
|
13
|
+
def patch!(patchset); end
|
|
14
|
+
def patch_me(patchset); end
|
|
15
|
+
def sdiff(other, callbacks = T.unsafe(nil), &block); end
|
|
16
|
+
def traverse_balanced(other, callbacks = T.unsafe(nil), &block); end
|
|
17
|
+
def traverse_sequences(other, callbacks = T.unsafe(nil), &block); end
|
|
18
|
+
def unpatch(patchset); end
|
|
19
|
+
def unpatch!(patchset); end
|
|
20
|
+
def unpatch_me(patchset); end
|
|
21
|
+
|
|
22
|
+
class << self
|
|
23
|
+
def LCS(seq1, seq2, &block); end
|
|
24
|
+
def callbacks_for(callbacks); end
|
|
25
|
+
def diff(seq1, seq2, callbacks = T.unsafe(nil), &block); end
|
|
26
|
+
def lcs(seq1, seq2, &block); end
|
|
27
|
+
def patch(src, patchset, direction = T.unsafe(nil)); end
|
|
28
|
+
def patch!(src, patchset); end
|
|
29
|
+
def sdiff(seq1, seq2, callbacks = T.unsafe(nil), &block); end
|
|
30
|
+
def traverse_balanced(seq1, seq2, callbacks = T.unsafe(nil)); end
|
|
31
|
+
def traverse_sequences(seq1, seq2, callbacks = T.unsafe(nil)); end
|
|
32
|
+
def unpatch!(src, patchset); end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def diff_traversal(method, seq1, seq2, callbacks, &block); end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
Diff::LCS::BalancedCallbacks = Diff::LCS::DefaultCallbacks
|
|
41
|
+
|
|
42
|
+
class Diff::LCS::Block
|
|
43
|
+
def initialize(chunk); end
|
|
44
|
+
|
|
45
|
+
def changes; end
|
|
46
|
+
def diff_size; end
|
|
47
|
+
def insert; end
|
|
48
|
+
def op; end
|
|
49
|
+
def remove; end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class Diff::LCS::Change
|
|
53
|
+
include ::Comparable
|
|
54
|
+
|
|
55
|
+
def initialize(*args); end
|
|
56
|
+
|
|
57
|
+
def <=>(other); end
|
|
58
|
+
def ==(other); end
|
|
59
|
+
def action; end
|
|
60
|
+
def adding?; end
|
|
61
|
+
def changed?; end
|
|
62
|
+
def deleting?; end
|
|
63
|
+
def element; end
|
|
64
|
+
def finished_a?; end
|
|
65
|
+
def finished_b?; end
|
|
66
|
+
def inspect(*_args); end
|
|
67
|
+
def position; end
|
|
68
|
+
def to_a; end
|
|
69
|
+
def to_ary; end
|
|
70
|
+
def unchanged?; end
|
|
71
|
+
|
|
72
|
+
class << self
|
|
73
|
+
def from_a(arr); end
|
|
74
|
+
def valid_action?(action); end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
Diff::LCS::Change::IntClass = Integer
|
|
79
|
+
Diff::LCS::Change::VALID_ACTIONS = T.let(T.unsafe(nil), Array)
|
|
80
|
+
|
|
81
|
+
class Diff::LCS::ContextChange < ::Diff::LCS::Change
|
|
82
|
+
def initialize(*args); end
|
|
83
|
+
|
|
84
|
+
def <=>(other); end
|
|
85
|
+
def ==(other); end
|
|
86
|
+
def new_element; end
|
|
87
|
+
def new_position; end
|
|
88
|
+
def old_element; end
|
|
89
|
+
def old_position; end
|
|
90
|
+
def to_a; end
|
|
91
|
+
def to_ary; end
|
|
92
|
+
|
|
93
|
+
class << self
|
|
94
|
+
def from_a(arr); end
|
|
95
|
+
def simplify(event); end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class Diff::LCS::ContextDiffCallbacks < ::Diff::LCS::DiffCallbacks
|
|
100
|
+
def change(event); end
|
|
101
|
+
def discard_a(event); end
|
|
102
|
+
def discard_b(event); end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
class Diff::LCS::DefaultCallbacks
|
|
106
|
+
class << self
|
|
107
|
+
def change(event); end
|
|
108
|
+
def discard_a(event); end
|
|
109
|
+
def discard_b(event); end
|
|
110
|
+
def match(event); end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
class Diff::LCS::DiffCallbacks
|
|
115
|
+
def initialize; end
|
|
116
|
+
|
|
117
|
+
def diffs; end
|
|
118
|
+
def discard_a(event); end
|
|
119
|
+
def discard_b(event); end
|
|
120
|
+
def finish; end
|
|
121
|
+
def match(_event); end
|
|
122
|
+
|
|
123
|
+
private
|
|
124
|
+
|
|
125
|
+
def finish_hunk; end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
class Diff::LCS::Hunk
|
|
129
|
+
def initialize(data_old, data_new, piece, flag_context, file_length_difference); end
|
|
130
|
+
|
|
131
|
+
def blocks; end
|
|
132
|
+
def diff(format, last = T.unsafe(nil)); end
|
|
133
|
+
def end_new; end
|
|
134
|
+
def end_old; end
|
|
135
|
+
def file_length_difference; end
|
|
136
|
+
def flag_context; end
|
|
137
|
+
def flag_context=(context); end
|
|
138
|
+
def merge(hunk); end
|
|
139
|
+
def missing_last_newline?(data); end
|
|
140
|
+
def overlaps?(hunk); end
|
|
141
|
+
def start_new; end
|
|
142
|
+
def start_old; end
|
|
143
|
+
def unshift(hunk); end
|
|
144
|
+
|
|
145
|
+
private
|
|
146
|
+
|
|
147
|
+
def context_diff(last = T.unsafe(nil)); end
|
|
148
|
+
def context_range(mode, op, last = T.unsafe(nil)); end
|
|
149
|
+
def ed_diff(format, _last = T.unsafe(nil)); end
|
|
150
|
+
def encode(literal, target_encoding = T.unsafe(nil)); end
|
|
151
|
+
def encode_as(string, *args); end
|
|
152
|
+
def old_diff(_last = T.unsafe(nil)); end
|
|
153
|
+
def unified_diff(last = T.unsafe(nil)); end
|
|
154
|
+
def unified_range(mode, last); end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
Diff::LCS::Hunk::ED_DIFF_OP_ACTION = T.let(T.unsafe(nil), Hash)
|
|
158
|
+
Diff::LCS::Hunk::OLD_DIFF_OP_ACTION = T.let(T.unsafe(nil), Hash)
|
|
159
|
+
|
|
160
|
+
module Diff::LCS::Internals
|
|
161
|
+
class << self
|
|
162
|
+
def analyze_patchset(patchset, depth = T.unsafe(nil)); end
|
|
163
|
+
def intuit_diff_direction(src, patchset, limit = T.unsafe(nil)); end
|
|
164
|
+
def lcs(a, b); end
|
|
165
|
+
|
|
166
|
+
private
|
|
167
|
+
|
|
168
|
+
def inverse_vector(a, vector); end
|
|
169
|
+
def position_hash(enum, interval); end
|
|
170
|
+
def replace_next_larger(enum, value, last_index = T.unsafe(nil)); end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
class Diff::LCS::SDiffCallbacks
|
|
175
|
+
def initialize; end
|
|
176
|
+
|
|
177
|
+
def change(event); end
|
|
178
|
+
def diffs; end
|
|
179
|
+
def discard_a(event); end
|
|
180
|
+
def discard_b(event); end
|
|
181
|
+
def match(event); end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
Diff::LCS::SequenceCallbacks = Diff::LCS::DefaultCallbacks
|
|
185
|
+
Diff::LCS::VERSION = T.let(T.unsafe(nil), String)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
|
2
|
+
# srb rbi gems
|
|
3
|
+
|
|
4
|
+
# typed: true
|
|
5
|
+
#
|
|
6
|
+
# If you would like to make changes to this file, great! Please create the gem's shim here:
|
|
7
|
+
#
|
|
8
|
+
# https://github.com/sorbet/sorbet-typed/new/master?filename=lib/dotenv/all/dotenv.rbi
|
|
9
|
+
#
|
|
10
|
+
# dotenv-2.7.6
|
|
11
|
+
|
|
12
|
+
module Dotenv
|
|
13
|
+
def ignoring_nonexistent_files; end
|
|
14
|
+
def instrument(name, payload = nil, &block); end
|
|
15
|
+
def load!(*filenames); end
|
|
16
|
+
def load(*filenames); end
|
|
17
|
+
def overload!(*filenames); end
|
|
18
|
+
def overload(*filenames); end
|
|
19
|
+
def parse(*filenames); end
|
|
20
|
+
def require_keys(*keys); end
|
|
21
|
+
def self.ignoring_nonexistent_files; end
|
|
22
|
+
def self.instrument(name, payload = nil, &block); end
|
|
23
|
+
def self.instrumenter; end
|
|
24
|
+
def self.instrumenter=(arg0); end
|
|
25
|
+
def self.load!(*filenames); end
|
|
26
|
+
def self.load(*filenames); end
|
|
27
|
+
def self.overload!(*filenames); end
|
|
28
|
+
def self.overload(*filenames); end
|
|
29
|
+
def self.parse(*filenames); end
|
|
30
|
+
def self.require_keys(*keys); end
|
|
31
|
+
def self.with(*filenames); end
|
|
32
|
+
def with(*filenames); end
|
|
33
|
+
end
|
|
34
|
+
module Dotenv::Substitutions
|
|
35
|
+
end
|
|
36
|
+
module Dotenv::Substitutions::Variable
|
|
37
|
+
def self.call(value, env, is_load); end
|
|
38
|
+
def self.substitute(match, variable, env); end
|
|
39
|
+
end
|
|
40
|
+
module Dotenv::Substitutions::Command
|
|
41
|
+
def self.call(value, _env, _is_load); end
|
|
42
|
+
end
|
|
43
|
+
class Dotenv::FormatError < SyntaxError
|
|
44
|
+
end
|
|
45
|
+
class Dotenv::Parser
|
|
46
|
+
def call; end
|
|
47
|
+
def expand_newlines(value); end
|
|
48
|
+
def initialize(string, is_load = nil); end
|
|
49
|
+
def parse_line(line); end
|
|
50
|
+
def parse_value(value); end
|
|
51
|
+
def self.call(string, is_load = nil); end
|
|
52
|
+
def self.substitutions; end
|
|
53
|
+
def unescape_characters(value); end
|
|
54
|
+
def variable_not_set?(line); end
|
|
55
|
+
end
|
|
56
|
+
class Dotenv::Environment < Hash
|
|
57
|
+
def apply!; end
|
|
58
|
+
def apply; end
|
|
59
|
+
def filename; end
|
|
60
|
+
def initialize(filename, is_load = nil); end
|
|
61
|
+
def load(is_load = nil); end
|
|
62
|
+
def read; end
|
|
63
|
+
end
|
|
64
|
+
class Dotenv::Error < StandardError
|
|
65
|
+
end
|
|
66
|
+
class Dotenv::MissingKeys < Dotenv::Error
|
|
67
|
+
def initialize(keys); end
|
|
68
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for types exported from the `dotenv` gem.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca gem dotenv`.
|
|
6
|
+
|
|
7
|
+
module Dotenv
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def ignoring_nonexistent_files; end
|
|
11
|
+
def instrument(name, payload = T.unsafe(nil), &block); end
|
|
12
|
+
def load(*filenames); end
|
|
13
|
+
def load!(*filenames); end
|
|
14
|
+
def overload(*filenames); end
|
|
15
|
+
def overload!(*filenames); end
|
|
16
|
+
def parse(*filenames); end
|
|
17
|
+
def require_keys(*keys); end
|
|
18
|
+
def with(*filenames); end
|
|
19
|
+
|
|
20
|
+
class << self
|
|
21
|
+
def ignoring_nonexistent_files; end
|
|
22
|
+
def instrument(name, payload = T.unsafe(nil), &block); end
|
|
23
|
+
def instrumenter; end
|
|
24
|
+
def instrumenter=(_arg0); end
|
|
25
|
+
def load(*filenames); end
|
|
26
|
+
def load!(*filenames); end
|
|
27
|
+
def overload(*filenames); end
|
|
28
|
+
def overload!(*filenames); end
|
|
29
|
+
def parse(*filenames); end
|
|
30
|
+
def require_keys(*keys); end
|
|
31
|
+
def with(*filenames); end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class Dotenv::Environment < ::Hash
|
|
36
|
+
def initialize(filename, is_load = T.unsafe(nil)); end
|
|
37
|
+
|
|
38
|
+
def apply; end
|
|
39
|
+
def apply!; end
|
|
40
|
+
def filename; end
|
|
41
|
+
def load(is_load = T.unsafe(nil)); end
|
|
42
|
+
def read; end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class Dotenv::Error < ::StandardError; end
|
|
46
|
+
class Dotenv::FormatError < ::SyntaxError; end
|
|
47
|
+
|
|
48
|
+
class Dotenv::MissingKeys < ::Dotenv::Error
|
|
49
|
+
def initialize(keys); end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class Dotenv::Parser
|
|
53
|
+
def initialize(string, is_load = T.unsafe(nil)); end
|
|
54
|
+
|
|
55
|
+
def call; end
|
|
56
|
+
|
|
57
|
+
private
|
|
58
|
+
|
|
59
|
+
def expand_newlines(value); end
|
|
60
|
+
def parse_line(line); end
|
|
61
|
+
def parse_value(value); end
|
|
62
|
+
def unescape_characters(value); end
|
|
63
|
+
def variable_not_set?(line); end
|
|
64
|
+
|
|
65
|
+
class << self
|
|
66
|
+
def call(string, is_load = T.unsafe(nil)); end
|
|
67
|
+
def substitutions; end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
Dotenv::Parser::LINE = T.let(T.unsafe(nil), Regexp)
|
|
72
|
+
module Dotenv::Substitutions; end
|
|
73
|
+
|
|
74
|
+
module Dotenv::Substitutions::Command
|
|
75
|
+
class << self
|
|
76
|
+
def call(value, _env, _is_load); end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
module Dotenv::Substitutions::Variable
|
|
81
|
+
class << self
|
|
82
|
+
def call(value, env, is_load); end
|
|
83
|
+
|
|
84
|
+
private
|
|
85
|
+
|
|
86
|
+
def substitute(match, variable, env); end
|
|
87
|
+
end
|
|
88
|
+
end
|