memoria 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +10 -0
- data/.gitignore +13 -0
- data/.overcommit.yml +21 -0
- data/.rspec +3 -0
- data/.rubocop.yml +34 -0
- data/.travis.yml +22 -0
- data/.yardopts +1 -0
- data/.yardstick.yml +77 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +6 -0
- data/Guardfile +20 -0
- data/README.md +90 -0
- data/ROADMAP.md +22 -0
- data/Rakefile +32 -0
- data/bin/console +7 -0
- data/bin/setup +8 -0
- data/documentation/class-diagram.svg +360 -0
- data/lib/memoria.rb +119 -0
- data/lib/memoria/configuration.rb +112 -0
- data/lib/memoria/errors.rb +4 -0
- data/lib/memoria/errors/duplicate_setting.rb +16 -0
- data/lib/memoria/errors/invalid_configuration.rb +16 -0
- data/lib/memoria/errors/invalid_record_mode.rb +16 -0
- data/lib/memoria/errors/invalid_snapshot_extension.rb +16 -0
- data/lib/memoria/rspec.rb +14 -0
- data/lib/memoria/rspec/configurator.rb +46 -0
- data/lib/memoria/rspec/matcher.rb +30 -0
- data/lib/memoria/rspec/metadata.rb +16 -0
- data/lib/memoria/rspec/metadata_parser.rb +49 -0
- data/lib/memoria/snapshot.rb +29 -0
- data/lib/memoria/snapshot_saver.rb +133 -0
- data/lib/memoria/version.rb +3 -0
- data/memoria.gemspec +42 -0
- metadata +329 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 327014add78eb897d6e5fc6c36581abedf838944b91e91e59da127b734262233
|
4
|
+
data.tar.gz: 445a593821ecb27e84c20dbcc73547d14827ccfe1925dfc662c1a145997e6e77
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b989197c7a7e40a3f276c03173d69faa15a9c1baa638ebc40c7fc3c3f1c1555a7efa2e156c34b937e128f5cba6a1d8b197f1458bec7a7f965c492ce061249446
|
7
|
+
data.tar.gz: 4ab5b92279c014b4e4dc7379162b8e0fc2417b82432e9b4152f9360e48ad990b8296013627d2bc32ceaa58bc6162c4e1a49d7b0d8f1e12c65a07757090fe8c60
|
data/.editorconfig
ADDED
data/.gitignore
ADDED
data/.overcommit.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Use this file to configure the Overcommit hooks you wish to use. This will
|
2
|
+
# extend the default configuration defined in:
|
3
|
+
# https://github.com/brigade/overcommit/blob/master/config/default.yml
|
4
|
+
#
|
5
|
+
# At the topmost level of this YAML file is a key representing type of hook
|
6
|
+
# being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
|
7
|
+
# customize each hook, such as whether to only run it on certain files (via
|
8
|
+
# `include`), whether to only display output if it fails (via `quiet`), etc.
|
9
|
+
#
|
10
|
+
# For a complete list of hooks, see:
|
11
|
+
# https://github.com/brigade/overcommit/tree/master/lib/overcommit/hook
|
12
|
+
#
|
13
|
+
# For a complete list of options that you can use to customize hooks, see:
|
14
|
+
# https://github.com/brigade/overcommit#configuration
|
15
|
+
#
|
16
|
+
# Uncomment the following lines to make the configuration take effect.
|
17
|
+
|
18
|
+
PreCommit:
|
19
|
+
RuboCop:
|
20
|
+
enabled: true
|
21
|
+
on_warn: fail # Treat all warnings as failures
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require: rubocop-rspec
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
DisplayCopNames: true
|
5
|
+
|
6
|
+
# ---------------------- Metrics ----------------------
|
7
|
+
|
8
|
+
Metrics/BlockLength:
|
9
|
+
Exclude:
|
10
|
+
- spec/**/*_spec.rb
|
11
|
+
- memoria.gemspec
|
12
|
+
|
13
|
+
Metrics/LineLength:
|
14
|
+
Max: 120
|
15
|
+
|
16
|
+
# ----------------------- RSpec -----------------------
|
17
|
+
|
18
|
+
RSpec/NestedGroups:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
RSpec/DescribeClass:
|
22
|
+
Exclude:
|
23
|
+
- spec/memoria/rspec_spec.rb
|
24
|
+
- spec/memoria/rspec/matcher_spec.rb
|
25
|
+
|
26
|
+
# ----------------------- Style -----------------------
|
27
|
+
|
28
|
+
Style/FrozenStringLiteralComment:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Style/ModuleFunction:
|
32
|
+
Exclude:
|
33
|
+
- lib/memoria.rb
|
34
|
+
- lib/memoria/rspec/metadata_parser.rb
|
data/.travis.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
language: ruby
|
2
|
+
cache: bundler
|
3
|
+
|
4
|
+
env:
|
5
|
+
global:
|
6
|
+
- CC_TEST_REPORTER_ID=f9b83e168978e0bdefdb84b04fcb48eae2cf6d6b804ddf198cadef381b6ec06a
|
7
|
+
|
8
|
+
rvm:
|
9
|
+
- 2.5.0
|
10
|
+
|
11
|
+
before_install: gem install bundler -v 1.16.1
|
12
|
+
|
13
|
+
before_script:
|
14
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
15
|
+
- chmod +x ./cc-test-reporter
|
16
|
+
- ./cc-test-reporter before-build
|
17
|
+
scripts:
|
18
|
+
- bundle exec rspec
|
19
|
+
- bundle exec rubocop
|
20
|
+
|
21
|
+
after_script:
|
22
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--plugin junk
|
data/.yardstick.yml
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
threshold: 100
|
2
|
+
rules:
|
3
|
+
ApiTag::Presence:
|
4
|
+
enabled: true
|
5
|
+
exclude:
|
6
|
+
- Memoria::Configuration#validate_setting_existence
|
7
|
+
- Memoria::Configuration#validate_record_mode
|
8
|
+
- Memoria::Configuration#validate_snapshot_extension
|
9
|
+
- Memoria::SnapshotSaver#configuration
|
10
|
+
- Memoria::SnapshotSaver#absolute_path_to_file
|
11
|
+
- Memoria::SnapshotSaver#sanitized_file_name_from
|
12
|
+
- Memoria::SnapshotSaver#file_extension
|
13
|
+
- Memoria::SnapshotSaver#storage_location
|
14
|
+
- Memoria::RSpec::MetadataParser#find_description_in
|
15
|
+
- Memoria::RSpec::MetadataParser#find_example_group_in
|
16
|
+
ApiTag::Inclusion:
|
17
|
+
enabled: true
|
18
|
+
exclude:
|
19
|
+
- Memoria::Configuration#validate_setting_existence
|
20
|
+
- Memoria::Configuration#validate_record_mode
|
21
|
+
- Memoria::Configuration#validate_snapshot_extension
|
22
|
+
- Memoria::SnapshotSaver#configuration
|
23
|
+
- Memoria::SnapshotSaver#absolute_path_to_file
|
24
|
+
- Memoria::SnapshotSaver#sanitized_file_name_from
|
25
|
+
- Memoria::SnapshotSaver#file_extension
|
26
|
+
- Memoria::SnapshotSaver#storage_location
|
27
|
+
- Memoria::RSpec::MetadataParser#find_description_in
|
28
|
+
- Memoria::RSpec::MetadataParser#find_example_group_in
|
29
|
+
ApiTag::ProtectedMethod:
|
30
|
+
enabled: true
|
31
|
+
exclude: []
|
32
|
+
ApiTag::PrivateMethod:
|
33
|
+
enabled: false
|
34
|
+
ExampleTag:
|
35
|
+
enabled: true
|
36
|
+
exclude:
|
37
|
+
- Memoria::Errors::DuplicateSetting#message
|
38
|
+
- Memoria::Errors::InvalidConfiguration#message
|
39
|
+
- Memoria::Errors::InvalidRecordMode#message
|
40
|
+
- Memoria::Errors::InvalidSnapshotExtension#message
|
41
|
+
- Memoria::Configuration#snapshot_directory
|
42
|
+
- Memoria::Configuration#snapshot_record_mode
|
43
|
+
- Memoria::Configuration#snapshot_extension
|
44
|
+
- Memoria::Configuration#snapshot_directory=
|
45
|
+
- Memoria::Configuration#snapshot_record_mode=
|
46
|
+
- Memoria::Configuration#snapshot_extension=
|
47
|
+
- Memoria::Configuration#validate_setting_existence
|
48
|
+
- Memoria::Configuration#validate_record_mode
|
49
|
+
- Memoria::Configuration#validate_snapshot_extension
|
50
|
+
- Memoria::SnapshotSaver#configuration
|
51
|
+
- Memoria::SnapshotSaver#absolute_path_to_file
|
52
|
+
- Memoria::SnapshotSaver#sanitized_file_name_from
|
53
|
+
- Memoria::SnapshotSaver#file_extension
|
54
|
+
- Memoria::SnapshotSaver#storage_location
|
55
|
+
- Memoria::RSpec::MetadataParser#find_description_in
|
56
|
+
- Memoria::RSpec::MetadataParser#find_example_group_in
|
57
|
+
ReturnTag:
|
58
|
+
enabled: true
|
59
|
+
exclude:
|
60
|
+
- Memoria::Configuration#validate_setting_existence
|
61
|
+
- Memoria::Configuration#validate_record_mode
|
62
|
+
- Memoria::Configuration#validate_snapshot_extension
|
63
|
+
Summary::Presence:
|
64
|
+
enabled: true
|
65
|
+
exclude:
|
66
|
+
- Memoria::Configuration#snapshot_directory=
|
67
|
+
- Memoria::Configuration#snapshot_directory
|
68
|
+
- Memoria::Configuration#snapshot_record_mode
|
69
|
+
- Memoria::Configuration#snapshot_extension
|
70
|
+
Summary::Length:
|
71
|
+
enabled: false
|
72
|
+
Summary::Delimiter:
|
73
|
+
enabled: false
|
74
|
+
exclude: []
|
75
|
+
Summary::SingleLine:
|
76
|
+
enabled: true
|
77
|
+
exclude: []
|
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
guard :bundler do
|
2
|
+
watch('memoria.gemspec')
|
3
|
+
end
|
4
|
+
|
5
|
+
guard :bundler_audit, run_on_start: true do
|
6
|
+
watch('Gemfile.lock')
|
7
|
+
end
|
8
|
+
|
9
|
+
group :tests do
|
10
|
+
guard :rspec, all_on_start: true, cmd: 'bundle exec rspec --format progress' do
|
11
|
+
watch(%r{^spec/.+_spec\.rb$})
|
12
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
13
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
guard :rubocop do
|
18
|
+
watch(/.+\.rb$/)
|
19
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
20
|
+
end
|
data/README.md
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
# Memoria
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/memoria.svg)](http://badge.fury.io/rb/memoria)
|
4
|
+
[![Build Status](https://travis-ci.org/wilsonsilva/memoria.svg?branch=master)](https://travis-ci.org/wilsonsilva/memoria)
|
5
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/ffa08ae5daf70c87c68f/maintainability)](https://codeclimate.com/github/wilsonsilva/memoria/maintainability)
|
6
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/ffa08ae5daf70c87c68f/test_coverage)](https://codeclimate.com/github/wilsonsilva/memoria/test_coverage)
|
7
|
+
[![Security](https://hakiri.io/github/wilsonsilva/memoria/master.svg)](https://hakiri.io/github/wilsonsilva/memoria/master)
|
8
|
+
[![Inline docs](http://inch-ci.org/github/wilsonsilva/memoria.svg?branch=master)](http://inch-ci.org/github/wilsonsilva/memoria)
|
9
|
+
|
10
|
+
Asserts the result of a given test by generating a rendered representation of its output. Inspired by Jest and VCR.
|
11
|
+
|
12
|
+
The first time your test is run, a representation of your expected output is saved to a file. The next time you
|
13
|
+
run the same test, a diff runs between a new and the previously stored snapshot. If there are no differences the test
|
14
|
+
passes, otherwise the test fails and the resulting diff is displayed.
|
15
|
+
|
16
|
+
## Installation
|
17
|
+
|
18
|
+
Add this line to your application's Gemfile:
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
gem 'memoria'
|
22
|
+
```
|
23
|
+
|
24
|
+
And then execute:
|
25
|
+
|
26
|
+
$ bundle
|
27
|
+
|
28
|
+
Or install it yourself as:
|
29
|
+
|
30
|
+
$ gem install memoria
|
31
|
+
|
32
|
+
## Usage
|
33
|
+
|
34
|
+
### RSpec
|
35
|
+
|
36
|
+
You can configure RSpec's integration in `spec_helper.rb`. Require `memoria/rspec` then run `Memoria.configure`:
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
Memoria.configure do |config|
|
40
|
+
config.configure_rspec_hooks
|
41
|
+
config.include_rspec_matchers
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
The configuration above does two things:
|
46
|
+
- Includes the matcher `match_snapshot` in your RSpec test suite.
|
47
|
+
- Configures RSpec hooks to create snapshots named after the full spec example's description.
|
48
|
+
|
49
|
+
Use the provided matcher `match_snapshot` to verify if the expected output matches a previously recorded snapshot.
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
expect(view).to match_snapshot
|
53
|
+
```
|
54
|
+
|
55
|
+
By default the snapshots will be stored in `spec/fixtures/snapshots`, but you can change this with the setting
|
56
|
+
`snapshot_directory`:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
Memoria.configure do |config|
|
60
|
+
config.snapshot_directory = 'spec/snapshots'
|
61
|
+
end
|
62
|
+
```
|
63
|
+
|
64
|
+
### Cucumber
|
65
|
+
Under development.
|
66
|
+
|
67
|
+
### Minitest
|
68
|
+
Under development.
|
69
|
+
|
70
|
+
## Development
|
71
|
+
|
72
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can
|
73
|
+
also run `bin/console` for an interactive prompt that will allow you to experiment.
|
74
|
+
|
75
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the
|
76
|
+
version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version,
|
77
|
+
push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
78
|
+
|
79
|
+
### Architecture
|
80
|
+
|
81
|
+
Memoria was designed using a modular plugin architecture. The core part of the gem has a single responsibility:
|
82
|
+
manage snapshots. Every test framework integration is done through a self-contained plugin. Plugins depend on the core,
|
83
|
+
but the core is unaware of the plugins. This allows me to extract the plugins into their own gems later, and
|
84
|
+
add new plugins with ease.
|
85
|
+
|
86
|
+
![Class Diagram](https://github.com/wilsonsilva/memoria/blob/master/documentation/class-diagram.svg)
|
87
|
+
|
88
|
+
## Contributing
|
89
|
+
|
90
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/wilsonsilva/memoria.
|
data/ROADMAP.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Roadmap
|
2
|
+
|
3
|
+
## Core
|
4
|
+
- [ ] Snapshot interpolation
|
5
|
+
- [ ] Snapshot partial matching
|
6
|
+
- [ ] Auto format the serialised snapshots
|
7
|
+
- [ ] Find and delete unused snapshots
|
8
|
+
|
9
|
+
## Framework integrations
|
10
|
+
- [ ] `RSpec`
|
11
|
+
- [ ] `Minitest`
|
12
|
+
- [ ] `Cucumber`
|
13
|
+
|
14
|
+
## Persistence
|
15
|
+
- [ ] Filesystem
|
16
|
+
|
17
|
+
## Serialisation
|
18
|
+
- [ ] Plain text (WYSIWYG)
|
19
|
+
- [ ] Compressed
|
20
|
+
|
21
|
+
## Other
|
22
|
+
- [ ] `Pry` integration
|
data/Rakefile
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'bundler/audit/task'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
require 'yaml'
|
5
|
+
require 'yard/rake/yardoc_task'
|
6
|
+
require 'yard-junk/rake'
|
7
|
+
require 'yardstick/rake/measurement'
|
8
|
+
require 'yardstick/rake/verify'
|
9
|
+
|
10
|
+
yardstick_options = YAML.load_file('.yardstick.yml')
|
11
|
+
|
12
|
+
Bundler::Audit::Task.new
|
13
|
+
RSpec::Core::RakeTask.new(:spec)
|
14
|
+
YARD::Rake::YardocTask.new
|
15
|
+
YardJunk::Rake.define_task
|
16
|
+
Yardstick::Rake::Measurement.new(:yardstick_measure, yardstick_options)
|
17
|
+
Yardstick::Rake::Verify.new
|
18
|
+
|
19
|
+
task default: :spec
|
20
|
+
|
21
|
+
# Delete these files and folders when running rake clobber.
|
22
|
+
CLOBBER.include('coverage', '.rspec_status')
|
23
|
+
|
24
|
+
# Remove the report on rake clobber
|
25
|
+
CLEAN.include('measurements', 'doc', '.yardoc', 'tmp')
|
26
|
+
|
27
|
+
desc 'Run spec with coverage'
|
28
|
+
task :coverage do
|
29
|
+
ENV['COVERAGE'] = 'true'
|
30
|
+
Rake::Task['spec'].execute
|
31
|
+
`open coverage/index.html`
|
32
|
+
end
|
data/bin/console
ADDED
data/bin/setup
ADDED
@@ -0,0 +1,360 @@
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
2
|
+
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
3
|
+
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-13 -11 978 780' xmlns:xlink='http://www.w3.org/1999/xlink' width='978.0px' font-size='13' font-family='Arial, LiberationSans' version='1.1' height='780.0px'>
|
4
|
+
<defs>
|
5
|
+
<style type='text/css'><![CDATA[svg text {text-rendering: geometricPrecision;}]]></style> <linearGradient y1='0.0%' x1='0.0%' y2='100.0%' x2='0.0%' id='gradient-ffffff-eeeeee' spreadMethod='pad'>
|
6
|
+
<stop stop-opacity='1' offset='0' stop-color='rgb(255, 255, 255)'/>
|
7
|
+
<stop stop-opacity='1' offset='100' stop-color='rgb(238, 238, 238)'/>
|
8
|
+
</linearGradient>
|
9
|
+
<linearGradient y1='0.0%' x1='0.0%' y2='100.0%' x2='0.0%' id='gradient-ffffff-efe9de' spreadMethod='pad'>
|
10
|
+
<stop stop-opacity='1' offset='0' stop-color='rgb(255, 255, 255)'/>
|
11
|
+
<stop stop-opacity='1' offset='100' stop-color='rgb(239, 233, 222)'/>
|
12
|
+
</linearGradient>
|
13
|
+
</defs>
|
14
|
+
<desc>ClassDiagram</desc>
|
15
|
+
<g transform='translate(796.0,649.0)' id='_pjwTmkADEDaXxvbZkv6C9Q'>
|
16
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='70.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='26.0px'/>
|
17
|
+
<text font-weight='bold' text-anchor='middle' x='35.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>RSpec</text>
|
18
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='70.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
19
|
+
</g>
|
20
|
+
<g transform='translate(17.0,128.0)' id='_pjvsgUADEDaXxvbZkv6C9Q'>
|
21
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='150.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='90.0px'/>
|
22
|
+
<text font-weight='bold' text-anchor='middle' x='75.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>SnapshotSaver</text>
|
23
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='150.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
24
|
+
<g transform='translate(0.0,26.0)' id='_pjvsgkADEDaXxvbZkv6C9Q'>
|
25
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
26
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>write()</text>
|
27
|
+
</g>
|
28
|
+
<g transform='translate(0.0,46.0)' id='_pjvsg0ADEDaXxvbZkv6C9Q'>
|
29
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
30
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>read()</text>
|
31
|
+
</g>
|
32
|
+
<g transform='translate(0.0,66.0)' id='_pjvshEADEDaXxvbZkv6C9Q'>
|
33
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
34
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>snapshot_exists?()</text>
|
35
|
+
</g>
|
36
|
+
</g>
|
37
|
+
<g transform='translate(247.0,55.0)' id='_pjwTmUADEDaXxvbZkv6C9Q'>
|
38
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='90.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='42.0px'/>
|
39
|
+
<text font-weight='bold' text-anchor='middle' x='45.0' y='18.0' font-size='12' fill='rgb(105, 105, 105)'>« Interface »</text>
|
40
|
+
<text font-weight='bold' text-anchor='middle' x='45.0' y='35.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Snapshot</text>
|
41
|
+
<line y1='42.0' x1='0.0' y2='42.0' x2='90.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
42
|
+
</g>
|
43
|
+
<g transform='translate(192.0,234.0)' id='_pjwTkkADEDaXxvbZkv6C9Q'>
|
44
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='220.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='155.0px'/>
|
45
|
+
<text font-weight='bold' text-anchor='middle' x='110.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Memoria</text>
|
46
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='220.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
47
|
+
<g transform='translate(0.0,26.0)' id='_pjwTk0ADEDaXxvbZkv6C9Q'>
|
48
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
49
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>snapshots: Array</text>
|
50
|
+
</g>
|
51
|
+
<g transform='translate(0.0,46.0)' id='_pjwTlUADEDaXxvbZkv6C9Q'>
|
52
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
53
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>current_snapshot: Snapshot</text>
|
54
|
+
</g>
|
55
|
+
<g transform='translate(0.0,66.0)' id='_pjwTlkADEDaXxvbZkv6C9Q'>
|
56
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
57
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>configuration: Configuration</text>
|
58
|
+
</g>
|
59
|
+
<g transform='translate(0.0,86.0)' id='_pjwTmEADEDaXxvbZkv6C9Q'>
|
60
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
61
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>snapshot_saver: SnapshotSaver</text>
|
62
|
+
</g>
|
63
|
+
<line y1='107.0' x1='0.0' y2='107.0' x2='220.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
64
|
+
<g transform='translate(0.0,107.0)' id='_pjwTlEADEDaXxvbZkv6C9Q'>
|
65
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
66
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>configure()</text>
|
67
|
+
</g>
|
68
|
+
<g transform='translate(0.0,127.0)' id='_pjwTl0ADEDaXxvbZkv6C9Q'>
|
69
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
70
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>record(snapshot_name)()</text>
|
71
|
+
</g>
|
72
|
+
</g>
|
73
|
+
<g transform='translate(565.0,362.0)' id='_pjw6o0ADEDaXxvbZkv6C9Q'>
|
74
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='196.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='70.0px'/>
|
75
|
+
<text font-weight='bold' text-anchor='middle' x='98.0' y='18.0' font-size='12' fill='rgb(105, 105, 105)'>« Interface »</text>
|
76
|
+
<text font-weight='bold' text-anchor='middle' x='98.0' y='35.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Configuration</text>
|
77
|
+
<line y1='42.0' x1='0.0' y2='42.0' x2='196.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
78
|
+
<g transform='translate(0.0,42.0)' id='_pjw6pEADEDaXxvbZkv6C9Q'>
|
79
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
80
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>add_setting(name, block)()</text>
|
81
|
+
</g>
|
82
|
+
</g>
|
83
|
+
<g transform='translate(555.0,214.0)' id='_pjvFckADEDaXxvbZkv6C9Q'>
|
84
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='214.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='113.0px'/>
|
85
|
+
<text font-weight='bold' text-anchor='middle' x='107.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Configuration</text>
|
86
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='214.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
87
|
+
<g transform='translate(0.0,26.0)' id='_pjvFc0ADEDaXxvbZkv6C9Q'>
|
88
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
89
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>snapshot_dir: String</text>
|
90
|
+
</g>
|
91
|
+
<g transform='translate(0.0,46.0)' id='_pjvFdEADEDaXxvbZkv6C9Q'>
|
92
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
93
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>snapshot_extension: String</text>
|
94
|
+
</g>
|
95
|
+
<g transform='translate(0.0,66.0)' id='_pjvFdUADEDaXxvbZkv6C9Q'>
|
96
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
97
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>snapshot_record_mode: Symbol</text>
|
98
|
+
</g>
|
99
|
+
<line y1='87.0' x1='0.0' y2='87.0' x2='214.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
100
|
+
<g transform='translate(0.0,87.0)' id='_pjvFdkADEDaXxvbZkv6C9Q'>
|
101
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
102
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>add_setting(name, block)()</text>
|
103
|
+
</g>
|
104
|
+
</g>
|
105
|
+
<g transform='translate(241.0,128.0)' id='_pjwTkEADEDaXxvbZkv6C9Q'>
|
106
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='102.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='48.0px'/>
|
107
|
+
<text font-weight='bold' text-anchor='middle' x='51.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Snapshot</text>
|
108
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='102.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
109
|
+
<g transform='translate(0.0,26.0)' id='_pjwTkUADEDaXxvbZkv6C9Q'>
|
110
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP////3+/ypvqCtuqCtvqDF0qzp5rzp4rjp5rkN/skOAskR/sk2Ftk2GtlWMulaMulaNulaMuV6Svl6RvV6SvV+SvWWWwGWXwGqawvr9/+35//b8//L7/+T3/+H3/+T4/+z6/+36/+P4/+f5//L8//b9/wWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACj1MwgAAAArdFJOU////////////////////////////////////////////////////////wAjyafQAAAAjklEQVR42lyPMQrCUBBE364bbbSwEcE+EO9/l0AqIZ0K2in8v7sWIkmc7s1MMSNnltI/xnjMcY8Rt4kPYNRjIYUUaCoYvr3vvvlzU0DxVyFiHetIcTDcgiZr4+EWYPjKrwC8udB3RtZTUSDGFgaMHDVBKqBBL7/pfQsaYIsXSsyMQHLeGGhhmN52HSTwGQCflTcMX9qOTgAAAABJRU5ErkJggg==' height='16.0'/>
|
111
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' fill='rgb(0, 0, 0)'>name: String</text>
|
112
|
+
</g>
|
113
|
+
</g>
|
114
|
+
<text text-anchor='middle' x='232.0' y='211.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
115
|
+
<text text-anchor='middle' x='482.0' y='266.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
116
|
+
<text text-anchor='middle' x='112.0' y='330.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
117
|
+
<g transform='translate(426.0,19.0)' id='_pjw6oUADEDaXxvbZkv6C9Q'>
|
118
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='55.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-efe9de)' stroke='rgb(194, 183, 159)' look='allInOne' height='27.0px'/>
|
119
|
+
<rect x='0.0' width='490.0px' y='24.0' stroke-width='1.0' fill='url(#gradient-ffffff-efe9de)' stroke='rgb(194, 183, 159)' look='allInOne' height='128.0px'/>
|
120
|
+
<text font-weight='bold' text-anchor='middle' x='27.5' y='18.0' font-size='13' fill='rgb(128, 98, 33)'>Errors</text>
|
121
|
+
</g>
|
122
|
+
<g transform='translate(131.0,569.0)' id='_pjvsgEADEDaXxvbZkv6C9Q'>
|
123
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='59.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-efe9de)' stroke='rgb(194, 183, 159)' look='allInOne' height='27.0px'/>
|
124
|
+
<rect x='0.0' width='596.0px' y='24.0' stroke-width='1.0' fill='url(#gradient-ffffff-efe9de)' stroke='rgb(194, 183, 159)' look='allInOne' height='146.0px'/>
|
125
|
+
<text font-weight='bold' text-anchor='middle' x='29.5' y='18.0' font-size='13' fill='rgb(128, 98, 33)'>RSpec</text>
|
126
|
+
</g>
|
127
|
+
<g transform='translate(575.0,128.0)' id='_pj3BREADEDaXxvbZkv6C9Q'>
|
128
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='175.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='26.0px'/>
|
129
|
+
<text font-weight='bold' text-anchor='middle' x='87.5' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>InvalidSnapshotExtension</text>
|
130
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='175.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
131
|
+
</g>
|
132
|
+
<g transform='translate(765.0,128.0)' id='_pj2aNkADEDaXxvbZkv6C9Q'>
|
133
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='132.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='26.0px'/>
|
134
|
+
<text font-weight='bold' text-anchor='middle' x='66.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>InvalidRecordMode</text>
|
135
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='132.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
136
|
+
</g>
|
137
|
+
<g transform='translate(145.0,673.0)' id='_pj0lCUADEDaXxvbZkv6C9Q'>
|
138
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='162.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='50.0px'/>
|
139
|
+
<text font-weight='bold' text-anchor='middle' x='81.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>MetadataParser</text>
|
140
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='162.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
141
|
+
<g transform='translate(0.0,26.0)' id='_pj0lCkADEDaXxvbZkv6C9Q'>
|
142
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
143
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>find_description_for()</text>
|
144
|
+
</g>
|
145
|
+
</g>
|
146
|
+
<g transform='translate(525.0,610.0)' id='_pjz9-EADEDaXxvbZkv6C9Q'>
|
147
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='190.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='69.0px'/>
|
148
|
+
<text font-weight='bold' text-anchor='middle' x='95.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Configurator</text>
|
149
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='190.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
150
|
+
<g transform='translate(0.0,26.0)' id='_pjz9-UADEDaXxvbZkv6C9Q'>
|
151
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
152
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>configure_rspec_hooks()</text>
|
153
|
+
</g>
|
154
|
+
<g transform='translate(0.0,46.0)' id='_pjz9-kADEDaXxvbZkv6C9Q'>
|
155
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
156
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>include_rspec_matchers()</text>
|
157
|
+
</g>
|
158
|
+
</g>
|
159
|
+
<g transform='translate(145.0,610.0)' id='_pjyv0kADEDaXxvbZkv6C9Q'>
|
160
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='207.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='50.0px'/>
|
161
|
+
<text font-weight='bold' text-anchor='middle' x='103.5' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Metadata</text>
|
162
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='207.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
163
|
+
<g transform='translate(0.0,26.0)' id='_pjyv00ADEDaXxvbZkv6C9Q'>
|
164
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
165
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>current_example_metadata()</text>
|
166
|
+
</g>
|
167
|
+
</g>
|
168
|
+
<g transform='translate(594.0,63.0)' id='_pj3BT0ADEDaXxvbZkv6C9Q'>
|
169
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='138.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='26.0px'/>
|
170
|
+
<text font-weight='bold' text-anchor='middle' x='69.0' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>InvalidConfiguration</text>
|
171
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='138.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
172
|
+
</g>
|
173
|
+
<g transform='translate(369.0,611.0)' id='_pjzW4EADEDaXxvbZkv6C9Q'>
|
174
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='147.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='48.0px'/>
|
175
|
+
<text font-weight='bold' text-anchor='middle' x='73.5' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>Matcher</text>
|
176
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='147.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
177
|
+
<g transform='translate(0.0,26.0)' id='_pjzW4UADEDaXxvbZkv6C9Q'>
|
178
|
+
<image x='4.0' width='16.0' y='5.0' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG8dAAB6pAAA9NYAAIZwAAB37gAA9bAAADqjAAAVsi1zQqwAAAMAUExURQAAAP///8HBw6Ky1rfD3Ymh0au73Ku62Yag0aq72bPB27fD2b7J3YWh0Ieiz4ahzomk0Z2z2Ki72bPD3L7J23eXyIajz7TE27PD2rTD2maPxbvK38PP32OMwGSMvYamz7PE2LXE10V/vkh/v0d/vEiAvUh+vFGEu1OEvGaEpqC40kaBvUWAukd/ukmBvGGQvmSGqWOEpZ+61QA9cwA8cgA7cQI7cAM8czZ0rT16sEF9s0J9tUSBuE6GuVGFt2OGpmSHp2OEo2WGpWSFpAA8cAA9cAA7bwA8bgA9bgA7bQI8bgI8bD18slCGtWKFo2OGpGSHpQA9bAA7aDR3rAWBSUOcbHGxdf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH1d5AAAABYdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wB4m8IIAAAA2UlEQVR42lSPzUoCURhAz/0cUrhjTYzuIu0PicZFy57ABxjQdxR8iQQJYmrTDYJZNEZQC2fGHPIndVyUkGdz4OyO6rCL/Mqkj//Ce8iR8Uge/sJzNUqG+etocH4PqA6TQEpfUzWvlBoOFDyKrsnOLnQi1weAEKRG37iTWWs8iJ9AqN9Ns/0sqL3oVf8YCl7UGO05lbKTDRer0FxZXNL8CE/tNMaHHgLx9+zkU9++gUDXgqK45Z8YH8DHAh3Z9tIGAWFtATUID2GNykFtb7vgq7y3vYV2G3JgMwDzTEnCPC8r9AAAAABJRU5ErkJggg==' height='16.0'/>
|
179
|
+
<text text-anchor='start' x='22.0' y='16.0' font-size='13' font-style='normal' fill='rgb(0, 0, 0)'>match_snapshot()</text>
|
180
|
+
</g>
|
181
|
+
</g>
|
182
|
+
<g transform='translate(446.0,128.0)' id='_pj3BUEADEDaXxvbZkv6C9Q'>
|
183
|
+
<rect rx='3.0' ry='3.0' x='0.0' width='115.0px' y='0.0' stroke-width='1.0' fill='url(#gradient-ffffff-eeeeee)' stroke='rgb(187, 187, 187)' look='allInOne' height='26.0px'/>
|
184
|
+
<text font-weight='bold' text-anchor='middle' x='57.5' y='19.0' font-size='13' font-style='normal' fill='rgb(3, 54, 86)'>DuplicateSetting</text>
|
185
|
+
<line y1='26.0' x1='0.0' y2='26.0' x2='115.0' stroke-width='1.0' stroke='rgb(187, 187, 187)' look='border'/>
|
186
|
+
</g>
|
187
|
+
<text text-anchor='middle' x='796.0' y='695.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
188
|
+
<text text-anchor='middle' x='481.0' y='391.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
189
|
+
<text text-anchor='middle' x='337.0' y='513.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
190
|
+
<text text-anchor='middle' x='714.0' y='199.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
191
|
+
<text text-anchor='middle' x='492.0' y='507.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
192
|
+
<text text-anchor='middle' x='454.0' y='199.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
193
|
+
<text text-anchor='middle' x='882.0' y='198.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
194
|
+
<text text-anchor='middle' x='694.0' y='515.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
195
|
+
<text text-anchor='middle' x='384.0' y='701.0' fill='rgb(0, 0, 0)'>« dependency »</text>
|
196
|
+
<g id='_pjsCIUADEDaXxvbZkv6C9Q'>
|
197
|
+
<polyline transform='translate(412.0,335.0) rotate(-90.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
198
|
+
<line y1='335.0' x1='544.0' y2='335.0' x2='412.0' stroke-dasharray='1, 2' id='_pj0lAUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
199
|
+
</g>
|
200
|
+
<g id='_pjueYUADEDaXxvbZkv6C9Q'>
|
201
|
+
<line y1='205.0' x1='292.0' y2='205.0' x2='292.0' stroke-dasharray='1, 2' id='_pj2aM0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
202
|
+
</g>
|
203
|
+
<g id='_pjsCJUADEDaXxvbZkv6C9Q'>
|
204
|
+
<polyline transform='translate(307.0,706.0) rotate(-90.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
205
|
+
<line y1='706.0' x1='416.0' y2='706.0' x2='307.0' stroke-dasharray='1, 2' id='_pj0lDEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
206
|
+
</g>
|
207
|
+
<g id='_pjueYEADEDaXxvbZkv6C9Q'>
|
208
|
+
<line y1='300.0' x1='89.0' y2='238.0' x2='89.0' stroke-dasharray='1, 2' id='_pj1zI0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
209
|
+
</g>
|
210
|
+
<g id='_pjueYEADEDaXxvbZkv6C9Q'>
|
211
|
+
<line y1='300.0' x1='192.0' y2='300.0' x2='89.0' stroke-dasharray='1, 2' id='_pj1zJUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
212
|
+
</g>
|
213
|
+
<g id='_pjt3WEADEDaXxvbZkv6C9Q'>
|
214
|
+
<line y1='280.0' x1='412.0' y2='280.0' x2='483.0' stroke-dasharray='1, 2' id='_pjyv0UADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
215
|
+
</g>
|
216
|
+
<g id='_pjsCIEADEDaXxvbZkv6C9Q'>
|
217
|
+
<polyline transform='translate(640.0,432.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
218
|
+
<line y1='521.0' x1='640.0' y2='432.0' x2='640.0' stroke-dasharray='1, 2' id='_pj0lCEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
219
|
+
</g>
|
220
|
+
<g id='_pjueYkADEDaXxvbZkv6C9Q'>
|
221
|
+
<polyline transform='translate(828.0,154.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
222
|
+
<line y1='184.0' x1='828.0' y2='154.0' x2='828.0' stroke-dasharray='1, 2' id='_pj2aP0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
223
|
+
</g>
|
224
|
+
<g id='_pjsCLEADEDaXxvbZkv6C9Q'>
|
225
|
+
<line y1='128.0' x1='292.0' y2='112.0' x2='292.0' stroke-dasharray='1, 2' id='_pj1zJ0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
226
|
+
</g>
|
227
|
+
<g id='_pjvFcUADEDaXxvbZkv6C9Q'>
|
228
|
+
<polyline transform='translate(507.0,154.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
229
|
+
<line y1='184.0' x1='507.0' y2='154.0' x2='507.0' stroke-dasharray='1, 2' id='_pj3oWEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
230
|
+
</g>
|
231
|
+
<g id='_pjt3VUADEDaXxvbZkv6C9Q'>
|
232
|
+
<line y1='128.0' x1='504.0' y2='108.0' x2='504.0' id='_pj3oUUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
233
|
+
</g>
|
234
|
+
<g id='_pjt3WUADEDaXxvbZkv6C9Q'>
|
235
|
+
<polyline transform='translate(796.0,662.0) rotate(90.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
236
|
+
<line y1='662.0' x1='762.0' y2='662.0' x2='796.0' stroke-dasharray='1, 2' id='_pj1MGUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
237
|
+
</g>
|
238
|
+
<g id='_pjt3WUADEDaXxvbZkv6C9Q'>
|
239
|
+
<line y1='662.0' x1='761.0' y2='662.0' x2='762.0' stroke-dasharray='1, 2' id='_pj1MF0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
240
|
+
</g>
|
241
|
+
<g id='_pjsCLEADEDaXxvbZkv6C9Q'>
|
242
|
+
<line y1='112.0' x1='292.0' y2='113.0' x2='292.0' stroke-dasharray='1, 2' id='_pj1zKkADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
243
|
+
</g>
|
244
|
+
<g id='_pjsCIEADEDaXxvbZkv6C9Q'>
|
245
|
+
<line y1='521.0' x1='640.0' y2='521.0' x2='640.0' stroke-dasharray='1, 2' id='_pj0lBkADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
246
|
+
</g>
|
247
|
+
<g id='_pjt3WEADEDaXxvbZkv6C9Q'>
|
248
|
+
<line y1='280.0' x1='483.0' y2='280.0' x2='484.0' stroke-dasharray='1, 2' id='_pjyIyEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
249
|
+
</g>
|
250
|
+
<g id='_pjsCIkADEDaXxvbZkv6C9Q'>
|
251
|
+
<line y1='611.0' x1='445.0' y2='518.0' x2='445.0' stroke-dasharray='1, 2' id='_pjzW40ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
252
|
+
</g>
|
253
|
+
<g id='_pjueYEADEDaXxvbZkv6C9Q'>
|
254
|
+
<polyline transform='translate(89.0,218.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
255
|
+
<line y1='238.0' x1='89.0' y2='218.0' x2='89.0' stroke-dasharray='1, 2' id='_pj1zIEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
256
|
+
</g>
|
257
|
+
<g id='_pjvFcUADEDaXxvbZkv6C9Q'>
|
258
|
+
<line y1='233.0' x1='507.0' y2='184.0' x2='507.0' stroke-dasharray='1, 2' id='_pj3oW0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
259
|
+
</g>
|
260
|
+
<g id='_pjueYUADEDaXxvbZkv6C9Q'>
|
261
|
+
<polyline transform='translate(292.0,176.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
262
|
+
<line y1='205.0' x1='292.0' y2='176.0' x2='292.0' stroke-dasharray='1, 2' id='_pj2aMEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
263
|
+
</g>
|
264
|
+
<g id='_pjsCIUADEDaXxvbZkv6C9Q'>
|
265
|
+
<line y1='590.0' x1='544.0' y2='335.0' x2='544.0' stroke-dasharray='1, 2' id='_pjz9_0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
266
|
+
</g>
|
267
|
+
<g id='_pjq0A0ADEDaXxvbZkv6C9Q'>
|
268
|
+
<line y1='345.0' x1='663.0' y2='344.0' x2='663.0' stroke-dasharray='1, 2' id='_pjyIwUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
269
|
+
</g>
|
270
|
+
<g id='_pjt3WEADEDaXxvbZkv6C9Q'>
|
271
|
+
<polyline transform='translate(555.0,280.0) rotate(90.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
272
|
+
<line y1='280.0' x1='484.0' y2='280.0' x2='555.0' stroke-dasharray='1, 2' id='_pjyIxUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
273
|
+
</g>
|
274
|
+
<g id='_pjt3VUADEDaXxvbZkv6C9Q'>
|
275
|
+
<line y1='108.0' x1='504.0' y2='109.0' x2='663.0' id='_pj3oVEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
276
|
+
</g>
|
277
|
+
<g id='_pjq0A0ADEDaXxvbZkv6C9Q'>
|
278
|
+
<line y1='327.0' x1='663.0' y2='345.0' x2='663.0' stroke-dasharray='1, 2' id='_pjw6r0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
279
|
+
</g>
|
280
|
+
<g id='_pjt3WUADEDaXxvbZkv6C9Q'>
|
281
|
+
<line y1='662.0' x1='727.0' y2='662.0' x2='761.0' stroke-dasharray='1, 2' id='_pj1MFEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
282
|
+
</g>
|
283
|
+
<g id='_pjsCIkADEDaXxvbZkv6C9Q'>
|
284
|
+
<polyline transform='translate(590.0,432.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
285
|
+
<line y1='519.0' x1='590.0' y2='432.0' x2='590.0' stroke-dasharray='1, 2' id='_pjz98EADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
286
|
+
</g>
|
287
|
+
<g id='_pjsCLEADEDaXxvbZkv6C9Q'>
|
288
|
+
<line y1='113.0' x1='292.0' y2='97.0' x2='292.0' stroke-dasharray='1, 2' id='_pj1zLEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
289
|
+
<polygon transform='translate(292.0,97.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-4.0,12.0 0.0,0.0 4.0,12.0'/>
|
290
|
+
</g>
|
291
|
+
<g id='_pjueYkADEDaXxvbZkv6C9Q'>
|
292
|
+
<line y1='230.0' x1='828.0' y2='184.0' x2='828.0' stroke-dasharray='1, 2' id='_pj3BQUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
293
|
+
</g>
|
294
|
+
<g id='_pjsCJUADEDaXxvbZkv6C9Q'>
|
295
|
+
<line y1='706.0' x1='620.0' y2='706.0' x2='416.0' stroke-dasharray='1, 2' id='_pj1MEEADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
296
|
+
</g>
|
297
|
+
<g id='_pjvFcEADEDaXxvbZkv6C9Q'>
|
298
|
+
<polyline transform='translate(662.0,154.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
299
|
+
<line y1='214.0' x1='662.0' y2='154.0' x2='662.0' stroke-dasharray='1, 2' id='_pj3BTUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
300
|
+
</g>
|
301
|
+
<g id='_pjsCJUADEDaXxvbZkv6C9Q'>
|
302
|
+
<line y1='679.0' x1='620.0' y2='706.0' x2='620.0' stroke-dasharray='1, 2' id='_pj1MEkADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
303
|
+
</g>
|
304
|
+
<g id='_pjrbGEADEDaXxvbZkv6C9Q'>
|
305
|
+
<polyline transform='translate(390.0,389.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-5.0,10.0 0.0,0.0 5.0,10.0'/>
|
306
|
+
<line y1='500.0' x1='390.0' y2='389.0' x2='390.0' stroke-dasharray='1, 2' id='_pjz990ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
307
|
+
</g>
|
308
|
+
<g id='_pjsCIEADEDaXxvbZkv6C9Q'>
|
309
|
+
<line y1='610.0' x1='640.0' y2='521.0' x2='640.0' stroke-dasharray='1, 2' id='_pj0lA0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
310
|
+
</g>
|
311
|
+
<g id='_pjsCIkADEDaXxvbZkv6C9Q'>
|
312
|
+
<line y1='518.0' x1='445.0' y2='519.0' x2='590.0' stroke-dasharray='1, 2' id='_pjzW5kADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
313
|
+
</g>
|
314
|
+
<g id='_pjt3U0ADEDaXxvbZkv6C9Q'>
|
315
|
+
<line y1='108.0' x1='663.0' y2='109.0' x2='663.0' id='_pj3BSUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
316
|
+
</g>
|
317
|
+
<g id='_pjt3UUADEDaXxvbZkv6C9Q'>
|
318
|
+
<line y1='108.0' x1='831.0' y2='109.0' x2='663.0' id='_pj2aO0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
319
|
+
</g>
|
320
|
+
<g id='_pjueYkADEDaXxvbZkv6C9Q'>
|
321
|
+
<line y1='230.0' x1='769.0' y2='230.0' x2='828.0' stroke-dasharray='1, 2' id='_pj3BQ0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
322
|
+
</g>
|
323
|
+
<g id='_pjt3U0ADEDaXxvbZkv6C9Q'>
|
324
|
+
<line y1='128.0' x1='663.0' y2='108.0' x2='663.0' id='_pj3BRUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
325
|
+
</g>
|
326
|
+
<g id='_pjrbGEADEDaXxvbZkv6C9Q'>
|
327
|
+
<line y1='611.0' x1='390.0' y2='500.0' x2='390.0' stroke-dasharray='1, 2' id='_pjz98kADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
328
|
+
</g>
|
329
|
+
<g id='_pjt3UUADEDaXxvbZkv6C9Q'>
|
330
|
+
<line y1='128.0' x1='831.0' y2='108.0' x2='831.0' id='_pj2aN0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
331
|
+
</g>
|
332
|
+
<g id='_pjvFcUADEDaXxvbZkv6C9Q'>
|
333
|
+
<line y1='233.0' x1='555.0' y2='233.0' x2='507.0' stroke-dasharray='1, 2' id='_pj3oXUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
334
|
+
</g>
|
335
|
+
<g id='_pjt3U0ADEDaXxvbZkv6C9Q'>
|
336
|
+
<line y1='109.0' x1='663.0' y2='89.0' x2='663.0' id='_pj3BS0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
337
|
+
<polygon transform='translate(663.0,89.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-6.0,10.0 0.0,0.0 6.0,10.0'/>
|
338
|
+
</g>
|
339
|
+
<g id='_pjrbGEADEDaXxvbZkv6C9Q'>
|
340
|
+
<line y1='500.0' x1='390.0' y2='500.0' x2='390.0' stroke-dasharray='1, 2' id='_pjz99UADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
341
|
+
</g>
|
342
|
+
<g id='_pjt3UUADEDaXxvbZkv6C9Q'>
|
343
|
+
<line y1='109.0' x1='663.0' y2='89.0' x2='663.0' id='_pj2aPUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
344
|
+
<polygon transform='translate(663.0,89.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-6.0,10.0 0.0,0.0 6.0,10.0'/>
|
345
|
+
</g>
|
346
|
+
<g id='_pjt3VUADEDaXxvbZkv6C9Q'>
|
347
|
+
<line y1='109.0' x1='663.0' y2='89.0' x2='663.0' id='_pj3oVkADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
348
|
+
<polygon transform='translate(663.0,89.0) rotate(-0.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-6.0,10.0 0.0,0.0 6.0,10.0'/>
|
349
|
+
</g>
|
350
|
+
<g id='_pjsCIUADEDaXxvbZkv6C9Q'>
|
351
|
+
<line y1='610.0' x1='544.0' y2='590.0' x2='544.0' stroke-dasharray='1, 2' id='_pjz9_EADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
352
|
+
</g>
|
353
|
+
<g id='_pjq0A0ADEDaXxvbZkv6C9Q'>
|
354
|
+
<line y1='344.0' x1='663.0' y2='362.0' x2='663.0' stroke-dasharray='1, 2' id='_pjyIw0ADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
355
|
+
<polygon transform='translate(663.0,362.0) rotate(-180.0)' stroke-width='1.0' fill='rgb(255, 255, 255)' stroke='rgb(0, 0, 0)' points='-4.0,12.0 0.0,0.0 4.0,12.0'/>
|
356
|
+
</g>
|
357
|
+
<g id='_pjueYUADEDaXxvbZkv6C9Q'>
|
358
|
+
<line y1='234.0' x1='292.0' y2='205.0' x2='292.0' stroke-dasharray='1, 2' id='_pj2aNUADEDaXxvbZkv6C9Q' stroke-width='1.0' fill='none' stroke='rgb(0, 0, 0)'/>
|
359
|
+
</g>
|
360
|
+
</svg>
|