├── Gemfile
├── .rspec
├── exe
└── urlscan
├── renovate.json
├── lib
├── urlscan
│ ├── version.rb
│ ├── cli.rb
│ ├── exceptions.rb
│ ├── api.rb
│ ├── commands
│ │ ├── base.rb
│ │ └── community.rb
│ └── clients
│ │ ├── community.rb
│ │ ├── pro.rb
│ │ └── base.rb
└── urlscan.rb
├── Rakefile
├── spec
├── urlscan_spec.rb
├── support
│ └── helpers
│ │ └── io_helpers.rb
├── spec_helper.rb
├── cli_spec.rb
├── api_spec.rb
└── fixtures
│ └── vcr_cassettes
│ └── UrlScan_API
│ ├── _pro_similar
│ └── 1_9_2.yml
│ ├── _submit
│ ├── 1_1_1.yml
│ └── 1_1_2.yml
│ ├── _result
│ └── 1_5_1.yml
│ ├── _screenshot
│ └── 1_5_1.yml
│ └── _dom
│ └── 1_4_1.yml
├── .codeclimate.yml
├── .github
└── workflows
│ └── test.yml
├── .gitignore
├── LICENSE
├── urlscan.gemspec
├── README.md
└── .rubocop.yml
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gemspec
4 |
--------------------------------------------------------------------------------
/.rspec:
--------------------------------------------------------------------------------
1 | --format documentation
2 | --color
3 | --require spec_helper
4 |
--------------------------------------------------------------------------------
/exe/urlscan:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require "urlscan"
4 |
5 | UrlScan::CLI.start
6 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "config:base"
4 | ],
5 | "enabled": false
6 | }
7 |
--------------------------------------------------------------------------------
/lib/urlscan/version.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module UrlScan
4 | VERSION = "0.8.0"
5 | end
6 |
--------------------------------------------------------------------------------
/lib/urlscan/cli.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module UrlScan
4 | class CLI < Commands::Community; end
5 | end
6 |
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | require "bundler/gem_tasks"
2 | require "rspec/core/rake_task"
3 |
4 | RSpec::Core::RakeTask.new(:spec)
5 |
6 | task default: :spec
7 |
--------------------------------------------------------------------------------
/spec/urlscan_spec.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | RSpec.describe UrlScan do
4 | it "has a version number" do
5 | expect(subject::VERSION).not_to be nil
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/.codeclimate.yml:
--------------------------------------------------------------------------------
1 | version: "2"
2 | prepare:
3 | fetch:
4 | - url: "https://raw.githubusercontent.com/janlelis/relaxed.ruby.style/master/.rubocop.yml"
5 | path: "alternate-rubocop-path.yml"
6 | plugins:
7 | rubocop:
8 | enabled: true
9 | config:
10 | file: "alternate-rubocop-path.yml"
11 | exclude_patterns:
12 | - "spec/**/*"
13 |
--------------------------------------------------------------------------------
/lib/urlscan.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require "urlscan/version"
4 | require "urlscan/exceptions"
5 |
6 | require "urlscan/clients/base"
7 | require "urlscan/clients/community"
8 | require "urlscan/clients/pro"
9 |
10 | require "urlscan/commands/base"
11 | require "urlscan/commands/community"
12 |
13 | require "urlscan/api"
14 | require "urlscan/cli"
15 |
--------------------------------------------------------------------------------
/lib/urlscan/exceptions.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module UrlScan
4 | class ResponseError < StandardError; end
5 |
6 | class AuthenticationError < ResponseError; end
7 |
8 | class NotFound < ResponseError; end
9 |
10 | class ProcessingError < ResponseError; end
11 |
12 | class RateLimited < ResponseError; end
13 |
14 | class InternalServerError < ResponseError; end
15 | end
16 |
--------------------------------------------------------------------------------
/lib/urlscan/api.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require "forwardable"
4 |
5 | module UrlScan
6 | class API
7 | extend Forwardable
8 |
9 | attr_reader :pro
10 |
11 | def initialize(key = ENV["URLSCAN_API_KEY"])
12 | @community = Clients::Community.new(key)
13 | @pro = Clients::Pro.new(key)
14 | end
15 |
16 | def_delegators :@community, :submit, :result, :dom, :screenshot, :search
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/spec/support/helpers/io_helpers.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module Spec
4 | module Support
5 | module Helpers
6 | module IOHelpers
7 | def capture(stream)
8 | begin
9 | stream = stream.to_s
10 | eval "$#{stream} = StringIO.new"
11 | yield
12 | result = eval("$#{stream}").string
13 | ensure
14 | eval("$#{stream} = #{stream.upcase}")
15 | end
16 | result
17 | end
18 | end
19 | end
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Ruby CI
2 |
3 | on: [pull_request]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 |
9 | strategy:
10 | fail-fast: false
11 | matrix:
12 | ruby: [2.7, "3.0"]
13 |
14 | steps:
15 | - uses: actions/checkout@v2
16 | - name: Set up Ruby
17 | uses: ruby/setup-ruby@v1
18 | with:
19 | ruby-version: ${{ matrix.ruby }}
20 | bundler-cache: true
21 | - name: Build and test with Rake
22 | run: |
23 | bundle exec rake
24 |
--------------------------------------------------------------------------------
/lib/urlscan/commands/base.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require "json"
4 | require "thor"
5 |
6 | module UrlScan
7 | module Commands
8 | class Base < Thor
9 | class_option :API_KEY, type: :string
10 |
11 | no_commands do
12 | def api
13 | options.key?("API_KEY") ? API.new(options["API_KEY"]) : API.new
14 | end
15 |
16 | def with_error_handling
17 | yield
18 | rescue ArgumentError => _e
19 | puts "Warning: please specify your urlscan.io API key via ENV['URLSCAN_API_KEY'] or --API-KEY"
20 | rescue ResponseError => e
21 | puts "Warning: #{e}"
22 | end
23 | end
24 | end
25 | end
26 | end
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.gem
2 | *.rbc
3 | /.config
4 | /coverage/
5 | /InstalledFiles
6 | /pkg/
7 | /spec/reports/
8 | /spec/examples.txt
9 | /test/tmp/
10 | /test/version_tmp/
11 | /tmp/
12 | /.vscode
13 |
14 | # Used by dotenv library to load environment variables.
15 | .env
16 |
17 | ## Documentation cache and generated files:
18 | /.yardoc/
19 | /_yardoc/
20 | /doc/
21 | /rdoc/
22 |
23 | ## Environment normalization:
24 | /.bundle/
25 | /vendor/bundle
26 | /lib/bundler/man/
27 |
28 | # for a library or gem, you might want to ignore these files since the code is
29 | # intended to run in multiple environments; otherwise, check them in:
30 | Gemfile.lock
31 | # .ruby-version
32 | # .ruby-gemset
33 |
34 | # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35 | .rvmrc
36 |
37 | # rspec failure tracking
38 | .rspec_status
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Manabu Niseki
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/spec/spec_helper.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require "bundler/setup"
4 |
5 | require "simplecov"
6 | require "coveralls"
7 | SimpleCov.formatter = Coveralls::SimpleCov::Formatter
8 | SimpleCov.start do
9 | add_filter "/spec"
10 | end
11 | Coveralls.wear!
12 |
13 | require "urlscan"
14 | require "vcr"
15 |
16 | require_relative "./support/helpers/io_helpers"
17 |
18 | RSpec.configure do |config|
19 | # Enable flags like --only-failures and --next-failure
20 | config.example_status_persistence_file_path = ".rspec_status"
21 |
22 | # Disable RSpec exposing methods globally on `Module` and `main`
23 | config.disable_monkey_patching!
24 |
25 | config.expect_with :rspec do |c|
26 | c.syntax = :expect
27 | end
28 |
29 | config.shared_context_metadata_behavior = :apply_to_host_groups
30 |
31 | config.include Spec::Support::Helpers::IOHelpers
32 | end
33 |
34 | ENV["URLSCAN_API_KEY"] = "foo bar" unless ENV.key?("URLSCAN_API_KEY")
35 |
36 | VCR.configure do |config|
37 | config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
38 | config.configure_rspec_metadata!
39 | config.filter_sensitive_data("") { ENV["URLSCAN_API_KEY"] }
40 | config.hook_into :webmock
41 | end
42 |
--------------------------------------------------------------------------------
/lib/urlscan/clients/community.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module UrlScan
4 | module Clients
5 | class Community < Base
6 | # @return [Hash]
7 | def submit(url, customagent: nil, referer: nil, visibility: nil, tags: nil, override_safety: nil, country: nil)
8 | params = {
9 | url: url,
10 | customagent: customagent,
11 | referer: referer,
12 | visibility: visibility,
13 | tags: tags,
14 | overrideSafety: override_safety,
15 | country: country
16 | }.compact
17 | post("/scan/", params) { |json| json }
18 | end
19 |
20 | # @return [Hash]
21 | def result(uuid)
22 | get("/result/#{uuid}") { |json| json }
23 | end
24 |
25 | # @return [String]
26 | def dom(uuid)
27 | get("/dom/#{uuid}/") { |dom| dom }
28 | end
29 |
30 | def screenshot(uuid)
31 | get("/screenshots/#{uuid}.png") { |png| png }
32 | end
33 |
34 | # @return [Hash]
35 | def search(q, size: 100, search_after: nil)
36 | params = { q: q, size: size, search_after: search_after }.compact
37 | get("/search/", params) { |json| json }
38 | end
39 | end
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/urlscan.gemspec:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | lib = File.expand_path('lib', __dir__)
4 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5 | require "urlscan/version"
6 |
7 | Gem::Specification.new do |spec|
8 | spec.name = "urlscan"
9 | spec.version = UrlScan::VERSION
10 | spec.authors = ["Manabu Niseki"]
11 | spec.email = ["manabu.niseki@gmail.com"]
12 |
13 | spec.summary = "Ruby API client for urlscan.io"
14 | spec.homepage = "https://github.com/ninoseki/urlscan"
15 | spec.license = "MIT"
16 |
17 | spec.files = `git ls-files -z`.split("\x0").reject do |f|
18 | f.match(%r{^(test|spec|features)/})
19 | end
20 | spec.bindir = "exe"
21 | spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22 | spec.require_paths = ["lib"]
23 |
24 | spec.add_development_dependency "bundler", "~> 2.2"
25 | spec.add_development_dependency "coveralls_reborn", "~> 0.23"
26 | spec.add_development_dependency "rake", "~> 13.0"
27 | spec.add_development_dependency "rspec", "~> 3.10"
28 | spec.add_development_dependency "vcr", "~> 6.0"
29 | spec.add_development_dependency "webmock", "~> 3.14"
30 |
31 | spec.add_runtime_dependency "thor", "~> 1.1"
32 | end
33 |
--------------------------------------------------------------------------------
/spec/cli_spec.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'json'
4 |
5 | RSpec.describe UrlScan::CLI do
6 | let(:uuid){ "7f0aa2ab-748a-4cae-b648-71e324e836cd" }
7 |
8 | describe "#submit", vcr: { cassette_name: "UrlScan_API/_submit/1_1_1" } do
9 | it do
10 | output = capture(:stdout) { described_class.start(%w(submit wikipedia.org)) }
11 | json = JSON.parse(output)
12 | expect(json).to be_a(Hash)
13 | end
14 | end
15 |
16 | describe "#result", vcr: { cassette_name: "UrlScan_API/_result/1_2_1" } do
17 | it do
18 | output = capture(:stdout) { described_class.start(["result", uuid]) }
19 | json = JSON.parse(output)
20 | expect(json).to be_a(Hash)
21 | end
22 | end
23 |
24 | describe "#search", vcr: { cassette_name: "UrlScan_API/_search/1_3_1" } do
25 | it do
26 | output = capture(:stdout) { described_class.start(%w(search domain:wikipedia.org)) }
27 | json = JSON.parse(output)
28 | expect(json).to be_a(Hash)
29 | end
30 | end
31 |
32 | describe "#dom", vcr: { cassette_name: "UrlScan_API/_result/1_4_1" } do
33 | it do
34 | output = capture(:stdout) { described_class.start(["dom", uuid]) }
35 | expect(output).to be_a(String)
36 | end
37 | end
38 |
39 | describe "#screenshot", vcr: { cassette_name: "UrlScan_API/_result/1_5_1" } do
40 | it do
41 | output = capture(:stdout) { described_class.start(["screenshot", uuid]) }
42 | expect(output).to be_a(String)
43 | end
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/lib/urlscan/clients/pro.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module UrlScan
4 | module Clients
5 | class Pro < Base
6 | VERSION = 1
7 | HOST = "urlscan.io"
8 |
9 | # @return [Hash]
10 | def brands
11 | get("/brands") { |json| json }
12 | end
13 |
14 | # @return [Hash]
15 | def kits
16 | get("/kits") { |json| json }
17 | end
18 |
19 | # @return [Hash]
20 | def phishfeed(q: "result.task.time:>now-24h", format: "json", limit: nil)
21 | params = { q: q, format: format, limit: limit }.compact
22 | get("/phishfeed", params) { |json| json }
23 | end
24 |
25 | # @return [Hash]
26 | def similar(uuid, q: nil, size: nil, search_after: nil, threshold: nil, min_size: nil, method: nil, resource_types: nil)
27 | params = {
28 | q: q,
29 | size: size,
30 | search_after: search_after,
31 | threshold: threshold,
32 | minSize: min_size,
33 | method: method,
34 | resourceTypes: resource_types
35 | }.compact
36 | get("/result/#{uuid}/similar/", params) { |json| json }
37 | end
38 |
39 | # @return [Hash]
40 | def scanners
41 | get("/livescan/scanners/") { |json| json }
42 | end
43 |
44 | private
45 |
46 | def build_filter(filter)
47 | return nil unless filter
48 |
49 | filter.start_with?("$") ? filter : "$#{filter}"
50 | end
51 |
52 | def url
53 | @url ||= "https://#{HOST}/api/v#{VERSION}/pro"
54 | end
55 | end
56 | end
57 | end
58 |
--------------------------------------------------------------------------------
/spec/api_spec.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | RSpec.describe UrlScan::API, :vcr do
4 | let(:api) { described_class.new }
5 | let(:uuid) { "7f0aa2ab-748a-4cae-b648-71e324e836cd" }
6 |
7 | describe "#submit" do
8 | it do
9 | json = api.submit("https://www.wikipedia.org/")
10 | expect(json["message"]).to eq("Submission successful")
11 | end
12 |
13 | it do
14 | json = api.submit("https://www.wikipedia.org/", visibility: "private")
15 | expect(json["message"]).to eq("Submission successful")
16 | end
17 | end
18 |
19 | describe "#result" do
20 | it do
21 | json = api.result(uuid)
22 | expect(json).to be_a(Hash)
23 | end
24 | end
25 |
26 | describe "#search" do
27 | it do
28 | json = api.search("domain:wikipedia.org")
29 | expect(json).to be_a(Hash)
30 | end
31 | end
32 |
33 | describe "#dom" do
34 | it do
35 | dom = api.dom(uuid)
36 | expect(dom).to be_a(String)
37 | end
38 | end
39 |
40 | describe "#screenshot" do
41 | it do
42 | screenshot = api.screenshot(uuid)
43 | expect(screenshot).to be_a(String)
44 | end
45 | end
46 |
47 | describe "#pro.brands" do
48 | it do
49 | json = api.pro.brands
50 | expect(json).to be_a(Hash)
51 | end
52 | end
53 |
54 | describe "#pro.kits" do
55 | it do
56 | json = api.pro.kits
57 | expect(json).to be_a(Hash)
58 | end
59 | end
60 |
61 | describe "#pro.phishfeed" do
62 | it do
63 | json = api.pro.phishfeed
64 | expect(json).to be_a(Hash)
65 | end
66 | end
67 |
68 | describe "#pro.similar" do
69 | it do
70 | json = api.pro.similar("34449810-6d17-40c1-bc77-56eb40b3781f")
71 | expect(json).to be_a(Hash)
72 | end
73 |
74 | it do
75 | json = api.pro.similar("34449810-6d17-40c1-bc77-56eb40b3781f", q: "date:>now-7d")
76 | expect(json).to be_a(Hash)
77 | end
78 | end
79 | end
80 |
--------------------------------------------------------------------------------
/lib/urlscan/commands/community.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module UrlScan
4 | module Commands
5 | class Community < Base
6 | desc "submit [URL]", "submit a scan to [URL]"
7 | method_option :customagent, type: :string
8 | method_option :referer, type: :string
9 | method_option :visibility, type: :string
10 | method_option :tags, type: :array
11 | method_option :override_safety, type: :string
12 | method_option :country, type: :string
13 | def submit(url)
14 | with_error_handling do
15 | res = api.submit(
16 | url,
17 | customagent: options[:customagent],
18 | referer: options[:referer],
19 | visibility: options[:visibility],
20 | tags: options[:tags],
21 | override_safety: options[:override_safety],
22 | country: options[:country]
23 | )
24 | puts JSON.pretty_generate(res)
25 | end
26 | end
27 |
28 | desc "result [UUID]", "get the result of a scan using the scan id [UUID]"
29 | def result(uuid)
30 | with_error_handling do
31 | res = api.result(uuid)
32 | puts JSON.pretty_generate(res)
33 | end
34 | end
35 |
36 | desc "search [QUERY]", "search for scans by [QUERY]"
37 | method_option :size, type: :numeric, default: 100
38 | method_option :search_after, type: :string
39 | def search(query)
40 | with_error_handling do
41 | res = api.search(query, size: options["size"], search_after: options["search_after"])
42 | puts JSON.pretty_generate(res)
43 | end
44 | end
45 |
46 | desc "dom [UUID]", "get the DOM of a scan using the scan id [UUID]"
47 | def dom(uuid)
48 | with_error_handling do
49 | res = api.dom(uuid)
50 | puts res
51 | end
52 | end
53 |
54 | desc "screenshot [UUID]", "get the screenshot(image/png) of a scan using the scan id [UUID]"
55 | def screenshot(uuid)
56 | with_error_handling do
57 | res = api.screenshot(uuid)
58 | puts res
59 | end
60 | end
61 | end
62 | end
63 | end
64 |
--------------------------------------------------------------------------------
/spec/fixtures/vcr_cassettes/UrlScan_API/_pro_similar/1_9_2.yml:
--------------------------------------------------------------------------------
1 | ---
2 | http_interactions:
3 | - request:
4 | method: get
5 | uri: https://urlscan.io/api/v1/pro/result/34449810-6d17-40c1-bc77-56eb40b3781f/similar/?q=date:%3Enow-7d
6 | body:
7 | encoding: US-ASCII
8 | string: ''
9 | headers:
10 | Api-Key:
11 | - ""
12 | Accept-Encoding:
13 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14 | Accept:
15 | - "*/*"
16 | User-Agent:
17 | - Ruby
18 | Host:
19 | - urlscan.io
20 | response:
21 | status:
22 | code: 200
23 | message: OK
24 | headers:
25 | Server:
26 | - nginx
27 | Date:
28 | - Fri, 03 Dec 2021 23:32:08 GMT
29 | Content-Type:
30 | - application/json; charset=utf-8
31 | Transfer-Encoding:
32 | - chunked
33 | Connection:
34 | - keep-alive
35 | X-User-Country:
36 | - JP
37 | Etag:
38 | - W/"45-aQCPH7iGIl6pW29cBW7iPyJU/88"
39 | Content-Security-Policy:
40 | - 'default-src ''self'' data: ; script-src ''self'' data: developers.google.com
41 | www.google.com www.gstatic.com https://*.hsforms.net https://*.hsforms.com;
42 | style-src ''self'' ''unsafe-inline'' fonts.googleapis.com www.google.com;
43 | img-src * data: ; font-src ''self'' fonts.gstatic.com; child-src ''self'';
44 | frame-src https://www.google.com/recaptcha/ https://*.hsforms.net https://*.hsforms.com;
45 | form-action ''self'' https://*.hsforms.com; upgrade-insecure-requests; connect-src
46 | ''self'' https://*.hsforms.com'
47 | Referrer-Policy:
48 | - unsafe-url
49 | Strict-Transport-Security:
50 | - max-age=63072000; includeSubdomains; preload
51 | X-Content-Type-Options:
52 | - nosniff
53 | X-Frame-Options:
54 | - DENY
55 | X-Xss-Protection:
56 | - 1; mode=block
57 | X-Proxy-Cache:
58 | - MISS
59 | X-Robots-Tag:
60 | - all
61 | body:
62 | encoding: ASCII-8BIT
63 | string: |-
64 | {
65 | "results": [],
66 | "total": 0,
67 | "took": 376,
68 | "has_more": false
69 | }
70 | recorded_at: Fri, 03 Dec 2021 23:32:07 GMT
71 | recorded_with: VCR 6.0.0
72 |
--------------------------------------------------------------------------------
/lib/urlscan/clients/base.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require "net/https"
4 | require "json"
5 |
6 | module UrlScan
7 | module Clients
8 | class Base
9 | VERSION = 1
10 | HOST = "urlscan.io"
11 |
12 | attr_reader :key
13 |
14 | def initialize(key = ENV["URLSCAN_API_KEY"])
15 | @key = key
16 | end
17 |
18 | private
19 |
20 | def url
21 | @url ||= "https://#{HOST}/api/v#{VERSION}"
22 | end
23 |
24 | def url_for(path)
25 | URI(url + path)
26 | end
27 |
28 | def https_options
29 | if proxy = ENV["HTTPS_PROXY"]
30 | uri = URI(proxy)
31 | {
32 | proxy_address: uri.hostname,
33 | proxy_port: uri.port,
34 | proxy_from_env: false,
35 | use_ssl: true
36 | }
37 | else
38 | { use_ssl: true }
39 | end
40 | end
41 |
42 | def request(req)
43 | Net::HTTP.start(HOST, 443, https_options) do |http|
44 | response = http.request(req)
45 |
46 | case response.code
47 | when "200"
48 | if response["Content-Type"].to_s.include? "application/json"
49 | yield JSON.parse(response.body)
50 | else
51 | yield response.body
52 | end
53 | when "400" then raise ProcessingError, response.body
54 | when "401" then raise AuthenticationError, response.body
55 | when "404" then raise NotFound, response.body
56 | when "429" then raise RateLimited, response.body
57 | when "500" then raise InternalServerError, response.body
58 | else
59 | raise ResponseError, response.body
60 | end
61 | end
62 | end
63 |
64 | def default_headers
65 | @default_headers ||= { "API-KEY": key }.compact
66 | end
67 |
68 | def get(path, params = {}, &block)
69 | uri = url_for(path)
70 | uri.query = URI.encode_www_form(params)
71 |
72 | get = Net::HTTP::Get.new(uri, default_headers)
73 | request(get, &block)
74 | end
75 |
76 | def post(path, json, &block)
77 | post = Net::HTTP::Post.new(url_for(path), default_headers)
78 | post.content_type = "application/json"
79 | post.body = json.to_json
80 |
81 | request(post, &block)
82 | end
83 | end
84 | end
85 | end
86 |
--------------------------------------------------------------------------------
/spec/fixtures/vcr_cassettes/UrlScan_API/_submit/1_1_1.yml:
--------------------------------------------------------------------------------
1 | ---
2 | http_interactions:
3 | - request:
4 | method: post
5 | uri: https://urlscan.io/api/v1/scan/
6 | body:
7 | encoding: UTF-8
8 | string: '{"url":"https://www.wikipedia.org/"}'
9 | headers:
10 | Api-Key:
11 | - ""
12 | Accept-Encoding:
13 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14 | Accept:
15 | - "*/*"
16 | User-Agent:
17 | - Ruby
18 | Host:
19 | - urlscan.io
20 | Content-Type:
21 | - application/json
22 | response:
23 | status:
24 | code: 200
25 | message: OK
26 | headers:
27 | Server:
28 | - nginx
29 | Date:
30 | - Fri, 03 Dec 2021 23:52:41 GMT
31 | Content-Type:
32 | - application/json; charset=utf-8
33 | Transfer-Encoding:
34 | - chunked
35 | Connection:
36 | - keep-alive
37 | X-User-Country:
38 | - JP
39 | X-Rate-Limit-Scope:
40 | - user
41 | X-Rate-Limit-Action:
42 | - private
43 | X-Rate-Limit-Window:
44 | - minute
45 | X-Rate-Limit-Limit:
46 | - '120'
47 | X-Rate-Limit-Remaining:
48 | - '119'
49 | X-Rate-Limit-Reset:
50 | - '2021-12-03T23:53:00.000Z'
51 | X-Rate-Limit-Reset-After:
52 | - '17'
53 | Vary:
54 | - Accept
55 | Etag:
56 | - W/"162-PdXKj68yCSJ2qku9oQSk1CfaLPk"
57 | Content-Security-Policy:
58 | - 'default-src ''self'' data: ; script-src ''self'' data: developers.google.com
59 | www.google.com www.gstatic.com https://*.hsforms.net https://*.hsforms.com;
60 | style-src ''self'' ''unsafe-inline'' fonts.googleapis.com www.google.com;
61 | img-src * data: ; font-src ''self'' fonts.gstatic.com; child-src ''self'';
62 | frame-src https://www.google.com/recaptcha/ https://*.hsforms.net https://*.hsforms.com;
63 | form-action ''self'' https://*.hsforms.com; upgrade-insecure-requests; connect-src
64 | ''self'' https://*.hsforms.com'
65 | Referrer-Policy:
66 | - unsafe-url
67 | Strict-Transport-Security:
68 | - max-age=63072000; includeSubdomains; preload
69 | X-Content-Type-Options:
70 | - nosniff
71 | X-Frame-Options:
72 | - DENY
73 | X-Xss-Protection:
74 | - 1; mode=block
75 | X-Robots-Tag:
76 | - all
77 | body:
78 | encoding: ASCII-8BIT
79 | string: |-
80 | {
81 | "message": "Submission successful",
82 | "uuid": "df6f3755-af72-4d2b-a084-cbe3992d824d",
83 | "result": "https://urlscan.io/result/df6f3755-af72-4d2b-a084-cbe3992d824d/",
84 | "api": "https://urlscan.io/api/v1/result/df6f3755-af72-4d2b-a084-cbe3992d824d/",
85 | "visibility": "private",
86 | "options": {},
87 | "url": "https://www.wikipedia.org/",
88 | "country": "jp"
89 | }
90 | recorded_at: Fri, 03 Dec 2021 23:52:40 GMT
91 | recorded_with: VCR 6.0.0
92 |
--------------------------------------------------------------------------------
/spec/fixtures/vcr_cassettes/UrlScan_API/_submit/1_1_2.yml:
--------------------------------------------------------------------------------
1 | ---
2 | http_interactions:
3 | - request:
4 | method: post
5 | uri: https://urlscan.io/api/v1/scan/
6 | body:
7 | encoding: UTF-8
8 | string: '{"url":"https://www.wikipedia.org/","visibility":"private"}'
9 | headers:
10 | Api-Key:
11 | - ""
12 | Accept-Encoding:
13 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14 | Accept:
15 | - "*/*"
16 | User-Agent:
17 | - Ruby
18 | Host:
19 | - urlscan.io
20 | Content-Type:
21 | - application/json
22 | response:
23 | status:
24 | code: 200
25 | message: OK
26 | headers:
27 | Server:
28 | - nginx
29 | Date:
30 | - Fri, 03 Dec 2021 23:52:40 GMT
31 | Content-Type:
32 | - application/json; charset=utf-8
33 | Transfer-Encoding:
34 | - chunked
35 | Connection:
36 | - keep-alive
37 | X-User-Country:
38 | - JP
39 | X-Rate-Limit-Scope:
40 | - user
41 | X-Rate-Limit-Action:
42 | - private
43 | X-Rate-Limit-Window:
44 | - day
45 | X-Rate-Limit-Limit:
46 | - '20000'
47 | X-Rate-Limit-Remaining:
48 | - '19996'
49 | X-Rate-Limit-Reset:
50 | - '2021-12-04T00:00:00.000Z'
51 | X-Rate-Limit-Reset-After:
52 | - '438'
53 | Vary:
54 | - Accept
55 | Etag:
56 | - W/"162-bAq7gZ0093N9Hn6AKUXNbQZ7Vjs"
57 | Content-Security-Policy:
58 | - 'default-src ''self'' data: ; script-src ''self'' data: developers.google.com
59 | www.google.com www.gstatic.com https://*.hsforms.net https://*.hsforms.com;
60 | style-src ''self'' ''unsafe-inline'' fonts.googleapis.com www.google.com;
61 | img-src * data: ; font-src ''self'' fonts.gstatic.com; child-src ''self'';
62 | frame-src https://www.google.com/recaptcha/ https://*.hsforms.net https://*.hsforms.com;
63 | form-action ''self'' https://*.hsforms.com; upgrade-insecure-requests; connect-src
64 | ''self'' https://*.hsforms.com'
65 | Referrer-Policy:
66 | - unsafe-url
67 | Strict-Transport-Security:
68 | - max-age=63072000; includeSubdomains; preload
69 | X-Content-Type-Options:
70 | - nosniff
71 | X-Frame-Options:
72 | - DENY
73 | X-Xss-Protection:
74 | - 1; mode=block
75 | X-Robots-Tag:
76 | - all
77 | body:
78 | encoding: ASCII-8BIT
79 | string: |-
80 | {
81 | "message": "Submission successful",
82 | "uuid": "5ff429a5-b4d3-4868-b5fc-e49895798943",
83 | "result": "https://urlscan.io/result/5ff429a5-b4d3-4868-b5fc-e49895798943/",
84 | "api": "https://urlscan.io/api/v1/result/5ff429a5-b4d3-4868-b5fc-e49895798943/",
85 | "visibility": "private",
86 | "options": {},
87 | "url": "https://www.wikipedia.org/",
88 | "country": "jp"
89 | }
90 | recorded_at: Fri, 03 Dec 2021 23:52:39 GMT
91 | recorded_with: VCR 6.0.0
92 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # urlscan
2 |
3 | [](https://badge.fury.io/rb/urlscan)
4 | [](https://github.com/ninoseki/urlscan/actions/workflows/test.yml)
5 | [](https://codeclimate.com/github/ninoseki/urlscan/maintainability)
6 | [](https://coveralls.io/github/ninoseki/urlscan?branch=master)
7 |
8 | ## Description
9 |
10 | [urlscan.io](https://urlscan.io/) API wrapper for Ruby.
11 |
12 | ## Installation
13 |
14 | ```bash
15 | gem install urlscan
16 | ```
17 |
18 | ## API usage
19 |
20 | ```ruby
21 | require "urlscan"
22 |
23 | # when given nothing, it tries to load your API key from ENV["URLSCAN_API_KEY"]
24 | api = UrlScan::API.new
25 | # or you can set it manually
26 | api = UrlScan::API.new(api_key)
27 |
28 | # Submit a URL to scan
29 | res = api.submit("https://wikipedia.org")
30 |
31 | # Get a scan result
32 | res = api.result("ac04bc14-4efe-439d-b356-8384843daf75")
33 |
34 | # Get a DOM
35 | res = api.dom("ac04bc14-4efe-439d-b356-8384843daf75")
36 |
37 | # Search
38 | res = api.search("wikipedia.org")
39 | ```
40 |
41 | ## Supported API endpoints
42 |
43 | | HTTP Method | URI | API method |
44 | |-------------|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
45 | | POST | /scan | `UrlScan::Clients::Community#submit(url, customagent: nil, referer: nil, visibility: nil, tags: nil, override_safety: nil, country: nil))` |
46 | | GET | /result/`uuid`/ | `UrlScan::Clients::Community#result(uuid)` |
47 | | GET | /dom/`uuid`/ | `UrlScan::Clients::Community#dom(uuid)` |
48 | | GET | /screenshots/`uuid`.png | `UrlScan::Clients::Community#screenshot(uuid)` |
49 | | GET | /search | `UrlScan::Clients::Community#search(q, size: 100, search_after: nil)` |
50 |
51 | ### Pro
52 |
53 | | HTTP Method | URI | API method |
54 | |-------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
55 | | GET | /brands | `UrlScan::Clients::Pro#brands` |
56 | | GET | /kits | `UrlScan::Clients::Pro#kits` |
57 | | GET | /phishfeed | `UrlScan::Clients::Pro#phishfeed(q: "result.task.time:>now-24h", format: "json", limit: ni)` |
58 | | GET | /result/`uuid`/similar/ | `UrlScan::Clients::Pro#similar(uuid, q: nil, size: nil, search_after: nil, threshold: nil, min_size: nil, method: nil, resource_types: nil))` |
59 |
60 | ## CLI usage
61 |
62 | ```bash
63 | $ urlscan
64 | Commands:
65 | urlscan dom [UUID] # get the DOM of a scan using the scan id [UUID]
66 | urlscan help [COMMAND] # Describe available commands or one specific command
67 | urlscan result [UUID] # get the result of a scan using the scan id [UUID]
68 | urlscan screenshot [UUID] # get the screenshot(image/png) of a scan using the scan id [UUID]
69 | urlscan search [QUERY] # search for scans by [QUERY]
70 | urlscan submit [URL] # submit a scan to [URL]
71 |
72 | Options:
73 | [--API-KEY=API_KEY]
74 |
75 | ```
76 |
--------------------------------------------------------------------------------
/.rubocop.yml:
--------------------------------------------------------------------------------
1 | # Relaxed.Ruby.Style
2 | ## Version 2.2
3 |
4 | require:
5 | - rubocop-performance
6 | - rubocop-rspec
7 |
8 | AllCops:
9 | TargetRubyVersion: 2.6
10 |
11 | Style/Alias:
12 | Enabled: false
13 | StyleGuide: https://relaxed.ruby.style/#stylealias
14 |
15 | Style/AsciiComments:
16 | Enabled: false
17 | StyleGuide: https://relaxed.ruby.style/#styleasciicomments
18 |
19 | Style/BeginBlock:
20 | Enabled: false
21 | StyleGuide: https://relaxed.ruby.style/#stylebeginblock
22 |
23 | Style/BlockDelimiters:
24 | Enabled: false
25 | StyleGuide: https://relaxed.ruby.style/#styleblockdelimiters
26 |
27 | Style/CommentAnnotation:
28 | Enabled: false
29 | StyleGuide: https://relaxed.ruby.style/#stylecommentannotation
30 |
31 | Style/Documentation:
32 | Enabled: false
33 | StyleGuide: https://relaxed.ruby.style/#styledocumentation
34 |
35 | Layout/DotPosition:
36 | Enabled: false
37 | StyleGuide: https://relaxed.ruby.style/#layoutdotposition
38 |
39 | Style/DoubleNegation:
40 | Enabled: false
41 | StyleGuide: https://relaxed.ruby.style/#styledoublenegation
42 |
43 | Style/EndBlock:
44 | Enabled: false
45 | StyleGuide: https://relaxed.ruby.style/#styleendblock
46 |
47 | Style/FormatString:
48 | Enabled: false
49 | StyleGuide: https://relaxed.ruby.style/#styleformatstring
50 |
51 | Style/IfUnlessModifier:
52 | Enabled: false
53 | StyleGuide: https://relaxed.ruby.style/#styleifunlessmodifier
54 |
55 | Style/Lambda:
56 | Enabled: false
57 | StyleGuide: https://relaxed.ruby.style/#stylelambda
58 |
59 | Style/ModuleFunction:
60 | Enabled: false
61 | StyleGuide: https://relaxed.ruby.style/#stylemodulefunction
62 |
63 | Style/MultilineBlockChain:
64 | Enabled: false
65 | StyleGuide: https://relaxed.ruby.style/#stylemultilineblockchain
66 |
67 | Style/NegatedIf:
68 | Enabled: false
69 | StyleGuide: https://relaxed.ruby.style/#stylenegatedif
70 |
71 | Style/NegatedWhile:
72 | Enabled: false
73 | StyleGuide: https://relaxed.ruby.style/#stylenegatedwhile
74 |
75 | Style/ParallelAssignment:
76 | Enabled: false
77 | StyleGuide: https://relaxed.ruby.style/#styleparallelassignment
78 |
79 | Style/PercentLiteralDelimiters:
80 | Enabled: false
81 | StyleGuide: https://relaxed.ruby.style/#stylepercentliteraldelimiters
82 |
83 | Style/PerlBackrefs:
84 | Enabled: false
85 | StyleGuide: https://relaxed.ruby.style/#styleperlbackrefs
86 |
87 | Style/Semicolon:
88 | Enabled: false
89 | StyleGuide: https://relaxed.ruby.style/#stylesemicolon
90 |
91 | Style/SignalException:
92 | Enabled: false
93 | StyleGuide: https://relaxed.ruby.style/#stylesignalexception
94 |
95 | Style/SingleLineBlockParams:
96 | Enabled: false
97 | StyleGuide: https://relaxed.ruby.style/#stylesinglelineblockparams
98 |
99 | Style/SingleLineMethods:
100 | Enabled: false
101 | StyleGuide: https://relaxed.ruby.style/#stylesinglelinemethods
102 |
103 | Layout/SpaceBeforeBlockBraces:
104 | Enabled: false
105 | StyleGuide: https://relaxed.ruby.style/#layoutspacebeforeblockbraces
106 |
107 | Layout/SpaceInsideParens:
108 | Enabled: false
109 | StyleGuide: https://relaxed.ruby.style/#layoutspaceinsideparens
110 |
111 | Style/SpecialGlobalVars:
112 | Enabled: false
113 | StyleGuide: https://relaxed.ruby.style/#stylespecialglobalvars
114 |
115 | Style/StringLiterals:
116 | Enabled: false
117 | StyleGuide: https://relaxed.ruby.style/#stylestringliterals
118 |
119 | Style/TrailingCommaInArguments:
120 | Enabled: false
121 | StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarguments
122 |
123 | Style/TrailingCommaInArrayLiteral:
124 | Enabled: false
125 | StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarrayliteral
126 |
127 | Style/TrailingCommaInHashLiteral:
128 | Enabled: false
129 | StyleGuide: https://relaxed.ruby.style/#styletrailingcommainhashliteral
130 |
131 | Style/SymbolArray:
132 | Enabled: false
133 | StyleGuide: http://relaxed.ruby.style/#stylesymbolarray
134 |
135 | Style/WhileUntilModifier:
136 | Enabled: false
137 | StyleGuide: https://relaxed.ruby.style/#stylewhileuntilmodifier
138 |
139 | Style/WordArray:
140 | Enabled: false
141 | StyleGuide: https://relaxed.ruby.style/#stylewordarray
142 |
143 | Lint/AmbiguousRegexpLiteral:
144 | Enabled: false
145 | StyleGuide: https://relaxed.ruby.style/#lintambiguousregexpliteral
146 |
147 | Lint/AssignmentInCondition:
148 | Enabled: false
149 | StyleGuide: https://relaxed.ruby.style/#lintassignmentincondition
150 |
151 | Metrics/AbcSize:
152 | Enabled: false
153 |
154 | Metrics/BlockNesting:
155 | Enabled: false
156 |
157 | Metrics/ClassLength:
158 | Enabled: false
159 |
160 | Metrics/ModuleLength:
161 | Enabled: false
162 |
163 | Metrics/CyclomaticComplexity:
164 | Enabled: false
165 |
166 | Metrics/LineLength:
167 | Enabled: false
168 |
169 | Metrics/MethodLength:
170 | Enabled: false
171 |
172 | Metrics/ParameterLists:
173 | Enabled: false
174 |
175 | Metrics/PerceivedComplexity:
176 | Enabled: false
177 |
--------------------------------------------------------------------------------
/spec/fixtures/vcr_cassettes/UrlScan_API/_result/1_5_1.yml:
--------------------------------------------------------------------------------
1 | ---
2 | http_interactions:
3 | - request:
4 | method: get
5 | uri: https://urlscan.io/api/v1/screenshots/7f0aa2ab-748a-4cae-b648-71e324e836cd.png
6 | body:
7 | encoding: US-ASCII
8 | string: ''
9 | headers:
10 | Accept-Encoding:
11 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12 | Accept:
13 | - "*/*"
14 | User-Agent:
15 | - Ruby
16 | Host:
17 | - urlscan.io
18 | response:
19 | status:
20 | code: 200
21 | message: OK
22 | headers:
23 | Server:
24 | - nginx
25 | Date:
26 | - Sun, 18 Aug 2019 10:40:41 GMT
27 | Content-Type:
28 | - image/png
29 | Content-Length:
30 | - '4761'
31 | Last-Modified:
32 | - Mon, 12 Aug 2019 18:06:46 GMT
33 | Connection:
34 | - keep-alive
35 | Etag:
36 | - '"5d51aab6-1299"'
37 | Expires:
38 | - Mon, 19 Aug 2019 10:40:41 GMT
39 | Cache-Control:
40 | - max-age=86400
41 | - public, must-revalidate, proxy-revalidate
42 | Accept-Ranges:
43 | - bytes
44 | body:
45 | encoding: ASCII-8BIT
46 | string: !binary |-
47 | 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
48 | http_version:
49 | recorded_at: Sun, 18 Aug 2019 10:40:39 GMT
50 | recorded_with: VCR 5.0.0
51 |
--------------------------------------------------------------------------------
/spec/fixtures/vcr_cassettes/UrlScan_API/_screenshot/1_5_1.yml:
--------------------------------------------------------------------------------
1 | ---
2 | http_interactions:
3 | - request:
4 | method: get
5 | uri: https://urlscan.io/api/v1/screenshots/7f0aa2ab-748a-4cae-b648-71e324e836cd.png
6 | body:
7 | encoding: US-ASCII
8 | string: ''
9 | headers:
10 | Accept-Encoding:
11 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12 | Accept:
13 | - "*/*"
14 | User-Agent:
15 | - Ruby
16 | Host:
17 | - urlscan.io
18 | response:
19 | status:
20 | code: 200
21 | message: OK
22 | headers:
23 | Server:
24 | - nginx
25 | Date:
26 | - Sun, 18 Aug 2019 10:33:34 GMT
27 | Content-Type:
28 | - image/png
29 | Content-Length:
30 | - '4761'
31 | Last-Modified:
32 | - Mon, 12 Aug 2019 18:06:46 GMT
33 | Connection:
34 | - keep-alive
35 | Etag:
36 | - '"5d51aab6-1299"'
37 | Expires:
38 | - Mon, 19 Aug 2019 10:33:34 GMT
39 | Cache-Control:
40 | - max-age=86400
41 | - public, must-revalidate, proxy-revalidate
42 | Accept-Ranges:
43 | - bytes
44 | body:
45 | encoding: ASCII-8BIT
46 | string: !binary |-
47 | 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
48 | http_version:
49 | recorded_at: Sun, 18 Aug 2019 10:33:32 GMT
50 | recorded_with: VCR 5.0.0
51 |
--------------------------------------------------------------------------------
/spec/fixtures/vcr_cassettes/UrlScan_API/_dom/1_4_1.yml:
--------------------------------------------------------------------------------
1 | ---
2 | http_interactions:
3 | - request:
4 | method: get
5 | uri: https://urlscan.io/api/v1/dom/7f0aa2ab-748a-4cae-b648-71e324e836cd/
6 | body:
7 | encoding: US-ASCII
8 | string: ''
9 | headers:
10 | Accept-Encoding:
11 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12 | Accept:
13 | - "*/*"
14 | User-Agent:
15 | - Ruby
16 | Host:
17 | - urlscan.io
18 | response:
19 | status:
20 | code: 200
21 | message: OK
22 | headers:
23 | Server:
24 | - nginx
25 | Date:
26 | - Wed, 24 Jul 2019 06:37:01 GMT
27 | Content-Length:
28 | - '18430'
29 | Connection:
30 | - keep-alive
31 | Last-Modified:
32 | - Tue, 16 Jan 2018 05:48:13 GMT
33 | Etag:
34 | - '"47fe-562de46d0148f"'
35 | Accept-Ranges:
36 | - bytes
37 | Content-Type:
38 | - text/plain
39 | body:
40 | encoding: ASCII-8BIT
41 | string: !binary |-
42 | PGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHRpdGxlPldpa2lwZWRpYTwvdGl0bGU+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJXaWtpcGVkaWEgaXMgYSBmcmVlIG9ubGluZSBlbmN5Y2xvcGVkaWEsIGNyZWF0ZWQgYW5kIGVkaXRlZCBieSB2b2x1bnRlZXJzIGFyb3VuZCB0aGUgd29ybGQgYW5kIGhvc3RlZCBieSB0aGUgV2lraW1lZGlhIEZvdW5kYXRpb24uIj4KPCEtLVtpZiBndCBJRSA3XS0tPgo8c2NyaXB0Pgpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCAvKF58XHMpbm8tanMoXHN8JCkvLCAiJDFqcy1lbmFibGVkJDIiICk7Cjwvc2NyaXB0Pgo8IS0tW2VuZGlmXS0tPgo8IS0tW2lmIGx0IElFIDddPjxtZXRhIGh0dHAtZXF1aXY9ImltYWdldG9vbGJhciIgY29udGVudD0ibm8iPjwhW2VuZGlmXS0tPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLHVzZXItc2NhbGFibGU9eWVzIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvc3RhdGljL2FwcGxlLXRvdWNoL3dpa2lwZWRpYS5wbmciPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9zdGF0aWMvZmF2aWNvbi93aWtpcGVkaWEuaWNvIj4KPGxpbmsgcmVsPSJsaWNlbnNlIiBocmVmPSIvL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLyI+CjxzdHlsZT4KLnNwcml0ZXtiYWNrZ3JvdW5kLWltYWdlOnVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL3Nwcml0ZS02ZTM1ZjQ2NC5wbmcpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LHRyYW5zcGFyZW50KSx1cmwocG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9zcHJpdGUtNmUzNWY0NjQuc3ZnKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zdmctQ29tbW9ucy1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDt3aWR0aDo0N3B4O2hlaWdodDo0N3B4fS5zdmctTWVkaWFXaWtpLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtNDdweDt3aWR0aDo0MnB4O2hlaWdodDo0MnB4fS5zdmctTWV0YS1XaWtpLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtODlweDt3aWR0aDozN3B4O2hlaWdodDozN3B4fS5zdmctV2lraWJvb2tzLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTI2cHg7d2lkdGg6MzdweDtoZWlnaHQ6MzdweH0uc3ZnLVdpa2lkYXRhLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTYzcHg7d2lkdGg6NDlweDtoZWlnaHQ6NDlweH0uc3ZnLVdpa2ltZWRpYS1sb2dvX2JsYWNre2JhY2tncm91bmQtcG9zaXRpb246MCAtMjEycHg7d2lkdGg6NDJweDtoZWlnaHQ6NDJweH0uc3ZnLVdpa2lwZWRpYV93b3JkbWFya3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTI1NHB4O3dpZHRoOjE3NnB4O2hlaWdodDozMnB4fS5zdmctV2lraXF1b3RlLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtMjg2cHg7d2lkdGg6NDJweDtoZWlnaHQ6NDJweH0uc3ZnLVdpa2lzb3VyY2UtbG9nb19zaXN0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMjhweDt3aWR0aDozOXB4O2hlaWdodDozOXB4fS5zdmctV2lraXNwZWNpZXMtbG9nb19zaXN0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zNjdweDt3aWR0aDo0MnB4O2hlaWdodDo0MnB4fS5zdmctV2lraXZlcnNpdHktbG9nb19zaXN0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC00MDlweDt3aWR0aDo0M3B4O2hlaWdodDozN3B4fS5zdmctV2lraXZveWFnZS1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTQ0NnB4O3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9LnN2Zy1XaWt0aW9uYXJ5LWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtNDgycHg7d2lkdGg6MzdweDtoZWlnaHQ6MzdweH0uc3ZnLWFycm93LWRvd257YmFja2dyb3VuZC1wb3NpdGlvbjowIC01MTlweDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LnN2Zy1hcnJvdy1kb3duLWJsdWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC01MjdweDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LnN2Zy1ub2ltYWdle2JhY2tncm91bmQtcG9zaXRpb246MCAtNTM1cHg7d2lkdGg6NThweDtoZWlnaHQ6NThweH0uc3ZnLXNlYXJjaC1pY29ue2JhY2tncm91bmQtcG9zaXRpb246MCAtNTkzcHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweH0uc3ZnLXRyYW5zbGF0ZS1pY29ue2JhY2tncm91bmQtcG9zaXRpb246MCAtNjE1cHg7d2lkdGg6MjVweDtoZWlnaHQ6MThweH0uc3ZnLXdpa2lwZWRpYV9hcHBfdGlsZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTYzM3B4O3dpZHRoOjQycHg7aGVpZ2h0OjQycHh9Cjwvc3R5bGU+CjxzdHlsZT4KLyohClB1cmUgdjAuNi4xLXByZQpDb3B5cmlnaHQgMjAxNCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2UuCmh0dHBzOi8vZ2l0aHViLmNvbS95YWhvby9wdXJlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQKKi8vKiEKbm9ybWFsaXplLmNzcyB2XjMuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZQpDb3B5cmlnaHQgKGMpIE5pY29sYXMgR2FsbGFnaGVyIGFuZCBKb25hdGhhbiBOZWFsCiovLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL2h0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlO2ZvbnQtc2l6ZTo2Mi41JX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfVtoaWRkZW5dLHRlbXBsYXRle2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OjcwMH1kZm57Zm9udC1zdHlsZTppdGFsaWN9aDF7Zm9udC1zaXplOjMycHg7Zm9udC1zaXplOjMuMnJlbTttYXJnaW46MTAuN3B4IDA7bWFyZ2luOjEuMDdyZW0gMH1tYXJre2JhY2tncm91bmQ6I2ZjMztjb2xvcjojMDAwfXNtYWxse2ZvbnQtc2l6ZTo4NSV9c3ViLHN1cHtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vwe3RvcDotLjVlbX1zdWJ7Ym90dG9tOi0uMjVlbX1pbWd7Ym9yZGVyOjB9c3ZnOm5vdCg6cm9vdCl7b3ZlcmZsb3c6aGlkZGVufWZpZ3VyZXttYXJnaW46MTZweCA0MHB4O21hcmdpbjoxLjZyZW0gNHJlbX1ocnstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjB9cHJle292ZXJmbG93OmF1dG99Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MTRweDtmb250LXNpemU6MS40cmVtfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Y29sb3I6aW5oZXJpdDtmb250OmluaGVyaXQ7bWFyZ2luOjB9YnV0dG9ue292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIGlucHV0W3R5cGU9YnV0dG9uXSxpbnB1dFt0eXBlPXJlc2V0XSxpbnB1dFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJzb3I6cG9pbnRlcn1idXR0b25bZGlzYWJsZWRdLGh0bWwgaW5wdXRbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MDtwYWRkaW5nOjB9aW5wdXR7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9dey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9aW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fWlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9aW5wdXRbdHlwZT1zZWFyY2hdOmZvY3Vze291dGxpbmUtb2Zmc2V0Oi0ycHh9ZmllbGRzZXR7Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXI7bWFyZ2luOjAgMnB4O21hcmdpbjowIC4ycmVtO3BhZGRpbmc6NS42cHggMTBweCAxMnB4O3BhZGRpbmc6LjU2cmVtIDFyZW0gMS4ycmVtfWxlZ2VuZHtib3JkZXI6MDtwYWRkaW5nOjB9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31vcHRncm91cHtmb250LXdlaWdodDo3MDB9dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9dGQsdGh7cGFkZGluZzowfS5oaWRkZW4sW2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1ib2R5e2JhY2tncm91bmQtY29sb3I6I2ZmZjtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZToxLjNyZW07bGluZS1oZWlnaHQ6MS41O21hcmdpbjozLjlweCAwO21hcmdpbjouMzlyZW0gMH1hey1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259YSxhOmFjdGl2ZSxhOmZvY3Vze3VuaWNvZGUtYmlkaTplbWJlZDtvdXRsaW5lOjA7Y29sb3I6IzM2Yzt0ZXh0LWRlY29yYXRpb246bm9uZX1hOmZvY3Vze291dGxpbmU6MXB4IHNvbGlkICMzNmN9YTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWltZ3tib3JkZXI6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9aHJ7Y2xlYXI6Ym90aDtoZWlnaHQ6MDtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzhjY2QxO21hcmdpbjoyLjZweCAxM3B4O21hcmdpbjouMjZyZW0gMS4zcmVtfS8qIQpQdXJlIHYwLjYuMS1wcmUKQ29weXJpZ2h0IDIwMTQgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KTGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLgpodHRwczovL2dpdGh1Yi5jb20veWFob28vcHVyZS9ibG9iL21hc3Rlci9MSUNFTlNFLm1kCiovLnB1cmUtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3pvb206MTtsaW5lLWhlaWdodDpub3JtYWw7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7Y29sb3I6IzIyMjtwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjE5LjJweDttaW4taGVpZ2h0OjEuOTJyZW07bWluLXdpZHRoOjE2cHg7bWluLXdpZHRoOjEuNnJlbTttYXJnaW46MS42cHggMDttYXJnaW46LjE2cmVtIDA7Ym9yZGVyOjFweCBzb2xpZCAjYTJhOWIxOy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzo4cHggMTZweDtwYWRkaW5nOi44cmVtIDEuNnJlbTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGVhc2UsY29sb3IgLjFzIGVhc2UsYm9yZGVyLWNvbG9yIC4xcyBlYXNlLC13ZWJraXQtYm94LXNoYWRvdyAuMXMgZWFzZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGVhc2UsY29sb3IgLjFzIGVhc2UsYm9yZGVyLWNvbG9yIC4xcyBlYXNlLC13ZWJraXQtYm94LXNoYWRvdyAuMXMgZWFzZTstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZCAuMXMgZWFzZSxjb2xvciAuMXMgZWFzZSxib3JkZXItY29sb3IgLjFzIGVhc2UsYm94LXNoYWRvdyAuMXMgZWFzZSwtbW96LWJveC1zaGFkb3cgLjFzIGVhc2U7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xcyBlYXNlLGNvbG9yIC4xcyBlYXNlLGJvcmRlci1jb2xvciAuMXMgZWFzZSxib3gtc2hhZG93IC4xcyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMXMgZWFzZSxjb2xvciAuMXMgZWFzZSxib3JkZXItY29sb3IgLjFzIGVhc2UsYm94LXNoYWRvdyAuMXMgZWFzZSwtd2Via2l0LWJveC1zaGFkb3cgLjFzIGVhc2UsLW1vei1ib3gtc2hhZG93IC4xcyBlYXNlfS5wdXJlLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntwYWRkaW5nOjA7Ym9yZGVyOjB9LnB1cmUtYnV0dG9uLWhvdmVyLC5wdXJlLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNhMmE5YjE7Y29sb3I6IzQ0NH0ucHVyZS1idXR0b24tYWN0aXZlLC5wdXJlLWJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYzhjY2QxO2JvcmRlci1jb2xvcjojNzI3NzdkO2NvbG9yOiMwMDB9LnB1cmUtYnV0dG9uOmZvY3Vze291dGxpbmU6MDtib3JkZXItY29sb3I6IzM2Yzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmM7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmN9LnB1cmUtYnV0dG9uLXByaW1hcnktcHJvZ3Jlc3NpdmV7YmFja2dyb3VuZC1jb2xvcjojMzZjO2JvcmRlci1jb2xvcjojMzZjO2NvbG9yOiNmZmZ9LnB1cmUtYnV0dG9uLXByaW1hcnktcHJvZ3Jlc3NpdmU6aG92ZXJ7YmFja2dyb3VuZDojNDQ3ZmY1O2JvcmRlci1jb2xvcjojNDQ3ZmY1fS5wdXJlLWJ1dHRvbi1wcmltYXJ5LXByb2dyZXNzaXZlOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMyYTRiOGQ7Ym9yZGVyLWNvbG9yOiMyYTRiOGQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LnB1cmUtYnV0dG9uLXByaW1hcnktcHJvZ3Jlc3NpdmU6Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjLGluc2V0IDAgMCAwIDJweCAjZmZmOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggIzM2YyxpbnNldCAwIDAgMCAycHggI2ZmZjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjLGluc2V0IDAgMCAwIDJweCAjZmZmO2JvcmRlci1jb2xvcjojMzZjfS8qIQpQdXJlIHYwLjYuMS1wcmUKQ29weXJpZ2h0IDIwMTQgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KTGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLgpodHRwczovL2dpdGh1Yi5jb20veWFob28vcHVyZS9ibG9iL21hc3Rlci9MSUNFTlNFLm1kCiovLnB1cmUtZm9ybSBpbnB1dFt0eXBlPXNlYXJjaF17YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkICNhMmE5YjE7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjhweDtwYWRkaW5nOi44cmVtOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZjstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmY7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnB1cmUtZm9ybSBpbnB1dDpmb2N1czppbnZhbGlke2NvbG9yOiNiMzI0MjQ7Ym9yZGVyLWNvbG9yOiNkMzN9LnB1cmUtZm9ybSBmaWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjUuNnB4IDAgMTJweDtwYWRkaW5nOi41NnJlbSAwIDEuMnJlbTtib3JkZXI6MH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5wdXJlLWZvcm0gaW5wdXRbdHlwZT1zZWFyY2hde21hcmdpbi1ib3R0b206NC44cHg7bWFyZ2luLWJvdHRvbTouNDhyZW07ZGlzcGxheTpibG9ja319LmNlbnRyYWwtdGV4dGxvZ297bWFyZ2luOjMwcHggMCAxNXB4IDA7bWFyZ2luOjNyZW0gMCAxLjVyZW0gMDtwYWRkaW5nOjEwcHggMDtwYWRkaW5nOjFyZW0gMDtmb250LWZhbWlseTonTGludXggTGliZXJ0aW5lJywnSG9lZmxlciBUZXh0JyxHZW9yZ2lhLCdUaW1lcyBOZXcgUm9tYW4nLFRpbWVzLHNlcmlmO2ZvbnQtc2l6ZTozMHB4O2ZvbnQtc2l6ZTozcmVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDozM3B4O2xpbmUtaGVpZ2h0OjMuM3JlbTt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczoic3MwNT0xIjstbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczoic3MwNSI7LXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6InNzMDUiOy1tcy1mb250LWZlYXR1cmUtc2V0dGluZ3M6InNzMDUiO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoic3MwNSJ9LmxvY2FsaXplZC1zbG9nYW57ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOi0yMHB4O21hcmdpbi1ib3R0b206LTJyZW07Zm9udC1mYW1pbHk6J0xpbnV4IExpYmVydGluZScsR2VvcmdpYSxUaW1lcyxzZXJpZjtmb250LXNpemU6MTZweDtmb250LXNpemU6MS42cmVtOy13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDstbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMH0uY2VudHJhbC10ZXh0bG9nb19faW1hZ2V7Y29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3RleHQtaW5kZW50Oi0xMDAwMHB4fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6NDgwcHgpey5jZW50cmFsLXRleHRsb2dve3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDo3MHB4O21hcmdpbjowO3BhZGRpbmc6MDtsaW5lLWhlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXJ9LmNlbnRyYWwtdGV4dGxvZ29fX2ltYWdle21hcmdpbi10b3A6OHB4O21hcmdpbi10b3A6LjhyZW19LmxvY2FsaXplZC1zbG9nYW57bWFyZ2luLWxlZnQ6MThweDttYXJnaW4tbGVmdDoxLjhyZW19fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6Mzc1cHgpey5jZW50cmFsLXRleHRsb2dve21hcmdpbi1sZWZ0OjUwcHh9fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpey5jZW50cmFsLXRleHRsb2dvX19pbWFnZXtoZWlnaHQ6YXV0b319LmNlbnRyYWwtZmVhdHVyZWR7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjMyNXB4O2hlaWdodDozMi41cmVtO3dpZHRoOjU0NnB4O3dpZHRoOjU0LjZyZW07bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNlbnRyYWwtZmVhdHVyZWQtbG9nby13cmFwcGVye2xpbmUtaGVpZ2h0OjMxMnB4O2xpbmUtaGVpZ2h0OjMxLjJyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jZW50cmFsLWZlYXR1cmVkLWxhbmd7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTU2cHg7d2lkdGg6MTUuNnJlbX0uY2VudHJhbC1mZWF0dXJlZC1sYW5nIC5saW5rLWJveHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MDt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWx9LmNlbnRyYWwtZmVhdHVyZWQtbGFuZyAubGluay1ib3g6aG92ZXIgc3Ryb25ne3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmNlbnRyYWwtZmVhdHVyZWQtbGFuZyBzdHJvbmd7ZGlzcGxheTpibG9jaztmb250LXNpemU6bGFyZ2VyfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgc21hbGx7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjExLjA0cHg7Zm9udC1zaXplOjEuMTA0cmVtO2xpbmUtaGVpZ2h0OjEwLjM2cHg7bGluZS1oZWlnaHQ6MS4wMzZyZW07Y29sb3I6IzU0NTk1ZH0uY2VudHJhbC1mZWF0dXJlZC1sYW5nIGVte2ZvbnQtc3R5bGU6aXRhbGljfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgLmVtTm9uSXRhbGljTGFuZ3tmb250LXN0eWxlOm5vcm1hbH0ubGFuZzF7dG9wOjA7cmlnaHQ6NjAlfS5sYW5nMnt0b3A6MDtsZWZ0OjYwJX0ubGFuZzN7dG9wOjIwJTtyaWdodDo3MCV9Lmxhbmc0e3RvcDoyMCU7bGVmdDo3MCV9Lmxhbmc1e3RvcDo0MCU7cmlnaHQ6NzIlfS5sYW5nNnt0b3A6NDAlO2xlZnQ6NzIlfS5sYW5nN3t0b3A6NjAlO3JpZ2h0OjcwJX0ubGFuZzh7dG9wOjYwJTtsZWZ0OjcwJX0ubGFuZzl7dG9wOjgwJTtyaWdodDo2MCV9LmxhbmcxMHt0b3A6ODAlO2xlZnQ6NjAlfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6NDgwcHgpey5jZW50cmFsLWZlYXR1cmVke3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luLXRvcDo0MS42cHg7bWFyZ2luLXRvcDo0LjE2cmVtO3BhZGRpbmctdG9wOjIwLjhweDtwYWRkaW5nLXRvcDoyLjA4cmVtO2ZvbnQtc2l6ZToxMC40cHg7Zm9udC1zaXplOjEuMDRyZW07dGV4dC1hbGlnbjpsZWZ0fS5jZW50cmFsLWZlYXR1cmVkOmFmdGVye2NvbnRlbnQ6JyAnO2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtoZWlnaHQ6MDtmb250LXNpemU6MH0uY2VudHJhbC1mZWF0dXJlZC1sb2dve3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNzBweDtsZWZ0OjguMzJweDtsZWZ0Oi44MzJyZW07d2lkdGg6NzBweDttYXJnaW4tdG9wOi00MS42cHg7bWFyZ2luLXRvcDotNC4xNnJlbX0uY2VudHJhbC1mZWF0dXJlZC1sYW5ne2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0bzstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjY0cHg7aGVpZ2h0OjYuNHJlbTt3aWR0aDozMyU7bWFyZ2luOjA7cGFkZGluZzowIDE2cHg7cGFkZGluZzowIDEuNnJlbTtmb250LXNpemU6MTIuOHB4O2ZvbnQtc2l6ZToxLjI4cmVtO3RleHQtYWxpZ246Y2VudGVyfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgc3Ryb25ne2ZvbnQtc2l6ZToxMi44cHg7Zm9udC1zaXplOjEuMjhyZW19LmNlbnRyYWwtZmVhdHVyZWQtbGFuZyBzbWFsbHtmb250LXNpemU6Ni44cHg7Zm9udC1zaXplOi42OHJlbTtsaW5lLWhlaWdodDoxMC4ycHg7bGluZS1oZWlnaHQ6MS4wMnJlbX19QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDozNzVweCl7LmNlbnRyYWwtZmVhdHVyZWQtbGFuZ3tmb250LXNpemU6MTEuMnB4O2ZvbnQtc2l6ZToxLjEycmVtfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgc21hbGx7Zm9udC1zaXplOjkuNnB4O2ZvbnQtc2l6ZTouOTZyZW07bGluZS1oZWlnaHQ6MTYuOHB4O2xpbmUtaGVpZ2h0OjEuNjhyZW19fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpey5jZW50cmFsLWZlYXR1cmVkLWxhbmd7d2lkdGg6MTAwJX19LnNlYXJjaC1jb250YWluZXJ7ZmxvYXQ6bm9uZTttYXgtd2lkdGg6OTUlO3dpZHRoOjU0MHB4O21hcmdpbjowIGF1dG8gMTkuNXB4IGF1dG87bWFyZ2luOjAgYXV0byAxLjk1cmVtIGF1dG87cGFkZGluZzozLjlweDtwYWRkaW5nOi4zOXJlbTt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnNlYXJjaC1jb250YWluZXIgYnV0dG9ue21hcmdpbjowO3BhZGRpbmc6OHB4IDE2cHg7cGFkZGluZzouOHJlbSAxLjZyZW07ei1pbmRleDoyO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6MS42O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uc2VhcmNoLWNvbnRhaW5lciBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLnNlYXJjaC1jb250YWluZXIgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5zZWFyY2gtY29udGFpbmVyIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLnNlYXJjaC1jb250YWluZXIgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnNlYXJjaC1jb250YWluZXIgaW5wdXQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntkaXNwbGF5Om5vbmV9LnNlYXJjaC1jb250YWluZXIgLnNwcml0ZS5zdmctYXJyb3ctZG93bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6N3B4O3RvcDouN3JlbTtyaWdodDo2LjVweDtyaWdodDouNjVyZW07bWFyZ2luOjB9I3NlYXJjaElucHV0e2hlaWdodDo0My4ycHg7aGVpZ2h0OjQuMzJyZW07d2lkdGg6MTAwJTtwYWRkaW5nOjhweDtwYWRkaW5nOi44cmVtO3BhZGRpbmctcmlnaHQ6MTAyLjRweDtwYWRkaW5nLXJpZ2h0OjEwLjI0cmVtO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6MS42fS5zZWFyY2gtY29udGFpbmVyIC5zZWFyY2gtaW5wdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NzMlO21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLXJpZ2h0Oi44cmVtO3ZlcnRpY2FsLWFsaWduOnRvcH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5zZWFyY2gtY29udGFpbmVye21hcmdpbi10b3A6MH0uc2VhcmNoLWNvbnRhaW5lciAucHVyZS1mb3JtIGZpZWxkc2V0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tbGVmdDouNXJlbTttYXJnaW4tcmlnaHQ6ODBweDttYXJnaW4tcmlnaHQ6OHJlbX0uc2VhcmNoLWNvbnRhaW5lciAuc2VhcmNoLWlucHV0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tbGVmdDouNXJlbTttYXJnaW4tcmlnaHQ6LTcwcHg7bWFyZ2luLXJpZ2h0Oi03cmVtO21hcmdpbi1ib3R0b206MDt3aWR0aDoxMDAlfS5zZWFyY2gtY29udGFpbmVyIC5wdXJlLWZvcm0gYnV0dG9ue2Zsb2F0OnJpZ2h0O3JpZ2h0Oi03MHB4O3JpZ2h0Oi03cmVtO21hcmdpbjowO3BhZGRpbmc6OHB4IDE2cHg7cGFkZGluZzouOHJlbSAxLjZyZW19fS5zdWdnZXN0aW9ucy1kcm9wZG93bntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3otaW5kZXg6Mjstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjFweCBzb2xpZCAjYTJhOWIxO2JvcmRlci10b3A6MDstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMjUpOy1tb3otYm94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4yNSk7Ym94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4yNSk7dGV4dC1hbGlnbjpsZWZ0O2xpc3Qtc3R5bGUtdHlwZTpub25lfS5zdWdnZXN0aW9uLWxpbmt7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLWhlaWdodDo3MHB4O21pbi1oZWlnaHQ6N3JlbTt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggODVweDtwYWRkaW5nOjFyZW0gMXJlbSAxcmVtIDguNXJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWFlY2YwO2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1hbGlnbjpsZWZ0O3RleHQtYWxpZ246aW5pdGlhbDt3aGl0ZS1zcGFjZTpub3JtYWx9LnN1Z2dlc3Rpb24tbGluay5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZWFmM2ZmfWEuc3VnZ2VzdGlvbi1saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfWEuc3VnZ2VzdGlvbi1saW5rOmFjdGl2ZSxhLnN1Z2dlc3Rpb24tbGluazpmb2N1c3tvdXRsaW5lOjA7d2hpdGUtc3BhY2U6bm9ybWFsfS5zdWdnZXN0aW9uLXRodW1ibmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiNlYWVjZjA7YmFja2dyb3VuZC1pbWFnZTp1cmwocG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9ub2ltYWdlLnBuZyk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsMCkpLHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIydXRmLTglMjIlM0YlM0UlMEElM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDU2JTIwNTYlMjIlMjBlbmFibGUtYmFja2dyb3VuZCUzRCUyMm5ldyUyMDAlMjAwJTIwNTYlMjA1NiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZWVlJTIyJTIwZCUzRCUyMk0wJTIwMGg1NnY1NmgtNTZ6JTIyJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjBkJTNEJTIyTTM2LjQlMjAxMy41aC0xOC42djI0LjljMCUyMDEuNC45JTIwMi4zJTIwMi4zJTIwMi4zaDE4Ljd2LTI1Yy4xLTEuNC0xLTIuMi0yLjQtMi4yem0tNi4yJTIwMy41aDUuMXY2LjRoLTUuMXYtNi40em0tOC44JTIwMGg2djEuOGgtNnYtMS44em0wJTIwNC42aDZ2MS44aC02di0xLjh6bTAlMjAxNS41di0xLjhoMTMuOHYxLjhoLTEzLjh6bTEzLjgtNC41aC0xMy44di0xLjhoMTMuOHYxLjh6bTAtNC43aC0xMy44di0xLjhoMTMuOHYxLjh6JTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LHRyYW5zcGFyZW50KSx1cmwocG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9ub2ltYWdlLnN2ZykgIWllO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLDApKSksdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0MlM0Z4bWwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJ1dGYtOCUyMiUzRiUzRSUwQSUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNTYlMjA1NiUyMiUyMGVuYWJsZS1iYWNrZ3JvdW5kJTNEJTIybmV3JTIwMCUyMDAlMjA1NiUyMDU2JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlZWUlMjIlMjBkJTNEJTIyTTAlMjAwaDU2djU2aC01NnolMjIlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzk5OSUyMiUyMGQlM0QlMjJNMzYuNCUyMDEzLjVoLTE4LjZ2MjQuOWMwJTIwMS40LjklMjAyLjMlMjAyLjMlMjAyLjNoMTguN3YtMjVjLjEtMS40LTEtMi4yLTIuNC0yLjJ6bS02LjIlMjAzLjVoNS4xdjYuNGgtNS4xdi02LjR6bS04LjglMjAwaDZ2MS44aC02di0xLjh6bTAlMjA0LjZoNnYxLjhoLTZ2LTEuOHptMCUyMDE1LjV2LTEuOGgxMy44djEuOGgtMTMuOHptMTMuOC00LjVoLTEzLjh2LTEuOGgxMy44djEuOHptMC00LjdoLTEzLjh2LTEuOGgxMy44djEuOHolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwKSxyZ2JhKDAsMCwwLDApKSx1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMnV0Zi04JTIyJTNGJTNFJTBBJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA1NiUyMDU2JTIyJTIwZW5hYmxlLWJhY2tncm91bmQlM0QlMjJuZXclMjAwJTIwMCUyMDU2JTIwNTYlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2VlZSUyMiUyMGQlM0QlMjJNMCUyMDBoNTZ2NTZoLTU2eiUyMiUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwZCUzRCUyMk0zNi40JTIwMTMuNWgtMTguNnYyNC45YzAlMjAxLjQuOSUyMDIuMyUyMDIuMyUyMDIuM2gxOC43di0yNWMuMS0xLjQtMS0yLjItMi40LTIuMnptLTYuMiUyMDMuNWg1LjF2Ni40aC01LjF2LTYuNHptLTguOCUyMDBoNnYxLjhoLTZ2LTEuOHptMCUyMDQuNmg2djEuOGgtNnYtMS44em0wJTIwMTUuNXYtMS44aDEzLjh2MS44aC0xMy44em0xMy44LTQuNWgtMTMuOHYtMS44aDEzLjh2MS44em0wLTQuN2gtMTMuOHYtMS44aDEzLjh2MS44eiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwKSxyZ2JhKDAsMCwwLDApKSx1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMnV0Zi04JTIyJTNGJTNFJTBBJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA1NiUyMDU2JTIyJTIwZW5hYmxlLWJhY2tncm91bmQlM0QlMjJuZXclMjAwJTIwMCUyMDU2JTIwNTYlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2VlZSUyMiUyMGQlM0QlMjJNMCUyMDBoNTZ2NTZoLTU2eiUyMiUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwZCUzRCUyMk0zNi40JTIwMTMuNWgtMTguNnYyNC45YzAlMjAxLjQuOSUyMDIuMyUyMDIuMyUyMDIuM2gxOC43di0yNWMuMS0xLjQtMS0yLjItMi40LTIuMnptLTYuMiUyMDMuNWg1LjF2Ni40aC01LjF2LTYuNHptLTguOCUyMDBoNnYxLjhoLTZ2LTEuOHptMCUyMDQuNmg2djEuOGgtNnYtMS44em0wJTIwMTUuNXYtMS44aDEzLjh2MS44aC0xMy44em0xMy44LTQuNWgtMTMuOHYtMS44aDEzLjh2MS44em0wLTQuN2gtMTMuOHYtMS44aDEzLjh2MS44eiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHRyYW5zcGFyZW50KSx0byh0cmFuc3BhcmVudCkpLHVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL25vaW1hZ2Uuc3ZnKSAhaWU7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCx0cmFuc3BhcmVudCksdXJsKHBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvbm9pbWFnZS5zdmcpICFpZTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCx0cmFuc3BhcmVudCksdXJsKHBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvbm9pbWFnZS5zdmcpICFpZTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCx0cmFuc3BhcmVudCksdXJsKHBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvbm9pbWFnZS5wbmcpO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MTAwJSBhdXRvOy1tb3otYmFja2dyb3VuZC1zaXplOjEwMCUgYXV0bztiYWNrZ3JvdW5kLXNpemU6MTAwJSBhdXRvOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtoZWlnaHQ6MTAwJTt3aWR0aDo3MHB4O3dpZHRoOjdyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5zdWdnZXN0aW9uLXRpdGxle21hcmdpbjowIDAgNy44cHggMDttYXJnaW46MCAwIC43OHJlbSAwO2NvbG9yOiM1NDU5NWQ7Zm9udC1zaXplOjE1LjZweDtmb250LXNpemU6MS41NnJlbTtsaW5lLWhlaWdodDoxOC43MnB4O2xpbmUtaGVpZ2h0OjEuODcycmVtfS5zdWdnZXN0aW9uLWxpbmsuYWN0aXZlIC5zdWdnZXN0aW9uLXRpdGxle2NvbG9yOiMzNmN9LnN1Z2dlc3Rpb24taGlnaGxpZ2h0e2ZvbnQtc3R5bGU6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnN1Z2dlc3Rpb24tZGVzY3JpcHRpb257Y29sb3I6IzcyNzc3ZDttYXJnaW46MDtmb250LXNpemU6MTNweDtmb250LXNpemU6MS4zcmVtO2xpbmUtaGVpZ2h0OjE0LjI5OXB4O2xpbmUtaGVpZ2h0OjEuNDNyZW19LnN0eWxlZC1zZWxlY3R7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O3RvcDoxcmVtO2JvdHRvbToxMnB4O2JvdHRvbToxLjJyZW07cmlnaHQ6MTJweDtyaWdodDoxLjJyZW07bWF4LXdpZHRoOjk1cHg7bWF4LXdpZHRoOjkuNXJlbTtoZWlnaHQ6MjRweDtoZWlnaHQ6Mi40cmVtO21hcmdpbjowO3BhZGRpbmc6MDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5zdHlsZWQtc2VsZWN0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYX0uc3R5bGVkLXNlbGVjdCAuaGlkZS1hcnJvd3tyaWdodDozMnB4O3JpZ2h0OjMuMnJlbTttYXgtd2lkdGg6NjhweDttYXgtd2lkdGg6Ni44cmVtO2hlaWdodDoyNHB4O2hlaWdodDoyLjRyZW07cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOnJpZ2h0fS5zdHlsZWQtc2VsZWN0IHNlbGVjdHtiYWNrZ3JvdW5kOjAgMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjI0cHg7aGVpZ2h0OjIuNHJlbTttaW4td2lkdGg6MTEwcHg7bWluLXdpZHRoOjExcmVtO21heC13aWR0aDoxMTBweDttYXgtd2lkdGg6MTFyZW07d2lkdGg6MTEwcHg7d2lkdGg6MTFyZW07b3V0bGluZTowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MDtsaW5lLWhlaWdodDoxOS41cHg7bGluZS1oZWlnaHQ6MS45NXJlbTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6d2luZG93O3RleHQtaW5kZW50Oi4wMXB4O3RleHQtb3ZlcmZsb3c6Jyc7LW8tYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtvcGFjaXR5OjA7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2N1cnNvcjpwb2ludGVyfS5zdHlsZWQtc2VsZWN0Lm5vLWpze3dpZHRoOjk1cHg7d2lkdGg6OS41cmVtfS5zdHlsZWQtc2VsZWN0Lm5vLWpzIHNlbGVjdHtvcGFjaXR5OjE7bWFyZ2luOjA7cGFkZGluZzowIDI0cHggMCA4cHg7cGFkZGluZzowIDIuNHJlbSAwIC44cmVtO2NvbG9yOiM1NDU5NWR9LnN0eWxlZC1zZWxlY3Qubm8tanMgLmhpZGUtYXJyb3d7d2lkdGg6NjhweDt3aWR0aDo2LjhyZW19LnNlYXJjaC1jb250YWluZXIgLnN0eWxlZC1zZWxlY3Qubm8tanMgLmpzLWxhbmdwaWNrZXItbGFiZWx7ZGlzcGxheTpub25lfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgLmhpZGUtYXJyb3d7cGFkZGluZzowIDI0cHggMCA4cHg7cGFkZGluZzowIDIuNHJlbSAwIC44cmVtfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgc2VsZWN0e2JhY2tncm91bmQ6MCAwO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt6LWluZGV4OjE7d2lkdGg6MTAwJTtib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjAgMjRweCAwO3BhZGRpbmc6MCAyLjRyZW0gMDtjb2xvcjp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgc2VsZWN0IG9wdGlvbntjb2xvcjojNTQ1OTVkfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgc2VsZWN0OmhvdmVye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnN0eWxlZC1zZWxlY3QtYWN0aXZlLWhlbHBlcntkaXNwbGF5Om5vbmV9LnN0eWxlZC1zZWxlY3QuanMtZW5hYmxlZCBzZWxlY3Q6Zm9jdXMrLnN0eWxlZC1zZWxlY3QtYWN0aXZlLWhlbHBlcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdXRsaW5lOjFweCBzb2xpZCAjMzZjfS5zZWFyY2gtY29udGFpbmVyIC5qcy1sYW5ncGlja2VyLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO2NvbG9yOiM1NDU5NWQ7Zm9udC1zaXplOjEyLjhweDtmb250LXNpemU6MS4yOHJlbTtsaW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OjIuNHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnN0eWxlZC1zZWxlY3Qgc2VsZWN0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYX0uc3R5bGVkLXNlbGVjdCBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpub25lfS5zdHlsZWQtc2VsZWN0IHNlbGVjdDpmb2N1c3tvdXRsaW5lOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsuc3R5bGVkLXNlbGVjdCBzZWxlY3R7d2lkdGg6MTEwJX19Lm90aGVyLXByb2plY3Rze2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjcwJX0ub3RoZXItcHJvamVjdHtmbG9hdDpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzJTtoZWlnaHQ6OTBweDtoZWlnaHQ6OXJlbX0ub3RoZXItcHJvamVjdC1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6NTBweDt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcH0ub3RoZXItcHJvamVjdC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjUwcHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnN2Zy1XaWtpbmV3cy1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLWltYWdlOnVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL1dpa2luZXdzLWxvZ29fc2lzdGVyLnBuZyk7YmFja2dyb3VuZC1wb3NpdGlvbjowIDA7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6NDdweCAyNnB4Oy1tb3otYmFja2dyb3VuZC1zaXplOjQ3cHggMjZweDtiYWNrZ3JvdW5kLXNpemU6NDdweCAyNnB4O3dpZHRoOjQ3cHg7aGVpZ2h0OjI2cHh9QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS4yNSksKG1pbi1yZXNvbHV0aW9uOjEyMGRwaSl7LnN2Zy1XaWtpbmV3cy1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLWltYWdlOnVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL1dpa2luZXdzLWxvZ29fc2lzdGVyQDJ4LnBuZyl9fS5vdGhlci1wcm9qZWN0IC5zcHJpdGUtcHJvamVjdC1sb2dvc3tkaXNwbGF5OmlubGluZS1ibG9ja30ub3RoZXItcHJvamVjdC10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDo2NSU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vcm1hbH0ub3RoZXItcHJvamVjdC10YWdsaW5lLC5vdGhlci1wcm9qZWN0LXRpdGxle2Rpc3BsYXk6YmxvY2t9Lm90aGVyLXByb2plY3QtdGFnbGluZXtjb2xvcjojNTQ1OTVkO2ZvbnQtc2l6ZToxMi4xNnB4O2ZvbnQtc2l6ZToxLjIxNnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsub3RoZXItcHJvamVjdHN7d2lkdGg6MTAwJX0ub3RoZXItcHJvamVjdHt3aWR0aDozMyV9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5vdGhlci1wcm9qZWN0e3dpZHRoOjUwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDozMjBweCl7Lm90aGVyLXByb2plY3QtdGV4dHttYXJnaW4tcmlnaHQ6NXB4O2ZvbnQtc2l6ZToxMS41MnB4O2ZvbnQtc2l6ZToxLjE1MnJlbX0ub3RoZXItcHJvamVjdC10YWdsaW5le2ZvbnQtc2l6ZToxMC45NDRweDtmb250LXNpemU6MS4wOTQ0cmVtfX0ubGFuZy1saXN0LWNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXgtaGVpZ2h0OjA7d2lkdGg6ODAlO21hcmdpbjotMTZweCBhdXRvIDQ4cHg7bWFyZ2luOi0xLjZyZW0gYXV0byA0LjhyZW07LXdlYmtpdC10cmFuc2l0aW9uOm1heC1oZWlnaHQgLjVzIGVhc2Utb3V0LHZpc2liaWxpdHkgLjVzIGVhc2UtaW4gMXM7LW1vei10cmFuc2l0aW9uOm1heC1oZWlnaHQgLjVzIGVhc2Utb3V0LHZpc2liaWxpdHkgLjVzIGVhc2UtaW4gMXM7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC41cyBlYXNlLW91dCx2aXNpYmlsaXR5IC41cyBlYXNlLWluIDFzfS5qcy1lbmFibGVkIC5sYW5nLWxpc3QtY29udGFpbmVye3Zpc2liaWxpdHk6aGlkZGVufS5sYW5nLWxpc3QtYWN0aXZlIC5sYW5nLWxpc3QtY29udGFpbmVyLC5uby1qcyAubGFuZy1saXN0LWNvbnRhaW5lcnt2aXNpYmlsaXR5OnZpc2libGU7bWF4LWhlaWdodDoxMDAwMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXgtaGVpZ2h0IDFzIGVhc2UtaW4gLjJzLHZpc2liaWxpdHkgMTAwMHMgZWFzZS1pbiAwczstbW96LXRyYW5zaXRpb246bWF4LWhlaWdodCAxcyBlYXNlLWluIC4ycyx2aXNpYmlsaXR5IDEwMDBzIGVhc2UtaW4gMHM7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IDFzIGVhc2UtaW4gLjJzLHZpc2liaWxpdHkgMTAwMHMgZWFzZS1pbiAwc30ubm8tanMgLmxhbmctbGlzdC1idXR0b257ZGlzcGxheTpub25lfS5sYW5nLWxpc3QtYnV0dG9uLXdyYXBwZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmxhbmctbGlzdC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2Rpc3BsYXk6aW5saW5lO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW46MCBhdXRvO3BhZGRpbmc6Ni40cHggMTIuOHB4O3BhZGRpbmc6LjY0cmVtIDEuMjhyZW07b3V0bGluZToxNnB4IHNvbGlkICNmZmY7b3V0bGluZToxLjZyZW0gc29saWQgI2ZmZjtib3JkZXI6MXB4IHNvbGlkICNhMmE5YjE7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDtjb2xvcjojMzZjO2ZvbnQtc2l6ZToxMi44cHg7Zm9udC1zaXplOjEuMjhyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC10cmFuc2l0aW9uOm91dGxpbmUtd2lkdGggLjFzIGVhc2UtaW4gLjVzOy1tb3otdHJhbnNpdGlvbjpvdXRsaW5lLXdpZHRoIC4xcyBlYXNlLWluIC41czt0cmFuc2l0aW9uOm91dGxpbmUtd2lkdGggLjFzIGVhc2UtaW4gLjVzfS5sYW5nLWxpc3QtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2EyYTliMX0ubGFuZy1saXN0LWJ1dHRvbjpmb2N1c3tib3JkZXItY29sb3I6IzM2Yzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmM7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmN9LmxhbmctbGlzdC1hY3RpdmUgLmxhbmctbGlzdC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZmO291dGxpbmU6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLWNvbG9yOiM3Mjc3N2Q7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzOy1tb3otdHJhbnNpdGlvbi1kZWxheTowczt0cmFuc2l0aW9uLWRlbGF5OjBzfS5sYW5nLWxpc3QtYnV0dG9uLXRleHR7cGFkZGluZzowIDYuNHB4O3BhZGRpbmc6MCAuNjRyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5sYW5nLWxpc3QtYnV0dG9uIGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5uby1qcyAubGFuZy1saXN0LWJvcmRlciwubm8tanMgLmxhbmctbGlzdC1idXR0b257ZGlzcGxheTpub25lfS5sYW5nLWxpc3QtYm9yZGVye2JhY2tncm91bmQtY29sb3I6I2M4Y2NkMTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDo0NjBweDt3aWR0aDo4MCU7bWFyZ2luOi0xNnB4IGF1dG8gMTZweDttYXJnaW46LTEuNnJlbSBhdXRvIDEuNnJlbTtoZWlnaHQ6MXB4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXgtd2lkdGggLjJzIGVhc2Utb3V0IDQwMHM7LW1vei10cmFuc2l0aW9uOm1heC13aWR0aCAuMnMgZWFzZS1vdXQgNDAwczt0cmFuc2l0aW9uOm1heC13aWR0aCAuMnMgZWFzZS1vdXQgNDAwc30ubGFuZy1saXN0LWFjdGl2ZSAubGFuZy1saXN0LWJvcmRlcnttYXgtd2lkdGg6ODUlOy13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTowczstbW96LXRyYW5zaXRpb24tZGVsYXk6MHM7dHJhbnNpdGlvbi1kZWxheTowc30ubm8tanMgLmxhbmctbGlzdC1jb250ZW50e3BhZGRpbmc6MH0ubGFuZy1saXN0LWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzoxNnB4IDE2cHggMDtwYWRkaW5nOjEuNnJlbSAxLjZyZW0gMH0uc3ZnLWFycm93LWRvd24tYmx1ZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGVhc2Utb3V0O3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGVhc2Utb3V0Oy1tb3otdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2Utb3V0LC1tb3otdHJhbnNmb3JtIC4ycyBlYXNlLW91dDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2Utb3V0LC13ZWJraXQtdHJhbnNmb3JtIC4ycyBlYXNlLW91dCwtbW96LXRyYW5zZm9ybSAuMnMgZWFzZS1vdXR9LmxhbmctbGlzdC1hY3RpdmUgLnN2Zy1hcnJvdy1kb3duLWJsdWV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7LW1vei10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmxhbmdsaXN0e3dpZHRoOmF1dG87bWFyZ2luOjE2cHggMDttYXJnaW46MS42cmVtIDA7dGV4dC1hbGlnbjpsZWZ0fS5sYW5nbGlzdC1vdGhlcnN7Zm9udC13ZWlnaHQ6NzAwfS5obGlzdCB1bHttYXJnaW46MDtwYWRkaW5nOjB9LmhsaXN0IGxpe2Rpc3BsYXk6aW5saW5lfS5obGlzdCB1bCB1bHtkaXNwbGF5OmlubGluZX0uaGxpc3QgbGk6YmVmb3Jle2NvbnRlbnQ6IiDCtyAiO2ZvbnQtd2VpZ2h0OjcwMH0uaGxpc3QgbGk6Zmlyc3QtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6bm9uZX0uaGxpc3QgbGk+dWw6YmVmb3Jle2NvbnRlbnQ6IlwwMGEwKCJ9LmhsaXN0IGxpPnVsOmFmdGVye2NvbnRlbnQ6IikgIn0ubGFuZ2xpc3Q+dWx7LXdlYmtpdC1jb2x1bW4td2lkdGg6MTEuMnJlbTstbW96LWNvbHVtbi13aWR0aDoxMS4ycmVtO2NvbHVtbi13aWR0aDoxMS4ycmVtfS5sYW5nbGlzdD51bD5saXtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuNzstd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7cGFnZS1icmVhay1pbnNpZGU6YXZvaWQ7YnJlYWstaW5zaWRlOmF2b2lkfS5uby1qcyAubGFuZ2xpc3Q+dWx7dGV4dC1hbGlnbjpjZW50ZXI7bGlzdC1zdHlsZS10eXBlOmNpcmNsZX0ubm8tanMgLmxhbmdsaXN0PnVsPmxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MCA4cHg7cGFkZGluZzowIC44cmVtfS5sYW5nbGlzdD51bD5saTpiZWZvcmV7Y29udGVudDpub25lfS5sYW5nbGlzdD51bD5saSBhe3doaXRlLXNwYWNlOm5vcm1hbH0ubGFuZ2xpc3Qtb3RoZXJzPnVse3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtY29sdW1uLWNvdW50OjE7LW1vei1jb2x1bW4tY291bnQ6MTtjb2x1bW4tY291bnQ6MX0ubGFuZ2xpc3Qtb3RoZXJzPnVsIGxpe2Rpc3BsYXk6aW5saW5lfS5sYW5nbGlzdC1vdGhlcnM+dWwgbGk6YmVmb3Jle2NvbnRlbnQ6JyDCtyAnfS5sYW5nbGlzdC1vdGhlcnM+dWwgbGk6Zmlyc3QtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6bm9uZX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsubGFuZ2xpc3R7Zm9udC1zaXplOmluaGVyaXR9LmxhbmdsaXN0IGF7d29yZC13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6bm9ybWFsfS5sYW5nLWxpc3QtY29udGFpbmVye3dpZHRoOmF1dG87bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1sZWZ0Oi44cmVtO21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLXJpZ2h0Oi44cmVtfS5ib29rc2hlbGZ7b3ZlcmZsb3c6dmlzaWJsZX19LmJvb2tzaGVsZntkaXNwbGF5OmJsb2NrO2JvcmRlci10b3A6MXB4IHNvbGlkICNjOGNjZDE7LXdlYmtpdC1ib3gtc2hhZG93OjAgLTFweCAwICNmZmY7LW1vei1ib3gtc2hhZG93OjAgLTFweCAwICNmZmY7Ym94LXNoYWRvdzowIC0xcHggMCAjZmZmO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uYm9va3NoZWxmIHNwYW57YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTEuMnB4O3RvcDotMS4xMnJlbTtmb250LXdlaWdodDo0MDB9LmJvb2tzaGVsZi1jb250YWluZXJ7ZGlzcGxheTpibG9jaztvdmVyZmxvdzp2aXNpYmxlO2hlaWdodDoxcHg7d2lkdGg6MTAwJTttYXJnaW46MjRweCAwIDE2cHg7bWFyZ2luOjIuNHJlbSAwIDEuNnJlbTtmb250LXNpemU6MTNweDtmb250LXNpemU6MS4zcmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoyMHB4O2xpbmUtaGVpZ2h0OjJyZW19LmJvb2tzaGVsZi1jb250YWluZXIgLnRleHR7cGFkZGluZzowIDkuOTJweDtwYWRkaW5nOjAgLjk5MnJlbX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsuYm9va3NoZWxme3dpZHRoOmF1dG87bGVmdDphdXRvfS5ib29rc2hlbGYtY29udGFpbmVye3RleHQtYWxpZ246bGVmdDt3aWR0aDphdXRvfX0uYXBwLWJhZGdlc3tiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmF9LmFwcC1iYWRnZXMgLmZvb3Rlci1zaWRlYmFyLXRleHR7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctdG9wOi44cmVtO3BhZGRpbmctYm90dG9tOjhweDtwYWRkaW5nLWJvdHRvbTouOHJlbX0uYXBwLWJhZGdlcyAuc3ByaXRlLmZvb3Rlci1zaWRlYmFyLWljb257dG9wOjhweDt0b3A6LjhyZW19LmFwcC1iYWRnZXMgdWx7bWFyZ2luOjA7cGFkZGluZzowO2xpc3Qtc3R5bGUtdHlwZTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpey5hcHAtYmFkZ2VzIC5mb290ZXItc2lkZWJhci1jb250ZW50e21heC13aWR0aDozNTBweDt0ZXh0LWFsaWduOmNlbnRlcn0uYXBwLWJhZGdlcyAuc3ByaXRlLmZvb3Rlci1zaWRlYmFyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7dG9wOi0zcHg7bGVmdDowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNyk7LW1vei10cmFuc2Zvcm06c2NhbGUoLjcpOy1tcy10cmFuc2Zvcm06c2NhbGUoLjcpO3RyYW5zZm9ybTpzY2FsZSguNyl9LmFwcC1iYWRnZXtmbG9hdDpsZWZ0O3dpZHRoOjQ5JX0uYXBwLWJhZGdlLWFuZHJvaWQgYSwuYXBwLWJhZGdlLWlvcyBhe2Rpc3BsYXk6YmxvY2t9LmFwcC1iYWRnZS1pb3N7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZH0uYXBwLWJhZGdlLWZ1bGxsaXN0e3dpZHRoOjEwMCU7bWFyZ2luOjE5LjJweCAwIDYuNHB4IDA7bWFyZ2luOjEuOTJyZW0gMCAuNjRyZW0gMH19LmZvb3RlcntvdmVyZmxvdzpoaWRkZW47bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjQxLjZweCAxMi44cHggMTIuOHB4O3BhZGRpbmc6NC4xNnJlbSAxLjI4cmVtIDEuMjhyZW07Zm9udC1zaXplOjEyLjhweDtmb250LXNpemU6MS4yOHJlbX0uZm9vdGVyOmFmdGVyLC5mb290ZXI6YmVmb3Jle2NvbnRlbnQ6JyAnO2Rpc3BsYXk6dGFibGV9LmZvb3RlcjphZnRlcntjbGVhcjpib3RofS5mb290ZXItc2lkZWJhcnt3aWR0aDozMCU7ZmxvYXQ6bGVmdDtjbGVhcjpsZWZ0O21hcmdpbi1ib3R0b206MzJweDttYXJnaW4tYm90dG9tOjMuMnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmZvb3Rlci1zaWRlYmFyLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjM1MHB4O21hcmdpbjowIGF1dG99LnNwcml0ZS5mb290ZXItc2lkZWJhci1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6OHB4O2xlZnQ6LjhyZW19LmZvb3Rlci1zaWRlYmFyLXRleHR7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjYwcHg7cGFkZGluZy1sZWZ0OjZyZW07cGFkZGluZy1yaWdodDoyMHB4O3BhZGRpbmctcmlnaHQ6MnJlbTtjb2xvcjojNTQ1OTVkfS5zaXRlLWxpY2Vuc2V7bWFyZ2luOjA7Y29sb3I6IzU0NTk1ZDt0ZXh0LWFsaWduOmNlbnRlcn0uc2l0ZS1saWNlbnNlIHNtYWxsOmFmdGVye2NvbnRlbnQ6J1wyMDIyJztkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTNweDtmb250LXNpemU6MS4zcmVtO2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1sZWZ0Oi44cmVtO21hcmdpbi1yaWdodDo1cHg7bWFyZ2luLXJpZ2h0Oi41cmVtfS5zaXRlLWxpY2Vuc2Ugc21hbGw6bGFzdC1jaGlsZDphZnRlcntkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LmZvb3RlcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy10b3A6MTIuOHB4O3BhZGRpbmctdG9wOjEuMjhyZW19LmZvb3RlciAuZm9vdGVyLXNpZGViYXJ7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoxOy1tb3otYm94LW9yZGluYWwtZ3JvdXA6MTstd2Via2l0LW9yZGVyOjE7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5mb290ZXIgLm90aGVyLXByb2plY3Rzey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MjstbW96LWJveC1vcmRpbmFsLWdyb3VwOjI7LXdlYmtpdC1vcmRlcjoyOy1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn0uZm9vdGVyIC5hcHAtYmFkZ2Vzey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MzstbW96LWJveC1vcmRpbmFsLWdyb3VwOjM7LXdlYmtpdC1vcmRlcjozOy1tcy1mbGV4LW9yZGVyOjM7b3JkZXI6M30uZm9vdGVyLXNpZGViYXJ7d2lkdGg6MTAwJX0uc3ByaXRlLmZvb3Rlci1zaWRlYmFyLWljb257ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7bWFyZ2luOjAgYXV0byAxMi44cHggYXV0bzttYXJnaW46MCBhdXRvIDEuMjhyZW0gYXV0b30uZm9vdGVyLXNpZGViYXItY29udGVudHttYXgtd2lkdGg6bm9uZX0uZm9vdGVyLXNpZGViYXItdGV4dHttYXJnaW46MDtwYWRkaW5nOjA7dGV4dC1hbGlnbjpjZW50ZXJ9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5mb290ZXJ7cGFkZGluZzo5LjZweCA2LjRweCAxMi44cHg7cGFkZGluZzouOTZyZW0gLjY0cmVtIDEuMjhyZW19fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6NDgwcHgpey5zZWFyY2gtY29udGFpbmVye21hcmdpbi10b3A6MDtoZWlnaHQ6NzhweDtoZWlnaHQ6Ny44cmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo2NXB4O3RvcDo2LjVyZW07bGVmdDowO3JpZ2h0OjA7bWF4LXdpZHRoOjEwMCU7d2lkdGg6YXV0bztwYWRkaW5nOjA7dGV4dC1hbGlnbjpsZWZ0fS5zZWFyY2gtY29udGFpbmVyIGxhYmVse2Rpc3BsYXk6bm9uZX0uc2VhcmNoLWZvcm0gI3NlYXJjaElucHV0e21heC13aWR0aDo0MCU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zZWFyY2gtZm9ybSAuZm9ybUJ0bnttYXgtd2lkdGg6MjUlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1mb3JtIGZpZWxkc2V0e21hcmdpbjowO2JvcmRlci1sZWZ0OjA7Ym9yZGVyLXJpZ2h0OjB9aHJ7bWFyZ2luLXRvcDo2LjVweDttYXJnaW4tdG9wOi42NXJlbX19QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86MiksKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoyKSwobWluLXJlc29sdXRpb246MmRwcHgpLChtaW4tcmVzb2x1dGlvbjoxOTJkcGkpe2hye2JvcmRlci1ib3R0b20td2lkdGg6LjVweH19QHN1cHBvcnRzICgtd2Via2l0LW1hcnF1ZWUtc3R5bGU6c2xpZGUpe2hye2JvcmRlci1ib3R0b20td2lkdGg6MXB4fX0uanMtZW5hYmxlZCAuY2VudHJhbC1mZWF0dXJlZCwuanMtZW5hYmxlZCAuanNsMTBue3Zpc2liaWxpdHk6aGlkZGVufS5qc2wxMG4tdmlzaWJsZSAuY2VudHJhbC1mZWF0dXJlZCwuanNsMTBuLXZpc2libGUgLmpzbDEwbnt2aXNpYmlsaXR5OnZpc2libGV9Lm90aGVycHJvamVjdHMtaWNvbnsqem9vbToxOypkaXNwbGF5OmlubGluZX0uc3VnZ2VzdGlvbi1pdGVteyp3aWR0aDphdXRvfS5jZW50cmFsLWZlYXR1cmVkLWxvZ297KmRpc3BsYXk6aW5saW5lLWJsb2NrOypsaW5lLWhlaWdodDoyNmVtOyp0b3A6NmVtOypwb3NpdGlvbjphYnNvbHV0ZTsqbGVmdDoxMy41ZW19LnNlYXJjaC1jb250YWluZXIgYnV0dG9ueypkaXNwbGF5OmlubGluZX0jc2VhcmNoSW5wdXR7KnBhZGRpbmc6OHB4IDAgMCA4cHg7KndpZHRoOjkwJTsqaGVpZ2h0OjM0cHh9I3NlYXJjaC1pbnB1dHsqZGlzcGxheTppbmxpbmV9LmxhbmdsaXN0IHVseyp0ZXh0LWFsaWduOmNlbnRlcn0ubGFuZ2xpc3QgdWwgbGl7KmRpc3BsYXk6aW5saW5lIWltcG9ydGFudDsqcGFkZGluZy1sZWZ0OjVweDsqcGFkZGluZy1yaWdodDo1cHh9QG1lZGlhIHByaW50e2JvZHl7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1he2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fWE6bGluayxhOnZpc2l0ZWR7Y29sb3I6IzUyMDtiYWNrZ3JvdW5kOjAgMH1pbWd7Ym9yZGVyOjB9fQo8L3N0eWxlPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmciPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZyI+PC9oZWFkPjxib2R5IGlkPSJ3d3ctd2lraXBlZGlhLW9yZyIgY2xhc3M9IiBqc2wxMG4tdmlzaWJsZSI+CjxoMSBjbGFzcz0iY2VudHJhbC10ZXh0bG9nbyIgc3R5bGU9ImZvbnQtdmFyaWFudDogc21hbGwtY2FwczsiIGFsdD0iV2lraXBlZGlBIiB0aXRsZT0iV2lraXBlZGlhIj4KPGRpdiBjbGFzcz0iY2VudHJhbC10ZXh0bG9nb19faW1hZ2Ugc3ByaXRlIHN2Zy1XaWtpcGVkaWFfd29yZG1hcmsiPgpXaWtpcGVkaWEKPC9kaXY+CjxzdHJvbmcgY2xhc3M9ImpzbDEwbiBsb2NhbGl6ZWQtc2xvZ2FuIiBkYXRhLWpzbDEwbj0ic2xvZ2FuIj5UaGUgRnJlZSBFbmN5Y2xvcGVkaWE8L3N0cm9uZz4KPC9oMT4KPCEtLSBjb250YWluZXIgZGl2IGZvciB0aGUgY2VudHJhbCBsb2dvIGFuZCB0aGUgbGlua3MgdG8gdGhlIG1vc3Qgdmlld2VkIGxhbmd1YWdlIGVkaXRpb25zIC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkIiBkYXRhLWVsLXNlY3Rpb249InByaW1hcnkgbGlua3MiPgo8IS0tIGxvZ28gLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbG9nby13cmFwcGVyIj4KPGltZyBjbGFzcz0iY2VudHJhbC1mZWF0dXJlZC1sb2dvIiBzcmM9InBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvV2lraXBlZGlhLWxvZ28tdjIucG5nIiBzcmNzZXQ9InBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvV2lraXBlZGlhLWxvZ28tdjJAMS41eC5wbmcgMS41eCwgcG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9XaWtpcGVkaWEtbG9nby12MkAyeC5wbmcgMngiIHdpZHRoPSIyMDAiIGFsdD0iV2lraXBlZGlhIExvZ28iPgo8L2Rpdj4KPCEtLSBSYW5raW5ncyBmcm9tIGh0dHA6Ly9zdGF0cy53aWtpbWVkaWEub3JnL0VOL1NpdGVtYXAuaHRtIC0tPgo8IS0tIEFydGljbGUgY291bnRzIGZyb20gaHR0cDovL21ldGEud2lraW1lZGlhLm9yZy93aWtpL0xpc3Rfb2ZfV2lraXBlZGlhcy9UYWJsZSAtLT4KPCEtLSAjMS4gZW4ud2lraXBlZGlhLm9yZyAtIDEgODkyIDQ4MyAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzEiIGxhbmc9ImVuIiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1lbiIgaHJlZj0iLy9lbi53aWtpcGVkaWEub3JnLyIgdGl0bGU9IkVuZ2xpc2gg4oCUIFdpa2lwZWRpYSDigJQgVGhlIEZyZWUgRW5jeWNsb3BlZGlhIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJUaGUgRnJlZSBFbmN5Y2xvcGVkaWEiPgo8c3Ryb25nPkVuZ2xpc2g8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjUmbmJzcDs1NTAmbmJzcDswMDArPC9iZGk+IDxzcGFuPmFydGljbGVzPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwhLS0gIzIuIGphLndpa2lwZWRpYS5vcmcgLSAyNTEgNTY4IDAwMCB2aWV3cy9kYXkgLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbGFuZyBsYW5nMiIgbGFuZz0iamEiIGRpcj0ibHRyIj4KPGEgaWQ9ImpzLWxpbmstYm94LWphIiBocmVmPSIvL2phLndpa2lwZWRpYS5vcmcvIiB0aXRsZT0iTmlob25nbyDigJQg44Km44Kj44Kt44Oa44OH44Kj44KiIOKAlCDjg5Xjg6rjg7znmb7np5HkuovlhbgiIGNsYXNzPSJsaW5rLWJveCIgZGF0YS1zbG9nYW49IuODleODquODvOeZvuenkeS6i+WFuCI+CjxzdHJvbmc+5pel5pys6KqePC9zdHJvbmc+CjxzbWFsbD48YmRpIGRpcj0ibHRyIj4xJm5ic3A7MDkxJm5ic3A7MDAwKzwvYmRpPiA8c3Bhbj7oqJjkuos8L3NwYW4+PC9zbWFsbD4KPC9hPgo8L2Rpdj4KPCEtLSAjMy4gZGUud2lraXBlZGlhLm9yZyAtIDIzNyAwMjIgMDAwIHZpZXdzL2RheSAtLT4KPGRpdiBjbGFzcz0iY2VudHJhbC1mZWF0dXJlZC1sYW5nIGxhbmczIiBsYW5nPSJkZSIgZGlyPSJsdHIiPgo8YSBpZD0ianMtbGluay1ib3gtZGUiIGhyZWY9Ii8vZGUud2lraXBlZGlhLm9yZy8iIHRpdGxlPSJEZXV0c2NoIOKAlCBXaWtpcGVkaWEg4oCUIERpZSBmcmVpZSBFbnp5a2xvcMOkZGllIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJEaWUgZnJlaWUgRW56eWtsb3DDpGRpZSI+CjxzdHJvbmc+RGV1dHNjaDwvc3Ryb25nPgo8c21hbGw+PGJkaSBkaXI9Imx0ciI+MiZuYnNwOzE0MiZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+QXJ0aWtlbDwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM0LiBydS53aWtpcGVkaWEub3JnIC0gMjI4IDgxNyAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzQiIGxhbmc9InJ1IiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1ydSIgaHJlZj0iLy9ydS53aWtpcGVkaWEub3JnLyIgdGl0bGU9IlJ1c3NraXkg4oCUINCS0LjQutC40L/QtdC00LjRjyDigJQg0KHQstC+0LHQvtC00L3QsNGPINGN0L3RhtC40LrQu9C+0L/QtdC00LjRjyIgY2xhc3M9ImxpbmstYm94IiBkYXRhLXNsb2dhbj0i0KHQstC+0LHQvtC00L3QsNGPINGN0L3RhtC40LrQu9C+0L/QtdC00LjRjyI+CjxzdHJvbmc+0KDRg9GB0YHQutC40Lk8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjEmbmJzcDs0NDcmbmJzcDswMDArPC9iZGk+IDxzcGFuPtGB0YLQsNGC0LXQuTwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM1LiBlcy53aWtpcGVkaWEub3JnIC0gMjE4IDU1MiAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzUiIGxhbmc9ImVzIiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1lcyIgaHJlZj0iLy9lcy53aWtpcGVkaWEub3JnLyIgdGl0bGU9IkVzcGHDsW9sIOKAlCBXaWtpcGVkaWEg4oCUIExhIGVuY2ljbG9wZWRpYSBsaWJyZSIgY2xhc3M9ImxpbmstYm94IiBkYXRhLXNsb2dhbj0iTGEgZW5jaWNsb3BlZGlhIGxpYnJlIj4KPHN0cm9uZz5Fc3Bhw7FvbDwvc3Ryb25nPgo8c21hbGw+PGJkaSBkaXI9Imx0ciI+MSZuYnNwOzM4MSZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+YXJ0w61jdWxvczwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM2LiBmci53aWtpcGVkaWEub3JnIC0gMTczIDc2MiAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzYiIGxhbmc9ImZyIiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1mciIgaHJlZj0iLy9mci53aWtpcGVkaWEub3JnLyIgdGl0bGU9IkZyYW7Dp2FpcyDigJQgV2lraXDDqWRpYSDigJQgTOKAmWVuY3ljbG9ww6lkaWUgbGlicmUiIGNsYXNzPSJsaW5rLWJveCIgZGF0YS1zbG9nYW49IkzigJllbmN5Y2xvcMOpZGllIGxpYnJlIj4KPHN0cm9uZz5GcmFuw6dhaXM8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjEmbmJzcDs5NDcmbmJzcDswMDArPC9iZGk+IDxzcGFuPmFydGljbGVzPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwhLS0gIzcuIGl0Lndpa2lwZWRpYS5vcmcgLSAxMzQgMTczIDAwMCB2aWV3cy9kYXkgLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbGFuZyBsYW5nNyIgbGFuZz0iaXQiIGRpcj0ibHRyIj4KPGEgaWQ9ImpzLWxpbmstYm94LWl0IiBocmVmPSIvL2l0Lndpa2lwZWRpYS5vcmcvIiB0aXRsZT0iSXRhbGlhbm8g4oCUIFdpa2lwZWRpYSDigJQgTCdlbmNpY2xvcGVkaWEgbGliZXJhIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJMJ2VuY2ljbG9wZWRpYSBsaWJlcmEiPgo8c3Ryb25nPkl0YWxpYW5vPC9zdHJvbmc+CjxzbWFsbD48YmRpIGRpcj0ibHRyIj4xJm5ic3A7NDA5Jm5ic3A7MDAwKzwvYmRpPiA8c3Bhbj52b2NpPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwhLS0gIzguIHpoLndpa2lwZWRpYS5vcmcgLSA4MiA5MjUgMDAwIHZpZXdzL2RheSAtLT4KPGRpdiBjbGFzcz0iY2VudHJhbC1mZWF0dXJlZC1sYW5nIGxhbmc4IiBsYW5nPSJ6aCIgZGlyPSJsdHIiPgo8YSBpZD0ianMtbGluay1ib3gtemgiIGhyZWY9Ii8vemgud2lraXBlZGlhLm9yZy8iIHRpdGxlPSJaaMWNbmd3w6luIOKAlCDntq3ln7rnmb7np5Eg4oCUIOiHqueUseeahOeZvuenkeWFqOabuCIgY2xhc3M9ImxpbmstYm94IiBkYXRhLWNvbnZlcnR0aXRsZS1oYW5zPSJaaMWNbmd3w6luIOKAlCDnu7Tln7rnmb7np5Eg4oCUIOiHqueUseeahOeZvuenkeWFqOS5piIgZGF0YS1zbG9nYW49IuiHqueUseeahOeZvuenkeWFqOabuCI+CjxzdHJvbmc+5Lit5paHPC9zdHJvbmc+CjxzbWFsbD48YmRpIGRpcj0ibHRyIj45ODYmbmJzcDswMDArPC9iZGk+IDxzcGFuIGRhdGEtY29udmVydC1oYW5zPSLmnaHnm64iIGlkPSJ6aF9hcnQiPuaineebrjwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM5LiBwdC53aWtpcGVkaWEub3JnIC0gNzAgMTg3IDAwMCB2aWV3cy9kYXkgLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbGFuZyBsYW5nOSIgbGFuZz0icHQiIGRpcj0ibHRyIj4KPGEgaWQ9ImpzLWxpbmstYm94LXB0IiBocmVmPSIvL3B0Lndpa2lwZWRpYS5vcmcvIiB0aXRsZT0iUG9ydHVndcOqcyDigJQgV2lraXDDqWRpYSDigJQgQSBlbmNpY2xvcMOpZGlhIGxpdnJlIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJBIGVuY2ljbG9ww6lkaWEgbGl2cmUiPgo8c3Ryb25nPlBvcnR1Z3XDqnM8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjk4OCZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+YXJ0aWdvczwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICMxMC4gcGwud2lraXBlZGlhLm9yZyAtIDYzIDg2OCAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzEwIiBsYW5nPSJwbCIgZGlyPSJsdHIiPgo8YSBpZD0ianMtbGluay1ib3gtcGwiIGhyZWY9Ii8vcGwud2lraXBlZGlhLm9yZy8iIHRpdGxlPSJQb2xza2kg4oCUIFdpa2lwZWRpYSDigJQgV29sbmEgZW5jeWtsb3BlZGlhIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJXb2xuYSBlbmN5a2xvcGVkaWEiPgo8c3Ryb25nPlBvbHNraTwvc3Ryb25nPgo8c21hbGw+PGJkaSBkaXI9Imx0ciI+MSZuYnNwOzI2MCZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+aGFzZcWCPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8IS0tIFNlYXJjaCBmb3JtIC0tPgo8ZGl2IGNsYXNzPSJzZWFyY2gtY29udGFpbmVyIj4KPGZvcm0gY2xhc3M9InB1cmUtZm9ybSIgaWQ9InNlYXJjaC1mb3JtIiBhY3Rpb249Ii8vd3d3Lndpa2lwZWRpYS5vcmcvc2VhcmNoLXJlZGlyZWN0LnBocCIgZGF0YS1lbC1zZWN0aW9uPSJzZWFyY2giPgo8ZmllbGRzZXQ+CjwhLS0gc2VhcmNoLXJlZGlyZWN0LnBocCBpcyBwcm9qZWN0LWluZGVwZW5kZW50LCByZXF1aXJlcyBhIGZhbWlseSAtLT4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFtaWx5IiB2YWx1ZT0id2lraXBlZGlhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlbkxhbmd1YWdlSW5wdXQiIG5hbWU9Imxhbmd1YWdlIiB2YWx1ZT0iZW4iPgo8ZGl2IGNsYXNzPSJzZWFyY2gtaW5wdXQiIGlkPSJzZWFyY2gtaW5wdXQiPgo8aW5wdXQgaWQ9InNlYXJjaElucHV0IiBuYW1lPSJzZWFyY2giIHR5cGU9InNlYXJjaCIgc2l6ZT0iMjAiIGF1dG9mb2N1cz0iYXV0b2ZvY3VzIiBhY2Nlc3NrZXk9IkYiIGRpcj0iYXV0byIgcmVzdWx0cz0iMTAiIGF1dG9jb21wbGV0ZT0ib2ZmIiBsaXN0PSJzdWdnZXN0aW9ucyIgc3R5bGU9InBhZGRpbmctcmlnaHQ6IDY0cHg7Ij4KPGRpdiBjbGFzcz0iIHN0eWxlZC1zZWxlY3QganMtZW5hYmxlZCI+CjxkaXYgY2xhc3M9ImhpZGUtYXJyb3ciPgo8bGFiZWwgZm9yPSJsYW5ndWFnZSIgaWQ9ImpzTGFuZ0xhYmVsIiBjbGFzcz0ianMtbGFuZ3BpY2tlci1sYWJlbCI+ZW48L2xhYmVsPjxzZWxlY3QgaWQ9InNlYXJjaExhbmd1YWdlIiBuYW1lPSJsYW5ndWFnZSI+CjwhLS0gMTAwLDAwMCsgY29udGVudCBwYWdlcywgc29ydGVkIGJ5IHJvbWFuaXphdGlvbiAtLT4KPG9wdGlvbiB2YWx1ZT0iYXIiIGxhbmc9ImFyIj7Yp9mE2LnYsdio2YrYqTwvb3B0aW9uPjwhLS0gQWwtyr9BcmFixKt5YWggLS0+CjxvcHRpb24gdmFsdWU9ImF6IiBsYW5nPSJheiI+QXrJmXJiYXljYW5jYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJiZyIgbGFuZz0iYmciPtCR0YrQu9Cz0LDRgNGB0LrQuDwvb3B0aW9uPjwhLS0gQseObGdhcnNraSAtLT4KPG9wdGlvbiB2YWx1ZT0ibmFuIiBsYW5nPSJuYW4iPkLDom4tbMOibS1nw7ogLyBIxY0tbMOzLW/Ekzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJiZSIgbGFuZz0iYmUiPtCR0LXQu9Cw0YDRg9GB0LrQsNGPICjQkNC60LDQtNGN0LzRltGH0L3QsNGPKTwvb3B0aW9uPjwhLS0gQmVsYXJ1c2theWEgKEFrYWRlbWljaG5heWEpIC0tPgo8b3B0aW9uIHZhbHVlPSJjYSIgbGFuZz0iY2EiPkNhdGFsw6A8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY3MiIGxhbmc9ImNzIj7EjGXFoXRpbmE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZGEiIGxhbmc9ImRhIj5EYW5zazwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJkZSIgbGFuZz0iZGUiPkRldXRzY2g8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZXQiIGxhbmc9ImV0Ij5FZXN0aTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlbCIgbGFuZz0iZWwiPs6VzrvOu863zr3Ouc66zqw8L29wdGlvbj48IS0tIEVsbMSrbmlrw6EgLS0+CjxvcHRpb24gdmFsdWU9ImVuIiBsYW5nPSJlbiIgc2VsZWN0ZWQ9InNlbGVjdGVkIj5FbmdsaXNoPC9vcHRpb24+PCEtLSBFbmdsaXNoIC0tPgo8b3B0aW9uIHZhbHVlPSJlcyIgbGFuZz0iZXMiPkVzcGHDsW9sPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImVvIiBsYW5nPSJlbyI+RXNwZXJhbnRvPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImV1IiBsYW5nPSJldSI+RXVza2FyYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJmYSIgbGFuZz0iZmEiPtmB2KfYsdiz24w8L29wdGlvbj48IS0tIEbEgXJzaSAtLT4KPG9wdGlvbiB2YWx1ZT0iZnIiIGxhbmc9ImZyIj5GcmFuw6dhaXM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZ2wiIGxhbmc9ImdsIj5HYWxlZ288L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ia28iIGxhbmc9ImtvIj7tlZzqta3slrQ8L29wdGlvbj48IS0tIEhhbmd1Z2VvIC0tPgo8b3B0aW9uIHZhbHVlPSJoeSIgbGFuZz0iaHkiPtWA1aHVtdWl1oDVpdW2PC9vcHRpb24+PCEtLSBIYXllcmVuIC0tPgo8b3B0aW9uIHZhbHVlPSJoaSIgbGFuZz0iaGkiPuCkueCkv+CkqOCljeCkpuClgDwvb3B0aW9uPjwhLS0gSGluZMSrIC0tPgo8b3B0aW9uIHZhbHVlPSJociIgbGFuZz0iaHIiPkhydmF0c2tpPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImlkIiBsYW5nPSJpZCI+QmFoYXNhIEluZG9uZXNpYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpdCIgbGFuZz0iaXQiPkl0YWxpYW5vPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImhlIiBsYW5nPSJoZSI+16LXkdeo15nXqjwvb3B0aW9uPjwhLS0gyr9JdnJpdCAtLT4KPG9wdGlvbiB2YWx1ZT0ia2EiIGxhbmc9ImthIj7hg6Xhg5Dhg6Dhg5fhg6Phg5rhg5g8L29wdGlvbj48IS0tIEthcnR1bGkgLS0+CjxvcHRpb24gdmFsdWU9ImxhIiBsYW5nPSJsYSI+TGF0aW5hPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Imx0IiBsYW5nPSJsdCI+TGlldHV2acWzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Imh1IiBsYW5nPSJodSI+TWFneWFyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im1zIiBsYW5nPSJtcyI+QmFoYXNhIE1lbGF5dTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJtaW4iIGxhbmc9Im1pbiI+QmFoYXNvIE1pbmFuZ2thYmF1PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5sIiBsYW5nPSJubCI+TmVkZXJsYW5kczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJqYSIgbGFuZz0iamEiPuaXpeacrOiqnjwvb3B0aW9uPjwhLS0gTmlob25nbyAtLT4KPG9wdGlvbiB2YWx1ZT0ibm8iIGxhbmc9Im5iIj5Ob3JzayAoQm9rbcOlbCk8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibm4iIGxhbmc9Im5uIj5Ob3JzayAoTnlub3Jzayk8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2UiIGxhbmc9ImNlIj7QndC+0YXRh9C40LnQvTwvb3B0aW9uPjwhLS0gTm94w6dpeW4gLS0+CjxvcHRpb24gdmFsdWU9InV6IiBsYW5nPSJ1eiI+T8q7emJla2NoYSAvINCO0LfQsdC10LrRh9CwPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InBsIiBsYW5nPSJwbCI+UG9sc2tpPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InB0IiBsYW5nPSJwdCI+UG9ydHVndcOqczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJrayIgbGFuZz0ia2siPtKa0LDQt9Cw0pvRiNCwIC8gUWF6YXHFn2EgLyDZgtin2LLYp9mC2LTYpzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJybyIgbGFuZz0icm8iPlJvbcOibsSDPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InJ1IiBsYW5nPSJydSI+0KDRg9GB0YHQutC40Lk8L29wdGlvbj48IS0tIFJ1c3NraXkgLS0+CjxvcHRpb24gdmFsdWU9InNpbXBsZSIgbGFuZz0iZW4iPlNpbXBsZSBFbmdsaXNoPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImNlYiIgbGFuZz0iY2ViIj5TaW51Z2JvYW5vbmcgQmluaXNheWE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic2siIGxhbmc9InNrIj5TbG92ZW7EjWluYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzbCIgbGFuZz0ic2wiPlNsb3ZlbsWhxI1pbmE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic3IiIGxhbmc9InNyIj7QodGA0L/RgdC60LggLyBTcnBza2k8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic2giIGxhbmc9InNoIj5TcnBza29ocnZhdHNraSAvINCh0YDQv9GB0LrQvtGF0YDQstCw0YLRgdC60Lg8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZmkiIGxhbmc9ImZpIj5TdW9taTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzdiIgbGFuZz0ic3YiPlN2ZW5za2E8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGEiIGxhbmc9InRhIj7grqTgrq7grr/grrTgr408L29wdGlvbj48IS0tIFRhbWnhuLsgLS0+CjxvcHRpb24gdmFsdWU9InRoIiBsYW5nPSJ0aCI+4Lig4Liy4Lip4Liy4LmE4LiX4LiiPC9vcHRpb24+PCEtLSBQaGFzYSBUaGFpIC0tPgo8b3B0aW9uIHZhbHVlPSJ0ciIgbGFuZz0idHIiPlTDvHJrw6dlPC9vcHRpb24+PCEtLSBUdXJrY2UgLS0+CjxvcHRpb24gdmFsdWU9InVrIiBsYW5nPSJ1ayI+0KPQutGA0LDRl9C90YHRjNC60LA8L29wdGlvbj48IS0tIFVrcmF5aW5z4oCZa2EgLS0+CjxvcHRpb24gdmFsdWU9InVyIiBsYW5nPSJ1ciI+2KfYsdiv2Yg8L29wdGlvbj48IS0tIFVyZHUgLS0+CjxvcHRpb24gdmFsdWU9InZpIiBsYW5nPSJ2aSI+VGnhur9uZyBWaeG7h3Q8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idm8iIGxhbmc9InZvIj5Wb2xhcMO8azwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ3YXIiIGxhbmc9IndhciI+V2luYXJheTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ6aCIgbGFuZz0iemgiPuS4reaWhzwvb3B0aW9uPjwhLS0gWmjFjW5nd8OpbiAtLT4KPC9zZWxlY3Q+CjxkaXYgY2xhc3M9InN0eWxlZC1zZWxlY3QtYWN0aXZlLWhlbHBlciI+PC9kaXY+CjwvZGl2Pgo8aSBjbGFzcz0ic3ByaXRlIHN2Zy1hcnJvdy1kb3duIj48L2k+CjwvZGl2Pgo8ZGl2IGlkPSJ0eXBlYWhlYWQtc3VnZ2VzdGlvbnMiPjwvZGl2PjwvZGl2Pgo8YnV0dG9uIGNsYXNzPSJwdXJlLWJ1dHRvbiBwdXJlLWJ1dHRvbi1wcmltYXJ5LXByb2dyZXNzaXZlIiB0eXBlPSJzdWJtaXQiPgo8aSBjbGFzcz0ic3ByaXRlIHN2Zy1zZWFyY2gtaWNvbiI+PC9pPgo8L2J1dHRvbj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkdvIiBuYW1lPSJnbyI+CjwvZmllbGRzZXQ+CjwvZm9ybT4KPC9kaXY+CjxkaXYgY2xhc3M9ImxhbmctbGlzdC1idXR0b24td3JhcHBlciI+CjxidXR0b24gaWQ9ImpzLWxhbmctbGlzdC1idXR0b24iIGNsYXNzPSJsYW5nLWxpc3QtYnV0dG9uIj4KPGkgY2xhc3M9InNwcml0ZSBzdmctdHJhbnNsYXRlLWljb24iPjwvaT4KPHNwYW4gY2xhc3M9ImxhbmctbGlzdC1idXR0b24tdGV4dCBqc2wxMG4iIGRhdGEtanNsMTBuPSJsYW5ndWFnZS1idXR0b24tdGV4dCI+UmVhZCBXaWtpcGVkaWEgaW4geW91ciBsYW5ndWFnZSA8L3NwYW4+CjxpIGNsYXNzPSJzcHJpdGUgc3ZnLWFycm93LWRvd24tYmx1ZSI+PC9pPgo8L2J1dHRvbj4KPC9kaXY+CjxkaXYgY2xhc3M9ImxhbmctbGlzdC1ib3JkZXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJsYW5nLWxpc3QtY29udGFpbmVyIj4KPGRpdiBpZD0ianMtbGFuZy1saXN0cyIgY2xhc3M9ImxhbmctbGlzdC1jb250ZW50Ij4KPCEtLSBCb29rc2hlbHZlcyAtLT4KPGgyIGNsYXNzPSJib29rc2hlbGYtY29udGFpbmVyIj4KPHNwYW4gY2xhc3M9ImJvb2tzaGVsZiI+CjxzcGFuIGNsYXNzPSJ0ZXh0IiBkaXI9Imx0ciI+MSZuYnNwOzAwMCZuYnNwOzAwMCs8L3NwYW4+Cjwvc3Bhbj4KPC9oMj4KPCEtLSAxLDAwMCwwMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGxhbmdsaXN0LWxhcmdlIGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249InNlY29uZGFyeSBsaW5rcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vZGUud2lraXBlZGlhLm9yZy8iIGxhbmc9ImRlIj5EZXV0c2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlbiIgdGl0bGU9IkVuZ2xpc2giPkVuZ2xpc2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZXMud2lraXBlZGlhLm9yZy8iIGxhbmc9ImVzIj5Fc3Bhw7FvbDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mci53aWtpcGVkaWEub3JnLyIgbGFuZz0iZnIiPkZyYW7Dp2FpczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pdC53aWtpcGVkaWEub3JnLyIgbGFuZz0iaXQiPkl0YWxpYW5vPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25sLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJubCI+TmVkZXJsYW5kczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9qYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iamEiIHRpdGxlPSJOaWhvbmdvIj7ml6XmnKzoqp48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGwud2lraXBlZGlhLm9yZy8iIGxhbmc9InBsIj5Qb2xza2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcnUud2lraXBlZGlhLm9yZy8iIGxhbmc9InJ1IiB0aXRsZT0iUnVzc2tpeSI+0KDRg9GB0YHQutC40Lk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2ViLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjZWIiPlNpbnVnYm9hbm9uZyBCaW5pc2F5YTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdi53aWtpcGVkaWEub3JnLyIgbGFuZz0ic3YiPlN2ZW5za2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmkud2lraXBlZGlhLm9yZy8iIGxhbmc9InZpIj5UaeG6v25nIFZp4buHdDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy93YXIud2lraXBlZGlhLm9yZy8iIGxhbmc9IndhciI+V2luYXJheTwvYT48L2xpPgo8L3VsPgo8L2Rpdj4KPCEtLSBCb29rc2hlbHZlcyAtLT4KPGgyIGNsYXNzPSJib29rc2hlbGYtY29udGFpbmVyIj4KPHNwYW4gY2xhc3M9ImJvb2tzaGVsZiI+CjxzcGFuIGNsYXNzPSJ0ZXh0IiBkaXI9Imx0ciI+MTAwJm5ic3A7MDAwKzwvc3Bhbj4KPC9zcGFuPgo8L2gyPgo8IS0tIDEwMCwwMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGxhbmdsaXN0LWxhcmdlIGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249InNlY29uZGFyeSBsaW5rcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vYXIud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFyIiB0aXRsZT0iQWwtyr9BcmFixKt5YWgiPjxiZGkgZGlyPSJydGwiPtin2YTYudix2KjZitipPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2F6Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJheiI+QXrJmXJiYXljYW5jYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iZy53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmciIHRpdGxlPSJCx45sZ2Fyc2tpIj7QkdGK0LvQs9Cw0YDRgdC60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemgtbWluLW5hbi53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmFuIj5Cw6JuLWzDom0tZ8O6IC8gSMWNLWzDsy1vxJM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYmUud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJlIiB0aXRsZT0iQmVsYXJ1c2theWEgKEFrYWRlbWljaG5heWEpIj7QkdC10LvQsNGA0YPRgdC60LDRjyAo0JDQutCw0LTRjdC80ZbRh9C90LDRjyk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2Eud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNhIj5DYXRhbMOgPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjcyI+xIxlxaF0aW5hPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJkYSI+RGFuc2s8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZXQud2lraXBlZGlhLm9yZy8iIGxhbmc9ImV0Ij5FZXN0aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9lbC53aWtpcGVkaWEub3JnLyIgbGFuZz0iZWwiIHRpdGxlPSJFbGzEq25pa8OhIj7Olc67zrvOt869zrnOus6sPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2VvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlbyI+RXNwZXJhbnRvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2V1Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJldSI+RXVza2FyYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZmEiIHRpdGxlPSJGxIFyc2kiPjxiZGkgZGlyPSJydGwiPtmB2KfYsdiz24w8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2wud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdsIj5HYWxlZ288L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va28ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImtvIiB0aXRsZT0iSGFuZ3VnZW8iPu2VnOq1reyWtDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oeS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaHkiIHRpdGxlPSJIYXllcmVuIj7VgNWh1bXVpdaA1aXVtjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oaS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaGkiIHRpdGxlPSJIaW5kxKsiPuCkueCkv+CkqOCljeCkpuClgDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oci53aWtpcGVkaWEub3JnLyIgbGFuZz0iaHIiPkhydmF0c2tpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2lkLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJpZCI+QmFoYXNhIEluZG9uZXNpYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oZS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaGUiIHRpdGxlPSLKv0l2cml0Ij48YmRpIGRpcj0icnRsIj7XoteR16jXmdeqPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2thLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrYSIgdGl0bGU9IkthcnR1bGkiPuGDpeGDkOGDoOGDl+GDo+GDmuGDmDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sYS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibGEiPkxhdGluYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sdC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibHQiPkxpZXR1dmnFszwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9odS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaHUiPk1hZ3lhcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tcy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibXMiPkJhaGFzYSBNZWxheXU8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWluLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtaW4iPkJhaGFzbyBNaW5hbmdrYWJhdTwvYT48L2xpPgo8bGkgbGFuZz0ibm8iPk5vcnNrPHVsPjxsaT48YSBocmVmPSIvL25vLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJuYiI+Qm9rbcOlbDwvYT48L2xpPjxsaT48YSBocmVmPSIvL25uLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJubiI+Tnlub3JzazwvYT48L2xpPjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2Uud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNlIiB0aXRsZT0iTm94w6dpeW4iPtCd0L7RhdGH0LjQudC9PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3V6Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ1eiI+T8q7emJla2NoYSAvINCO0LfQsdC10LrRh9CwPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3B0Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwdCI+UG9ydHVndcOqczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ray53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2siPjxzcGFuIGxhbmc9ImtrLUN5cmwiPtKa0LDQt9Cw0pvRiNCwPC9zcGFuPiAvIDxzcGFuIGxhbmc9ImtrLUxhdG4iPlFhemFxxZ9hPC9zcGFuPiAvIDxiZGkgbGFuZz0ia2stQXJhYiIgZGlyPSJydGwiPtmC2KfYstin2YLYtNinPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3JvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJybyI+Um9tw6JuxIM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2ltcGxlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlbiI+U2ltcGxlIEVuZ2xpc2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2sud2lraXBlZGlhLm9yZy8iIGxhbmc9InNrIj5TbG92ZW7EjWluYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zbC53aWtpcGVkaWEub3JnLyIgbGFuZz0ic2wiPlNsb3ZlbsWhxI1pbmE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3Iud2lraXBlZGlhLm9yZy8iIGxhbmc9InNyIj7QodGA0L/RgdC60LggLyBTcnBza2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2gud2lraXBlZGlhLm9yZy8iIGxhbmc9InNoIj5TcnBza29ocnZhdHNraSAvINCh0YDQv9GB0LrQvtGF0YDQstCw0YLRgdC60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZmkud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZpIj5TdW9taTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90YS53aWtpcGVkaWEub3JnLyIgbGFuZz0idGEiIHRpdGxlPSJUYW1p4bi7Ij7grqTgrq7grr/grrTgr408L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdGgud2lraXBlZGlhLm9yZy8iIGxhbmc9InRoIiB0aXRsZT0iUGhhc2EgVGhhaSI+4Lig4Liy4Lip4Liy4LmE4LiX4LiiPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3RyLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0ciIgdGl0bGU9IlR1cmtjZSI+VMO8cmvDp2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdWsud2lraXBlZGlhLm9yZy8iIGxhbmc9InVrIiB0aXRsZT0iVWtyYXlpbnPigJlrYSI+0KPQutGA0LDRl9C90YHRjNC60LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdXIud2lraXBlZGlhLm9yZy8iIGxhbmc9InVyIiB0aXRsZT0iVXJkdSI+PGJkaSBkaXI9InJ0bCI+2KfYsdiv2Yg8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdm8ud2lraXBlZGlhLm9yZy8iIGxhbmc9InZvIj5Wb2xhcMO8azwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy96aC53aWtpcGVkaWEub3JnLyIgbGFuZz0iemgiIHRpdGxlPSJaaMWNbmd3w6luIj7kuK3mloc8L2E+PC9saT4KPC91bD4KPC9kaXY+CjwhLS0gQm9va3NoZWx2ZXMgLS0+CjxoMiBjbGFzcz0iYm9va3NoZWxmLWNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJib29rc2hlbGYiPgo8c3BhbiBjbGFzcz0idGV4dCIgZGlyPSJsdHIiPjEwJm5ic3A7MDAwKzwvc3Bhbj4KPC9zcGFuPgo8L2gyPgo8IS0tIDEwLDAwMCsgY29udGVudCBwYWdlcyAtLT4KPGRpdiBjbGFzcz0ibGFuZ2xpc3QgaGxpc3QiIGRhdGEtZWwtc2VjdGlvbj0ic2Vjb25kYXJ5IGxpbmtzIj4KPHVsPgo8bGk+PGEgaHJlZj0iLy9hZi53aWtpcGVkaWEub3JnLyIgbGFuZz0iYWYiPkFmcmlrYWFuczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hbHMud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdzdyI+QWxlbWFubmlzY2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYW0ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFtIiB0aXRsZT0ixIBtYXJpw7HDscSBIj7hiqDhiJvhiK3hips8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYW4ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFuIj5BcmFnb27DqXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXN0Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJhc3QiPkFzdHVyaWFudTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ibi53aWtpcGVkaWEub3JnLyIgbGFuZz0iYm4iIHRpdGxlPSJCYW5nbGEiPuCmrOCmvuCmguCmsuCmvjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tYXAtYm1zLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtYXAteC1ibXMiPkJhc2EgQmFueXVtYXNhbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmEiIHRpdGxlPSJCYcWfcW9ydHNhIj7QkdCw0YjSodC+0YDRgtGB0LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYmUtdGFyYXNrLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJiZSIgdGl0bGU9IkJlbGFydXNrYXlhIChUYXJhxaFraWV2aWNhKSI+0JHQtdC70LDRgNGD0YHQutCw0Y8gKNCi0LDRgNCw0YjQutC10LLRltGG0LApPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JweS53aWtpcGVkaWEub3JnLyIgbGFuZz0iYnB5IiB0aXRsZT0iQmlzaG51cHJpeWEgTWFuaXB1cmkiPuCmrOCmv+Cmt+CnjeCmo+CngeCmquCnjeCmsOCmv+Cmr+CmvOCmviDgpq7gpqPgpr/gpqrgp4HgprDgp4A8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYmFyLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJiYXIiPkJvYXJpc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJicyI+Qm9zYW5za2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYnIud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJyIj5CcmV6aG9uZWc8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY3Yud2lraXBlZGlhLm9yZy8iIGxhbmc9ImN2IiB0aXRsZT0ixIzEg3ZhxaFsYSI+0KfTkdCy0LDRiNC70LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZm8ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZvIj5Gw7hyb3lza3Q8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZnkud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZ5Ij5GcnlzazwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9nYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZ2EiPkdhZWlsZ2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2Qud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdkIj5Hw6BpZGhsaWc8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ3Uud2lraXBlZGlhLm9yZy8iIGxhbmc9Imd1IiB0aXRsZT0iR3VqYXJhdGkiPuCql+CrgeCqnOCqsOCqvuCqpOCrgDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oc2Iud2lraXBlZGlhLm9yZy8iIGxhbmc9ImhzYiI+SG9ybmpvc2VyYnNjZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pby53aWtpcGVkaWEub3JnLyIgbGFuZz0iaW8iPklkbzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pbG8ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImlsbyI+SWxva2FubzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaWEiPkludGVybGluZ3VhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL29zLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJvcyIgdGl0bGU9Iklyb24gw4Z2emFnIj7QmNGA0L7QvSDDptCy0LfQsNCzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2lzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJpcyI+w41zbGVuc2thPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2p2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJqdiI+SmF3YTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rbi53aWtpcGVkaWEub3JnLyIgbGFuZz0ia24iIHRpdGxlPSJLYW5uYWRhIj7gspXgsqjgs43gsqjgsqE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaHQud2lraXBlZGlhLm9yZy8iIGxhbmc9Imh0Ij5LcmV5w7JsIEF5aXN5ZW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va3Uud2lraXBlZGlhLm9yZy8iIGxhbmc9Imt1Ij48c3BhbiBsYW5nPSJrdS1MYXRuIj5LdXJkw648L3NwYW4+IC8gPGJkaSBsYW5nPSJrdS1BcmFiIiBkaXI9InJ0bCI+2YPZiNix2K/bjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ja2Iud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNrYiIgdGl0bGU9Ikt1cmTDrnkgTmF3ZW5kw64iPjxiZGkgZGlyPSJydGwiPtqp2YjYsdiv24zbjCDZhtin2YjbldmG2K/bjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9reS53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3kiIHRpdGxlPSJLeXJneXrEjWEiPtCa0YvRgNCz0YvQt9GH0LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbXJqLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtanIiIHRpdGxlPSJLeXJ5ayBNYXJ5Ij7QmtGL0YDRi9C6INCc0LDRgNGLPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2x2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsdiI+TGF0dmllxaF1PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xiLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsYiI+TMOrdHplYnVlcmdlc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsaSI+TGltYnVyZ3M8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbG1vLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsbW8iPkx1bWJhYXJ0PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21haS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibWFpIiB0aXRsZT0iTWFpdGhpbMSrIj7gpK7gpYjgpKXgpL/gpLLgpYA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWsud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1rIiB0aXRsZT0iTWFrZWRvbnNraSI+0JzQsNC60LXQtNC+0L3RgdC60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWcud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1nIj5NYWxhZ2FzeTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tbC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibWwiIHRpdGxlPSJNYWxheWFsYW0iPuC0ruC0suC0r+C0vuC0s+C0gjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tci53aWtpcGVkaWEub3JnLyIgbGFuZz0ibXIiIHRpdGxlPSJNYXJhdGhpIj7gpK7gpLDgpL7gpKDgpYA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8veG1mLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ4bWYiIHRpdGxlPSJNYXJnYWx1cmkiPuGDm+GDkOGDoOGDkuGDkOGDmuGDo+GDoOGDmDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hcnoud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFyeiIgdGl0bGU9Ik1h4bmjcsSrIj48YmRpIGRpcj0icnRsIj7Zhdi12LHZiTwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tem4ud2lraXBlZGlhLm9yZy8iIGxhbmc9Im16biIgdGl0bGU9Ik3DpHplcnVuaSI+PGJkaSBkaXI9InJ0bCI+2YXYp9iy2ZDYsdmI2YbbjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9jZG8ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNkbyI+TcOsbmctZMSVzKRuZy1uZ+G5s8yEPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21uLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtbiIgdGl0bGU9Ik1vbmdvbCI+0JzQvtC90LPQvtC7PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL215Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJteSIgdGl0bGU9Ik15YW5tYXJzYXIiPuGAmeGAvOGAlOGAuuGAmeGArOGAmOGArOGAnuGArDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9uZXcud2lraXBlZGlhLm9yZy8iIGxhbmc9Im5ldyIgdGl0bGU9Ik5lcGFsIEJoYXNhIj7gpKjgpYfgpKrgpL7gpLIg4KSt4KS+4KS34KS+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25lLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJuZSIgdGl0bGU9Ik5lcMSBbMSrIj7gpKjgpYfgpKrgpL7gpLLgpYA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbmFwLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJuYXAiPk5uYXB1bGl0YW5vPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL29jLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJvYyI+T2NjaXRhbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9vci53aWtpcGVkaWEub3JnLyIgbGFuZz0ib3IiIHRpdGxlPSJP4bmbacSBIj7grJPgrKHgrL/grLzgrIY8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGEud2lraXBlZGlhLm9yZy8iIGxhbmc9InBhIiB0aXRsZT0iUGHDsWrEgWLEqyAoR3VybXVraMSrKSI+4Kiq4Kmw4Kic4Ki+4Kis4KmAICjgqJfgqYHgqLDgqK7gqYHgqJbgqYApPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BuYi53aWtpcGVkaWEub3JnLyIgbGFuZz0icG5iIiB0aXRsZT0iUGHDsWrEgWLEqyAoU2jEgWhtdWtoxKspIj48YmRpIGRpcj0icnRsIj7ZvtmG2KzYp9io24wgKNi02KfbgSDZhdqp2r7bjCk8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcG1zLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwbXMiPlBpZW1vbnTDqGlzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25kcy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmRzIj5QbGF0dGTDvMO8dHNjaDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9xdS53aWtpcGVkaWEub3JnLyIgbGFuZz0icXUiPlJ1bmEgU2ltaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9jeS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3kiIHRpdGxlPSJTYWVzbmVnIj5DeW1yYWVnPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzYSIgdGl0bGU9IlNh4bmDc2vhuZt0YW0iPuCkuOCkguCkuOCljeCkleClg+CkpOCkruCljTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zYWgud2lraXBlZGlhLm9yZy8iIGxhbmc9InNhaCIgdGl0bGU9IlNheGEgVHlsYSI+0KHQsNGF0LAg0KLRi9C70LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2NvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzY28iPlNjb3RzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NxLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzcSI+U2hxaXA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2NuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzY24iPlNpY2lsaWFudTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zaS53aWtpcGVkaWEub3JnLyIgbGFuZz0ic2kiIHRpdGxlPSJTaeG5g2hhbGEiPuC3g+C3kuC2guC3hOC2vTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdS53aWtpcGVkaWEub3JnLyIgbGFuZz0ic3UiPkJhc2EgU3VuZGE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3cud2lraXBlZGlhLm9yZy8iIGxhbmc9InN3Ij5LaXN3YWhpbGk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdGwud2lraXBlZGlhLm9yZy8iIGxhbmc9InRsIj5UYWdhbG9nPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3R0Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0dCI+0KLQsNGC0LDRgNGH0LAgLyBUYXRhcsOnYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90ZS53aWtpcGVkaWEub3JnLyIgbGFuZz0idGUiIHRpdGxlPSJUZWx1Z3UiPuCwpOCxhuCwsuCxgeCwl+CxgTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90Zy53aWtpcGVkaWEub3JnLyIgbGFuZz0idGciIHRpdGxlPSJUb2ppa8SrIj7QotC+0rfQuNC606M8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXpiLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJhemIiIHRpdGxlPSJUw7xya2NlIj48YmRpIGRpcj0icnRsIj7YqtuG2LHaqdis2Yc8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYnVnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJidWciPuGoheGolCDhqJXhqJnhqIHhqJcgLyBCYXNhIFVnaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy92ZWMud2lraXBlZGlhLm9yZy8iIGxhbmc9InZlYyI+VsOobmV0bzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy93YS53aWtpcGVkaWEub3JnLyIgbGFuZz0id2EiPldhbG9uPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3lpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ5aSIgdGl0bGU9IllpZGnFoSI+PGJkaSBkaXI9InJ0bCI+15nXmda015PXmdepPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3lvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ5byI+WW9yw7liw6E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemgteXVlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ5dWUiIHRpdGxlPSJZdWh0IFnDumggLyBKeXV0NiBqeXU1IiBkYXRhLWNvbnZlcnQtaGFucz0i57Kk6K+tIiBpZD0iemgteXVlX3dpa2kiPueyteiqnjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iYXQtc21nLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzZ3MiPsW9ZW1haXTEl8Wha2E8L2E+PC9saT4KPC91bD4KPC9kaXY+CjwhLS0gQm9va3NoZWx2ZXMgLS0+CjxoMiBjbGFzcz0iYm9va3NoZWxmLWNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJib29rc2hlbGYiPgo8c3BhbiBjbGFzcz0idGV4dCIgZGlyPSJsdHIiPjEmbmJzcDswMDArPC9zcGFuPgo8L3NwYW4+CjwvaDI+CjwhLS0gMSwwMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249InNlY29uZGFyeSBsaW5rcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vYWNlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJhY2UiPkJhaHNhIEFjw6hoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2tiZC53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2JkIiB0aXRsZT0iQWRpZ2hhYnplIj7QkNC00YvQs9GN0LHQt9GNPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2FuZy53aWtpcGVkaWEub3JnLyIgbGFuZz0iYW5nIj7Dhm5nbGlzYzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hYi53aWtpcGVkaWEub3JnLyIgbGFuZz0iYWIiIHRpdGxlPSJB4bmXc3VhIj7QkNKn0YHRg9CwPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3JvYS1ydXAud2lraXBlZGlhLm9yZy8iIGxhbmc9InJvYS1ydXAiPkFybcOjbmVhc2hjZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mcnAud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZycCI+QXJwaXRhbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hcmMud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFyYyIgdGl0bGU9IsSAdMO7csSBecOiIj48YmRpIGRpcj0icnRsIj7ckNys3Jjcqtyd3JA8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ24ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImduIj5BdmHDsWXigJnhur08L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXYud2lraXBlZGlhLm9yZy8iIGxhbmc9ImF2IiB0aXRsZT0iQXZhciI+0JDQstCw0YA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXkud2lraXBlZGlhLm9yZy8iIGxhbmc9ImF5Ij5BeW1hcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iam4ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJqbiI+QmFoYXNhIEJhbmphcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iaC53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmgiIHRpdGxlPSJCaMWNamFwdXLEqyI+4KSt4KWL4KSc4KSq4KWB4KSw4KWAPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JjbC53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmNsIj5CaWtvbCBDZW50cmFsPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJiaSI+QmlzbGFtYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iby53aWtpcGVkaWEub3JnLyIgbGFuZz0iYm8iIHRpdGxlPSJCb2QgU2thZCI+4L2W4L284L2R4LyL4L2h4L2y4L2CPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2J4ci53aWtpcGVkaWEub3JnLyIgbGFuZz0iYnhyIiB0aXRsZT0iQnVyeWFkIj7QkdGD0YDRj9Cw0LQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2JrLXphbS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY2JrLXgtemFtIj5DaGF2YWNhbm8gZGUgWmFtYm9hbmdhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjbyI+Q29yc3U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemEud2lraXBlZGlhLm9yZy8iIGxhbmc9InphIj5DdWVuZ2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2Uud2lraXBlZGlhLm9yZy8iIGxhbmc9InNlIj5EYXZ2aXPDoW1lZ2llbGxhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BkYy53aWtpcGVkaWEub3JnLyIgbGFuZz0icGRjIj5EZWl0c2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2R2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJkdiIgdGl0bGU9IkRoaXZlaGkiPjxiZGkgZGlyPSJydGwiPt6L3qjeiN6s3oDeqN6E3qbekN6wPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL252Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJudiI+RGluw6kgQml6YWFkPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RzYi53aWtpcGVkaWEub3JnLyIgbGFuZz0iZHNiIj5Eb2xub3NlcmJza2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZW1sLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJyb2EteC1lbWwiPkVtaWdsacOgbuKAk1J1bWFnbsOybDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9teXYud2lraXBlZGlhLm9yZy8iIGxhbmc9Im15diIgdGl0bGU9IkVyemphbmoiPtCt0YDQt9GP0L3RjDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9leHQud2lraXBlZGlhLm9yZy8iIGxhbmc9ImV4dCI+RXN0cmVtZcOxdTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oaWYud2lraXBlZGlhLm9yZy8iIGxhbmc9ImhpZiI+RmlqaSBIaW5kaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mdXIud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZ1ciI+RnVybGFuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2d2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJndiI+R2FlbGc8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2FnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJnYWciPkdhZ2F1ejwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9raS53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2kiPkfEqWvFqXnFqTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9nbGsud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdsayIgdGl0bGU9IkdpbMmZa2kiPjxiZGkgZGlyPSJydGwiPtqv24zZhNqp24w8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2FuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJnYW4iIHRpdGxlPSJHb24gdWEiIGRhdGEtY29udmVydC1oYW5zPSLotaPor60iIGlkPSJnYW5fd2lraSI+6LSb6KqePC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2hhay53aWtpcGVkaWEub3JnLyIgbGFuZz0iaGFrIj5IYWsta8OiLWZhIC8g5a6i5a626KmxPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3hhbC53aWtpcGVkaWEub3JnLyIgbGFuZz0ieGFsIiB0aXRsZT0iSGFsyrltZyI+0KXQsNC70YzQvNCzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2hhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJoYSI+PHNwYW4gbGFuZz0iaGEtTGF0biI+SGF1c2E8L3NwYW4+IC8gPGJkaSBsYW5nPSJoYS1BcmFiIiBkaXI9InJ0bCI+2YfZjtmI2Y/Ys9mO2Kc8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaGF3Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJoYXciPsq7xYxsZWxvIEhhd2FpyrtpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2lnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJpZyI+SWdibzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pZS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaWUiPkludGVybGluZ3VlPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2tsLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrbCI+S2FsYWFsbGlzdXQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGFtLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwYW0iPkthcGFtcGFuZ2FuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NzYi53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3NiIj5LYXN6w6tic2N6aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rdy53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3ciPktlcm5ld2VrPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2ttLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrbSIgdGl0bGU9IlBow6lhc2EgS2htw6lyIj7hnpfhnrbhnp/hnrbhnoHhn5Lhnpjhn4Lhnpo8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcncud2lraXBlZGlhLm9yZy8iIGxhbmc9InJ3Ij5LaW55YXJ3YW5kYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rdi53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3YiIHRpdGxlPSJLb21pIj7QmtC+0LzQuDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rZy53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2ciPktvbmdvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2dvbS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZ29tIj7gpJXgpYvgpILgpJXgpKPgpYAgLyBLb25rbm5pPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsbyIgdGl0bGU9IlBoYWFzYWEgTGFhbyI+4Lqe4Lqy4Lqq4Lqy4Lql4Lqy4LqnPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xhZC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibGFkIiB0aXRsZT0iTGFkaW5vIj48c3BhbiBsYW5nPSJsYWQtTGF0biI+RHpodWRlem1vPC9zcGFuPiAvIDxiZGkgbGFuZz0ibGFkLUhlYnIiIGRpcj0icnRsIj7XnNeQ15PXmdeg15U8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbGJlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsYmUiIHRpdGxlPSJMYWvLkHUiPtCb0LDQutC60YM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbGV6Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsZXoiIHRpdGxlPSJMZXpnaSI+0JvQtdC30LPQuDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9saWoud2lraXBlZGlhLm9yZy8iIGxhbmc9ImxpaiI+TMOsZ3VyZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sbi53aWtpcGVkaWEub3JnLyIgbGFuZz0ibG4iPkxpbmfDoWxhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2piby53aWtpcGVkaWEub3JnLyIgbGFuZz0iamJvIj5sb2piYW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbHJjLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJscmMiIHRpdGxlPSJMw7ZyaXnDqS3FoG9txIFsxKsiPjxiZGkgZGlyPSJydGwiPtmE24rYsduMINi02YjZhdin2YTbjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sZy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibGciPkx1Z2FuZGE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbXQud2lraXBlZGlhLm9yZy8iIGxhbmc9Im10Ij5NYWx0aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy96aC1jbGFzc2ljYWwud2lraXBlZGlhLm9yZy8iIGxhbmc9Imx6aCIgdGl0bGU9Ik1hbjRqaW40IC8gV8OpbnnDoW4iPuaWh+iogDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90eS53aWtpcGVkaWEub3JnLyIgbGFuZz0idHkiPlJlbyBNxIHigJlvaGk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWkud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1pIj5NxIFvcmk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbXdsLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtd2wiPk1pcmFuZMOpczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tZGYud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1kZiIgdGl0bGU9Ik1va8WhZW5qIj7QnNC+0LrRiNC10L3RjDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9uYWgud2lraXBlZGlhLm9yZy8iIGxhbmc9Im5haCI+TsSBaHVhdGxhaHTFjWxsaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9uYS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmEiPkRvcmVyaW4gTmFvZXJvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25kcy1ubC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmRzLW5sIj5OZWRlcnNha3Npc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2Zyci53aWtpcGVkaWEub3JnLyIgbGFuZz0iZnJyIj5Ob3JkZnJpaXNrPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25ybS53aWtpcGVkaWEub3JnLyIgbGFuZz0icm9hLXgtbnJtIj5Ob3Vvcm1hbmQgLyBOb3JtYXVuZDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ub3Yud2lraXBlZGlhLm9yZy8iIGxhbmc9Im5vdiI+Tm92aWFsPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21oci53aWtpcGVkaWEub3JnLyIgbGFuZz0ibWhyIiB0aXRsZT0iT2x5ayBNYXJpaiI+0J7Qu9GL0Log0JzQsNGA0LjQuTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hcy53aWtpcGVkaWEub3JnLyIgbGFuZz0iYXMiIHRpdGxlPSLDlHjDtG1peWEiPuCmheCmuOCmruCngOCmr+CmvuCmvDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9waS53aWtpcGVkaWEub3JnLyIgbGFuZz0icGkiIHRpdGxlPSJQxIHhuLdpIj7gpKrgpL7gpLTgpL88L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGFnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwYWciPlBhbmdhc2luw6FuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BhcC53aWtpcGVkaWEub3JnLyIgbGFuZz0icGFwIj5QYXBpYW1lbnR1PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwcyIgdGl0bGU9IlBhyoJ0byI+PGJkaSBkaXI9InJ0bCI+2b7amtiq2Yg8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va29pLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrb2kiIHRpdGxlPSJQZXJlbSBLb21pIj7Qn9C10YDQtdC8INCa0L7QvNC4PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BmbC53aWtpcGVkaWEub3JnLyIgbGFuZz0icGZsIj5QZsOkbHppc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BjZC53aWtpcGVkaWEub3JnLyIgbGFuZz0icGNkIj5QaWNhcmQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va3JjLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrcmMiIHRpdGxlPSJRYXJhw6dheeKAk01hbHFhciI+0JrRitCw0YDQsNGH0LDQueKAk9Cc0LDQu9C60YrQsNGAPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2thYS53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2FhIj5RYXJhcWFscGFxc2hhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NyaC53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3JoIj5RxLFyxLFtdGF0YXJjYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rc2gud2lraXBlZGlhLm9yZy8iIGxhbmc9ImtzaCI+Umlwb2FyaXNjaDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ybS53aWtpcGVkaWEub3JnLyIgbGFuZz0icm0iPlJ1bWFudHNjaDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ydWUud2lraXBlZGlhLm9yZy8iIGxhbmc9InJ1ZSIgdGl0bGU9IlJ1c2lu4oCZc2t5aiBZYXp5ayI+0KDRg9GB0LjQvdGM0YHQutGL0Lkg0K/Qt9GL0Lo8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2Mud2lraXBlZGlhLm9yZy8iIGxhbmc9InNjIj5TYXJkdTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdHEud2lraXBlZGlhLm9yZy8iIGxhbmc9InN0cSI+U2VlbHRlcnNrPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25zby53aWtpcGVkaWEub3JnLyIgbGFuZz0ibnNvIj5TZXNvdGhvIHNhIExlYm9hPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzbiI+Q2hpU2hvbmE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2Qud2lraXBlZGlhLm9yZy8iIGxhbmc9InNkIiB0aXRsZT0iU2luZGjEqyI+PGJkaSBkaXI9InJ0bCI+2LPZhtqM2Yo8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3psLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzemwiPsWabMWvbnNraTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zby53aWtpcGVkaWEub3JnLyIgbGFuZz0ic28iPlNvb21hYWxpZ2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3JuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzcm4iPlNyYW5hbnRvbmdvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2thYi53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2FiIj5UYXFiYXlsaXQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcm9hLXRhcmEud2lraXBlZGlhLm9yZy8iIGxhbmc9InJvYSI+VGFyYW5kw61uZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90ZXQud2lraXBlZGlhLm9yZy8iIGxhbmc9InRldCI+VGV0dW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdHBpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0cGkiPlRvayBQaXNpbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90by53aWtpcGVkaWEub3JnLyIgbGFuZz0idG8iPmZha2EgVG9uZ2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdGsud2lraXBlZGlhLm9yZy8iIGxhbmc9InRrIj5Uw7xya21lbsOnZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90eXYud2lraXBlZGlhLm9yZy8iIGxhbmc9InR5diIgdGl0bGU9IlR5dmEgZHlsIj7QotGL0LLQsCDQtNGL0Ls8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdWRtLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ1ZG0iIHRpdGxlPSJVZG11cnQiPtCj0LTQvNGD0YDRgjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy91Zy53aWtpcGVkaWEub3JnLyIgbGFuZz0idWciPjxiZGkgZGlyPSJydGwiPtim24fZiti624fYsdqG2Yc8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmVwLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ2ZXAiPlZlcHPDpG48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZml1LXZyby53aWtpcGVkaWEub3JnLyIgbGFuZz0iZml1LXZybyI+VsO1cm88L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmxzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ2bHMiPldlc3QtVmxhbXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vd28ud2lraXBlZGlhLm9yZy8iIGxhbmc9IndvIj5Xb2xvZjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy93dXUud2lraXBlZGlhLm9yZy8iIGxhbmc9Ind1dSIgdGl0bGU9IlfDuiBZx5QiIGRhdGEtY29udmVydC1oYW5zPSLlkLTor60iIGlkPSJ3dXVfd2lraSI+5ZCz6KqePC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RpcS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZGlxIj5aYXpha2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemVhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ6ZWEiPlplw6p1d3M8L2E+PC9saT4KPC91bD4KPC9kaXY+CjwhLS0gQm9va3NoZWx2ZXMgLS0+CjxoMiBjbGFzcz0iYm9va3NoZWxmLWNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJib29rc2hlbGYiPgo8c3BhbiBjbGFzcz0idGV4dCIgZGlyPSJsdHIiPjEwMCs8L3NwYW4+Cjwvc3Bhbj4KPC9oMj4KPCEtLSAxMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGxhbmdsaXN0LXRpbnkgaGxpc3QiIGRhdGEtZWwtc2VjdGlvbj0ic2Vjb25kYXJ5IGxpbmtzIj4KPHVsPgo8bGk+PGEgaHJlZj0iLy9hay53aWtpcGVkaWEub3JnLyIgbGFuZz0iYWsiPkFrYW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYm0ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJtIj5CYW1hbmFua2FuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NoLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjaCI+Q2hhbW9ydTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ueS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibnkiPkNoaWNoZXdhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2VlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlZSI+RcqLZWdiZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mZi53aWtpcGVkaWEub3JnLyIgbGFuZz0iZmYiPkZ1bGZ1bGRlPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2dvdC53aWtpcGVkaWEub3JnLyIgbGFuZz0iZ290IiB0aXRsZT0iR3V0aXNrIj7wkIyy8JCMv/CQjYTwkIy58JCNg/CQjLo8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaXUud2lraXBlZGlhLm9yZy8iIGxhbmc9Iml1Ij7hkIPhk4ThkoPhkY7hkZDhkaYgLyBJbnVrdGl0dXQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaWsud2lraXBlZGlhLm9yZy8iIGxhbmc9ImlrIj5Jw7F1cGlhazwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rcy53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3MiIHRpdGxlPSJLYXNobWlyaSI+PGJkaSBkaXI9InJ0bCI+2YPYtNmF2YrYsdmKPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2x0Zy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibHRnIj5MYXRnYcS8dTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mai53aWtpcGVkaWEub3JnLyIgbGFuZz0iZmoiPk5hIFZvc2EgVmFrYS1WaXRpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NyLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjciI+TsSTaGl5YXfEk3dpbiAvIOGTgOGQpuGQg+GUreGQjeGQj+GQozwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9waWgud2lraXBlZGlhLm9yZy8iIGxhbmc9InBpaCI+Tm9yZnVrIC8gUGl0a2VybjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9vbS53aWtpcGVkaWEub3JnLyIgbGFuZz0ib20iPkFmYWFuIE9yb21vbzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9wbnQud2lraXBlZGlhLm9yZy8iIGxhbmc9InBudCIgdGl0bGU9IlBvbnRpYWvDoSI+zqDOv869z4TOuc6xzrrOrDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9kei53aWtpcGVkaWEub3JnLyIgbGFuZz0iZHoiIHRpdGxlPSJSZHpvbmctS2hhIj7gvaLgvqvgvbzgvYTgvIvgvYE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcm15Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJybXkiPlJvbWFuaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ybi53aWtpcGVkaWEub3JnLyIgbGFuZz0icm4iPktpcnVuZGk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc20ud2lraXBlZGlhLm9yZy8iIGxhbmc9InNtIj5HYWdhbmEgU8SBbW9hPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzZyI+U8OkbmfDtjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdC53aWtpcGVkaWEub3JnLyIgbGFuZz0ic3QiPlNlc290aG88L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdG4ud2lraXBlZGlhLm9yZy8iIGxhbmc9InRuIj5TZXRzd2FuYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9jdS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3UiIHRpdGxlPSJTbG92xJtuxK1za8WtIj7QodC70L7QstGjzIHQvdGM0YHQutGKIC8g4rCU4rCO4rCR4rCC4rCh4rCQ4rCg4rCU4rCN4rCfPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzcyI+U2lTd2F0aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90aS53aWtpcGVkaWEub3JnLyIgbGFuZz0idGkiIHRpdGxlPSJUaWdyacOxw7HEgSI+4Ym14YyN4Yit4YqbPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2Noci53aWtpcGVkaWEub3JnLyIgbGFuZz0iY2hyIiB0aXRsZT0iVHNhbGFnaSI+4Y+j4Y6z4Y6pPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NoeS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY2h5Ij5Uc8SXaGVzZW7El3N0c2VzdG90c2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmUud2lraXBlZGlhLm9yZy8iIGxhbmc9InZlIj5Uc2hpdmVu4biTYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90cy53aWtpcGVkaWEub3JnLyIgbGFuZz0idHMiPlhpdHNvbmdhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3R1bS53aWtpcGVkaWEub3JnLyIgbGFuZz0idHVtIj5jaGlUdW1idWthPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3R3Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0dyI+VHdpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3hoLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ4aCI+aXNpWGhvc2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8venUud2lraXBlZGlhLm9yZy8iIGxhbmc9Inp1Ij5pc2ladWx1PC9hPjwvbGk+CjwvdWw+CjwvZGl2Pgo8IS0tIE90aGVyIGxhbmd1YWdlcyAtLT4KPGRpdiBjbGFzcz0ibGFuZ2xpc3QgbGFuZ2xpc3Qtb3RoZXJzIGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249Im90aGVyIGxhbmd1YWdlcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vbWV0YS53aWtpbWVkaWEub3JnL3dpa2kvTGlzdF9vZl9XaWtpcGVkaWFzIiBsYW5nPSJlbiI+T3RoZXIgbGFuZ3VhZ2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RlLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6U3ByYWNoZW4iIGxhbmc9ImRlIj5XZWl0ZXJlIFNwcmFjaGVuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21ldGEud2lraW1lZGlhLm9yZy93aWtpL0xpc3RlX2Rlc19XaWtpcCVDMyVBOWRpYXMiIGxhbmc9ImZyIj5BdXRyZXMgbGFuZ3VlczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9wbC53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlhOkxpc3RhX3dlcnNqaV9qJUM0JTk5enlrb3d5Y2giIGxhbmc9InBsIj5Lb21wbGV0bmEgbGlzdGEgasSZenlrw7N3PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2phLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6JUU1JUE0JTlBJUU4JUE4JTgwJUU4JUFBJTlFJUUzJTgzJTk3JUUzJTgzJUFEJUUzJTgyJUI4JUUzJTgyJUE3JUUzJTgyJUFGJUUzJTgzJTg4JUUzJTgxJUE4JUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJUFFJUUzJTgyJUE2JUUzJTgyJUEzJUUzJTgyJUFEJUUzJTgzJTlBJUUzJTgzJTg3JUUzJTgyJUEzJUUzJTgyJUEyIiBsYW5nPSJqYSI+5LuW44Gu6KiA6KqePC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21ldGEud2lraW1lZGlhLm9yZy93aWtpL0xpc3RhX2RlX1dpa2lwZWRpYXMiIGxhbmc9ImVzIj5PdHJvcyBpZGlvbWFzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3poLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6JUU3JUJCJUI0JUU1JTlGJUJBJUU3JTk5JUJFJUU3JUE3JTkxJUU4JUFGJUFEJUU4JUE4JTgwJUU1JTg4JTk3JUU4JUExJUE4IiBsYW5nPSJ6aCIgZGF0YS1jb252ZXJ0LWhhbnM9IuWFtuS7luivreiogCIgaWQ9InpoX290aGVycyI+5YW25LuW6Kqe6KiAPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlOTIlRDAlQjglRDAlQkElRDAlQjglRDAlQkYlRDAlQjUlRDAlQjQlRDAlQjglRDElOEY6JUQwJUExJUQwJTkyIiBsYW5nPSJydSI+0JTRgNGD0LPQuNC1INGP0LfRi9C60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZW8ud2lraXBlZGlhLm9yZy93aWtpL1Zpa2lwZWRpbzpJbnRlcm5hY2lhX1Zpa2lwZWRpbyIgbGFuZz0iZW8iPkFsaWFqIGxpbmd2b2o8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWV0YS53aWtpbWVkaWEub3JnL3dpa2kvJUVDJTlDJTg0JUVEJTgyJUE0JUVCJUIwJUIxJUVBJUIzJUJDJUVDJTlEJTk4XyVFQiVBQSVBOSVFQiVBMSU5RCIgbGFuZz0ia28iPuuLpOuluCDslrjslrQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmkud2lraXBlZGlhLm9yZy93aWtpL1dpa2lwZWRpYTpQaGklQzMlQUFuX2IlRTElQkElQTNuX25nJUMzJUI0bl9uZyVFMSVCQiVBRiIgbGFuZz0idmkiPk5nw7RuIG5n4buvIGtow6FjPC9hPjwvbGk+CjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxocj4KPGRpdiBjbGFzcz0iZm9vdGVyIiBkYXRhLWVsLXNlY3Rpb249Im90aGVyIHByb2plY3RzIj4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXIiPgo8ZGl2IGNsYXNzPSJmb290ZXItc2lkZWJhci1jb250ZW50Ij4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXItaWNvbiBzcHJpdGUgc3ZnLVdpa2ltZWRpYS1sb2dvX2JsYWNrIj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZvb3Rlci1zaWRlYmFyLXRleHQganNsMTBuIiBkYXRhLWpzbDEwbj0iZm9vdGVyLWRlc2NyaXB0aW9uIj4KV2lraXBlZGlhIGlzIGhvc3RlZCBieSB0aGUgPGEgaHJlZj0iLy93aWtpbWVkaWFmb3VuZGF0aW9uLm9yZy8iPldpa2ltZWRpYSBGb3VuZGF0aW9uPC9hPiwgYSBub24tcHJvZml0IG9yZ2FuaXphdGlvbiB0aGF0IGFsc28gaG9zdHMgYSByYW5nZSBvZiBvdGhlciBwcm9qZWN0cy4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXIgYXBwLWJhZGdlcyI+CjxkaXYgY2xhc3M9ImZvb3Rlci1zaWRlYmFyLWNvbnRlbnQiPgo8ZGl2IGNsYXNzPSJmb290ZXItc2lkZWJhci10ZXh0Ij4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXItaWNvbiBzcHJpdGUgc3ZnLXdpa2lwZWRpYV9hcHBfdGlsZSI+PC9kaXY+CjxzdHJvbmcgY2xhc3M9ImpzbDEwbiIgZGF0YS1qc2wxMG49ImFwcC1saW5rcy50aXRsZSI+V2lraXBlZGlhIGFwcHMgYXJlIG5vdyBhdmFpbGFibGU6PC9zdHJvbmc+Cjx1bD4KPGxpIGNsYXNzPSJhcHAtYmFkZ2UgYXBwLWJhZGdlLWlvcyI+CjxhIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJhcHAtbGlua3MuaW9zIiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iLy9pdHVuZXMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDMyNDcxNTIzOD9wdD0yMDgzMDUmYW1wO2N0PXBvcnRhbCZhbXA7bXQ9OCI+RG93bmxvYWQgZm9yIGlPUyBvbiB0aGUgQXBwIFN0b3JlPC9hPgo8L2xpPgo8bGkgY2xhc3M9ImFwcC1iYWRnZSBhcHAtYmFkZ2UtYW5kcm9pZCI+CjxhIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJhcHAtbGlua3MuYW5kcm9pZCIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ii8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1vcmcud2lraXBlZGlhJmFtcDtyZWZlcnJlcj1jYW1wYWlnbl9pZCUzRHBvcnRhbCI+RG93bmxvYWQgZm9yIEFuZHJvaWQgb24gR29vZ2xlIFBsYXk8L2E+CjwvbGk+CjxsaSBjbGFzcz0iYXBwLWJhZGdlIGFwcC1iYWRnZS1mdWxsbGlzdCI+CjxzcGFuIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJhcHAtbGlua3Mub3RoZXIiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX1dpa2lwZWRpYV9tb2JpbGVfYXBwbGljYXRpb25zIj5WaWV3IGZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgV2lraXBlZGlhIGFwcHM8L2E+PC9zcGFuPgo8L2xpPgo8L3VsPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0cyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL2NvbW1vbnMud2lraW1lZGlhLm9yZy8iPgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LWljb24iPgo8ZGl2IGNsYXNzPSJzcHJpdGUgc3ZnLUNvbW1vbnMtbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0iY29tbW9ucy5uYW1lIj5Db21tb25zPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49ImNvbW1vbnMuc2xvZ2FuIj5GcmVlbHkgdXNhYmxlIHBob3RvcyAmYW1wOyBtb3JlPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lndpa2l2b3lhZ2Uub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraXZveWFnZS1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpdm95YWdlLm5hbWUiPldpa2l2b3lhZ2U8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraXZveWFnZS5zbG9nYW4iPkZyZWUgdHJhdmVsIGd1aWRlPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lndpa3Rpb25hcnkub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lrdGlvbmFyeS1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWt0aW9uYXJ5Lm5hbWUiPldpa3Rpb25hcnk8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lrdGlvbmFyeS5zbG9nYW4iPkZyZWUgZGljdGlvbmFyeTwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpYm9va3Mub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraWJvb2tzLWxvZ29fc2lzdGVyIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtdGV4dCI+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRpdGxlIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lib29rcy5uYW1lIj5XaWtpYm9va3M8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraWJvb2tzLnNsb2dhbiI+RnJlZSB0ZXh0Ym9va3M8L3NwYW4+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0Ij4KPGEgY2xhc3M9Im90aGVyLXByb2plY3QtbGluayIgaHJlZj0iLy93d3cud2lraW5ld3Mub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraW5ld3MtbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraW5ld3MubmFtZSI+V2lraW5ld3M8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraW5ld3Muc2xvZ2FuIj5GcmVlIG5ld3Mgc291cmNlPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lndpa2lkYXRhLm9yZy8iPgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LWljb24iPgo8ZGl2IGNsYXNzPSJzcHJpdGUgc3ZnLVdpa2lkYXRhLWxvZ29fc2lzdGVyIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtdGV4dCI+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRpdGxlIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lkYXRhLm5hbWUiPldpa2lkYXRhPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lkYXRhLnNsb2dhbiI+RnJlZSBrbm93bGVkZ2UgYmFzZTwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpdmVyc2l0eS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1XaWtpdmVyc2l0eS1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpdmVyc2l0eS5uYW1lIj5XaWtpdmVyc2l0eTwvc3Bhbj4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGFnbGluZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpdmVyc2l0eS5zbG9nYW4iPkZyZWUgY291cnNlIG1hdGVyaWFsczwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpcXVvdGUub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraXF1b3RlLWxvZ29fc2lzdGVyIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtdGV4dCI+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRpdGxlIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lxdW90ZS5uYW1lIj5XaWtpcXVvdGU8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraXF1b3RlLnNsb2dhbiI+RnJlZSBxdW90ZSBjb21wZW5kaXVtPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lm1lZGlhd2lraS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1NZWRpYVdpa2ktbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0ibWVkaWF3aWtpLm5hbWUiPk1lZGlhV2lraTwvc3Bhbj4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGFnbGluZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJtZWRpYXdpa2kuc2xvZ2FuIj5GcmVlICZhbXA7IG9wZW4gd2lraSBhcHBsaWNhdGlvbjwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpc291cmNlLm9yZy8iPgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LWljb24iPgo8ZGl2IGNsYXNzPSJzcHJpdGUgc3ZnLVdpa2lzb3VyY2UtbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraXNvdXJjZS5uYW1lIj5XaWtpc291cmNlPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lzb3VyY2Uuc2xvZ2FuIj5GcmVlIGxpYnJhcnk8L3NwYW4+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0Ij4KPGEgY2xhc3M9Im90aGVyLXByb2plY3QtbGluayIgaHJlZj0iLy9zcGVjaWVzLndpa2ltZWRpYS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1XaWtpc3BlY2llcy1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpc3BlY2llcy5uYW1lIj5XaWtpc3BlY2llczwvc3Bhbj4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGFnbGluZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpc3BlY2llcy5zbG9nYW4iPkZyZWUgc3BlY2llcyBkaXJlY3Rvcnk8L3NwYW4+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0Ij4KPGEgY2xhc3M9Im90aGVyLXByb2plY3QtbGluayIgaHJlZj0iLy9tZXRhLndpa2ltZWRpYS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1NZXRhLVdpa2ktbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0ibWV0YXdpa2kubmFtZSI+TWV0YS1XaWtpPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49Im1ldGF3aWtpLnNsb2dhbiI+Q29tbXVuaXR5IGNvb3JkaW5hdGlvbiAmYW1wOyBkb2N1bWVudGF0aW9uPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8cCBjbGFzcz0ic2l0ZS1saWNlbnNlIj4KPHNtYWxsIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJsaWNlbnNlIj5UaGlzIHBhZ2UgaXMgYXZhaWxhYmxlIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLyI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIExpY2Vuc2U8L2E+PC9zbWFsbD4KPHNtYWxsIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJ0ZXJtcyI+PGEgaHJlZj0iLy9tZXRhLndpa2ltZWRpYS5vcmcvd2lraS9UZXJtc19vZl9Vc2UiPlRlcm1zIG9mIFVzZTwvYT48L3NtYWxsPgo8c21hbGwgY2xhc3M9ImpzbDEwbiIgZGF0YS1qc2wxMG49IlByaXZhY3kgUG9saWN5Ij48YSBocmVmPSIvL21ldGEud2lraW1lZGlhLm9yZy93aWtpL1ByaXZhY3lfcG9saWN5Ij5Qcml2YWN5IFBvbGljeTwvYT48L3NtYWxsPgo8L3A+CjwhLS1baWYgZ3QgSUUgN10tLT4KPHNjcmlwdD4KdmFyIHJ0bExhbmdzID0gWydhcicsJ2FyYycsJ2FyeicsJ2JjYycsJ2JnbicsJ2JxaScsJ2NrYicsJ2R2JywnZmEnLCdnbGsnLCdoZScsJ2trLWNuJywna2stYXJhYicsJ2todycsJ2tzJywna3UtYXJhYicsJ2xraScsJ2xyYycsJ2x1eicsJ216bicsJ3BuYicsJ3BzJywnc2QnLCdzZGgnLCd1ZycsJ3VyJywneWknXSwKICAgIHRyYW5zbGF0aW9uc0hhc2ggPSAnNTgxZjU1MjknLAogICAgLyoKICAgICBUaGlzIG9iamVjdCBpcyB1c2VkIGJ5IGwxMG4gc2NyaXB0cyAocGFnZS1sb2NhbGl6ZWQuanMsIHRvcHRlbi1sb2NhbGl6ZWQuanMpCiAgICAgdG8gcmV2ZWFsIHRoZSBwYWdlIGNvbnRlbnQgYWZ0ZXIgbDEwbiBqc29uIGlzIGxvYWRlZC4KICAgICBBIHRpbWVyIGlzIGFsc28gc2V0IHRvIHByZXZlbnQgSlMgZnJvbSBoaWRpbmcgcGFnZSBjb250ZW50IGluZGVmaW5pdGVsdHkuCiAgICAgVGhpcyBzY3JpcHQgaXMgaW5saW5lZCB0byBzYWZlZ3VhcmQgYWdhaW50IHNjcmlwdCBsb2FkaW5nIGVycm9ycyBhbmQgcGxhY2VkCiAgICAgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0byBzYWZlZ3VhcmQgYWdhaW5zdCBhbnkgSFRNTCBsb2FkaW5nL3BhcnNpbmcgZXJyb3JzLgogICAgKi8KICAgIHdtTDEwblZpc2libGUgPSB7CiAgICAgICAgcmVhZHk6IGZhbHNlLAogICAgICAgIG1ha2VWaXNpYmxlOiBmdW5jdGlvbigpewogICAgICAgICAgICBpZiAoICF3bUwxMG5WaXNpYmxlLnJlYWR5ICkgewogICAgICAgICAgICAgICAgd21MMTBuVmlzaWJsZS5yZWFkeSA9IHRydWU7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSArPSAnIGpzbDEwbi12aXNpYmxlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07CiAgICB3aW5kb3cuc2V0VGltZW91dCggd21MMTBuVmlzaWJsZS5tYWtlVmlzaWJsZSwgMTAwMCApCjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0icG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2pzL2luZGV4LTQ3ZjVmMDc2ODIuanMiPjwvc2NyaXB0Pgo8IS0tW2VuZGlmXS0tPgo8IS0tW2lmIGd0IElFIDldLS0+CjxzY3JpcHQgc3JjPSJwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvanMvZ3QtaWU5LTAxMWY4ZGJmYTkuanMiPjwvc2NyaXB0Pgo8IS0tW2VuZGlmXS0tPgo8IS0tW2lmIGx0ZSBJRSA5XS0tPgo8c3R5bGU+Ci5zdHlsZWQtc2VsZWN0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KPC9zdHlsZT4KPCEtLVtlbmRpZl0tLT4KPCEtLVtpZiBsdGUgSUUgOV0+CjxzdHlsZT4KICAgIC5sYW5nbGlzdCA+IHVsIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAubGFuZ2xpc3QgPiB1bCA+IGxpIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgICAgcGFkZGluZzogMCAwLjVlbTsKICAgIH0KPC9zdHlsZT4KPCFbZW5kaWZdLS0+CgoKPC9ib2R5Pg==
43 | http_version:
44 | recorded_at: Wed, 24 Jul 2019 06:37:01 GMT
45 | recorded_with: VCR 4.0.0
46 |
--------------------------------------------------------------------------------