bolognese 1.7.3 → 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ac0ee73b69d1bcb02c47710f614f155f29c749dfe11bdbac818543ff7a4d552
4
- data.tar.gz: c887eb61cf622633d71c36437eac5926fa4e40638f5a7fe5ae4c894ed52b39ad
3
+ metadata.gz: 36737983981bbdb5e659c5226fe9c7a6f043d2cdea71ccf97ea358128770fa59
4
+ data.tar.gz: c09a31b4be63e5bc7998a6b506db232010eff1b60c6815b4aae86c186ea0d60b
5
5
  SHA512:
6
- metadata.gz: d617a7cd669a789a7b12a92c2e7c958fb1a1f0ac8953d105218ea2f027d63b635bd973504688ff958f91183a0894111c542410a013bbcdf1c7e2dfa30a580a51
7
- data.tar.gz: 14024d1535562346ca08c236c9bbf7403bcae3b8b06e2db264ef7717e136c7d1e633fa6f96ff859d78b3ddc7d513bf7dc65b944be2dc18e3dffbbf3df0b9c51c
6
+ metadata.gz: cfee7c8750c022e47d0e6d7050dc72f487b17675c073a4d1c2469573cf101054efd11329f23dd01b2b8a55bf4dfffffeb28b038ebe26527d728f4ddb04ad09fa
7
+ data.tar.gz: 36068c59bfbbf0420c9423919fd4b8f93552a100b57f23f8841e63bdec6f9e5b03e6c7d23ee76c986708cb379e59af0ff1e435d1fb2d22a5c4baaebfe30e8e1f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (1.7.3)
4
+ bolognese (1.8.4)
5
5
  activesupport (>= 4.2.5)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (>= 5.1.0)
@@ -58,8 +58,10 @@ GEM
58
58
  csl (~> 1.0)
59
59
  diff-lcs (1.4.4)
60
60
  docile (1.3.2)
61
- ebnf (1.2.0)
61
+ ebnf (2.1.1)
62
+ htmlentities (~> 4.3)
62
63
  rdf (~> 3.1)
64
+ scanf (~> 1.0)
63
65
  sxp (~> 1.1)
64
66
  edtf (3.0.5)
65
67
  activesupport (>= 3.0, < 7.0)
@@ -79,7 +81,7 @@ GEM
79
81
  concurrent-ruby (~> 1.0)
80
82
  hashdiff (1.0.1)
81
83
  htmlentities (4.3.4)
82
- i18n (1.8.3)
84
+ i18n (1.8.5)
83
85
  concurrent-ruby (~> 1.0)
84
86
  iso8601 (0.9.1)
85
87
  json-canonicalization (0.2.0)
@@ -119,7 +121,7 @@ GEM
119
121
  namae (1.0.1)
120
122
  nokogiri (1.10.10)
121
123
  mini_portile2 (~> 2.4.0)
122
- oj (3.10.6)
124
+ oj (3.10.8)
123
125
  oj_mimic_json (1.0.1)
124
126
  optimist (3.0.1)
125
127
  postrank-uri (1.0.24)
@@ -148,8 +150,8 @@ GEM
148
150
  rdf (~> 3.1)
149
151
  rdf-rdfa (~> 3.1)
150
152
  rdf-xsd (~> 3.1)
151
- rdf-turtle (3.1.1)
152
- ebnf (~> 1.2)
153
+ rdf-turtle (3.1.2)
154
+ ebnf (~> 2.0)
153
155
  rdf (~> 3.1, >= 3.1.2)
154
156
  rdf-vocab (3.1.7)
155
157
  rdf (~> 3.1, >= 3.1.2)
@@ -172,6 +174,7 @@ GEM
172
174
  nokogiri (~> 1.6)
173
175
  rspec (~> 3)
174
176
  safe_yaml (1.0.5)
177
+ scanf (1.0.0)
175
178
  simplecov (0.18.5)
176
179
  docile (~> 1.1)
177
180
  simplecov-html (~> 0.11)
@@ -190,7 +193,7 @@ GEM
190
193
  addressable (>= 2.3.6)
191
194
  crack (>= 0.3.2)
192
195
  hashdiff (>= 0.4.0, < 2.0.0)
193
- zeitwerk (2.3.1)
196
+ zeitwerk (2.4.0)
194
197
 
195
198
  PLATFORMS
196
199
  ruby
@@ -11,7 +11,13 @@ module Bolognese
11
11
  end
12
12
 
13
13
  def datacite_errors(xml: nil, schema_version: nil)
14
- schema_version = schema_version.to_s.start_with?("http://datacite.org/schema/kernel") ? schema_version : "http://datacite.org/schema/kernel-4"
14
+ if xml.present?
15
+ namespaces = Nokogiri::XML(xml, nil, 'UTF-8').root.namespaces
16
+ schema_version = namespaces.fetch('xmlns',nil).presence || namespaces.fetch('xmlns:ns0',nil).presence
17
+ else
18
+ schema_version = schema_version.to_s.start_with?("http://datacite.org/schema/kernel") ? schema_version : "http://datacite.org/schema/kernel-4"
19
+ end
20
+
15
21
  kernel = schema_version.to_s.split("/").last
16
22
  filepath = File.expand_path("../../../resources/#{kernel}/metadata.xsd", __FILE__)
17
23
  schema = Nokogiri::XML::Schema(open(filepath))
@@ -15,12 +15,13 @@ module Bolognese
15
15
  :format, :funding_references, :state, :geo_locations,
16
16
  :types, :content_url, :related_identifiers, :style, :locale, :date_registered
17
17
 
18
- def initialize(input: nil, from: nil, **options)
19
- id = normalize_id(input, options)
18
+ def initialize(options={})
19
+ options.symbolize_keys!
20
+ id = normalize_id(options[:input], options)
20
21
  ra = nil
21
22
 
22
23
  if id.present?
23
- @from = from || find_from_format(id: id)
24
+ @from = options[:from] || find_from_format(id: id)
24
25
 
25
26
  # mEDRA, KISTI, JaLC and OP DOIs are found in the Crossref index
26
27
  if @from == "medra"
@@ -37,9 +38,9 @@ module Bolognese
37
38
  hsh = @from.present? ? send("get_" + @from, id: id, sandbox: options[:sandbox]) : {}
38
39
  string = hsh.fetch("string", nil)
39
40
 
40
- elsif input.present? && File.exist?(input)
41
- filename = File.basename(input)
42
- ext = File.extname(input)
41
+ elsif options[:input].present? && File.exist?(options[:input])
42
+ filename = File.basename(options[:input])
43
+ ext = File.extname(options[:input])
43
44
  if %w(.bib .ris .xml .json).include?(ext)
44
45
  hsh = {
45
46
  "url" => options[:url],
@@ -49,8 +50,8 @@ module Bolognese
49
50
  "provider_id" => options[:provider_id],
50
51
  "client_id" => options[:client_id],
51
52
  "content_url" => options[:content_url] }
52
- string = IO.read(input)
53
- @from = from || find_from_format(string: string, filename: filename, ext: ext)
53
+ string = IO.read(options[:input])
54
+ @from = options[:from] || find_from_format(string: string, filename: filename, ext: ext)
54
55
  else
55
56
  $stderr.puts "File type #{ext} not supported"
56
57
  exit 1
@@ -69,8 +70,8 @@ module Bolognese
69
70
  "titles" => options[:titles],
70
71
  "publisher" => options[:publisher],
71
72
  "publication_year" => options[:publication_year] }
72
- string = input
73
- @from = from || find_from_format(string: string)
73
+ string = options[:input]
74
+ @from = options[:from] || find_from_format(string: string)
74
75
  end
75
76
 
76
77
  # make sure input is encoded as utf8
@@ -153,7 +153,7 @@ module Bolognese
153
153
  "language" => language,
154
154
  "author" => author,
155
155
  "contributor" => to_citeproc(contributors),
156
- "issued" => get_date(dates, "Issued") ? get_date_parts(get_date(dates, "Issued")) : get_date_parts(publication_year),
156
+ "issued" => get_date(dates, "Issued") ? get_date_parts(get_date(dates, "Issued")) : get_date_parts(publication_year.to_s),
157
157
  "submitted" => Array.wrap(dates).find { |d| d["dateType"] == "Submitted" }.to_h.fetch("__content__", nil),
158
158
  "abstract" => parse_attributes(descriptions, content: "description", first: true),
159
159
  "container-title" => container_title,
@@ -41,15 +41,20 @@ module Bolognese
41
41
  journal_issue = {}
42
42
  journal_metadata = nil
43
43
  publisher = query.dig("crm_item", 0)
44
+ publisher = nil unless publisher.is_a?(String)
44
45
 
45
46
  case model
46
47
  when "book"
47
48
  book_metadata = meta.dig("crossref", "book", "book_metadata")
48
49
  book_series_metadata = meta.dig("crossref", "book", "book_series_metadata")
49
50
  book_set_metadata = meta.dig("crossref", "book", "book_set_metadata")
50
- bibliographic_metadata = meta.dig("crossref", "book", "content_item") || book_metadata || book_series_metadata
51
+ bibliographic_metadata = meta.dig("crossref", "book", "content_item") || book_metadata || book_series_metadata || book_set_metadata
51
52
  resource_type = bibliographic_metadata.fetch("component_type", nil) ? "book-" + bibliographic_metadata.fetch("component_type") : "book"
52
- publisher = book_metadata.present? ? book_metadata.dig("publisher", "publisher_name") : book_series_metadata.dig("publisher", "publisher_name")
53
+ # publisher = if book_metadata.present?
54
+ # book_metadata.dig("publisher", "publisher_name")
55
+ # elsif book_series_metadata.present?
56
+ # book_series_metadata.dig("publisher", "publisher_name")
57
+ # end
53
58
  when "conference"
54
59
  event_metadata = meta.dig("crossref", "conference", "event_metadata") || {}
55
60
  bibliographic_metadata = meta.dig("crossref", "conference", "conference_paper").to_h
@@ -69,7 +74,7 @@ module Bolognese
69
74
  end
70
75
  when "posted_content"
71
76
  bibliographic_metadata = meta.dig("crossref", "posted_content").to_h
72
- publisher = bibliographic_metadata.dig("institution", "institution_name")
77
+ publisher ||= bibliographic_metadata.dig("institution", "institution_name")
73
78
  when "sa_component"
74
79
  bibliographic_metadata = meta.dig("crossref", "sa_component", "component_list", "component").to_h
75
80
  related_identifier = Array.wrap(query.to_h["crm_item"]).find { |cr| cr["name"] == "relation" }
@@ -164,7 +169,7 @@ module Bolognese
164
169
  "funding_references" => crossref_funding_reference(program_metadata),
165
170
  "publisher" => publisher,
166
171
  "container" => container,
167
- "agency" => agency = options[:ra] || "Crossref",
172
+ "agency" => agency = options[:ra] || "crossref",
168
173
  "related_identifiers" => related_identifiers,
169
174
  "dates" => dates,
170
175
  "publication_year" => publication_year,
@@ -238,7 +243,7 @@ module Bolognese
238
243
  { "nameType" => "Organizational",
239
244
  "name" => a["name"] || a["__content__"] }
240
245
  end
241
- end.unwrap
246
+ end
242
247
  end
243
248
 
244
249
  def crossref_funding_reference(program_metadata)
@@ -227,7 +227,7 @@ module Bolognese
227
227
  "contributors" => get_authors(Array.wrap(meta.dig("contributors", "contributor"))),
228
228
  "container" => set_container(meta),
229
229
  "publisher" => parse_attributes(meta.fetch("publisher", nil), first: true).to_s.strip.presence,
230
- "agency" => "DataCite",
230
+ "agency" => "datacite",
231
231
  "funding_references" => funding_references,
232
232
  "dates" => dates,
233
233
  "publication_year" => parse_attributes(meta.fetch("publicationYear", nil), first: true).to_s.strip.presence,
@@ -205,6 +205,7 @@ module Bolognese
205
205
  "AudioObject" => "Sound",
206
206
  "Blog" => "Text",
207
207
  "BlogPosting" => "Text",
208
+ "Book" => "Text",
208
209
  "Chapter" => "Text",
209
210
  "Collection" => "Collection",
210
211
  "DataCatalog" => "Dataset",
@@ -965,6 +966,8 @@ module Bolognese
965
966
  month = iso8601_time[5..6].to_i
966
967
  day = iso8601_time[8..9].to_i
967
968
  { 'date-parts' => [[year, month, day].reject { |part| part == 0 }] }
969
+ rescue TypeError
970
+ nil
968
971
  end
969
972
 
970
973
  def get_date_from_date_parts(date_as_parts)
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "1.7.3"
2
+ VERSION = "1.8.4"
3
3
  end
@@ -58,6 +58,6 @@
58
58
  "description": "This tools are used to analyse the data produced by the Crosssover Experiment I designed to test Choice Architecture techniques as UI interventions in a SEEk4Science data catalogue. It contains:\n\n- Data structures for the experimental data.<br>\n- Visualisation functions<br>\n- Analysis functions\n\n## Installation\n\n- R<br>\n- python<br>\n- ipython 4\n\nClone and use.\n\n## Usage\n\n<br>\n```python<br>\nsource('parallel_plot.r')<br>\nwith(z, parallelset(trt,response, freq=count, alpha=0.2))<br>\n```\n\n<br>\n## Contributing\n\n1. Fork it!<br>\n2. Create your feature branch: `git checkout -b my-new-feature`<br>\n3. Commit your changes: `git commit -am 'Add some feature'`<br>\n4. Push to the branch: `git push origin my-new-feature`<br>\n5. Submit a pull request :D\n\n<br>\n## License\n\nThis work supports my PhD Thesis at University of Manchester."
59
59
  }],
60
60
  "schema_version": "http://datacite.org/schema/kernel-4",
61
- "agency": "DataCite",
61
+ "agency": "datacite",
62
62
  "state": "findable"
63
63
  }
@@ -79,5 +79,5 @@
79
79
  "description": "Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for..."
80
80
  }],
81
81
  "schemaVersion": "http://datacite.org/schema/kernel-4",
82
- "agency": "DataCite"
82
+ "agency": "datacite"
83
83
  }
@@ -17,5 +17,5 @@
17
17
  "publisher": "KNB Data Repository",
18
18
  "publication-year": "2016",
19
19
  "schema-version": "http://datacite.org/schema/kernel-3",
20
- "agency": "DataCite"
20
+ "agency": "datacite"
21
21
  }
@@ -68,7 +68,7 @@
68
68
  "schemaVersion": "http://datacite.org/schema/kernel-4",
69
69
  "providerId": "cern",
70
70
  "clientId": "cern.zenodo",
71
- "agency": "DataCite",
71
+ "agency": "datacite",
72
72
  "state": "findable"
73
73
  }
74
74
 
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.org/ra/10.1093
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Date:
20
+ - Wed, 29 Jul 2020 18:49:31 GMT
21
+ Content-Type:
22
+ - application/json;charset=UTF-8
23
+ Connection:
24
+ - keep-alive
25
+ Set-Cookie:
26
+ - __cfduid=d6614b5a2ad0605965c4795ee34c9c8951596048571; expires=Fri, 28-Aug-20
27
+ 18:49:31 GMT; path=/; domain=.doi.org; HttpOnly; SameSite=Lax; Secure
28
+ Cf-Cache-Status:
29
+ - DYNAMIC
30
+ Cf-Request-Id:
31
+ - 043d8195850000c29fe4ae0200000001
32
+ Expect-Ct:
33
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
34
+ Strict-Transport-Security:
35
+ - max-age=31536000; includeSubDomains; preload
36
+ Server:
37
+ - cloudflare
38
+ Cf-Ray:
39
+ - 5ba90535aee4c29f-FRA
40
+ body:
41
+ encoding: ASCII-8BIT
42
+ string: |-
43
+ [
44
+ {
45
+ "DOI": "10.1093",
46
+ "RA": "Crossref"
47
+ }
48
+ ]
49
+ http_version:
50
+ recorded_at: Wed, 29 Jul 2020 18:49:31 GMT
51
+ - request:
52
+ method: get
53
+ uri: https://api.crossref.org/works/10.1093/oxfordhb/9780198746140.013.5/transform/application/vnd.crossref.unixsd+xml
54
+ body:
55
+ encoding: US-ASCII
56
+ string: ''
57
+ headers:
58
+ User-Agent:
59
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
60
+ Accept:
61
+ - text/xml
62
+ response:
63
+ status:
64
+ code: 200
65
+ message: OK
66
+ headers:
67
+ Link:
68
+ - <http://dx.doi.org/10.1093/oxfordhb/9780198746140.013.5>; rel="canonical"
69
+ Access-Control-Allow-Origin:
70
+ - "*"
71
+ Access-Control-Allow-Headers:
72
+ - X-Requested-With
73
+ Content-Length:
74
+ - '5031'
75
+ Server:
76
+ - http-kit
77
+ Date:
78
+ - Wed, 29 Jul 2020 18:49:32 GMT
79
+ X-Rate-Limit-Limit:
80
+ - '50'
81
+ X-Rate-Limit-Interval:
82
+ - 1s
83
+ Connection:
84
+ - close
85
+ body:
86
+ encoding: ASCII-8BIT
87
+ string: !binary |-
88
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iYm9va190aXRsZSI+MTAuMTA5My9veGZvcmRoYi85NzgwMTk4NzQ2MTQwLjAxMy41PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzcyAoT1VQKTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzczwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJtZW1iZXItaWQiIHR5cGU9Im51bWJlciI+Mjg2PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGF0aW9uLWlkIiB0eXBlPSJudW1iZXIiPjk3NjQ3MzU0PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImJvb2staWQiIHR5cGU9Im51bWJlciI+MzAyMzQ1NDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJzZXJpZXMtaWQiIHR5cGU9Im51bWJlciI+MTQzNjE1MjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJkZXBvc2l0LXRpbWVzdGFtcCIgdHlwZT0ibnVtYmVyIj4yMDE4MDQwNTE1MjM1NDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJvd25lci1wcmVmaXgiIHR5cGU9InN0cmluZyI+MTAuMTA5MzwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJsYXN0LXVwZGF0ZSIgdHlwZT0iZGF0ZSI+MjAxOC0wNC0wNlQwMzo0MDo1OFo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY3JlYXRlZCIgdHlwZT0iZGF0ZSI+MjAxOC0wNC0wNVQxNDozMDowN1o8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0ZWRieS1jb3VudCIgdHlwZT0ibnVtYmVyIj4xPC9jcm0taXRlbT4NCiAgICAgICAgPGRvaV9yZWNvcmQ+DQogICAgICAgICAgPGNyb3NzcmVmIHhtbG5zPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSBodHRwOi8vZG9pLmNyb3NzcmVmLm9yZy9zY2hlbWFzL3VuaXhyZWYxLjEueHNkIj4NCiAgICAgICAgICAgIDxib29rIGJvb2tfdHlwZT0iZWRpdGVkX2Jvb2siPg0KICAgICAgICAgICAgICA8Ym9va19zZXRfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIiBtZXRhZGF0YV9kaXN0cmlidXRpb25fb3B0cz0icXVlcnkiIHJlZmVyZW5jZV9kaXN0cmlidXRpb25fb3B0cz0ibm9uZSI+DQogICAgICAgICAgICAgICAgPHNldF9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZT5PeGZvcmQgSGFuZGJvb2tzIE9ubGluZTwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxvcmlnaW5hbF9sYW5ndWFnZV90aXRsZT5PeGZvcmQgSGFuZGJvb2tzIE9ubGluZTwvb3JpZ2luYWxfbGFuZ3VhZ2VfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDxub2lzYm4gcmVhc29uPSJzaW1wbGVfc2VyaWVzIiAvPg0KICAgICAgICAgICAgICAgIDwvc2V0X21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDxjb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBsYW5ndWFnZT0iZW4iIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkRhbmllbDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+Q296b3J0PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJlZGl0b3IiIGxhbmd1YWdlPSJlbiIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KYW1lcyBNYXJrPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5TaGllbGRzPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIGxhbmd1YWdlPSJlbiIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5CYXJicmEgUi48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPkNsYXl0b248L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICA8dGl0bGU+VGhlIENoYW5naW5nIFdheSBvZiB0aGUgQm9kaGlzYXR0dmE8L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPG9yaWdpbmFsX2xhbmd1YWdlX3RpdGxlPlRoZSBDaGFuZ2luZyBXYXkgb2YgdGhlIEJvZGhpc2F0dHZhPC9vcmlnaW5hbF9sYW5ndWFnZV90aXRsZT4NCiAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICA8YWJzdHJhY3QgeG1sbnM9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9KQVRTMSI+DQogICAgICAgICAgICAgICAgICA8cD5UaGlzIGNoYXB0ZXIgZXhwbG9yZXMgdGhlIG5hdHVyZSBvZiB0aGUgY29ubmVjdGlvbnMgYmV0d2VlbiBjb250ZW1wb3JhcnkgdW5kZXJzdGFuZGluZ3Mgb2YgdGhlIGJvZGhpc2F0dHZhIHBhdGggYXMgc29jaWFsbHkgZW5nYWdlZCwgYW5kIHRoZSBjYW5vbmljYWwgTWFoxIF5xIFuYSB0cmFkaXRpb24gaW4gSW5kaWHigJR0aGUgVWdyYXBhcmlw4bmbY2NoxIEtc8WrdHJhIGFuZCB0aGUgd29ya3Mgb2YgxZrEgW50aWRldmEuIFRoZXNlIGNhbm9uaWNhbCB0cmVhdG1lbnRzIG9mIHRoZSBib2RoaXNhdHR2YeKAmXMgY2FyZWVyIGFyZSBjb21wYXJlZCB3aXRoIGEgY29udGVtcG9yYXJ5IHVuZGVyc3RhbmRpbmcgYXMgcmVmbGVjdGVkIGluIHRoZSBjb21tZW50YXJ5IG9uIMWaxIFudGlkZXZh4oCZcyBCb2RoaWNhcnnEgXZhdMSBcmEgYnkgUGVtYSBDaMO2ZHLDtm4uIFRoaXMgYW5hbHlzaXMgcmV2ZWFscyBkaXN0aW5jdCB2aXNpb25zIG9mIHRoZSBib2RoaXNhdHR2YSwgZnJvbSB0aGUgVWdyYeKAmXMgZWxpdGUgc3VwZXJoZXJvLCB0byDFmsSBbnRpZGV2YeKAmXMgc2FpbnRseSBib2RoaXNhdHR2YSwgdG8gdGhlIG1vZGVybiB2aWV3IG9mIHRoZSBib2RoaXNhdHR2YSBhcyBzb2NpYWwgYWN0aXZpc3QuIFRoZSBjYXJlZXIgb2YgdGhlIGJvZGhpc2F0dHZhIGlzIGZ1cnRoZXJtb3JlIHNob3duIHRvIGludm9sdmUgYSByYW5nZSBvZiB0eXBlcyBvZiBzb2NpYWwgZW5nYWdlbWVudC4gV2hpbGUgdGhlIGNhbm9uaWNhbCB0ZXh0cyBzdXBwb3J0IHRoZSBpZGVhbCBvZiBpbWJ1aW5nIGFsbCBkYWlseSBhY3Rpdml0aWVzIHdpdGggYW4gYWx0cnVpc3RpYyBtb3RpdmUsIGFzIHdlbGwgYXMgZW5kb3JzaW5nIHNlbGZsZXNzIHNlcnZpY2UgdG8gbWVldCB0aGUgbmVlZHMgYW5kIHdhbnRzIG9mIHNlbnRpZW50IGJlaW5ncywgb25seSB0aGUgY29udGVtcG9yYXJ5IHJlYWRpbmcgb2YgdGhlIGJvZGhpc2F0dHZhIHBhdGggYWR2b2NhdGVzIHNvY2lhbCBhY3Rpb24gdG8gYWRkcmVzcyBzeXN0ZW1pYyBjYXVzZXMgb2YgY29sbGVjdGl2ZSBzdWZmZXJpbmcuPC9wPg0KICAgICAgICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgICAgICAgPHZvbHVtZT4xPC92b2x1bWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgICA8bW9udGg+MDQ8L21vbnRoPg0KICAgICAgICAgICAgICAgICAgPGRheT4wNTwvZGF5Pg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxODwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPG5vaXNibiByZWFzb249InNpbXBsZV9zZXJpZXMiIC8+DQogICAgICAgICAgICAgICAgPHB1Ymxpc2hlcj4NCiAgICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfbmFtZT5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzczwvcHVibGlzaGVyX25hbWU+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXI+DQogICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDkzL294Zm9yZGhiLzk3ODAxOTg3NDYxNDAuMDEzLjU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9InRleHQvaHRtbCI+aHR0cDovL294Zm9yZGhhbmRib29rcy5jb20vdmlldy8xMC4xMDkzL294Zm9yZGhiLzk3ODAxOTg3NDYxNDAuMDAxLjAwMDEvb3hmb3JkaGItOTc4MDE5ODc0NjE0MC1lLTU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgIDwvYm9va19zZXRfbWV0YWRhdGE+DQogICAgICAgICAgICA8L2Jvb2s+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
89
+ http_version:
90
+ recorded_at: Wed, 29 Jul 2020 18:49:32 GMT
91
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,94 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.org/ra/10.5194
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Date:
20
+ - Wed, 29 Jul 2020 06:09:32 GMT
21
+ Content-Type:
22
+ - application/json;charset=UTF-8
23
+ Connection:
24
+ - keep-alive
25
+ Set-Cookie:
26
+ - __cfduid=d405b79b8c70ba4b495e3fcba1355b80c1596002972; expires=Fri, 28-Aug-20
27
+ 06:09:32 GMT; path=/; domain=.doi.org; HttpOnly; SameSite=Lax; Secure
28
+ Cf-Cache-Status:
29
+ - DYNAMIC
30
+ Cf-Request-Id:
31
+ - 043ac9cad6000005bbc5b4f200000001
32
+ Expect-Ct:
33
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
34
+ Strict-Transport-Security:
35
+ - max-age=31536000; includeSubDomains; preload
36
+ Server:
37
+ - cloudflare
38
+ Cf-Ray:
39
+ - 5ba4abf15d0705bb-FRA
40
+ body:
41
+ encoding: ASCII-8BIT
42
+ string: |-
43
+ [
44
+ {
45
+ "DOI": "10.5194",
46
+ "RA": "Crossref"
47
+ }
48
+ ]
49
+ http_version:
50
+ recorded_at: Wed, 29 Jul 2020 06:09:32 GMT
51
+ - request:
52
+ method: get
53
+ uri: https://api.crossref.org/works/10.5194/cp-2020-95/transform/application/vnd.crossref.unixsd+xml
54
+ body:
55
+ encoding: US-ASCII
56
+ string: ''
57
+ headers:
58
+ User-Agent:
59
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
60
+ Accept:
61
+ - text/xml
62
+ response:
63
+ status:
64
+ code: 200
65
+ message: OK
66
+ headers:
67
+ Link:
68
+ - <http://dx.doi.org/10.5194/cp-2020-95>; rel="canonical", <https://creativecommons.org/licenses/by/4.0/>;
69
+ rel="license", <http://orcid.org/0000-0001-6130-6474>; title="Jun Shao"; rel="author",
70
+ <http://orcid.org/0000-0002-5068-1591>; title="Laurie Menviel"; rel="author",
71
+ <http://orcid.org/0000-0003-3306-0969>; title="Mayhar Mohtadi"; rel="author"
72
+ Access-Control-Allow-Origin:
73
+ - "*"
74
+ Access-Control-Allow-Headers:
75
+ - X-Requested-With
76
+ Content-Length:
77
+ - '7366'
78
+ Server:
79
+ - http-kit
80
+ Date:
81
+ - Wed, 29 Jul 2020 06:09:33 GMT
82
+ X-Rate-Limit-Limit:
83
+ - '50'
84
+ X-Rate-Limit-Interval:
85
+ - 1s
86
+ Connection:
87
+ - close
88
+ body:
89
+ encoding: ASCII-8BIT
90
+ string: !binary |-
91
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0icG9zdGVkX2NvbnRlbnQiPjEwLjUxOTQvY3AtMjAyMC05NTwvZG9pPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHVibGlzaGVyLW5hbWUiIHR5cGU9InN0cmluZyI+Q29wZXJuaWN1cyBHbWJIPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InByZWZpeC1uYW1lIiB0eXBlPSJzdHJpbmciPkNvcGVybmljdXMgR21iSDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJtZW1iZXItaWQiIHR5cGU9Im51bWJlciI+MzE0NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj4xMTgzMTgxNTE8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iYm9vay1pZCIgdHlwZT0ibnVtYmVyIj4zNDMwMzQyPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImRlcG9zaXQtdGltZXN0YW1wIiB0eXBlPSJudW1iZXIiPjIwMjAwNzI4MDczNjMxPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im93bmVyLXByZWZpeCIgdHlwZT0ic3RyaW5nIj4xMC41MTk0PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Imxhc3QtdXBkYXRlIiB0eXBlPSJkYXRlIj4yMDIwLTA3LTI4VDA5OjE2OjExWjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjcmVhdGVkIiB0eXBlPSJkYXRlIj4yMDIwLTA3LTI4VDA5OjE2OjEwWjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRlZGJ5LWNvdW50IiB0eXBlPSJudW1iZXIiPjA8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icmVsYXRpb24iIHR5cGU9ImRvaSIgY2xhaW09ImlzU3VwcGxlbWVudFRvIj4xMC41MTk0L2NwLTIwMjAtOTUtc3VwcGxlbWVudDwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8cG9zdGVkX2NvbnRlbnQgdHlwZT0icHJlcHJpbnQiPg0KICAgICAgICAgICAgICA8Z3JvdXBfdGl0bGU+Q2FyYm9uIEN5Y2xlL01vZGVsbGluZyBvbmx5L01pbGxlbmlhbC9ELU88L2dyb3VwX3RpdGxlPg0KICAgICAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KdW48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICA8c3VybmFtZT5TaGFvPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPE9SQ0lEPmh0dHBzOi8vb3JjaWQub3JnLzAwMDAtMDAwMS02MTMwLTY0NzQ8L09SQ0lEPg0KICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TG93ZWxsIEQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICA8c3VybmFtZT5TdG90dDwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkxhdXJpZTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk1lbnZpZWw8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8T1JDSUQ+aHR0cHM6Ly9vcmNpZC5vcmcvMDAwMC0wMDAyLTUwNjgtMTU5MTwvT1JDSUQ+DQogICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+UmlkZ3dlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5NYWxpbjwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPsOWZGFsZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5NYXloYXI8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICA8c3VybmFtZT5Nb2h0YWRpPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPE9SQ0lEPmh0dHBzOi8vb3JjaWQub3JnLzAwMDAtMDAwMy0zMzA2LTA5Njk8L09SQ0lEPg0KICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5UaGUgQXRtb3NwaGVyaWMgQnJpZGdlIENvbW11bmljYXRlZCB0aGUgzrQmYW1wO2x0O3N1cCZhbXA7Z3Q7MTMmYW1wO2x0Oy9zdXAmYW1wO2d0O0MgRGVjbGluZWR1cmluZyB0aGUgTGFzdCBEZWdsYWNpYXRpb24gdG8gdGhlIEdsb2JhbCBVcHBlciBPY2VhbjwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8cG9zdGVkX2RhdGU+DQogICAgICAgICAgICAgICAgPG1vbnRoPjc8L21vbnRoPg0KICAgICAgICAgICAgICAgIDxkYXk+Mjg8L2RheT4NCiAgICAgICAgICAgICAgICA8eWVhcj4yMDIwPC95ZWFyPg0KICAgICAgICAgICAgICA8L3Bvc3RlZF9kYXRlPg0KICAgICAgICAgICAgICA8amF0czphYnN0cmFjdCB4bWxuczpqYXRzPSJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvSkFUUzEiPg0KICAgICAgICAgICAgICAgIDxqYXRzOnA+PCFbQ0RBVEFbQWJzdHJhY3QuIER1cmluZyB0aGUgZWFybHkgbGFzdCBnbGFjaWFsIHRlcm1pbmF0aW9uICgxNy4y4oCTMTXigIlrYSkgYXRtb3NwaGVyaWMgzrQxM0MgZGVjbGluZWQgc2hhcnBseSBieSAwLjPigJMwLjTigInigLAgYXMgYXRtb3NwaGVyaWMgcENPMiByb3NlLiBUaGlzIHdhcyB0aGUgaW5pdGlhbCBwYXJ0IG9mIHRoZSBhdG1vc3BoZXJpYyDOtDEzQyBleGN1cnNpb24gdGhhdCBsYXN0ZWQgZm9yIG11bHRpcGxlIHRob3VzYW5kIHllYXJzLiBBIHNpbWlsYXIgzrQxM0MgZGVjbGluZSBoYXMgYmVlbiBkb2N1bWVudGVkIGluIG1hcmluZSBwcm94eSByZWNvcmRzIGZyb20gYm90aCBzdXJmYWNlIGFuZCB0aGVybW9jbGluZS1kd2VsbGluZyBwbGFua3RpYyBmb3JhbWluaWZlcmEuIFRoZSBmb3JhbWluaWZlcmFsIM60MTNDIGRlY2xpbmUgaGFzIHByZXZpb3VzbHkgYmVlbiBhdHRyaWJ1dGVkIHRvIGEgZmx1eCBvZiByZXNwaXJlZCBjYXJib24gZnJvbSB0aGUgZGVlcCBvY2VhbiB0aGF0IHdhcyBzdWJzZXF1ZW50bHkgdHJhbnNwb3J0ZWQgd2l0aGluIHRoZSB1cHBlciBvY2VhbiAoaS5lLiBib3R0b20gdXAgdHJhbnNwb3J0KSB0byBzaXRlcyB3aGVyZSB0aGUgc2lnbmFsIGlzIHJlY29yZGVkLiBIZXJlLCB3ZSBwcm92aWRlIG1vZGVsaW5nIGV2aWRlbmNlIHRoYXQgd2hlbiByZXNwaXJlZCBjYXJib24gdXB3ZWxscyBpbiB0aGUgU291dGhlcm4gT2NlYW4sIG5lZ2F0aXZlIM60MTNDIGFub21hbGllcyBpbiB0aGUgZ2xvYmFsIHVwcGVyIG9jZWFuIHdlcmUgaW5zdGVhZCB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBhdG1vc3BoZXJlIChpLmUuIHRvcCBkb3duIHRyYW5zcG9ydCkuIER1ZSB0byB0aGlzIGVmZmljaWVudCBhdG1vc3BoZXJpYyBicmlkZ2UsIHRoZSBwYXRod2F5IG9mIM60MTNDIHRyYW5zcG9ydCB3YXMgbGlrZWx5IHRvIGJlIGRpZmZlcmVudCBmcm9tIG51dHJpZW50IHRyYW5zcG9ydCBkdXJpbmcgdGhlIGVhcmx5IGRlZ2xhY2lhdGlvbi4gVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHVzYWdlIG9mIHBsYW5rdGljIM60MTNDIHJlY29yZHMgZm9yIGlkZW50aWZ5aW5nIHRoZSBjYXJib24gc291cmNlKHMpIHJlc3BvbnNpYmxlIGZvciB0aGUgYXRtb3NwaGVyaWMgcENPMiByaXNlIGR1cmluZyB0aGUgZWFybHkgZGVnbGFjaWF0aW9uIGlzIGxpbWl0ZWQuIFRoZSBtb2RlbCByZXN1bHRzIGFsc28gc3VnZ2VzdCB0aGF0IHRoZXJtb2NsaW5lIHdhdGVycyBpbiB1cHdlbGxpbmcgc3lzdGVtcyBsaWtlIHRoZSBlYXN0ZXJuIGVxdWF0b3JpYWwgUGFjaWZpYywgYW5kIGV2ZW4gdXBwZXIgZGVlcCB3YXRlcnMgYWJvdmUgMjAwMOKAiW0sIGNhbiBiZSBhZmZlY3RlZCBieSB0aGlzIGF0bW9zcGhlcmljIGJyaWRnZSBkdXJpbmcgdGhlIGVhcmx5IGRlZ2xhY2lhdGlvbi4gT3VyIHJlc3VsdHMgaW1wbHkgdGhhdCBjYXV0aW9uIG11c3QgYmUgYXBwbGllZCB3aGVuIGludGVycHJldGluZyBlYXJseSBkZWdsYWNpYWwgbWFyaW5lIM60MTNDIHJlY29yZHMgZnJvbSBkZXB0aHMgdGhhdCBhcmUgcG90ZW50aWFsbHkgYWZmZWN0ZWQgYnkgdGhlIGF0bW9zcGhlcmUuXV0+PC9qYXRzOnA+DQogICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgPGZyOnByb2dyYW0geG1sbnM6ZnI9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL2Z1bmRyZWYueHNkIiBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgRGl2aXNpb24gb2YgT2NlYW4gU2NpZW5jZXMNCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvMTAwMDAwMTQxPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iYXdhcmRfbnVtYmVyIj4xNTU4OTkwPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImF3YXJkX251bWJlciI+MTczNjc3MTwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICBBdXN0cmFsaWFuIFJlc2VhcmNoIENvdW5jaWwNCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAwOTIzPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iYXdhcmRfbnVtYmVyIj5GVDE4MDEwMDYwNjwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJhd2FyZF9udW1iZXIiPkRQMTgwMTAwMDQ4PC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvZnI6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgPGFpOnByb2dyYW0geG1sbnM6YWk9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL0FjY2Vzc0luZGljYXRvcnMueHNkIiBuYW1lPSJBY2Nlc3NJbmRpY2F0b3JzIj4NCiAgICAgICAgICAgICAgICA8YWk6bGljZW5zZV9yZWY+aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICA8L2FpOnByb2dyYW0+DQogICAgICAgICAgICAgIDxyZWw6cHJvZ3JhbSB4bWxuczpyZWw9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3JlbGF0aW9ucy54c2QiIG5hbWU9InJlbGF0aW9ucyI+DQogICAgICAgICAgICAgICAgPHJlbDpyZWxhdGVkX2l0ZW0+DQogICAgICAgICAgICAgICAgICA8cmVsOmRlc2NyaXB0aW9uPlN1cHBsZW1lbnRhcnkgbWF0ZXJpYWw8L3JlbDpkZXNjcmlwdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxyZWw6aW50ZXJfd29ya19yZWxhdGlvbiBpZGVudGlmaWVyLXR5cGU9ImRvaSIgcmVsYXRpb25zaGlwLXR5cGU9ImlzU3VwcGxlbWVudGVkQnkiPjEwLjUxOTQvY3AtMjAyMC05NS1zdXBwbGVtZW50PC9yZWw6aW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgICAgICA8L3JlbDpyZWxhdGVkX2l0ZW0+DQogICAgICAgICAgICAgIDwvcmVsOnByb2dyYW0+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjUxOTQvY3AtMjAyMC05NTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2NwLmNvcGVybmljdXMub3JnL3ByZXByaW50cy9jcC0yMDIwLTk1LzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L3Bvc3RlZF9jb250ZW50Pg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
92
+ http_version:
93
+ recorded_at: Wed, 29 Jul 2020 06:09:33 GMT
94
+ recorded_with: VCR 3.0.3