diff --git a/README.md b/README.md index fb7854c..e0cb04b 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,8 @@ client = Cobrato.client("YOUR_TOKEN_HERE") Now you have acess to every API endpoint: -* [Payees API](http://docs.cobrato.com/#benefici-rio) +* [Companies API](http://docs.cobrato.com/#estabelecimento) +* [Payees API](http://docs.cobrato.com/#benefici-rio) (DEPRECATED) * [Bank Accounts API](http://docs.cobrato.com/#conta-banc-ria) * [People API](http://docs.cobrato.com/#pessoa) * [Payers API](http://docs.cobrato.com/#pagador) (DEPRECATED) @@ -69,7 +70,17 @@ Now you have acess to every API endpoint: ## Endpoints -#### [Payees](http://docs.cobrato.com/#benefici-rio) +#### [Companies](http://docs.cobrato.com/#estabelecimento) + +| HTTP method | Endpoint | Client method | +| ----------- | -----------------------------------------------------------------------------| -------------------------| +| POST | [api/v1/companies](http://docs.cobrato.com/#cria-o-de-benefici-rio) | client.companies.create | +| GET | [api/v1/companies](http://docs.cobrato.com/#lista-de-todos-os-benefici-rios) | client.companies.list | +| GET | [api/v1/companies/:id](http://docs.cobrato.com/#informa-es-do-benefici-rio) | client.companies.show | +| PUT | [api/v1/companies/:id](http://docs.cobrato.com/#atualiza-o-de-benefici-rio) | client.companies.update | +| DELETE | [api/v1/companies/:id](http://docs.cobrato.com/#exclus-o-de-benefici-rio) | client.companies.destroy | + +#### [Payees](http://docs.cobrato.com/#benefici-rio) # DEPRECATED | HTTP method | Endpoint | Client method | | ----------- | ------------------------------------------------------------------------- | --------------------- | @@ -271,6 +282,9 @@ When you call `client.payees.destroy(1)`, an event `cobrato.payees.destroy` will #### Available hooks +* companies + - cobrato.companies.create + - cobrato.companies.destroy * payees - cobrato.payees.create - cobrato.payees.destroy @@ -293,7 +307,7 @@ When you call `client.payees.destroy(1)`, an event `cobrato.payees.destroy` will - cobrato.charge_templates.create - cobrato.charge_templates.destroy -## Release +## Release To release a new version, update the version number in `lib/cobrato/version.rb`, add the version in `CHANGELOG.md`, run `bundle install` and commit & push the changes to the repository. If this is your first time publishing a RubyGem in your local device, you will have to download your credentials. To do this, follow the instructions in your [profile page in RubyGems](https://rubygems.org/profile/edit) or just type the following in your command line, replacing `$username` with your RubyGems username. diff --git a/lib/cobrato.rb b/lib/cobrato.rb index e9aa973..05fad3a 100644 --- a/lib/cobrato.rb +++ b/lib/cobrato.rb @@ -10,6 +10,7 @@ require "cobrato/entities/base" require "cobrato/entities/cnab" +require "cobrato/entities/company" require "cobrato/entities/payee" require "cobrato/entities/payer" require "cobrato/entities/person" @@ -27,6 +28,7 @@ require "cobrato/entities/charge_template" require "cobrato/resources/base" +require "cobrato/resources/company" require "cobrato/resources/payee" require "cobrato/resources/payer" require "cobrato/resources/person" diff --git a/lib/cobrato/client.rb b/lib/cobrato/client.rb index 9492a99..b3307c0 100644 --- a/lib/cobrato/client.rb +++ b/lib/cobrato/client.rb @@ -15,6 +15,10 @@ def authenticated? false end + def companies + Resources::Company.new(http) + end + def payees Resources::Payee.new(http) end diff --git a/lib/cobrato/entities/bank_account.rb b/lib/cobrato/entities/bank_account.rb index 78f378e..c50afa6 100644 --- a/lib/cobrato/entities/bank_account.rb +++ b/lib/cobrato/entities/bank_account.rb @@ -2,12 +2,18 @@ module Cobrato module Entities class BankAccount < Base attribute :id, Integer - attribute :payee_id, Integer + attribute :company_id, Integer + attribute :payee_id, Integer # DEPRECATED attribute :bank_code, String attribute :agency, String attribute :agency_digit, String attribute :account, String attribute :account_digit, String + + def payee_id + puts "Warning: 'payee_id' is deprecated. Use 'company_id' instead." + super + end end end end \ No newline at end of file diff --git a/lib/cobrato/entities/charge_config.rb b/lib/cobrato/entities/charge_config.rb index 47ba1dd..fd79cd4 100644 --- a/lib/cobrato/entities/charge_config.rb +++ b/lib/cobrato/entities/charge_config.rb @@ -5,6 +5,7 @@ class ChargeConfig < Base attribute :name, String attribute :type, String attribute :status, String + attribute :company_id, String attribute :payee_id, String attribute :available_charge_types, Array attribute :deactivated_at, DateTime @@ -37,6 +38,11 @@ class ChargeConfig < Base attribute :use_avs, Boolean attribute :logo, Hash attribute :logo_url, String + + def payee_id + puts "Warning: 'payee_id' is deprecated. Use 'company_id' instead." + super + end end end end diff --git a/lib/cobrato/entities/company.rb b/lib/cobrato/entities/company.rb new file mode 100644 index 0000000..5bee70d --- /dev/null +++ b/lib/cobrato/entities/company.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Cobrato + module Entities + class Company < Base + attribute :id, Integer + attribute :national_identifier_type, String + attribute :national_identifier, String + attribute :name, String + attribute :zipcode, String + attribute :city, String + attribute :state, String + attribute :neighbourhood, String + attribute :number, String + attribute :complement, String + attribute :street, String + end + end +end diff --git a/lib/cobrato/entities/payment.rb b/lib/cobrato/entities/payment.rb index 00a2843..6edb575 100644 --- a/lib/cobrato/entities/payment.rb +++ b/lib/cobrato/entities/payment.rb @@ -12,6 +12,7 @@ class Payment < Base attribute :registration_status, String attribute :note, String attribute :payee_name, String + attribute :company_name, String # DEPRECATED # Shared with some attribute :due_date, Date @@ -32,9 +33,12 @@ class Payment < Base attribute :account_digit, String attribute :agency, String attribute :bank_code, String - attribute :payee_id, Integer - attribute :payee_document_type, String - attribute :payee_document, String + attribute :company_id, Integer + attribute :company_document_type, String + attribute :company_document, String + attribute :payee_id, Integer # DEPRECATED + attribute :payee_document_type, String # DEPRECATED + attribute :payee_document, String # DEPRECATED attribute :doc_goal, String attribute :ted_goal, String @@ -64,6 +68,26 @@ class Payment < Base # FGTS specific attribute :taxpayer_document, String attribute :taxpayer_document_type, String + + def payee_id + puts "Warning: 'payee_id' is deprecated. Use 'company_id' instead." + super + end + + def payee_name + puts "Warning: 'payee_name' is deprecated. Use 'company_name' instead." + super + end + + def payee_document + puts "Warning: 'payee_document' is deprecated. Use 'company_document' instead." + super + end + + def payee_document_type + puts "Warning: 'payee_document_type' is deprecated. Use 'company_document_type' instead." + super + end end end end diff --git a/lib/cobrato/resources/company.rb b/lib/cobrato/resources/company.rb new file mode 100644 index 0000000..8619897 --- /dev/null +++ b/lib/cobrato/resources/company.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Cobrato + module Resources + class Company < Base + crud :all + + protected + + def irregular_resource_name + "companies" + end + end + end +end diff --git a/spec/cobrato/client_spec.rb b/spec/cobrato/client_spec.rb index 99d2cf8..5c72df7 100644 --- a/spec/cobrato/client_spec.rb +++ b/spec/cobrato/client_spec.rb @@ -24,6 +24,12 @@ end end + describe "#companies" do + it "returns an instance of Cobrato::Resources::Company" do + expect(subject.companies).to be_a(Cobrato::Resources::Company) + end + end + describe "#payees" do it "returns an instance of Cobrato::Resources::Payee" do expect(subject.payees).to be_a(Cobrato::Resources::Payee) diff --git a/spec/cobrato/entities/bank_account_spec.rb b/spec/cobrato/entities/bank_account_spec.rb index 552d80e..67b0834 100644 --- a/spec/cobrato/entities/bank_account_spec.rb +++ b/spec/cobrato/entities/bank_account_spec.rb @@ -3,6 +3,7 @@ describe Cobrato::Entities::BankAccount do let(:attributes) do { + company_id: "1", payee_id: "1", bank_code: "001", agency: "1606", @@ -14,5 +15,13 @@ subject { described_class.new(attributes) } - it_behaves_like "entity_attributes", [:id, :payee_id, :bank_code, :agency_digit, :agency, :account, :account_digit] + describe '#payee_id' do + it 'print a deprecation warning' do + expect do + subject.payee_id + end.to output("Warning: 'payee_id' is deprecated. Use 'company_id' instead.\n").to_stdout + end + end + + it_behaves_like "entity_attributes", %i[id payee_id company_id bank_code agency_digit agency account account_digit] end diff --git a/spec/cobrato/entities/charge_config_spec.rb b/spec/cobrato/entities/charge_config_spec.rb index 247832a..0cb09be 100644 --- a/spec/cobrato/entities/charge_config_spec.rb +++ b/spec/cobrato/entities/charge_config_spec.rb @@ -3,7 +3,8 @@ describe Cobrato::Entities::ChargeConfig do let(:attributes) do { - payee_id: 1, + company_id: 1, + payee_id: 1, # DEPRECATED bank_account_id: 1, type: "billet", portfolio_code: "17", @@ -29,9 +30,17 @@ subject { described_class.new(attributes) } + describe '#payee_id' do + it 'print a deprecation warning' do + expect do + subject.payee_id + end.to output("Warning: 'payee_id' is deprecated. Use 'company_id' instead.\n").to_stdout + end + end + it_behaves_like "entity_attributes", [ # common - :id, :type, :name, :status, :payee_id, :available_charge_types, :deactivated_at, :timezone, + :id, :type, :name, :status, :payee_id, :company_id, :available_charge_types, :deactivated_at, :timezone, # billet specifics :bank_account_id, :portfolio_code, :agreement_code, :agreement_code_digit, :initial_number, :next_number, :end_number, :registered_charges, :remittance_agreement_code, :initial_remittance_number, :current_remittance_number, diff --git a/spec/cobrato/entities/company_spec.rb b/spec/cobrato/entities/company_spec.rb new file mode 100644 index 0000000..26f6a27 --- /dev/null +++ b/spec/cobrato/entities/company_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Cobrato::Entities::Company do + let(:attributes) do + { + national_identifier_type: "cpf", + national_identifier: "38031171513", + name: "João Silveira", + zipcode: "99000-750", + city: "Carapebus", + state: "RJ", + neighbourhood: "Centro", + street: "Rua Julio de Castilhos", + number: "100", + complement: "Ao lado da lotérica.", + } + end + + subject { described_class.new(attributes) } + + it_behaves_like "entity_attributes", %i[id national_identifier_type national_identifier name zipcode city state neighbourhood number complement street] +end diff --git a/spec/cobrato/entities/payment_spec.rb b/spec/cobrato/entities/payment_spec.rb index a57c95c..f3240a2 100644 --- a/spec/cobrato/entities/payment_spec.rb +++ b/spec/cobrato/entities/payment_spec.rb @@ -14,10 +14,14 @@ note: "Pagamento para Fulano de tal", bank_code: "341", - payee_document_type: "cpf", - payee_document: "123.456.789-09", - payee_name: "John Doe", - payee_id: 7, + company_document_type: "cpf", + company_document: "123.456.789-09", + company_name: "John Doe", + company_id: 7, + payee_document_type: "cpf", # DEPRECATED + payee_document: "123.456.789-09", # DEPRECATED + payee_name: "John Doe", # DEPRECATED + payee_id: 7, # DEPRECATED agency: "9358", account: "21500", @@ -61,15 +65,47 @@ subject { described_class.new(attributes) } + describe '#payee_id' do + it 'print a deprecation warning' do + expect { + subject.payee_id + }.to output("Warning: 'payee_id' is deprecated. Use 'company_id' instead.\n").to_stdout + end + end + + describe '#payee_name' do + it 'print a deprecation warning' do + expect { + subject.payee_name + }.to output("Warning: 'payee_name' is deprecated. Use 'company_name' instead.\n").to_stdout + end + end + + describe '#payee_document' do + it 'print a deprecation warning' do + expect { + subject.payee_document + }.to output("Warning: 'payee_document' is deprecated. Use 'company_document' instead.\n").to_stdout + end + end + + describe '#payee_document_type' do + it 'print a deprecation warning' do + expect do + subject.payee_document_type + end.to output("Warning: 'payee_document_type' is deprecated. Use 'company_document_type' instead.\n").to_stdout + end + end + it_behaves_like "entity_attributes", [ # Shared with all :id, :payment_config_id, :payment_type, :payment_method, :amount, :date, :registration_status, :our_number, - :bank_code, :payee_document_type, :payee_document, :payee_name, :note, + :bank_code, :payee_document_type, :payee_document, :payee_name, :note, :company_document_type, :company_document, :company_name, # Shared with some :due_date, :calculation_period, :receita_federal_code, :mulct_amount, :interest_amount, :competency_year, - :discount_amount, :payee_id, + :discount_amount, :company_id, :payee_id, # Transfer specific :agency, :account, :account_digit, :doc_goal, :ted_goal, diff --git a/spec/cobrato/resources/company_spec.rb b/spec/cobrato/resources/company_spec.rb new file mode 100644 index 0000000..9cfc60b --- /dev/null +++ b/spec/cobrato/resources/company_spec.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Cobrato::Resources::Company do + let(:http) { Cobrato::Http.new("3fa5e9ecc23e477fd7ba3a41063a9fab") } + let(:entity_klass) { Cobrato::Entities::Company } + let(:params) do + { + "national_identifier_type" => "cpf", + "national_identifier" => "38031171513", + "name" => "João Silveira", + "zipcode" => "99000-750", + "city" => "Carapebus", + "state" => "RJ", + "neighbourhood" => "Centro", + "street" => "Rua Julio de Castilhos", + "number" => "100", + "complement" => "Ao lado da lotérica." + } + end + + subject { described_class.new(http) } + + it "has a instance of Cobrato::Http" do + expect(subject.http).to eq http + end + + describe "#list" do + it "returns an array of companies" do + VCR.use_cassette("companies/list/success") do + companies = subject.list + expect(companies).to be_a(Array) + companies.each do |e| + expect(e).to be_a(entity_klass) + end + end + end + end + + describe "#show" do + it "returns a Company instance showd" do + VCR.use_cassette("companies/show/success") do + company = subject.show(227) + expect(company).to be_a(entity_klass) + expect(company.name).to eq("João Silveira") + end + end + end + + describe "#update" do + it "returns a Company instance updated" do + VCR.use_cassette("companies/update/success") do + company = subject.update(227, name: "RSpec integration") + expect(company).to be_a(entity_klass) + expect(company.name).to eq("RSpec integration") + end + end + end + + describe "#destroy" do + it "returns true" do + VCR.use_cassette("companies/destroy/success") do + result = subject.destroy(227) + expect(result).to be_truthy + end + end + end + + describe "#create" do + it "creates a company" do + VCR.use_cassette("companies/create/success") do + company = subject.create(params) + expect(company).to be_a(entity_klass) + expect(company.name).to eq(params['name']) + end + end + end +end diff --git a/spec/vcr_cassettes/companies/create/success.yml b/spec/vcr_cassettes/companies/create/success.yml new file mode 100644 index 0000000..fac1818 --- /dev/null +++ b/spec/vcr_cassettes/companies/create/success.yml @@ -0,0 +1,65 @@ +--- +http_interactions: +- request: + method: post + uri: https://sandbox.cobrato.com/api/v1/companies + body: + encoding: UTF-8 + string: '{"national_identifier_type":"cpf","national_identifier":"38031171513","name":"João + Silveira","zipcode":"99000-750","city":"Carapebus","state":"RJ","neighbourhood":"Centro","street":"Rua + Julio de Castilhos","number":"100","complement":"Ao lado da lotérica."}' + headers: + User-Agent: + - Cobrato Ruby Client v1.1.7 + Accept: + - application/json + Content-Type: + - application/json + response: + status: + code: 201 + message: Created + headers: + Location: + - https://sandbox.cobrato.com/api/v1/companies/227 + Content-Type: + - application/json; charset=utf-8 + X-RateLimit-Limit: + - '60' + X-RateLimit-Reset: + - '2019-09-20T19:57:00Z' + X-RateLimit-Remaining: + - '55' + Cache-Control: + - no-store, must-revalidate, private, max-age=0 + X-Request-Id: + - d8d046d4-753f-43a7-9766-8079141902a6 + X-Runtime: + - '0.238291' + X-Frame-Options: + - sameorigin + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + X-Download-Options: + - noopen + X-Permitted-Cross-Domain-Policies: + - none + X-MiniProfiler-Original-Cache-Control: + - max-age=0, private, must-revalidate + X-MiniProfiler-Ids: + - '["q1lsfpb56f2d9pgykq03","2a9ue11fs1hbyba9lmkg","bmgmdgwy21iafvjsj1b8","g2c5tlg9mc7jcnhx91w8","js9w7r25caorp1beofce"]' + Set-Cookie: + - __profilin=p%3Dt; path=/ + Transfer-Encoding: + - chunked + body: + encoding: ASCII-8BIT + string: !binary |- + eyJpZCI6MjI3LCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjcGYiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMzgwMzExNzE1MTMiLCJuYW1lIjoiSm/Do28gU2lsdmVpcmEiLCJ6aXBjb2RlIjoiOTkwMDAtNzUwIiwiY2l0eSI6IkNhcmFwZWJ1cyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQ2VudHJvIiwic3RyZWV0IjoiUnVhIEp1bGlvIGRlIENhc3RpbGhvcyIsIm51bWJlciI6IjEwMCIsImNvbXBsZW1lbnQiOiJBbyBsYWRvIGRhIGxvdMOpcmljYS4iLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI3In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI3In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIyNyJ9LHsicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjcifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjcifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjI3In1dfQ== + http_version: '1.1' + adapter_metadata: + effective_url: https://sandbox.cobrato.com/api/v1/companies + recorded_at: Fri, 20 Sep 2019 19:56:38 GMT +recorded_with: VCR 2.9.3 diff --git a/spec/vcr_cassettes/companies/destroy/success.yml b/spec/vcr_cassettes/companies/destroy/success.yml new file mode 100644 index 0000000..a41573d --- /dev/null +++ b/spec/vcr_cassettes/companies/destroy/success.yml @@ -0,0 +1,56 @@ +--- +http_interactions: +- request: + method: delete + uri: https://sandbox.cobrato.com/api/v1/companies/227 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Cobrato Ruby Client v1.1.7 + Accept: + - application/json + Content-Type: + - application/json + response: + status: + code: 204 + message: No Content + headers: + X-RateLimit-Limit: + - '60' + X-RateLimit-Reset: + - '2019-09-20T20:03:00Z' + X-RateLimit-Remaining: + - '57' + Cache-Control: + - no-store, must-revalidate, private, max-age=0 + X-Request-Id: + - cd94b121-a546-40dc-8903-e298f10c0633 + X-Runtime: + - '0.131769' + X-Frame-Options: + - sameorigin + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + X-Download-Options: + - noopen + X-Permitted-Cross-Domain-Policies: + - none + X-MiniProfiler-Original-Cache-Control: + - no-cache + X-MiniProfiler-Ids: + - '["12qufpq7tcj6lixrpqkg","2a9ue11fs1hbyba9lmkg","bmgmdgwy21iafvjsj1b8","g2c5tlg9mc7jcnhx91w8","js9w7r25caorp1beofce","q1lsfpb56f2d9pgykq03","8fgskvh7wcodccbh7dhq","2sgxpqojs05ihg6grrx6"]' + Set-Cookie: + - __profilin=p%3Dt; path=/ + body: + encoding: UTF-8 + string: '' + http_version: '1.1' + adapter_metadata: + effective_url: https://sandbox.cobrato.com/api/v1/companies/227 + recorded_at: Fri, 20 Sep 2019 20:02:12 GMT +recorded_with: VCR 2.9.3 diff --git a/spec/vcr_cassettes/companies/list/success.yml b/spec/vcr_cassettes/companies/list/success.yml new file mode 100644 index 0000000..fa6f337 --- /dev/null +++ b/spec/vcr_cassettes/companies/list/success.yml @@ -0,0 +1,61 @@ +--- +http_interactions: +- request: + method: get + uri: https://sandbox.cobrato.com/api/v1/companies + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Cobrato Ruby Client v1.1.7 + Accept: + - application/json + Content-Type: + - application/json + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + X-RateLimit-Limit: + - '60' + X-RateLimit-Reset: + - '2019-09-20T19:57:00Z' + X-RateLimit-Remaining: + - '59' + Cache-Control: + - no-store, must-revalidate, private, max-age=0 + X-Request-Id: + - 9ee19e2a-c265-4de5-8086-08097d6cffa2 + X-Runtime: + - '0.517381' + X-Frame-Options: + - sameorigin + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + X-Download-Options: + - noopen + X-Permitted-Cross-Domain-Policies: + - none + X-MiniProfiler-Original-Cache-Control: + - max-age=0, private, must-revalidate + X-MiniProfiler-Ids: + - '["2a9ue11fs1hbyba9lmkg"]' + Set-Cookie: + - __profilin=p%3Dt; path=/ + Transfer-Encoding: + - chunked + body: + encoding: ASCII-8BIT + string: !binary |- + eyJwYXllZXMiOlt7ImlkIjoyMCwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiI2OTM4MDQyMjAwMDEzNiIsIm5hbWUiOiJNaW5oYSBlbXByZXNhIiwiemlwY29kZSI6IjAwMDAwLTAwMCIsImNpdHkiOiJBbmdyYSBkb3MgUmVpcyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQmFpcnJvIiwic3RyZWV0IjoiUnVhIiwibnVtYmVyIjoiTnVtZXJvIiwiY29tcGxlbWVudCI6IiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMCJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIwIn0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIwIn1dfSx7ImlkIjoyMSwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIwNTUzNjY1ODAwMDEzNiIsIm5hbWUiOiJNY0ZveCBTb2Z0d2FyZSBEZXNpZ24iLCJ6aXBjb2RlIjoiMDQ3MTUtMDA1IiwiY2l0eSI6IlPDo28gUGF1bG8iLCJzdGF0ZSI6IlNQIiwibmVpZ2hib3VyaG9vZCI6IkNow6FjYXJhIFNhbnRvIEFudMO0bmlvIiwic3RyZWV0IjoiQXZlbmlkYSBBbWVyaWNvIEJyYXNpbGllbnNlIiwibnVtYmVyIjoiMjE3MSIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjEifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMSJ9XX0seyJpZCI6MjIsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTc3OTkzNzcwMDAxNTUiLCJuYW1lIjoiTXlmaW5hbmNlIiwiemlwY29kZSI6IjIwNTMwLTM1MCIsImNpdHkiOiJTw6NvIFBhdWxvIiwic3RhdGUiOiJTUCIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJSdWEgZG8gQ2FybW8iLCJudW1iZXIiOiI0MCIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjIifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMiJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMiJ9XX0seyJpZCI6MjYsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTEwMDg5MTMwMDAxNzAiLCJuYW1lIjoiVGF4d2ViIiwiemlwY29kZSI6IjA0NTUyLTAwMCIsImNpdHkiOiJTw6NvIFBhdWxvIiwic3RhdGUiOiJTUCIsIm5laWdoYm91cmhvb2QiOiJWaWxhIE9saW1waWEiLCJzdHJlZXQiOiJSdWEgZG8gUm9jaW8iLCJudW1iZXIiOiIyOTEiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzI2In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjYifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjYifV19LHsiaWQiOjEyMCwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMTAyMzAyOTAwMDEwNSIsIm5hbWUiOiJUYXh3ZWIgU29mdHdhcmUiLCJ6aXBjb2RlIjoiMDQ1NTItMDAwIiwiY2l0eSI6IlPDo28gUGF1bG8iLCJzdGF0ZSI6IlNQIiwibmVpZ2hib3VyaG9vZCI6Ikl0YWltIiwic3RyZWV0IjoiUnVhIGRvIFJvY2lvIiwibnVtYmVyIjoiMTExIiwiY29tcGxlbWVudCI6IjExMSIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xMjAifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xMjAifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTIwIn1dfSx7ImlkIjoxMjIsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMDUzMzY3MTMwMDAxNDQiLCJuYW1lIjoiUHJvamVjdCBCdWlsZGVyIiwiemlwY29kZSI6IjIwMDQwLTAwNSIsImNpdHkiOiJSaW8gZGUgSmFuZWlybyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQ2VudHJvIiwic3RyZWV0IjoiQXYgUmlvIEJyYW5jbyIsIm51bWJlciI6IjEyMyIsImNvbXBsZW1lbnQiOiJzYWxhIDYxMiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xMjIifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xMjIifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTIyIn1dfSx7ImlkIjoxMjYsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTM5NjQ4MzAwMDAxODAiLCJuYW1lIjoiTmV4Y29yZSIsInppcGNvZGUiOiI4MDAxMC0wMjAiLCJjaXR5IjoiQ3VyaXRpYmEiLCJzdGF0ZSI6IlBSIiwibmVpZ2hib3VyaG9vZCI6IkJhaXJybyIsInN0cmVldCI6IlJ1YSBQZWRybyBJdm8iLCJudW1iZXIiOiIxIiwiY29tcGxlbWVudCI6IiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xMjYifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xMjYifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTI2In1dfSx7ImlkIjoxNzcsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNwZiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMjM0NTY3ODkwOSIsIm5hbWUiOiJCZW5lZmljaWFyaW8gcGFyYSB0ZXN0ZXMiLCJ6aXBjb2RlIjoiMjAwMTEtMDIwIiwiY2l0eSI6IlJpbyBkZSBKYW5laXJvIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJNaW5oYSBSdWEiLCJudW1iZXIiOiI5OSIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTc3In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTc3In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzE3NyJ9XX0seyJpZCI6MTkzLCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjbnBqIiwibmF0aW9uYWxfaWRlbnRpZmllciI6IjI3MzkxMDE4MDAwMTE4IiwibmFtZSI6Ikp1cmlub3ZhIiwiemlwY29kZSI6IjAxMjI1LTAwMSIsImNpdHkiOiJTw6NvIFBhdWxvIiwic3RhdGUiOiJTUCIsIm5laWdoYm91cmhvb2QiOiJWaWxhIEJ1YXJxdWUiLCJzdHJlZXQiOiJSdWEgRnJlZGVyaWNvIEFicmFuY2hlcyIsIm51bWJlciI6IjM5OCIsImNvbXBsZW1lbnQiOiI5wrogYW5kYXIsIGNqLiA5MSIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xOTMifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xOTMifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTkzIn1dfSx7ImlkIjoxOTQsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNwZiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMjE4MDIxMTYwMCIsIm5hbWUiOiJHZcOzcmdpYSBUZXN0ZSIsInppcGNvZGUiOiIyMDAxMS0wMjAiLCJjaXR5IjoiUmlvIGRlIEphbmVpcm8iLCJzdGF0ZSI6IlJKIiwibmVpZ2hib3VyaG9vZCI6IkNlbnRybyIsInN0cmVldCI6IlJ1YSBkbyBDYXJtbyIsIm51bWJlciI6IjQzIiwiY29tcGxlbWVudCI6IjggYW5kYXIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTk0In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTk0In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzE5NCJ9XX0seyJpZCI6MTksIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiNjc2MzI1ODYwMDAxODgiLCJuYW1lIjoiQWNtZSIsInppcGNvZGUiOiIwNTYwNi0xMDAiLCJjaXR5IjoiU8OjbyBQYXVsbyIsInN0YXRlIjoiU1AiLCJuZWlnaGJvdXJob29kIjoiTW9ydW1iaSIsInN0cmVldCI6IkF2ZW5pZGEgR2lvdmFuaSBHcm9uY2hpIiwibnVtYmVyIjoiMTAwMCIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMTkifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xOSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8xOSJ9XX0seyJpZCI6MjE2LCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjcGYiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTYwNDgxNjE3MTkiLCJuYW1lIjoiTHVjYXMiLCJ6aXBjb2RlIjoiMjIwMzEtMDMwIiwiY2l0eSI6IlJpbyBkZSBKYW5laXJvIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDb3BhY2FiYW5hIiwic3RyZWV0IjoiUnVhIFNpbHZhIENhc3RybyIsIm51bWJlciI6IjI4IiwiY29tcGxlbWVudCI6IiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMTYifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMTYifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjE2In1dfSx7ImlkIjoyMTgsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTQ2MTA2MDAwMDAxODYiLCJuYW1lIjoiUEpCYW5rIChuw6NvIGNvcnJlbnRpc3RhKSIsInppcGNvZGUiOiIyODAxNS0yMDAiLCJjaXR5IjoiQ2FtcG9zIGRvcyBHb3l0YWNhemVzIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJGbGFtYm95YW50Iiwic3RyZWV0IjoiUnVhIEhlcmN1bGFubyBBcXVpbm8iLCJudW1iZXIiOiIxMTkiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIxOCJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIxOCJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMTgifV19LHsiaWQiOjIxOSwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMzQ3MzczMzAwMDE5NSIsIm5hbWUiOiJOZXhhYXMgRGVtb25zdHJhw6fDo28iLCJ6aXBjb2RlIjoiMjAwMTEtMDIwIiwiY2l0eSI6IlJpbyBkZSBKYW5laXJvIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJSdWEgZG8gQ2FybW8gIiwibnVtYmVyIjoiNDMiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIxOSJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIxOSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMTkifV19LHsiaWQiOjIyMSwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIyOTI3Mjc3MDAwMDE3NSIsIm5hbWUiOiJQSiBDZW50ZXIgTHRkYSIsInppcGNvZGUiOiIyODAxNS0yMDAiLCJjaXR5IjoiQ2FtcG9zIGRvcyBHb3l0YWNhemVzIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJSdWEgQSIsIm51bWJlciI6IjEiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIyMSJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIyMSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjEifV19LHsiaWQiOjIyNiwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY3BmIiwibmF0aW9uYWxfaWRlbnRpZmllciI6IjE0NjQxMjE3NzAwIiwibmFtZSI6IkljYXJvIG5hZyIsInppcGNvZGUiOiIyODMwMC0wMDAiLCJjaXR5IjoiSXRhcGVydW5hIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJjZWhhYiIsInN0cmVldCI6InJ1YSBtYWVzdHJvIGZyYW5jaXNjbyBnb21lcyBkbyBjYXJtbyIsIm51bWJlciI6IjUxMCIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjI2In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjI2In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvcGF5ZWVzLzIyNiJ9XX1dLCJjb21wYW5pZXMiOlt7ImlkIjoyMCwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiI2OTM4MDQyMjAwMDEzNiIsIm5hbWUiOiJNaW5oYSBlbXByZXNhIiwiemlwY29kZSI6IjAwMDAwLTAwMCIsImNpdHkiOiJBbmdyYSBkb3MgUmVpcyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQmFpcnJvIiwic3RyZWV0IjoiUnVhIiwibnVtYmVyIjoiTnVtZXJvIiwiY29tcGxlbWVudCI6IiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMCJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIwIn0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIwIn1dfSx7ImlkIjoyMSwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIwNTUzNjY1ODAwMDEzNiIsIm5hbWUiOiJNY0ZveCBTb2Z0d2FyZSBEZXNpZ24iLCJ6aXBjb2RlIjoiMDQ3MTUtMDA1IiwiY2l0eSI6IlPDo28gUGF1bG8iLCJzdGF0ZSI6IlNQIiwibmVpZ2hib3VyaG9vZCI6IkNow6FjYXJhIFNhbnRvIEFudMO0bmlvIiwic3RyZWV0IjoiQXZlbmlkYSBBbWVyaWNvIEJyYXNpbGllbnNlIiwibnVtYmVyIjoiMjE3MSIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjEifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMSJ9XX0seyJpZCI6MjIsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTc3OTkzNzcwMDAxNTUiLCJuYW1lIjoiTXlmaW5hbmNlIiwiemlwY29kZSI6IjIwNTMwLTM1MCIsImNpdHkiOiJTw6NvIFBhdWxvIiwic3RhdGUiOiJTUCIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJSdWEgZG8gQ2FybW8iLCJudW1iZXIiOiI0MCIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjIifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMiJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMiJ9XX0seyJpZCI6MjYsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTEwMDg5MTMwMDAxNzAiLCJuYW1lIjoiVGF4d2ViIiwiemlwY29kZSI6IjA0NTUyLTAwMCIsImNpdHkiOiJTw6NvIFBhdWxvIiwic3RhdGUiOiJTUCIsIm5laWdoYm91cmhvb2QiOiJWaWxhIE9saW1waWEiLCJzdHJlZXQiOiJSdWEgZG8gUm9jaW8iLCJudW1iZXIiOiIyOTEiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzI2In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjYifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjYifV19LHsiaWQiOjEyMCwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMTAyMzAyOTAwMDEwNSIsIm5hbWUiOiJUYXh3ZWIgU29mdHdhcmUiLCJ6aXBjb2RlIjoiMDQ1NTItMDAwIiwiY2l0eSI6IlPDo28gUGF1bG8iLCJzdGF0ZSI6IlNQIiwibmVpZ2hib3VyaG9vZCI6Ikl0YWltIiwic3RyZWV0IjoiUnVhIGRvIFJvY2lvIiwibnVtYmVyIjoiMTExIiwiY29tcGxlbWVudCI6IjExMSIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xMjAifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xMjAifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTIwIn1dfSx7ImlkIjoxMjIsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMDUzMzY3MTMwMDAxNDQiLCJuYW1lIjoiUHJvamVjdCBCdWlsZGVyIiwiemlwY29kZSI6IjIwMDQwLTAwNSIsImNpdHkiOiJSaW8gZGUgSmFuZWlybyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQ2VudHJvIiwic3RyZWV0IjoiQXYgUmlvIEJyYW5jbyIsIm51bWJlciI6IjEyMyIsImNvbXBsZW1lbnQiOiJzYWxhIDYxMiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xMjIifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xMjIifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTIyIn1dfSx7ImlkIjoxMjYsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTM5NjQ4MzAwMDAxODAiLCJuYW1lIjoiTmV4Y29yZSIsInppcGNvZGUiOiI4MDAxMC0wMjAiLCJjaXR5IjoiQ3VyaXRpYmEiLCJzdGF0ZSI6IlBSIiwibmVpZ2hib3VyaG9vZCI6IkJhaXJybyIsInN0cmVldCI6IlJ1YSBQZWRybyBJdm8iLCJudW1iZXIiOiIxIiwiY29tcGxlbWVudCI6IiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xMjYifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xMjYifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTI2In1dfSx7ImlkIjoxNzcsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNwZiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMjM0NTY3ODkwOSIsIm5hbWUiOiJCZW5lZmljaWFyaW8gcGFyYSB0ZXN0ZXMiLCJ6aXBjb2RlIjoiMjAwMTEtMDIwIiwiY2l0eSI6IlJpbyBkZSBKYW5laXJvIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJNaW5oYSBSdWEiLCJudW1iZXIiOiI5OSIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTc3In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTc3In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzE3NyJ9XX0seyJpZCI6MTkzLCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjbnBqIiwibmF0aW9uYWxfaWRlbnRpZmllciI6IjI3MzkxMDE4MDAwMTE4IiwibmFtZSI6Ikp1cmlub3ZhIiwiemlwY29kZSI6IjAxMjI1LTAwMSIsImNpdHkiOiJTw6NvIFBhdWxvIiwic3RhdGUiOiJTUCIsIm5laWdoYm91cmhvb2QiOiJWaWxhIEJ1YXJxdWUiLCJzdHJlZXQiOiJSdWEgRnJlZGVyaWNvIEFicmFuY2hlcyIsIm51bWJlciI6IjM5OCIsImNvbXBsZW1lbnQiOiI5wrogYW5kYXIsIGNqLiA5MSIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xOTMifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xOTMifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTkzIn1dfSx7ImlkIjoxOTQsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNwZiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMjE4MDIxMTYwMCIsIm5hbWUiOiJHZcOzcmdpYSBUZXN0ZSIsInppcGNvZGUiOiIyMDAxMS0wMjAiLCJjaXR5IjoiUmlvIGRlIEphbmVpcm8iLCJzdGF0ZSI6IlJKIiwibmVpZ2hib3VyaG9vZCI6IkNlbnRybyIsInN0cmVldCI6IlJ1YSBkbyBDYXJtbyIsIm51bWJlciI6IjQzIiwiY29tcGxlbWVudCI6IjggYW5kYXIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTk0In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTk0In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzE5NCJ9XX0seyJpZCI6MTksIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiNjc2MzI1ODYwMDAxODgiLCJuYW1lIjoiQWNtZSIsInppcGNvZGUiOiIwNTYwNi0xMDAiLCJjaXR5IjoiU8OjbyBQYXVsbyIsInN0YXRlIjoiU1AiLCJuZWlnaGJvdXJob29kIjoiTW9ydW1iaSIsInN0cmVldCI6IkF2ZW5pZGEgR2lvdmFuaSBHcm9uY2hpIiwibnVtYmVyIjoiMTAwMCIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMTkifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xOSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8xOSJ9XX0seyJpZCI6MjE2LCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjcGYiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTYwNDgxNjE3MTkiLCJuYW1lIjoiTHVjYXMiLCJ6aXBjb2RlIjoiMjIwMzEtMDMwIiwiY2l0eSI6IlJpbyBkZSBKYW5laXJvIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDb3BhY2FiYW5hIiwic3RyZWV0IjoiUnVhIFNpbHZhIENhc3RybyIsIm51bWJlciI6IjI4IiwiY29tcGxlbWVudCI6IiIsIl9saW5rcyI6W3sicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMTYifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMTYifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjE2In1dfSx7ImlkIjoyMTgsIm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSI6ImNucGoiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMTQ2MTA2MDAwMDAxODYiLCJuYW1lIjoiUEpCYW5rIChuw6NvIGNvcnJlbnRpc3RhKSIsInppcGNvZGUiOiIyODAxNS0yMDAiLCJjaXR5IjoiQ2FtcG9zIGRvcyBHb3l0YWNhemVzIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJGbGFtYm95YW50Iiwic3RyZWV0IjoiUnVhIEhlcmN1bGFubyBBcXVpbm8iLCJudW1iZXIiOiIxMTkiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIxOCJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIxOCJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMTgifV19LHsiaWQiOjIxOSwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIxMzQ3MzczMzAwMDE5NSIsIm5hbWUiOiJOZXhhYXMgRGVtb25zdHJhw6fDo28iLCJ6aXBjb2RlIjoiMjAwMTEtMDIwIiwiY2l0eSI6IlJpbyBkZSBKYW5laXJvIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJSdWEgZG8gQ2FybW8gIiwibnVtYmVyIjoiNDMiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIxOSJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIxOSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMTkifV19LHsiaWQiOjIyMSwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY25waiIsIm5hdGlvbmFsX2lkZW50aWZpZXIiOiIyOTI3Mjc3MDAwMDE3NSIsIm5hbWUiOiJQSiBDZW50ZXIgTHRkYSIsInppcGNvZGUiOiIyODAxNS0yMDAiLCJjaXR5IjoiQ2FtcG9zIGRvcyBHb3l0YWNhemVzIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJDZW50cm8iLCJzdHJlZXQiOiJSdWEgQSIsIm51bWJlciI6IjEiLCJjb21wbGVtZW50IjoiIiwiX2xpbmtzIjpbeyJyZWwiOiJzZWxmIiwibWV0aG9kIjoiR0VUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIyMSJ9LHsicmVsIjoidXBkYXRlIiwibWV0aG9kIjoiUFVUIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIyMSJ9LHsicmVsIjoiZGVzdHJveSIsIm1ldGhvZCI6IkRFTEVURSIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL2NvbXBhbmllcy8yMjEifV19LHsiaWQiOjIyNiwibmF0aW9uYWxfaWRlbnRpZmllcl90eXBlIjoiY3BmIiwibmF0aW9uYWxfaWRlbnRpZmllciI6IjE0NjQxMjE3NzAwIiwibmFtZSI6IkljYXJvIG5hZyIsInppcGNvZGUiOiIyODMwMC0wMDAiLCJjaXR5IjoiSXRhcGVydW5hIiwic3RhdGUiOiJSSiIsIm5laWdoYm91cmhvb2QiOiJjZWhhYiIsInN0cmVldCI6InJ1YSBtYWVzdHJvIGZyYW5jaXNjbyBnb21lcyBkbyBjYXJtbyIsIm51bWJlciI6IjUxMCIsImNvbXBsZW1lbnQiOiIiLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI2In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI2In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIyNiJ9XX1dfQ== + http_version: '1.1' + adapter_metadata: + effective_url: https://sandbox.cobrato.com/api/v1/companies + recorded_at: Fri, 20 Sep 2019 19:56:37 GMT +recorded_with: VCR 2.9.3 diff --git a/spec/vcr_cassettes/companies/show/success.yml b/spec/vcr_cassettes/companies/show/success.yml new file mode 100644 index 0000000..c89ff5d --- /dev/null +++ b/spec/vcr_cassettes/companies/show/success.yml @@ -0,0 +1,61 @@ +--- +http_interactions: +- request: + method: get + uri: https://sandbox.cobrato.com/api/v1/companies/227 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Cobrato Ruby Client v1.1.7 + Accept: + - application/json + Content-Type: + - application/json + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + X-RateLimit-Limit: + - '60' + X-RateLimit-Reset: + - '2019-09-20T20:03:00Z' + X-RateLimit-Remaining: + - '59' + Cache-Control: + - no-store, must-revalidate, private, max-age=0 + X-Request-Id: + - 39f5e08f-02be-4325-b18c-e32e0118365a + X-Runtime: + - '0.499738' + X-Frame-Options: + - sameorigin + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + X-Download-Options: + - noopen + X-Permitted-Cross-Domain-Policies: + - none + X-MiniProfiler-Original-Cache-Control: + - max-age=0, private, must-revalidate + X-MiniProfiler-Ids: + - '["8fgskvh7wcodccbh7dhq","2a9ue11fs1hbyba9lmkg","bmgmdgwy21iafvjsj1b8","g2c5tlg9mc7jcnhx91w8","js9w7r25caorp1beofce","q1lsfpb56f2d9pgykq03"]' + Set-Cookie: + - __profilin=p%3Dt; path=/ + Transfer-Encoding: + - chunked + body: + encoding: ASCII-8BIT + string: !binary |- + eyJpZCI6MjI3LCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjcGYiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMzgwMzExNzE1MTMiLCJuYW1lIjoiSm/Do28gU2lsdmVpcmEiLCJ6aXBjb2RlIjoiOTkwMDAtNzUwIiwiY2l0eSI6IkNhcmFwZWJ1cyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQ2VudHJvIiwic3RyZWV0IjoiUnVhIEp1bGlvIGRlIENhc3RpbGhvcyIsIm51bWJlciI6IjEwMCIsImNvbXBsZW1lbnQiOiJBbyBsYWRvIGRhIGxvdMOpcmljYS4iLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI3In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI3In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIyNyJ9LHsicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjcifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjcifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjI3In1dfQ== + http_version: '1.1' + adapter_metadata: + effective_url: https://sandbox.cobrato.com/api/v1/companies/227 + recorded_at: Fri, 20 Sep 2019 20:02:12 GMT +recorded_with: VCR 2.9.3 diff --git a/spec/vcr_cassettes/companies/update/success.yml b/spec/vcr_cassettes/companies/update/success.yml new file mode 100644 index 0000000..8c08f31 --- /dev/null +++ b/spec/vcr_cassettes/companies/update/success.yml @@ -0,0 +1,61 @@ +--- +http_interactions: +- request: + method: put + uri: https://sandbox.cobrato.com/api/v1/companies/227 + body: + encoding: UTF-8 + string: '{"name":"RSpec integration"}' + headers: + User-Agent: + - Cobrato Ruby Client v1.1.7 + Accept: + - application/json + Content-Type: + - application/json + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + X-RateLimit-Limit: + - '60' + X-RateLimit-Reset: + - '2019-09-20T20:03:00Z' + X-RateLimit-Remaining: + - '58' + Cache-Control: + - no-store, must-revalidate, private, max-age=0 + X-Request-Id: + - 6d4e87b0-bae6-48ab-86ba-93cda0a37e1e + X-Runtime: + - '0.108505' + X-Frame-Options: + - sameorigin + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + X-Download-Options: + - noopen + X-Permitted-Cross-Domain-Policies: + - none + X-MiniProfiler-Original-Cache-Control: + - max-age=0, private, must-revalidate + X-MiniProfiler-Ids: + - '["2sgxpqojs05ihg6grrx6","2a9ue11fs1hbyba9lmkg","bmgmdgwy21iafvjsj1b8","g2c5tlg9mc7jcnhx91w8","js9w7r25caorp1beofce","q1lsfpb56f2d9pgykq03","8fgskvh7wcodccbh7dhq"]' + Set-Cookie: + - __profilin=p%3Dt; path=/ + Transfer-Encoding: + - chunked + body: + encoding: ASCII-8BIT + string: !binary |- + eyJpZCI6MjI3LCJuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUiOiJjcGYiLCJuYXRpb25hbF9pZGVudGlmaWVyIjoiMzgwMzExNzE1MTMiLCJuYW1lIjoiUlNwZWMgaW50ZWdyYXRpb24iLCJ6aXBjb2RlIjoiOTkwMDAtNzUwIiwiY2l0eSI6IkNhcmFwZWJ1cyIsInN0YXRlIjoiUkoiLCJuZWlnaGJvdXJob29kIjoiQ2VudHJvIiwic3RyZWV0IjoiUnVhIEp1bGlvIGRlIENhc3RpbGhvcyIsIm51bWJlciI6IjEwMCIsImNvbXBsZW1lbnQiOiJBbyBsYWRvIGRhIGxvdMOpcmljYS4iLCJfbGlua3MiOlt7InJlbCI6InNlbGYiLCJtZXRob2QiOiJHRVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI3In0seyJyZWwiOiJ1cGRhdGUiLCJtZXRob2QiOiJQVVQiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9jb21wYW5pZXMvMjI3In0seyJyZWwiOiJkZXN0cm95IiwibWV0aG9kIjoiREVMRVRFIiwiaHJlZiI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjEvY29tcGFuaWVzLzIyNyJ9LHsicmVsIjoic2VsZiIsIm1ldGhvZCI6IkdFVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjcifSx7InJlbCI6InVwZGF0ZSIsIm1ldGhvZCI6IlBVVCIsImhyZWYiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YxL3BheWVlcy8yMjcifSx7InJlbCI6ImRlc3Ryb3kiLCJtZXRob2QiOiJERUxFVEUiLCJocmVmIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92MS9wYXllZXMvMjI3In1dfQ== + http_version: '1.1' + adapter_metadata: + effective_url: https://sandbox.cobrato.com/api/v1/companies/227 + recorded_at: Fri, 20 Sep 2019 20:02:12 GMT +recorded_with: VCR 2.9.3