moneta-api 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9afe26d1633a8ca7b06ab6e985875eb38321fee4
4
- data.tar.gz: a0c02712a1532ee5591144f5758fe39a2e021e49
3
+ metadata.gz: 6fe15d3c1350ff4016492c7353a436039eee111f
4
+ data.tar.gz: f6243623908cdc7994f2bdbf972dd480ac407070
5
5
  SHA512:
6
- metadata.gz: 8f6610a206970c46cd942d5deaeefe267fb5e2a375e586aa8cd7dec48ee41f1a84690e6d1144594ad0397459e87df3f0a948b1499fd3c5a176d35f1618104b76
7
- data.tar.gz: c73e6706ca8dff9b853a7562450d954873db2cc09521451760f569b86907525a244fc9cebe8b031513f15bde1fb7f4a3596aa003d9c748132eb9387a9abb87a2
6
+ metadata.gz: f70113c4121d53e4ac50c00437fee404c77cd1894085059639e9963350b5f9e96f3b020e6b484da57093e7fad36b321a9e37419e8df29c88710ef0b15020a71a
7
+ data.tar.gz: 6aef658f084138d5a689dd76aacf542c266fde1bf0610b6afeba008b2da844bf691a9349949fffc547015b253b2664ee972005283daabf22bc3ff535f16c6b71
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ## 2.1.0
2
+ - Получение чека монеты в формате PDF с иcпользованием сертификатов
1
3
  ## 2.0.0
2
4
 
3
5
  - Перевод взаимодействия с Moneta.ru с SOAP на JSON.
data/README.md CHANGED
@@ -39,8 +39,11 @@ gem 'moneta-api'
39
39
  $ gem install moneta-api
40
40
 
41
41
  ## Использование
42
+ Есть несколько вариантов работы с сервисами монеты:
43
+ 1. API - работа происходит с использованием методов описанных в MONETA.MerchantAPI.v2
44
+ 2. FRONT - работа происходит напрямую с интерфейсом монеты.
42
45
 
43
- ### Примеры
46
+ ### Примеры работы c API
44
47
 
45
48
  #### Получить данные счета
46
49
 
@@ -135,10 +138,48 @@ gem 'moneta-api'
135
138
  Moneta::Api::Service.new('username', 'password', { demo_mode: true })
136
139
  ```
137
140
 
141
+
142
+ ### Примеры работы с FRONT (интерфейс монеты)
143
+
144
+ #### Получить квинтанцию оплаты в формате PDF
145
+ ```ruby
146
+ require 'moneta/api'
147
+
148
+ certificate = OpenSSL::X509::Certificate.new(File.read('cert_path'))
149
+ private_key = OpenSSL::PKey::RSA.new(File.read('key_path'), 'password')
150
+
151
+ service = Moneta::Front::Service.new(certificate, private_key, { demo_mode: true })
152
+
153
+ service.get_receipt_pdf(468398)
154
+ # => 'PDF файл'
155
+ ```
156
+
157
+ **Полный [список методов](http://www.rubydoc.info/gems/moneta-api/Moneta/Front/ServiceMethods), с помощью которых вы можете обратиться к интефейсу moneta.ru**
158
+
159
+ ### Настройки
160
+ **Для работы с интерфейсом монеты понадобиться получение сертификатов, получение подробно описано в [MONETA.MerchantAPI.v2](https://www.moneta.ru/doc/MONETA.MerchantAPI.v2.ru.pdf)**
161
+
162
+ Параметры:
163
+
164
+ Название | Описание
165
+ ---------------------------|:----------------------------------------------
166
+ `certificate` | Сертификат пользователя, полученный от монеты.
167
+ `private_key` | Приватный ключ, сгенерированный пользователем.
168
+ `:demo_mode` | Выполнение операций на демо стенде.
169
+ `:open_timeout` | Таймаут подключения.
170
+ `:filter` | Настройка фильтрации содержимого лога.
171
+
172
+ #### Demo режим
173
+ Для использования тестового сервера (http://demo.moneta.ru) следует инициализировать сервис со специальным флагом
174
+
175
+ ```ruby
176
+ Moneta::Front::Service.new(certificate, private_key, { demo_mode: true })
177
+ ```
178
+
138
179
  ## Contributing
139
180
 
140
181
  1. Стандартная схема с pull-request workflow
141
182
  2. Для локального запуска тестов необходимо создать конфигурационный файл со своими demo доступами
142
183
  ```bash
143
- echo "username: 'username'\npassword: 'password'" > spec/support/moneta.yml
184
+ cp spec/support/moneta.example.yml spec/support/moneta.yml
144
185
  ```
data/lib/moneta/api.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require 'moneta/api/version'
2
2
  require 'faraday'
3
+ require 'faraday_middleware'
3
4
  require 'oj'
4
5
  require 'active_support/core_ext/hash/indifferent_access'
5
6
  require 'active_support/core_ext/string/inflections'
6
7
 
7
8
  require 'moneta/constants/withdrawal'
9
+ require 'moneta/constants/settings'
8
10
  require 'moneta/api/options'
9
11
  require 'moneta/api/service_methods'
10
12
  require 'moneta/api/service'
@@ -122,3 +124,7 @@ require 'moneta/api/responses/approve_phone_send_confirmation_response'
122
124
  require 'moneta/api/responses/approve_phone_apply_code_response'
123
125
 
124
126
  require 'moneta/api/response_factory'
127
+
128
+ require 'moneta/front/http_exception'
129
+ require 'moneta/front/service_methods'
130
+ require 'moneta/front/service'
@@ -1,9 +1,9 @@
1
1
  module Moneta
2
2
  module Api
3
3
  class Service
4
- DEMO = 'https://demo.moneta.ru'
5
- PRODUCTION = 'https://www.moneta.ru'
6
- URL = '/services'
4
+ DEMO = Moneta::Constants::Settings::DEMO
5
+ PRODUCTION = Moneta::Constants::Settings::PRODUCTION
6
+ URL = Moneta::Constants::Settings::SERVICES_PATH
7
7
 
8
8
  include ServiceMethods
9
9
 
@@ -1,5 +1,5 @@
1
1
  module Moneta
2
2
  module Api
3
- VERSION = '2.0.0'
3
+ VERSION = '2.1.0'
4
4
  end
5
5
  end
@@ -0,0 +1,12 @@
1
+ module Moneta
2
+ module Constants
3
+ module Settings
4
+ DEMO = 'https://demo.moneta.ru'
5
+ PRODUCTION = 'https://www.moneta.ru'
6
+
7
+ SERVICES_PATH = '/services'
8
+ CERTIFICATE_PATH = '/x509'
9
+ end
10
+ end
11
+ end
12
+
@@ -0,0 +1,13 @@
1
+ module Moneta
2
+ module Front
3
+ class HTTPException < StandardError
4
+ def to_hash
5
+ { message: message }
6
+ end
7
+
8
+ def inspect
9
+ "HTTPException: #{ message }"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,51 @@
1
+ require 'moneta/api/options'
2
+
3
+ module Moneta
4
+ module Front
5
+ class Service
6
+ DEMO = Moneta::Constants::Settings::DEMO
7
+ PRODUCTION = Moneta::Constants::Settings::PRODUCTION
8
+ PATH = Moneta::Constants::Settings::CERTIFICATE_PATH
9
+
10
+ include ServiceMethods
11
+
12
+ def initialize(certificate, key, params = {})
13
+ @certificate = certificate
14
+ @key = key
15
+ @connection = connection(Moneta::Api::Options.new(params))
16
+ end
17
+
18
+ def request(url)
19
+ @connection.get(url)
20
+ end
21
+
22
+ private
23
+
24
+ def connection(options)
25
+ Faraday.new(url: endpoint(options.demo?), ssl: ssl_options) do |faraday|
26
+ faraday.use ::FaradayMiddleware::FollowRedirects, limit: 10
27
+
28
+ if options.logger
29
+ faraday.response :logger, options.logger, bodies: options.log_bodies? do |logger|
30
+ options.filter.each do |subject, replacement|
31
+ logger.filter(/#{ subject }/, replacement)
32
+ end
33
+ end
34
+ end
35
+
36
+ faraday.adapter :net_http do |http|
37
+ http.open_timeout = options.open_timeout
38
+ end
39
+ end
40
+ end
41
+
42
+ def endpoint(demo)
43
+ (demo ? DEMO : PRODUCTION) + PATH
44
+ end
45
+
46
+ def ssl_options
47
+ { client_cert: @certificate, client_key: @key, verify: false }
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,26 @@
1
+ module Moneta
2
+ module Front
3
+ module ServiceMethods
4
+ def get_receipt_pdf(operation_id)
5
+ url = "report/receipt.htm?operationId=#{operation_id}&format=pdf"
6
+
7
+ call(url)
8
+ end
9
+
10
+ private
11
+
12
+ def call(url)
13
+ response = request(url)
14
+
15
+ case response.status
16
+ when 200..230 then response.body
17
+ else
18
+ raise Moneta::Front::HTTPException.new("Status code: #{response.status}")
19
+ end
20
+
21
+ rescue Faraday::Error => e
22
+ raise Moneta::Front::HTTPException.new(e.message)
23
+ end
24
+ end
25
+ end
26
+ end
data/moneta-api.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.required_ruby_version = '>= 2.0'
22
22
 
23
23
  spec.add_dependency 'faraday', '~> 0.11.0'
24
+ spec.add_dependency 'faraday_middleware', '~> 0.12'
24
25
  spec.add_dependency 'activesupport', '>= 4.0.0'
25
26
  spec.add_dependency 'oj', '>= 2.16'
26
27
 
@@ -0,0 +1,38 @@
1
+ describe Moneta::Front::Service, vcr: true do
2
+ let(:params) { { demo_mode: true } }
3
+
4
+ let(:service) { described_class.new($cert, $cert_private_key, params) }
5
+
6
+ describe '#request' do
7
+ subject { service.request(path) }
8
+
9
+ context 'when success request' do
10
+ let(:path) { 'report/receipt.htm?operationId=467339&format=pdf' }
11
+
12
+ its(:status) { is_expected.to eq 200 }
13
+ end
14
+
15
+ context 'when bad request' do
16
+ let(:path) { 'report/receipt.htm' }
17
+ its(:status) { is_expected.to eq 400 }
18
+ end
19
+ end
20
+
21
+ describe '#get_receipt_pdf' do
22
+ subject { service.get_receipt_pdf(operation_id) }
23
+
24
+ context 'when success request' do
25
+ let(:operation_id) { 467339 }
26
+
27
+ it 'Must be a PDF' do
28
+ expect(subject[0, 4]).to eq('%PDF')
29
+ end
30
+ end
31
+
32
+ context 'when bad request' do
33
+ let(:operation_id) { 'report/receipt.htm' }
34
+
35
+ it { expect { subject }.to raise_error(Moneta::Front::HTTPException) }
36
+ end
37
+ end
38
+ end
data/spec/spec_helper.rb CHANGED
@@ -17,9 +17,15 @@ end
17
17
 
18
18
  config = YAML.load(File.read(File.join(Dir.pwd, 'spec/support/moneta.yml')))
19
19
 
20
+ cert_path = File.join(Dir.pwd, config['cert_path'])
21
+ cert_private_key_path = File.join(Dir.pwd, config['cert_private_key_path'])
22
+
20
23
  $username = config['username']
21
24
  $password = config['password']
22
25
 
26
+ $cert = OpenSSL::X509::Certificate.new(File.read(cert_path))
27
+ $cert_private_key = OpenSSL::PKey::RSA.new(File.read(cert_private_key_path), config['private_key_password'])
28
+
23
29
  class WebHelper
24
30
  def self.with_real_connection
25
31
  WebMock.allow_net_connect!
@@ -35,6 +41,7 @@ VCR.configure do |config|
35
41
  config.hook_into :webmock
36
42
  config.filter_sensitive_data('<USERNAME>') { $username }
37
43
  config.filter_sensitive_data('<PASSWORD>') { $password }
44
+ config.filter_sensitive_data('<CERT_PASSWORD>') { $cert_pass }
38
45
  config.ignore_hosts 'codeclimate.com'
39
46
  end
40
47
 
@@ -0,0 +1,29 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIE7zCCAtegAwIBAgICKKQwDQYJKoZIhvcNAQEFBQAwgaYxCzAJBgNVBAYTAlJV
3
+ MRAwDgYDVQQIDAdNYXJpIEVsMRQwEgYDVQQHDAtZb3Noa2FyLU9sYTEcMBoGA1UE
4
+ CgwTTkNPIE1PTkVUQS5SVSAoTExDKTERMA8GA1UECwwIVGVjaERlcHQxFzAVBgNV
5
+ BAMMDmRlbW8ubW9uZXRhLnJ1MSUwIwYJKoZIhvcNAQkBFhZ0ZWNoLnN1cHBvcnRA
6
+ bW9uZXRhLnJ1MB4XDTE3MTEwMzEwMjU0OFoXDTE4MTEwMzEwMjU0OFowVzELMAkG
7
+ A1UEBhMCUlUxEjAQBgNVBAgMCVRhdGFyc3RhbjEOMAwGA1UEBwwFS2F6YW4xFDAS
8
+ BgNVBAoMC1J1bnRpbWUgTExDMQ4wDAYDVQQDDAVEYW1pcjCCASIwDQYJKoZIhvcN
9
+ AQEBBQADggEPADCCAQoCggEBAL1q0kiaP6pr3f2jtH9CMCYWF+Oc9aMOQuzoU7P5
10
+ xETxePfBZu8h2smB8WsrHjlHbj/LI8XxH5kGYzomri7XrbC6osfTQR2Up9yuPvJw
11
+ 9rV1h0bEUQ2I7y1ns0d5kCFaIqOOpFp04eF16/xqjYFcZqF6triw2IBfcDRnRSnY
12
+ 5x9cR6lyeXhnjDNCcMHyzfXcnPUzUycEyaDVVKO/gNcFJInZcblyAobM2ja07Ji/
13
+ sOI5GB6RpEKKdRMBfSjGf9cDrm/33heeVGCiVUK9rxT9lv44e+FwhmMEApuPVc9m
14
+ xVJ6j8aBlb+Y0+zEdVEysUNAuu7+gUEMQgAGU7IH/mWVeSkCAwEAAaN1MHMwHwYD
15
+ VR0jBBgwFoAUEmi7gDDSEybKT6yoaTS7VAvOxqQwHQYDVR0OBBYEFNL2nqzYd5/5
16
+ TxLSNRBe5Jsym9KSMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBMGA1Ud
17
+ JQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4ICAQApsU1xN+lA8iT2x9MP
18
+ Tn/W//de5tBOFAKUnefzQrpjkqf94vzQ0j2z06g2nwRNDuVeit9g/r5iZpHiJh1K
19
+ Joz2F4WPGZNeWAszDwiXfMDsCsQOuw2zq4WYa4rOOLMs+IgLR9tKhDspgbLl396U
20
+ 3MEHz5N9Lb5Pfiu/1klFE+SO/9q9HtyLn5lNkbyfxrzoKfyWpHwYZi8dofkHPNgI
21
+ qPOIjQwedPv5SUWdWghSdsjQ6NvptUnCWgJOQzaHVPJLq01wdRLhz/lL316b59YH
22
+ /VcGwmZcXwEwUVvIgDdE0ieNjHJwfp+OZJqRGszvHOh89fE8zvtSOysqvLvmSv3E
23
+ sHemrnQ18Fr3P7kOr4kfbsB9DMheaxPyp9yTQ7t+r3YOkJK8HxxNavAIchner/lU
24
+ sfWioutD1qzCI8Ex5JG6gWOltDEs6A7w2ro9zyAIjelpq8R3rnGd8c6LXbClqJdr
25
+ 1x3EU9DjAhWb8+JWNKlv9doR+EAUFHvjtojWfoWNcRxoVIAoio1qsDega0MibFVr
26
+ 9lWGMkGhsTIXOOk5KpmcTT3eLD5ZJNXLXRcYa0tj60QH9xTaTtJbfJJ3KhV8vPdO
27
+ 2sc+QRWbIjD5+MpJkSPFMMsHbHm2LO/FvrpcMExVOYZ+UXhvzfah1HiIZ2sr353f
28
+ HnFMtpar7U/YZvkoIL4fOpKWQA==
29
+ -----END CERTIFICATE-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC9atJImj+qa939
3
+ o7R/QjAmFhfjnPWjDkLs6FOz+cRE8Xj3wWbvIdrJgfFrKx45R24/yyPF8R+ZBmM6
4
+ Jq4u162wuqLH00EdlKfcrj7ycPa1dYdGxFENiO8tZ7NHeZAhWiKjjqRadOHhdev8
5
+ ao2BXGahera4sNiAX3A0Z0Up2OcfXEepcnl4Z4wzQnDB8s313Jz1M1MnBMmg1VSj
6
+ v4DXBSSJ2XG5cgKGzNo2tOyYv7DiORgekaRCinUTAX0oxn/XA65v994XnlRgolVC
7
+ va8U/Zb+OHvhcIZjBAKbj1XPZsVSeo/GgZW/mNPsxHVRMrFDQLru/oFBDEIABlOy
8
+ B/5llXkpAgMBAAECggEAQYHU8ajuxbiCUHqyLKSuVC2l22DoDpkbCiWa9Q43E4TT
9
+ ShPHzoHN0Yyv+lkyHasXdNaDK6ylOd3cqTrBWI/ckNcq/qKPzXQgzZAxUtVAbScV
10
+ PqMcSOsHlJNdjCV9dBthCWGGc4YirD+E+om7IHbdQ5FV6e+3IEZhXq4sXDmYTN6b
11
+ i+I+TWiEAvnUrY1qm8+o3xqdvadnD2ixcNRlbAi6uzMUkhTqPy/g6POSzPtTKYF7
12
+ LQOssf6e1mxoLihevkBFVqwrshvXSanKkVu1q2QMlWaXHUzSCs0BtZQB3mRBu+XB
13
+ 2AC1afQai4Ubr7nT/XfBz52u+bh59Tmq+qGDXnm+gQKBgQDqNSPkBj8yb30aw1nj
14
+ 0vo987jNtaFeA+PdPwMCr952YjSgMzaOV9irSQjCHqTQS5JLoUGc32Tof1fWH8kc
15
+ pCgt7IKTGn1hdvQotPMHhve9vuFI/rQ6YIPF0+USUSmNwbKbwmSzK5SzqkdvwXD/
16
+ xfAO5qMlb4A6cAlQvXXHLl/L+QKBgQDPCsTz5fG2VSN7tDr2Hh1hJ4xhXSKIu8ri
17
+ cOzmbEwL8AeVhhR1wJQEXBM/FX/dIlcYDA9SyOkcnAeNRrjFlPn6/DqzrbJSWXRL
18
+ ziiMkew7Yld5rwRGl6w5uURpfB1APQMeefsNT5AZQtepTmjW08fjFHtoNFyD7FcN
19
+ dM71vS2CsQKBgQC2Bl0BoNVHJp0tyrw3M8bnlV+BCXQD9LQJRSra0MLucT8Dbyos
20
+ kRvFa/rRnC1t8f4ep5KuEHWFuUsUERomF3Ne1d1Z5RGjSWdTp+bmZ8BuCUdgiwyZ
21
+ /l8LxrbXeJr6IJvnMLtBAVMOG/5vXgGr2DPN8PTFaJZZVK/4v3clOeacSQKBgQC9
22
+ DcVoPKjpaHa9J4bLZBZJt7Ys1cGJ/4i0Go+HnI4YPHaAZ21ZVJ8UGAuPCA+4mfnT
23
+ QHfhjQmnkSYoL9LawD0/nH/xwALbxUk3Symlqj1+wD7GIzURTL/7+Ztpguam2M93
24
+ TcUbk3IuTuXkeG+s8rdMOFCzh1SPNgkLhYTRyYu8EQKBgQC117MNYc1JG5d3PkWC
25
+ Q3xAkXPS14sRKlP4cE8m2ZyCoT04mFAP6hydlGtbUz8sDhwMwbHZVkROqrhnkzsT
26
+ 7MXifPU7Z4+Z15LzhFC8j8EdfebFlDCpXbhHMIHfFnZMGpLEPbPyOncTXA4QvjHf
27
+ i63SHI1R9T/c8KXfFZhvIzfUVw==
28
+ -----END PRIVATE KEY-----
@@ -1,2 +1,6 @@
1
1
  username: 'username'
2
2
  password: 'password'
3
+
4
+ cert_path: 'spec/support/moneta-certificate.pem'
5
+ cert_private_key_path: 'spec/support/moneta-private.key'
6
+ private_key_password:
@@ -0,0 +1,295 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://demo.moneta.ru/x509/report/receipt.htm?format=pdf&operationId=report/receipt.htm
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.11.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 302
19
+ message: Found
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Tue, 07 Nov 2017 07:54:42 GMT
25
+ Content-Type:
26
+ - text/html
27
+ Content-Length:
28
+ - '0'
29
+ Connection:
30
+ - keep-alive
31
+ Keep-Alive:
32
+ - timeout=60
33
+ Strict-Transport-Security:
34
+ - max-age=31536000 ; includeSubDomains
35
+ Location:
36
+ - https://demo.moneta.ru:8443/x509/report/receipt.htm?format=pdf&operationId=report%2Freceipt.htm
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Xss-Protection:
40
+ - 1; mode=block
41
+ Content-Security-Policy:
42
+ - 'default-src ''self'' *.moneta.ru *.moneta.com *.payanyway.ru *.payanyway.com
43
+ ; script-src ''self'' *.moneta.ru *.moneta.com *.payanyway.ru *.payanyway.com
44
+ https://*.google-analytics.com ''unsafe-inline'' ''unsafe-eval''; style-src
45
+ ''self'' *.moneta.ru *.moneta.com *.payanyway.ru *.payanyway.com ''unsafe-inline'';
46
+ img-src * data:; font-src ''self'' data: *.moneta.ru *.moneta.com *.payanyway.ru
47
+ *.payanyway.com https://fonts.gstatic.com https://sxt.cdn.skype.com ; report-uri
48
+ /cspreport.htm'
49
+ body:
50
+ encoding: UTF-8
51
+ string: ''
52
+ http_version:
53
+ recorded_at: Tue, 07 Nov 2017 07:54:42 GMT
54
+ - request:
55
+ method: get
56
+ uri: https://demo.moneta.ru:8443/x509/report/receipt.htm?format=pdf&operationId=report/receipt.htm
57
+ body:
58
+ encoding: US-ASCII
59
+ string: ''
60
+ headers:
61
+ User-Agent:
62
+ - Faraday v0.11.0
63
+ Accept-Encoding:
64
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
65
+ Accept:
66
+ - "*/*"
67
+ response:
68
+ status:
69
+ code: 500
70
+ message: Internal Server Error
71
+ headers:
72
+ Server:
73
+ - nginx
74
+ Date:
75
+ - Tue, 07 Nov 2017 07:54:42 GMT
76
+ Content-Type:
77
+ - text/html
78
+ Content-Length:
79
+ - '9057'
80
+ Connection:
81
+ - close
82
+ Etag:
83
+ - '"59fc51c3-2361"'
84
+ X-Content-Type-Options:
85
+ - nosniff
86
+ X-Xss-Protection:
87
+ - 1; mode=block
88
+ body:
89
+ encoding: ASCII-8BIT
90
+ string: !binary |-
91
+ PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
92
+ U3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
93
+ eGh0bWwxLXN0cmljdC5kdGQiPg0KPCEtLSAoYykgQXJ0LiBMZWJlZGV2IFN0
94
+ dWRpbyB8IGh0dHA6Ly93d3cuYXJ0bGViZWRldi5ydS8gLS0+DQo8aHRtbD4N
95
+ CiAgICA8aGVhZD4NCiAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
96
+ dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0K
97
+ ICAgICAgICA8dGl0bGU+bW9uZXRhLnJ1PC90aXRsZT4NCiAgICAgICAgPG1l
98
+ dGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1F
99
+ bXVsYXRlSUU3LCBJRT05Ij4NCiAgICAgICAgPGxpbmsgcmVsPSJpY29uIiBo
100
+ cmVmPSIvZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiI+DQogICAg
101
+ ICAgIDxzdHlsZT4uaGlkZGVuIHtkaXNwbGF5Om5vbmU7fTwvc3R5bGU+DQog
102
+ ICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
103
+ IGhyZWY9Ii9kL2Nzcy94Zm9ybXMuY3NzIj4NCiAgICAgICAgPGxpbmsgcmVs
104
+ PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2QvY3NzL21v
105
+ bmV0YS5jc3MiPg0KICAgICAgICA8IS0tW2lmIGx0IElFIDldPjxsaW5rIHJl
106
+ bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9kL2Nzcy9t
107
+ b25ldGEtaWUuY3NzIiAvPjwhW2VuZGlmXS0tPg0KICAgICAgICA8bGluayBy
108
+ ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvZC9jc3Mv
109
+ bW9kaWZpZWQuY3NzIj4NCiAgICAgICAgPCEtLVtpZiBsdCBJRSA5XT48bGlu
110
+ ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvZC9j
111
+ c3MvbW9kaWZpZWQtaWUuY3NzIiAvPjwhW2VuZGlmXS0tPg0KICAgICAgICA8
112
+ bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIv
113
+ ZC9jc3MvbS9qcXVlcnktdWkuc3RydWN0dXJlLm1pbi5jc3MiLz4NCiAgICAg
114
+ ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
115
+ Zj0iL2QvY3NzL20vanF1ZXJ5LXVpLW1vZGlmaWVkLmNzcyIvPg0KICAgICAg
116
+ ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvZC9qcy9q
117
+ cXVlcnktMi4yLjQubWluLmpzIj48L3NjcmlwdD4NCiAgICAgICAgPCEtLTxz
118
+ Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9kL2pzL2pxdWVy
119
+ eS1taWdyYXRlLTMuMC4wLm1pbi5qcyI+PC9zY3JpcHQ+LS0+DQogICAgICAg
120
+ IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9kL2pzL2px
121
+ dWVyeS11aS5taW4uanMiPjwvc2NyaXB0Pg0KICAgICAgICA8c2NyaXB0IHR5
122
+ cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvZC9qcy9wYWNrYWdlLmpzIj48
123
+ L3NjcmlwdD4NCiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
124
+ cHQiIHNyYz0iL2QvanMvcm91bmRlZC1jb3JuZXJzLmpzIj48L3NjcmlwdD4N
125
+ CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
126
+ L2QvanMvbW9uZXRhLmpzIj48L3NjcmlwdD4NCiAgICAgICAgPHNjcmlwdCB0
127
+ eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2QvanMvbWluaVBvcHVwQm94
128
+ LmpzIj48L3NjcmlwdD4NCiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
129
+ dmFzY3JpcHQiIHNyYz0iL2QvanMvbS9jb21tb24uanMiPjwvc2NyaXB0Pg0K
130
+ ICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIv
131
+ ZC9qcy9tL2Zvcm0uanMiPjwvc2NyaXB0Pg0KICAgICAgICA8c2NyaXB0IHR5
132
+ cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvZC9qcy9tL2FqYXguanMiPjwv
133
+ c2NyaXB0Pg0KICAgIDwvaGVhZD4NCiAgICA8Ym9keT4NCiAgICAgICAgPGRp
134
+ diBpZD0ib3V0ZXIiPg0KICAgICAgICAgICAgPGltZyBpZD0icGFnZS1sLWRl
135
+ Y29yIiBzcmM9Ii9kL2kvbGVmdC1kZWNvci5naWYiIGFsdD0iIiB3aWR0aD0i
136
+ NTUwIiBoZWlnaHQ9IjY4OSI+DQogICAgICAgICAgICA8ZGl2IGlkPSJoZWFk
137
+ ZXIiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1tZW51
138
+ Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGF5b3V0LXdp
139
+ ZHRoIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxh
140
+ eW91dCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
141
+ c3lzdGVtLWxpbmtzIiBjbGFzcz0ibGVmdC1jb2x1bW4iPg0KICAgICAgICAg
142
+ ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWR1Y2VyIj4N
143
+ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlk
144
+ PSJsYW5ndWFnZXMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
145
+ ICAgICAgICAgIDxhIGhyZWY9Ii9sb2NhbGUuaHRtP21vbmV0YS5sb2NhbGU9
146
+ cnUiPlJVPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
147
+ ICAgICAgIDxhIGhyZWY9Ii9sb2NhbGUuaHRtP21vbmV0YS5sb2NhbGU9ZW4i
148
+ PkVOPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
149
+ PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
150
+ dj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAg
151
+ ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbHVt
152
+ biI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFz
153
+ cz0ibmF2aWdhdGlvbiBzeXN0ZW0tbmF2aWdhdGlvbiI+DQogICAgICAgICAg
154
+ ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IiI+DQogICAg
155
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0i
156
+ L2luZm8vcHVibGljL2Fib3V0L2luZGV4Lmh0bSI+QWJvdXQ8L2E+DQogICAg
157
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAg
158
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIiPg0K
159
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhy
160
+ ZWY9Ii9pbmZvL3B1YmxpYy91c2Vycy90YXJpZmZzLmh0bSI+Rm9yIHVzZXJz
161
+ PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9s
162
+ aT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBj
163
+ bGFzcz0ibGFzdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
164
+ ICAgICAgICAgPGEgaHJlZj0iL2luZm8vcHVibGljL21lcmNoYW50cy9pbmRl
165
+ eC5odG0iPkZvciBtZXJjaGFudHMgYW5kIEludGVybmV0IHByb2plY3RzPC9h
166
+ Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4N
167
+ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAg
168
+ ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAg
169
+ ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaWdodC1jb2x1bW4iPg0KICAg
170
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdmln
171
+ YXRpb24gc3lzdGVtLW5hdmlnYXRpb24iPg0KICAgICAgICAgICAgICAgICAg
172
+ ICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIiPg0KICAgICAgICAgICAg
173
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9pbmZvL3B1
174
+ YmxpYy91c2Vycy90cmFuc2Zlci5odG0iPk1vbmV5IFRyYW5zZmVyPC9hPg0K
175
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAg
176
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0i
177
+ Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
178
+ YSBocmVmPSIvZ29vZHMuaHRtIj5QYXltZW50PC9hPg0KICAgICAgICAgICAg
179
+ ICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAg
180
+ ICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAg
181
+ ICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
182
+ ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAg
183
+ ICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAg
184
+ ICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFz
185
+ cz0ibGF5b3V0LXdpZHRoIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBj
186
+ bGFzcz0ibGF5b3V0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
187
+ aWQ9ImxvZ28iIGNsYXNzPSJsZWZ0LWNvbHVtbiI+DQogICAgICAgICAgICAg
188
+ ICAgICAgICAgICAgICAgPGEgaHJlZj0iLyI+DQogICAgICAgICAgICAgICAg
189
+ ICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvZC9pL21vbmV0YS1sb2dvLnBu
190
+ ZyIgYWx0PSJNT05FVEEuUlUiPg0KICAgICAgICAgICAgICAgICAgICAgICAg
191
+ ICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAg
192
+ ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1jb2x1bW4i
193
+ Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVzZXIt
194
+ bWVudSIgY2xhc3M9ImV4dGVuZGVkIj4NCiAgICAgICAgICAgICAgICAgICAg
195
+ ICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZpZ2F0aW9uIj4NCiAgICAgICAg
196
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAg
197
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5zIGNsYXNzPSJwLWki
198
+ PjwvaW5zPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
199
+ ICAgIDxhIGhyZWY9Ii8iPkhvbWU8L2E+DQogICAgICAgICAgICAgICAgICAg
200
+ ICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAg
201
+ ICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAg
202
+ ICAgICAgICAgICAgICAgIDxpbnMgY2xhc3M9InAtaSI+PC9pbnM+DQogICAg
203
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0i
204
+ L2luZm8vcHVibGljL3VzZXJzL3RyYW5zZmVyLmh0bSI+TW9uZXkgVHJhbnNm
205
+ ZXI8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
206
+ L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp
207
+ Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxh
208
+ IGhyZWY9Ii9nb29kcy5odG0iPlBheW1lbnQ8L2E+DQogICAgICAgICAgICAg
209
+ ICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAg
210
+ ICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICAg
211
+ ICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+
212
+ DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhciI+
213
+ PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAg
214
+ ICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAg
215
+ ICA8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0ibGF5b3V0LXdpZHRoIj4NCiAg
216
+ ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYXlvdXQiPg0KICAgICAgICAg
217
+ ICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbHVtbiB0ZXh0LWNvbHVt
218
+ biI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWR1
219
+ Y2VyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+U2Vydmlj
220
+ ZSBVbmF2YWlsYWJsZTwvaDE+DQogICAgICAgICAgICAgICAgICAgICAgICAg
221
+ ICAgPGJsb2NrcXVvdGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
222
+ ICAgIDxwPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWFy
223
+ IGN1c3RvbWVycyw8YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
224
+ ICAgIEF0IHRoZSBtb21lbnQgd2UgYXJlIHBlcmZvcm1pbmcgYW4gdXBncmFk
225
+ ZSBvZiB0aGUgc3lzdGVtLiBTb3JyeSBmb3IgYW55IGluY29udmVuaWVuY2ll
226
+ cyBhcmlzZWQuIFBsZWFzZSBsb2dpbiBhIGJpdCBsYXRlci4NCiAgICAgICAg
227
+ ICAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgICAg
228
+ ICAgICAgICAgICAgICAgICA8cD4NCiAgICAgICAgICAgICAgICAgICAgICAg
229
+ ICAgICAgICAg0KPQstCw0LbQsNC10LzRi9C1INC/0L7Qu9GM0LfQvtCy0LDR
230
+ gtC10LvQuCw8YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
231
+ INCSINC00LDQvdC90YvQuSDQvNC+0LzQtdC90YIg0L3QsCDRgdCw0LnRgtC1
232
+ INC/0YDQvtCy0L7QtNGP0YLRgdGPINC/0LvQsNC90L7QstGL0LUg0YLQtdGF
233
+ 0L3QuNGH0LXRgdC60LjQtSDRgNCw0LHQvtGC0YsuINCf0YDQuNC90L7RgdC4
234
+ 0Lwg0LjQt9Cy0LjQvdC10L3QuNGPINC4INC/0YDQvtGB0LjQvCDQt9Cw0LnR
235
+ gtC4INC90LAg0YHQsNC50YIg0YHQuNGB0YLQtdC80Ysg0L/QvtC30LTQvdC1
236
+ 0LUuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAg
237
+ ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Jsb2NrcXVvdGU+DQogICAg
238
+ ICAgICAgICAgICAgICAgICAgICAgICAgPHAgYWxpZ249InJpZ2h0Ij4NCiAg
239
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxh
240
+ bmsiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2
241
+ L3JmYzI2MTYtc2VjMTAuaHRtbCI+cmZjMjYxNjwvYT4NCiAgICAgICAgICAg
242
+ ICAgICAgICAgICAgICAgICA8L3A+DQoNCiAgICAgICAgICAgICAgICAgICAg
243
+ ICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAg
244
+ ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KICAg
245
+ ICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAg
246
+ ICAgICAgICA8ZGl2IGlkPSJmb290ZXIiPg0KICAgICAgICAgICAgICAgIDxk
247
+ aXYgY2xhc3M9ImxheW91dC13aWR0aCI+DQogICAgICAgICAgICAgICAgICAg
248
+ IDxkaXYgY2xhc3M9ImxheW91dCI+DQogICAgICAgICAgICAgICAgICAgICAg
249
+ ICA8ZGl2IGNsYXNzPSJsZWZ0LWNvbHVtbiI+DQogICAgICAgICAgICAgICAg
250
+ ICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVkdWNlciI+DQogICAgICAgICAg
251
+ ICAgICAgICAgICAgICAgICAgICAgIDxwPsKpIDIwMDXigJMyMDE3DQogICAg
252
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+DQogICAgICAg
253
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIj5Nb25l
254
+ dGEucnU8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
255
+ cD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAg
256
+ ICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAg
257
+ ICAgICAgPGRpdiBjbGFzcz0icmlnaHQtY29sdW1uIj4NCiAgICAgICAgICAg
258
+ ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWR1Y2VyIj4NCiAgICAg
259
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+U3VwcG9ydDwvcD4NCiAg
260
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+KzcgKDQ5NSkgNzQz
261
+ LTQ5LTg1PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
262
+ cD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhy
263
+ ZWY9Ii9zdXBwb3J0Lmh0bSI+QXNrIHF1ZXN0aW9uPC9hPg0KICAgICAgICAg
264
+ ICAgICAgICAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICAgICAg
265
+ ICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8
266
+ L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1h
267
+ aW4tY29sdW1uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
268
+ IGNsYXNzPSJuYXZpZ2F0aW9uLXdyYXBwZXIiPg0KICAgICAgICAgICAgICAg
269
+ ICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdmlnYXRpb24iPg0KICAg
270
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIi
271
+ Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxh
272
+ IGhyZWY9Ii9pbmZvL3B1YmxpYy9hYm91dC9pbmRleC5odG0iPkFib3V0PC9h
273
+ Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4N
274
+ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFz
275
+ cz0iIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
276
+ ICA8YSBocmVmPSIvaW5mby9wdWJsaWMvdXNlcnMvdGFyaWZmcy5odG0iPkZv
277
+ ciB1c2VyczwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
278
+ ICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
279
+ ICA8bGkgY2xhc3M9IiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
280
+ ICAgICAgICAgICAgPGEgaHJlZj0iL2luZm8vcHVibGljL21lcmNoYW50cy9p
281
+ bmRleC5odG0iPkZvciBtZXJjaGFudHMgYW5kIEludGVybmV0IHByb2plY3Rz
282
+ PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9s
283
+ aT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAg
284
+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucyBjbGFzcz0iZC1y
285
+ Ij48L2lucz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4N
286
+ CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAg
287
+ ICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAg
288
+ ICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBp
289
+ ZD0iY29uZmlybWF0aW9uLWRpYWxvZyIgY2xhc3M9InVpLWRpYWxvZyI+Jm5i
290
+ c3A7PC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImluZm9ybWF0aW9uLWRpYWxv
291
+ ZyIgY2xhc3M9InVpLWRpYWxvZyI+Jm5ic3A7PC9kaXY+DQogICAgPC9ib2R5
292
+ Pg0KPC9odG1sPg0K
293
+ http_version:
294
+ recorded_at: Tue, 07 Nov 2017 07:54:42 GMT
295
+ recorded_with: VCR 3.0.3