relaton 1.15.0 → 1.15.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +1 -0
  3. data/.github/workflows/release.yml +3 -2
  4. data/docs/README.adoc +1 -3
  5. data/lib/relaton/db.rb +4 -1
  6. data/lib/relaton/registry.rb +1 -1
  7. data/lib/relaton/version.rb +1 -1
  8. data/relaton.gemspec +2 -1
  9. data/spec/relaton/db_spec.rb +19 -24
  10. data/spec/relaton/registry_spec.rb +4 -0
  11. data/spec/relaton_spec.rb +121 -98
  12. data/spec/spec_helper.rb +2 -1
  13. data/spec/vcr_cassetes/3gpp_tr_00_01u_umts_3_0_0.yml +46 -89
  14. data/spec/vcr_cassetes/api_relaton_org.yml +76 -11
  15. data/spec/vcr_cassetes/api_relaton_org_unavailable.yml +2190 -25
  16. data/spec/vcr_cassetes/cc_dir_10005_2019.yml +4007 -59
  17. data/spec/vcr_cassetes/cie_001_1980.yml +57 -70
  18. data/spec/vcr_cassetes/doi_10_6028_nist_ir_8245.yml +60 -22
  19. data/spec/vcr_cassetes/ecma_6.yml +294 -151
  20. data/spec/vcr_cassetes/en_10160_1999.yml +12344 -36
  21. data/spec/vcr_cassetes/ieee_528_2019.yml +61 -13
  22. data/spec/vcr_cassetes/iso_111111119115_1.yml +30 -12
  23. data/spec/vcr_cassetes/iso_19115_1.yml +2461 -25
  24. data/spec/vcr_cassetes/iso_19115_1_2.yml +4649 -49
  25. data/spec/vcr_cassetes/iso_19115_all_parts.yml +2693 -25
  26. data/spec/vcr_cassetes/iso_19133_2005.yml +2323 -26
  27. data/spec/vcr_cassetes/iso_combined_applied.yml +4342 -50
  28. data/spec/vcr_cassetes/iso_combined_included.yml +4339 -48
  29. data/spec/vcr_cassetes/iso_dis.yml +1892 -25
  30. data/spec/vcr_cassetes/ogc_19_025r1.yml +51 -12
  31. data/spec/vcr_cassetes/omg_ami4ccm_1_0.yml +1094 -9
  32. data/spec/vcr_cassetes/rfc_8341.yml +69 -136
  33. metadata +22 -24
  34. data/spec/vcr_cassetes/async_fetch.yml +0 -4412
  35. data/spec/vcr_cassetes/bipm_i18n_async_fetch.yml +0 -618
  36. data/spec/vcr_cassetes/bipm_metrologia_29_6_373.yml +0 -294
  37. data/spec/vcr_cassetes/bsi_bs_en_iso_8848.yml +0 -163
  38. data/spec/vcr_cassetes/fisp_140.yml +0 -48
  39. data/spec/vcr_cassetes/gb_t_20223_2006.yml +0 -38
  40. data/spec/vcr_cassetes/iana_service_names_port_numbers.yml +0 -105
  41. data/spec/vcr_cassetes/iec_60050_102_2007.yml +0 -290
  42. data/spec/vcr_cassetes/iec_combined_included.yml +0 -960
  43. data/spec/vcr_cassetes/iho_b_11.yml +0 -74
  44. data/spec/vcr_cassetes/itu_combined_included.yml +0 -1348
  45. data/spec/vcr_cassetes/oasis_amqp_core_types_v1_0_pt1.yml +0 -84
  46. data/spec/vcr_cassetes/sp_800_38b.yml +0 -48
  47. data/spec/vcr_cassetes/threads_from_env.yml +0 -412
  48. data/spec/vcr_cassetes/un_rtade_cefact_2004_32.yml +0 -814
  49. data/spec/vcr_cassetes/w3c_json_ld11.yml +0 -233
@@ -1,290 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://webstore.iec.ch/searchkey&RefNbr=IEC%2060050-102&From=2007-01-01&To=2007-12-31&start=1
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML,
12
- like Gecko) Chrome/86.0.4240.111 Safari/537.36
13
- Accept-Encoding:
14
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
15
- Accept:
16
- - "*/*"
17
- response:
18
- status:
19
- code: 200
20
- message: OK
21
- headers:
22
- Content-Type:
23
- - text/html; charset=US-ASCII
24
- Content-Length:
25
- - '878'
26
- Connection:
27
- - keep-alive
28
- Server:
29
- - Lotus-Domino
30
- Date:
31
- - Fri, 03 Feb 2023 03:14:50 GMT
32
- X-Content-Type-Options:
33
- - nosniff
34
- X-Cache:
35
- - Miss from cloudfront
36
- Via:
37
- - 1.1 349ae0102af9efb84ba18944b2446234.cloudfront.net (CloudFront)
38
- X-Amz-Cf-Pop:
39
- - ATL56-P1
40
- X-Amz-Cf-Id:
41
- - HlQZ8DEro8I9IJfEoesMeWxSTJ0HySdatT2E8l-a9NptDgCfOPzZfA==
42
- body:
43
- encoding: ASCII-8BIT
44
- string: "<html>\n<head>\n</head>\n<body text=\"#000000\">\n\n<style>\n\t.highlight
45
- {\n\t\t background-color: #ddf0ff;\n color: #0060aa;\n text-shadow:
46
- none;\n\t}\n\t.bold {\n\tfont-weight: bold;\n\t}\n.blue {\ncolor: blue;\n\t}\n</style>\n<script>\n\t$(document).ready(function(){\n\t\ttry
47
- {\n\n\t\t\tvar k = $(\".search-query\").val().trim();\n\n\t\t\tif (k == '')
48
- {k = $(\"#search-inputsearch\").val().trim();}\n\t\t\t} catch(e){\n\t\t\t//IE8\n\t\t\tvar
49
- k = $.trim($(\".search-query\").val());\n\t\t\tif (k == '') {k = $(\".search-query\").val().trim();}\n\t\t\t}\n
50
- \t\tvar element = k.split(\" \");\n\n\t\tfor (var i = 0; i < k.length; i++)
51
- {\n\t\t\tif (\telement[i] != undefined) {\t\t\t\t\t\n\t\t\t\t//console.log(i+\"
52
- - \" + element[i]);\n\t\t\t\tvar word = element[i].replace('\"','');\n\t\t\t\tvar
53
- regexp=/\\*/g;\n\t\t\t\tvar match = regexp.exec(word);\n\n\n\t\t\t\tword =
54
- element[i].replace('*','')\n\n\t \t\t$(\".search-results\").highlight(word,{
55
- wordsOnly: !match });\n\t\t\t\t$(\"#wr.search-results\").highlight(word,{
56
- wordsOnly: !match });\n\t\t\t\t$(\"#trf.search-results\").highlight(word,{
57
- wordsOnly: !match });\n\t\t\t\t} \n\t \t}\n\t});\n\t\t</script>\n\n<input
58
- id=\"nbres\" type=\"hidden\" value=\"1\">\n<ul class=\"search-results lined-list\">\n<li>\r\n\n<a
59
- class=\"showmore\" id=\"160\" href=\"#\">Show all publications &raquo;</a><a
60
- href=\"/publication/160\">IEC 60050-102:2007&nbsp;&nbsp;</a>\r\n\n<br>International
61
- Electrotechnical Vocabulary (IEV) - Part 102: Mathematics - General concepts
62
- and linear algebra<ul class=\"morethesame 160\">\r\n\n<li>\r\n\n<a href=\"/publication/61315\">IEC
63
- 60050-102:2007/AMD1:2017</a>\r\n\n<br>Amendment 1 - International Electrotechnical
64
- Vocabulary (IEV) - Part 102: Mathematics - General concepts and linear algebra</li>\r\n\n<li>\r\n\n<a
65
- href=\"/publication/66844\">IEC 60050-102:2007/AMD2:2020</a>\r\n\n<br>Amendment
66
- 2 - International Electrotechnical Vocabulary (IEV) - Part 102: Mathematics
67
- - General concepts and linear algebra</li>\r\n\n<li>\r\n\n<a href=\"/publication/68709\">IEC
68
- 60050-102:2007/AMD3:2021</a>\r\n\n<br>Amendment 3 - International Electrotechnical
69
- Vocabulary (IEV) - Part 102: Mathematics - General concepts and linear algebra</li>\r\n\n</ul>\r\n\n</li>\r\n\n</ul>\n<div
70
- class=\"pagination pagination-centered\">\n\t\t\t\t<ul><li class=\"active\"><a
71
- href=\"#\" Title=\"Current page\">1</a></li></ul>\n\t\t </div>\n</body>\n</html>\n"
72
- recorded_at: Fri, 03 Feb 2023 03:14:48 GMT
73
- - request:
74
- method: get
75
- uri: https://webstore.iec.ch/searchkey&type=trf&RefNbr=IEC%2060050-102&From=2007-01-01&To=2007-12-31&start=1
76
- body:
77
- encoding: US-ASCII
78
- string: ''
79
- headers:
80
- User-Agent:
81
- - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML,
82
- like Gecko) Chrome/86.0.4240.111 Safari/537.36
83
- Accept-Encoding:
84
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
85
- Accept:
86
- - "*/*"
87
- response:
88
- status:
89
- code: 200
90
- message: OK
91
- headers:
92
- Content-Type:
93
- - text/html; charset=US-ASCII
94
- Content-Length:
95
- - '546'
96
- Connection:
97
- - keep-alive
98
- Server:
99
- - Lotus-Domino
100
- Date:
101
- - Fri, 03 Feb 2023 03:14:51 GMT
102
- X-Content-Type-Options:
103
- - nosniff
104
- X-Cache:
105
- - Miss from cloudfront
106
- Via:
107
- - 1.1 567dd5250230dcede6b80a58163202c0.cloudfront.net (CloudFront)
108
- X-Amz-Cf-Pop:
109
- - ATL56-P1
110
- X-Amz-Cf-Id:
111
- - NmrHSX3KY3WQPUTt9mOukCeo_rw_YWOcyL9-pNzbTRUbCTZIz7g2Dw==
112
- body:
113
- encoding: ASCII-8BIT
114
- string: "<html>\n<head>\n</head>\n<body text=\"#000000\">\n\n<style>\n\t.highlight
115
- {\n\t\t background-color: #ddf0ff;\n color: #0060aa;\n text-shadow:
116
- none;\n\t}\n\t.bold {\n\tfont-weight: bold;\n\t}\n.blue {\ncolor: blue;\n\t}\n</style>\n<script>\n\t$(document).ready(function(){\n\t\ttry
117
- {\n\n\t\t\tvar k = $(\".search-query\").val().trim();\n\n\t\t\tif (k == '')
118
- {k = $(\"#search-inputsearch\").val().trim();}\n\t\t\t} catch(e){\n\t\t\t//IE8\n\t\t\tvar
119
- k = $.trim($(\".search-query\").val());\n\t\t\tif (k == '') {k = $(\".search-query\").val().trim();}\n\t\t\t}\n
120
- \t\tvar element = k.split(\" \");\n\n\t\tfor (var i = 0; i < k.length; i++)
121
- {\n\t\t\tif (\telement[i] != undefined) {\t\t\t\t\t\n\t\t\t\t//console.log(i+\"
122
- - \" + element[i]);\n\t\t\t\tvar word = element[i].replace('\"','');\n\t\t\t\tvar
123
- regexp=/\\*/g;\n\t\t\t\tvar match = regexp.exec(word);\n\n\n\t\t\t\tword =
124
- element[i].replace('*','')\n\n\t \t\t$(\".search-results\").highlight(word,{
125
- wordsOnly: !match });\n\t\t\t\t$(\"#wr.search-results\").highlight(word,{
126
- wordsOnly: !match });\n\t\t\t\t$(\"#trf.search-results\").highlight(word,{
127
- wordsOnly: !match });\n\t\t\t\t} \n\t \t}\n\t});\n\t\t</script>\n\n<input
128
- id=\"nbrestrf\" type=\"hidden\" value=\"0\">\nNo publication found.\n</body>\n</html>\n"
129
- recorded_at: Fri, 03 Feb 2023 03:14:48 GMT
130
- - request:
131
- method: get
132
- uri: https://webstore.iec.ch/searchkey&type=wr&RefNbr=IEC%2060050-102&From=2007-01-01&To=2007-12-31&start=1
133
- body:
134
- encoding: US-ASCII
135
- string: ''
136
- headers:
137
- User-Agent:
138
- - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML,
139
- like Gecko) Chrome/86.0.4240.111 Safari/537.36
140
- Accept-Encoding:
141
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
142
- Accept:
143
- - "*/*"
144
- response:
145
- status:
146
- code: 200
147
- message: OK
148
- headers:
149
- Content-Type:
150
- - text/html; charset=US-ASCII
151
- Content-Length:
152
- - '546'
153
- Connection:
154
- - keep-alive
155
- Server:
156
- - Lotus-Domino
157
- Date:
158
- - Fri, 03 Feb 2023 03:14:51 GMT
159
- X-Content-Type-Options:
160
- - nosniff
161
- X-Cache:
162
- - Miss from cloudfront
163
- Via:
164
- - 1.1 18b5f66f1eab2d7dcc6c4816ba711386.cloudfront.net (CloudFront)
165
- X-Amz-Cf-Pop:
166
- - ATL56-P1
167
- X-Amz-Cf-Id:
168
- - o9PwYYEJ_gPedlaD9beDyWIjyZL1rnD3JCGkLjnzAfIFYIwIgXSCng==
169
- body:
170
- encoding: ASCII-8BIT
171
- string: "<html>\n<head>\n</head>\n<body text=\"#000000\">\n\n<style>\n\t.highlight
172
- {\n\t\t background-color: #ddf0ff;\n color: #0060aa;\n text-shadow:
173
- none;\n\t}\n\t.bold {\n\tfont-weight: bold;\n\t}\n.blue {\ncolor: blue;\n\t}\n</style>\n<script>\n\t$(document).ready(function(){\n\t\ttry
174
- {\n\n\t\t\tvar k = $(\".search-query\").val().trim();\n\n\t\t\tif (k == '')
175
- {k = $(\"#search-inputsearch\").val().trim();}\n\t\t\t} catch(e){\n\t\t\t//IE8\n\t\t\tvar
176
- k = $.trim($(\".search-query\").val());\n\t\t\tif (k == '') {k = $(\".search-query\").val().trim();}\n\t\t\t}\n
177
- \t\tvar element = k.split(\" \");\n\n\t\tfor (var i = 0; i < k.length; i++)
178
- {\n\t\t\tif (\telement[i] != undefined) {\t\t\t\t\t\n\t\t\t\t//console.log(i+\"
179
- - \" + element[i]);\n\t\t\t\tvar word = element[i].replace('\"','');\n\t\t\t\tvar
180
- regexp=/\\*/g;\n\t\t\t\tvar match = regexp.exec(word);\n\n\n\t\t\t\tword =
181
- element[i].replace('*','')\n\n\t \t\t$(\".search-results\").highlight(word,{
182
- wordsOnly: !match });\n\t\t\t\t$(\"#wr.search-results\").highlight(word,{
183
- wordsOnly: !match });\n\t\t\t\t$(\"#trf.search-results\").highlight(word,{
184
- wordsOnly: !match });\n\t\t\t\t} \n\t \t}\n\t});\n\t\t</script>\n\n<input
185
- id=\"nbreswr\" type=\"hidden\" value=\"0\">\nNo publication found.\n</body>\n</html>\n"
186
- recorded_at: Fri, 03 Feb 2023 03:14:49 GMT
187
- - request:
188
- method: get
189
- uri: https://webstore.iec.ch/publication/160
190
- body:
191
- encoding: US-ASCII
192
- string: ''
193
- headers:
194
- Accept-Encoding:
195
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
196
- Accept:
197
- - "*/*"
198
- User-Agent:
199
- - Ruby
200
- Host:
201
- - webstore.iec.ch
202
- response:
203
- status:
204
- code: 200
205
- message: OK
206
- headers:
207
- Content-Type:
208
- - text/html;charset=UTF-8
209
- Content-Length:
210
- - '7021'
211
- Connection:
212
- - keep-alive
213
- Server:
214
- - Lotus-Domino
215
- Date:
216
- - Fri, 03 Feb 2023 03:14:52 GMT
217
- Set-Cookie:
218
- - SessionID=5F7106D34D0619EF50E5AC842A8294ED7736A00F; path=/; HttpOnly
219
- Expires:
220
- - "-1"
221
- Cache-Control:
222
- - no-cache
223
- X-Cache:
224
- - Miss from cloudfront
225
- Via:
226
- - 1.1 b2005ca570500d06b9f0674e17212cee.cloudfront.net (CloudFront)
227
- X-Amz-Cf-Pop:
228
- - ATL56-P1
229
- X-Amz-Cf-Id:
230
- - cwu4v6UKIphTv4dX0rjhkLq4uOIdZ44KiHeRWCi8RRe3CDKxXelnOw==
231
- body:
232
- encoding: ASCII-8BIT
233
- string: !binary |-
234
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZighbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpd2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW5cdTAwMjZwdWJpZD0xNjBcdTAwMjZ0ZXN0XHUwMDI2U2Vzc2lvbklEPTVGNzEwNkQzNEQwNjE5RUY1MEU1QUM4NDJBODI5NEVENzczNkEwMEYiOzwvc2NyaXB0Pgo8dGl0bGU+SUVDIDYwMDUwLTEwMjoyMDA3IHwgSUVDIFdlYnN0b3JlPC90aXRsZT4KPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvZmF2aWNvbi5pY28iPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGRvam9Db25maWcgPSB7bG9jYWxlOiAnZW4tdXMnLCBwYXJzZU9uTG9hZDogdHJ1ZX07PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii94c3AvLmlibXhzcHJlcy9kb2pvcm9vdC0xLjkuNy9kb2pvL2Rvam8uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIveHNwLy5pYm14c3ByZXMvZG9qb3Jvb3QtMS45LjcvaWJtL3hzcC93aWRnZXQvbGF5b3V0L2xheWVycy94c3BDbGllbnREb2pvLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmRvam8ucmVxdWlyZSgiZG9qby5wYXJzZXIiKTwvc2NyaXB0Pgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvZG9tamF2YS94c3AvdGhlbWUvd2Vic3RhbmRhcmQveHNwLmNzcyI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9kb21qYXZhL3hzcC90aGVtZS93ZWJzdGFuZGFyZC94c3BMVFIuY3NzIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL3dlYnN0b3JlX0J1aWxkL2Nzcy9pZWMtd2Vic3RvcmUuY3NzIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi9YU1BMaWJyYXJ5LmpzIj48L3NjcmlwdD4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IklFQyA2MDA1MC0xMDI6MjAwNyBTdGFuZGFyZCB8IEludGVybmF0aW9uYWwgRWxlY3Ryb3RlY2huaWNhbCBWb2NhYnVsYXJ5IChJRVYpIC0gUGFydCAxMDI6IE1hdGhlbWF0aWNzIC0gR2VuZXJhbCBjb25jZXB0cyBhbmQgbGluZWFyIGFsZ2VicmEiPgo8bWV0YSBuYW1lPSJDb3B5cmlnaHQiIGNvbnRlbnQ9IklFQyAtIEludGVybmF0aW9uYWwgRWxlY3Ryb3RlY2huaWNhbCBDb21taXNzaW9uIj4KPG1ldGEgbmFtZT0iTGFuZ3VhZ2UiIGNvbnRlbnQ9IkVuZ2xpc2giPgo8bGluayBocmVmPSJodHRwczovL3dlYnN0b3JlLmllYy5jaC9wdWJsaWNhdGlvbi8xNjAiIHJlbD0iY2Fub25pY2FsIj4KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IklFQyA2MDA1MC0xMDI6MjAwNywgU3RhbmRhcmQiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCJkb2pvLmNvb2tpZSIpPC9zY3JpcHQ+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPG1ldGEgY29udGVudD0ib24iIGh0dHAtZXF1aXY9ImNsZWFydHlwZSI+CjxtZXRhIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvSGlzdG9yeVdvcmtJblByb2dyZXNzTGliIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPihmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsgKGlbcl0ucT1pW3JdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9LGlbcl0ubD0xKm5ldyBEYXRlKCk7YT1zLmNyZWF0ZUVsZW1lbnQobyksICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcycsJ2dhJyk7ICBnYSgnY3JlYXRlJywgJ1VBLTM0Mzk4MzMxLTInLCAnYXV0bycpOyBnYSgnc2V0JywgJ2RpbWVuc2lvbjEnLCAnJyk7IGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxzY3JpcHQgc3JjPSIvd2Vic3RvcmVfQnVpbGQvanMvdmVuZG9yL21vZGVybml6ci5jdXN0b20uNDIxOTcuanMiPjwvc2NyaXB0PjxzY3JpcHQ+dmFyIGpzREJDQVRBTE9HPSIvd2Vic3RvcmUvSUVDQ2F0YS5uc2YiOyB2YXIganNQYXRoV2Vic3RvcmVEQj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZiI7IHZhciBqc0Nvb2tpZU5hbWU9ImllY3dlYnN0b3JlIjsKCQkvL2NvbnNvbGUubG9nKCJjb29raWV2YWwgPSAiK3JldHVybkNvb2tpZVZhbChqc0Nvb2tpZU5hbWUpKTs8L3NjcmlwdD48aGVhZGVyIGNsYXNzPSJicmFuZGluZyIgcm9sZT0iYmFubmVyIj48ZGl2IGNsYXNzPSJpbm5lciI+PGEgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2giIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0lFQ0xvZ28nLCAnQ2xpY2snLCAnd3d3LmllYy5jaCcpOyIgdGl0bGU9Ind3dy5pZWMuY2giPjxkaXYgY2xhc3M9ImxvZ28iPjxpbWcgYWx0PSJJRUMgbG9nbyIgc3JjPSIvd2Vic3RvcmVfQnVpbGQvaW1nL2xvZ29faWVjXzI3Ni5qcGciPjwvZGl2PjwvYT48aDE+PHN0cm9uZz5XZWJzdG9yZTwvc3Ryb25nPiZuYnNwO0k8aT5udGVybmF0aW9uYWwmbmJzcDs8L2k+RTxpPmxlY3Ryb3RlY2huaWNhbCZuYnNwOzwvaT5DPGk+b21taXNzaW9uPC9pPjwvaDE+PGRpdiBjbGFzcz0iY29ubmVjdCI+PGEgaWQ9InZpZXc6X2lkMzpsaW5rMSIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QmYW1wO2xvZ2luIiBjbGFzcz0ibG9nb3V0Ij5TaWduIGluPC9hPjxzcGFuIGlkPSJ2aWV3Ol9pZDM6bGFiZWwyIiBjbGFzcz0ieHNwVGV4dExhYmVsIj4gfCA8L3NwYW4+PGEgaWQ9InZpZXc6X2lkMzpsaW5rMyIgaHJlZj0iL25ld2FjY291bnQiIGNsYXNzPSJ4c3BMaW5rIj5DcmVhdGUgYWNjb3VudDwvYT48aT48c3BhbiBpZD0idmlldzpfaWQzOmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2k+PC9kaXY+PGRpdiBjbGFzcz0ic2VhcmNoLWJveC1hbHQiPjxmb3JtIGlkPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJzZWFyY2giIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG9uc3VibWl0PSIKCgovL3dpbmRvdy5sb2NhdGlvbi5ocmVmPScvc2VhcmNoZm9ybSZhbXA7cT0nKyQoJnF1b3Q7W2lkJD1xXSZxdW90OykudmFsKCk7CgovL3JldHVybiBmYWxzZTsKCgp2YXIgS0VZVkFMID0gJCgmcXVvdDtbaWQkPXFdJnF1b3Q7KS52YWwoKTsKCQkJCQkKCQkJCQlLRVlWQUwgPSBLRVlWQUwucmVwbGFjZSgvJS9naSwgJnF1b3Q7ICZxdW90Oyk7CgkJCQkvLwlLRVlWQUwgPSBLRVlWQUwucmVwbGFjZSgvJnF1b3Q7L2dpLCAmcXVvdDsgJnF1b3Q7KTsKCQkJCQoJCQkJCQoJCQkJLy8JCUtFWVZBTD1lbmNvZGVVUklDb21wb25lbnQoS0VZVkFMLnRyaW0oKSk7CgkJCQkJdHJ5IHsKCQkJCQkJS0VZVkFMID0gZW5jb2RlVVJJQ29tcG9uZW50KEtFWVZBTC50cmltKCkpOwoJCQkJCX0gY2F0Y2goZSl7CgkJCQkJCS8vSUU4CgkJCQkJCUtFWVZBTCA9IGVuY29kZVVSSUNvbXBvbmVudCgkLnRyaW0oS0VZVkFMKSk7CgkJCQkJfQoJCQkJCgkJCQkJCgkJCQkJCgkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL3NlYXJjaGZvcm0mYW1wO3E9JyArIEtFWVZBTDsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJCgkJCQkJCgkJCQkJCiIgcm9sZT0ic2VhcmNoIj4KPHA+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoOnEiIG5hbWU9InZpZXc6X2lkMzpteUZvcm1zZWFyY2g6cSIgY2xhc3M9ImlucHV0LTc1IHNlYXJjaC1xdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1ibHVlIHN5bWJvbCI+PHNwYW4gY2xhc3M9Imljb24tc2VhcmNoIj48Yj5HbzwvYj48L3NwYW4+PC9idXR0b24+PC9wPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2hfX1ZVSUQiIHZhbHVlPSIhNGIxdTQzY2ZqdzNtOWJvcjhndXpmOWpjYSEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdGlkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BleGVjaWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHZhbHVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRzY3JvbGwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIiB2YWx1ZT0idmlldzpfaWQzOm15Rm9ybXNlYXJjaCI+PC9mb3JtPgo8cD48YSBocmVmPSIvYWR2c2VhcmNoZm9ybSI+QWR2YW5jZWQgc2VhcmNoPC9hPjwvcD48L2Rpdj48L2Rpdj48L2hlYWRlcj48bmF2IGlkPSJuYXZpZ2F0aW9uLXRvZ2dsZSIgcm9sZT0ibmF2aWdhdGlvbiI+PHVsPjxsaT48YSBpZD0idmlldzpfaWQzOmxpbmtIb21lIiBocmVmPSIvaG9tZSIgY2xhc3M9InB1YmxpY2F0aW9uIiB0YXJnZXQ9Il9zZWxmIj5Ib21lPC9hPjwvbGk+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua1NpZ25JbiIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QmYW1wO2xvZ2luIiBjbGFzcz0ieHNwTGluayIgdHlwZT0idGV4dC9odG1sIj5TaWduIGluPC9hPjwvbGk+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua0hlbHAiIGhyZWY9Ii9oZWxwIiBjbGFzcz0icHVibGljYXRpb24iPkhlbHA8L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rQmFza2V0IiBocmVmPSJqYXZhc2NyaXB0Om9wZW5CYXNrZXQoJ0Fub255bW91cycpOyIgY2xhc3M9InB1YmxpY2F0aW9uIj5DYXJ0IDxzcGFuIGNsYXNzPSJuYi1pdGVtcyBuYi1pdGVtcy1idXkiPjwvc3Bhbj48L2E+PC9saT48bGkgY2xhc3M9ImxpbmthZHZzZWFyY2giIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua2FkdnNlYXJjaCIgaHJlZj0iL2FkdnNlYXJjaGZvcm0iIGNsYXNzPSJwdWJsaWNhdGlvbiI+QWR2YW5jZWQgU2VhcmNoPC9hPjwvbGk+PC91bD48L25hdj48ZGl2IGNsYXNzPSJjb250YWluZXIiIHJvbGU9Im1haW4iPjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LS1ibG9jayBhbGVydC1zdWNjZXNzIGFsZXJ0LWRpc21pc3NhYmxlIiBpZD0ibWVzc2FnZWJhc2tldCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PGJ1dHRvbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImNsb3NlIiBkYXRhLWRpc21pc3M9ImFsZXJ0IiB0eXBlPSJidXR0b24iPiZ0aW1lczs8L2J1dHRvbj48cCBjbGFzcz0ic2Vjb25kYXJ5Ij48c3Bhbj48L3NwYW4+PC9wPjwvZGl2PjxzZWN0aW9uIGNsYXNzPSJhcnRpY2xlIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9Qcm9kdWN0Ij48ZGl2IGNsYXNzPSJsLW1haW4iPjxzcGFuIGl0ZW1wcm9wPSJicmFuZCIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT3JnYW5pemF0aW9uIj48bWV0YSBjb250ZW50PSJJRUMiIGl0ZW1wcm9wPSJuYW1lIj48L3NwYW4+PGgxIGNsYXNzPSJyZWZlcmVuY2UiPjxzcGFuIGlkPSJ2aWV3OmRPQ1VNRU5UTkFNRTEiIGl0ZW1wcm9wPSJwcm9kdWN0SUQiPklFQyA2MDA1MC0xMDI6MjAwNzwvc3Bhbj4mbmJzcDs8c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkOSIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PC9oMT48aDIgaWQ9InZpZXc6RW5nbGlzaF9UaXRsZSIgY2xhc3M9InRpdGxlIiBpdGVtcHJvcD0ibmFtZSI+SW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMjogTWF0aGVtYXRpY3MgLSBHZW5lcmFsIGNvbmNlcHRzIGFuZCBsaW5lYXIgYWxnZWJyYTwvaDI+PHVsIGNsYXNzPSJtZXRhIGlubGluZSBzZXBhcmF0ZWQiPjxsaT48c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkOCIgdGl0bGU9IlRlcm1pbm9sb2d5Ij5UQyAxPC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJwcmV2aWV3Ij48YSBocmVmPSIjYWRkaXRpb25hbGluZm8iPiZuYnNwO0FkZGl0aW9uYWwgaW5mb3JtYXRpb248L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImwtYXNpZGUiPjxkaXYgY2xhc3M9ImwtYm94IGlzLWFsd2F5cy12aXNpYmxlIj48ZGl2IGNsYXNzPSJ0YWJiYWJsZSBidXlib3giPjx1bCBjbGFzcz0ibmF2IG5hdi10YWJzIiBpZD0iYnV5Ym94YiI+PGxpIGlkPSJ2aWV3Ol9pZDc1Ol9pZDc4OnJlcGVhdDE6MDpjb21wdXRlZEZpZWxkMiIgY2xhc3M9ImFjdGl2ZSI+PGEgaHJlZj0iLnBhbmVFIiBkYXRhLXRvZ2dsZT0idGFiIj4gRG93bmxvYWQ8L2E+PC9saT48bGkgaWQ9InZpZXc6X2lkNzU6X2lkNzg6cmVwZWF0MToxOmNvbXB1dGVkRmllbGQyIj48YSBocmVmPSIucGFuZVAiIGRhdGEtdG9nZ2xlPSJ0YWIiPiBIYXJkY29weTwvYT48L2xpPjwvdWw+PGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOmNvbXB1dGVkRmllbGQxIiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiBwYW5lRSI+CjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpjb21wdXRlZEZpZWxkMiIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGZvcm0gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJFIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGZpZWxkc2V0IGNsYXNzPSJwYXJhbWV0ZXJzIj48ZGl2IGNsYXNzPSJib3gtcGFuZSBzZWdtZW50IHN0eWxlZC1zZWxlY3QiPjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4Mjpjb21wdXRlZEZpZWxkNCIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGRpdiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6Y29tcHV0ZWRGaWVsZDUiIHN0eWxlPSJtYXJnaW4tdG9wOjRweCIgY2xhc3M9Imxhbmdzd2l0Y2hsYWJlbCI+RW5nbGlzaC9GcmVuY2g8L2Rpdj48c2VsZWN0IGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MjpsaXN0Qm94MSIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6bGlzdEJveDEiIGNsYXNzPSJsYW5nc3dpdGNoIiBzaXplPSIxIiBzdHlsZT0iZGlzcGxheTpub25lIj4JPG9wdGlvbiB2YWx1ZT0iMTYwRU4tRlIiPjE2MEVOLUZSPC9vcHRpb24+Cjwvc2VsZWN0PjwvZGl2PjxkaXYgY2xhc3M9ImJveC1wYW5lIHNlZ21lbnQiPjxzcGFuIGl0ZW1wcm9wPSJvZmZlcnMiIGl0ZW1zY29wZT0iICIgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL09mZmVyIj48YWJiciBpdGVtcHJvcD0icHJpY2VDdXJyZW5jeSIgdGl0bGU9IlN3aXNzIEZyYW5jcyI+Q0hGPC9hYmJyPiZuYnNwOzxsYWJlbCBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6bGFiZWwxIiBjbGFzcz0icHJpY2UiIGNvbnRlbnQ9IjMzMCIgaXRlbXByb3A9InByaWNlIj4zMzAuLTxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4Mjpjb21wdXRlZEZpZWxkMyIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PC9sYWJlbD48bWV0YSBjb250ZW50PSJodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrIiBpdGVtcHJvcD0iYXZhaWxhYmlsaXR5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUiPgo8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWNvbW1pdCIgdHlwZT0ic3VibWl0Ij5BZGQgdG8gY2FydDwvYnV0dG9uPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyX19WVUlEIiB2YWx1ZT0iITRiMXU0M2NmanczbTlib3I4Z3V6ZjlqY2EhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwZXhlY2lkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXR2YWx1ZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0c2Nyb2xsIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODIiIHZhbHVlPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MiI+PC9mb3JtPgo8cCBjbGFzcz0ic2Vjb25kYXJ5IGJveC1vcHQiPgo8YSBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6bGluazEiIGhyZWY9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBGQVEueHNwP09wZW4mYW1wO2lkPUdGT1QtN05QUDhIIiBjbGFzcz0ieHNwTGluayI+RG8geW91IG5lZWQgYSBtdWx0aS11c2VyIGNvcHk/PC9hPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUgIHBhbmVQIj4KPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOmNvbXB1dGVkRmllbGQyIiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48Zm9ybSBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODIiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCIgY2xhc3M9IlAiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgo8ZmllbGRzZXQgY2xhc3M9InBhcmFtZXRlcnMiPjxkaXYgY2xhc3M9ImJveC1wYW5lIHNlZ21lbnQgc3R5bGVkLXNlbGVjdCI+PHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmNvbXB1dGVkRmllbGQ0IiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48ZGl2IGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4Mjpjb21wdXRlZEZpZWxkNSIgc3R5bGU9Im1hcmdpbi10b3A6NHB4IiBjbGFzcz0ibGFuZ3N3aXRjaGxhYmVsIj5FbmdsaXNoL0ZyZW5jaDwvZGl2PjxzZWxlY3QgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmxpc3RCb3gxIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjpsaXN0Qm94MSIgY2xhc3M9Imxhbmdzd2l0Y2giIHNpemU9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgk8b3B0aW9uIHZhbHVlPSIxNjBFTi1GUiI+MTYwRU4tRlI8L29wdGlvbj4KPC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzMwIiBpdGVtcHJvcD0icHJpY2UiPjMzMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPisgc2hpcHBpbmc8L3NwYW4+PC9sYWJlbD48bWV0YSBjb250ZW50PSJodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrIiBpdGVtcHJvcD0iYXZhaWxhYmlsaXR5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUiPgo8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWNvbW1pdCIgdHlwZT0ic3VibWl0Ij5BZGQgdG8gY2FydDwvYnV0dG9uPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyX19WVUlEIiB2YWx1ZT0iITRiMXU0M2NmanczbTlib3I4Z3V6ZjlqY2EhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwZXhlY2lkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXR2YWx1ZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0c2Nyb2xsIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODIiIHZhbHVlPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiI+PC9mb3JtPgo8L2Rpdj4KPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGhyPgo8L2hyPgo8ZGl2IGNsYXNzPSJsLW1haW4tcHVsbGVkIj48ZGl2IGNsYXNzPSJhYnN0cmFjdCI+PHAgY2xhc3M9ImJ0biBidG4tcHJldmlldyI+CjxhIGlkPSJ2aWV3OmxpbmsyIiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMiU3QmVkMS4wJTdEYi5wZGYiIHRhcmdldD0iX2JsYW5rIj5QcmV2aWV3PC9hPjwvcD4KPGgzPgpBYnN0cmFjdDwvaDM+CjxkaXYgaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJyZWFkbW9yZSIgaXRlbXByb3A9ImRlc2NyaXB0aW9uIj5UaGlzIHBhcnQgb2YgSUVDIDYwMDUwIGdpdmVzIHRoZSBnZW5lcmFsIG1hdGhlbWF0aWNhbCB0ZXJtaW5vbG9neSB1c2VkIGluIHRoZSBmaWVsZHMgb2YgZWxlY3RyaWNpdHksIGVsZWN0cm9uaWNzIGFuZCB0ZWxlY29tbXVuaWNhdGlvbnMsIHRvZ2V0aGVyIHdpdGggYmFzaWMgY29uY2VwdHMgaW4gbGluZWFyIGFsZ2VicmEuIEl0IG1haW50YWlucyBhIGNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gbWF0aGVtYXRpY2FsIGNvbmNlcHRzIGFuZCBwaHlzaWNhbCBjb25jZXB0cywgZXZlbiBpZiBzb21lIHRlcm1zIGFyZSB1c2VkIGluIGJvdGggY2FzZXMuIEFub3RoZXIgcGFydCB3aWxsIGRlYWwgd2l0aCBmdW5jdGlvbnMuPGJyIC8+DQpJdCBoYXMgdGhlIHN0YXR1cyBvZiBhIGhvcml6b250YWwgc3RhbmRhcmQgaW4gYWNjb3JkYW5jZSB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL0FydG51bV9QSy8zNjQzNT9vDQpwZW5kb2N1bWVudCI+SUVDIEd1aWRlIDEwODwvYT4uPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0idG9jIj48aDM+Ckxvb2sgaW5zaWRlPC9oMz4KPGEgaWQ9InZpZXc6bGluazE1IiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMiU3QmVkMS4wJTdEYi5wZGYiIHRpdGxlPSJGcmVlIHByZXZpZXciIHRhcmdldD0iX2JsYW5rIj48dWwgY2xhc3M9ImJ1bGxldGVkLWxpc3Qgc2Vjb25kYXJ5IHQtY29sdW1ucyI+CjxpbWcgaWQ9InZpZXc6aW1hZ2UxIiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvbG9va2luc2lkZS5wbmciIGFsdD0iIiBjbGFzcz0ieHNwSW1hZ2UiPjwvdWw+CjwvYT48L2Rpdj48L2Rpdj48aHI+PGRpdiBjbGFzcz0ibC1tYWluIj48aDMgaWQ9ImFkZGl0aW9uYWxpbmZvIj5BZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9oMz48ZGl2IGNsYXNzPSJ0YWJiYWJsZSI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiPjxsaSBjbGFzcz0iYWN0aXZlIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48L2xpPjxsaSBpZD0iaGlzdG9yeXRhYiI+PGEgZGF0YS10b2dnbGU9InRhYiIgaHJlZj0iI2hpc3RvcnkiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ2hpc3RvcnknKTsiPkhpc3Rvcnk8L2E+PC9saT48bGkgaWQ9IndvcmtpbnByb2dyZXNzdGFiIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjd29ya2lucHJvZ3Jlc3MiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ3dvcmtpbnByb2dyZXNzJyk7Ij5Xb3JrIGluIHByb2dyZXNzPC9hPjwvbGk+PGxpIGlkPSJsaTEiPjwvbGk+PGxpIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjdGFnY2xvdWQiPlRhZ3M8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9ImRldGFpbHMiPjx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaW5mbyB2ZXJ0aWNhbC10aCI+PHRib2R5Pjx0cj48dGggc2NvcGU9InJvdyI+UHVibGljYXRpb24gdHlwZTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ3IiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkludGVybmF0aW9uYWwgU3RhbmRhcmQ8L3NwYW4+PC90ZD48L3RyPgo8dHI+PHRoIHNjb3BlPSJyb3ciPlB1YmxpY2F0aW9uIGRhdGU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzppbnB1dFRleHQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiIGl0ZW1wcm9wPSJyZWxlYXNlRGF0ZSI+MjAwNy0wOC0yNzwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBzY29wZT0icm93Ij5FZGl0aW9uPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6aW5wdXRUZXh0MSI+MS4wPC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPkF2YWlsYWJsZSBsYW5ndWFnZShzKTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkVuZ2xpc2gvRnJlbmNoPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij48YWJiciB0aXRsZT0iVGVjaG5pY2FsIENvbW1pdHRlZSI+VEM8L2FiYnI+LzxhYmJyIHRpdGxlPSJTdWItY29tbWl0dGVlIj5TQzwvYWJicj48L3RoPjx0ZD48YSBpZD0idmlldzpsaW5rNiIgaHJlZj0iLi4vc2VhcmNoZm9ybSZDb21OdW1iZXI9MSIgY2xhc3M9InhzcExpbmsiPlRDIDEgLSBUZXJtaW5vbG9neTwvYT48YSBpZD0idmlldzpsaW5rMSIgaHJlZj0iaHR0cHM6Ly93ZWJzdG9yZS5pZWMuY2gvcnNzJnRjPVRDJTIwMSIgc3R5bGU9ImZsb2F0OnJpZ2h0IiBjbGFzcz0ic3ltYm9sIHJzcyIgdGl0bGU9IlN1YnNjcmliZSB0byB0aGlzIFJTUyBmZWVkIj48c3BhbiBjbGFzcz0iaWNvbi1yc3MiPjwvc3Bhbj48Yj5yc3M8L2I+PC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPklDUzwvdGg+PHRkPjxhIGlkPSJ2aWV3Omxpbms3IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wMS4wNDAuMDciIGNsYXNzPSJ4c3BMaW5rIj4wMS4wNDAuMDcgLSBNYXRoZW1hdGljcy4gTmF0dXJhbCBzY2llbmNlcyAoVm9jYWJ1bGFyaWVzKTwvYT48YnI+CjxhIGlkPSJ2aWV3Omxpbms4IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wNy4wMjAiIGNsYXNzPSJ4c3BMaW5rIj4wNy4wMjAgLSBNYXRoZW1hdGljcw0KPC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPlBhZ2VzPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDQiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+MTYyPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij5GaWxlIHNpemU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkNSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4xNzc2PC9zcGFuPiZuYnNwOzxhYmJyIHRpdGxlPSJLaWxvYml0cyI+S0I8L2FiYnI+PC90ZD48L3RyPgo8L3Rib2R5PjwvdGFibGU+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9Imhpc3RvcnkiPjxzcGFuIGlkPSJ2aWV3Ol9pZDE4NDp4bWxIaXN0b3J5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9IndvcmtpbnByb2dyZXNzIj48c3BhbiBpZD0idmlldzpfaWQxODQ6eG1sV29ya2lucHJvZ3Jlc3MiPjwvc3Bhbj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwdWJpZCAgID0gIjE2MCI7CnZhciBwdWJ0eXBlID0gIklTIjsKCnZhciBYTUx1cmw9Ii9XZWJzdG9yZS93ZWJzdG9yZS5uc2YvQWpheFJlcXVlc3RYTUw/T3BlbmFnZW50JnVybD0iKyIiK3B1YmlkOwp2YXIgdGFyZ2V0SWRIaXN0b3J5PSJ2aWV3Ol9pZDE4NDp4bWxIaXN0b3J5IjsKdmFyIHRhcmdldElkV29ya2lucHJvZ3Jlc3M9InZpZXc6X2lkMTg0OnhtbFdvcmtpbnByb2dyZXNzIjsKdmFyIGFwSGlzdCA9IGRvam8uYnlJZCh0YXJnZXRJZEhpc3RvcnkpOwp2YXIgYXBXb3JrID0gZG9qby5ieUlkKHRhcmdldElkV29ya2lucHJvZ3Jlc3MpOwoKdHJ5IHsKCglkb2pvLnhockdldCh7CgkJdXJsOiBYTUx1cmwsCgkJbG9hZDogZnVuY3Rpb24oWE1McmVzdWx0KSB7CgkJCVhNTHBhcnNlSGlzdG9yeShYTUxyZXN1bHQsIHRhcmdldElkSGlzdG9yeSx0YXJnZXRJZFdvcmtpbnByb2dyZXNzKTsKCQl9LAogICAgZXJyb3I6IGZ1bmN0aW9uKGVycm9yLCBpb2FyZ3MpewoJICAgICAgYXBIaXN0LmlubmVySFRNTCA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkOiA8YnIgLz4iICsgZXJyb3I7CgkgICAgICBhcFdvcmsuaW5uZXJIVE1MID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQ6IDxiciAvPiIgKyBlcnJvcjsKCQkJfQoJCX0pOwoJCQoJICBpZiAocHVidHlwZT09J1RSRicpIHsJCQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaXN0b3J5dGFiIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICB9CgkJCn0gY2F0Y2goZSkgewphbGVydCgiZXJyb3IgIiArIGUpfQo8L3NjcmlwdD4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRyZiI+PHA+VGhlIGZvbGxvd2luZyB0ZXN0IHJlcG9ydCBmb3JtcyBhcmUgcmVsYXRlZDo8L3A+PGRpdiBpZD0idmlldzpfaWQxODU6cmVwZWF0cmVsYXRlZFRSRiI+CjwvZGl2Pgo8YnI+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRhZ2Nsb3VkIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48Zm9ybSBpZD0idmlldzpfaWQyMDc6X2lkMzA1IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJ4c3BGb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGgzPlJlbGF0ZWQgcHVibGljYXRpb25zPC9oMz48ZGl2IGlkPSJ2aWV3Ol9pZDIwNzpfaWQzMDU6b3RoZXJwYXJ0c2RpdiI+Cjx1bD48c3BhbiBpZD0idmlldzpfaWQyMDc6X2lkMzA1Om90aGVycGFydHMiPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjEzMTUib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMToyMDE3JywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDE6MjAxNzwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjY4NDQib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMjoyMDIwJywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDI6MjAyMDwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjg3MDkib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMzoyMDIxJywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDM6MjAyMTwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vMTYxIm9uY2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ1JlbGF0ZWRQdWInLCAnSUVDIDYwMDUwLTEwMzoyMDA5JywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMzoyMDA5PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNyJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMjoyMDA3Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMToyMDE3PC9hPjwvbGk+PC9zcGFuPjxsaSBjbGFzcz0ibW9yZSIgaWQ9IndyIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDIwNzpfaWQzMDU6bGlua3Nob3dhbGwiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5TaG93IGFsbCAmcmFxdW87PC9hPjwvbGk+PC91bD48cD48L3A+PC9kaXY+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMjA3Ol9pZDMwNV9fVlVJRCIgdmFsdWU9IiE0YjF1NDNjZmp3M205Ym9yOGd1emY5amNhISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMjA3Ol9pZDMwNSIgdmFsdWU9InZpZXc6X2lkMjA3Ol9pZDMwNSI+PC9mb3JtPgo8aDMgaWQ9InZpZXc6X2lkMjEzOmNvbXB1dGVkRmllbGQyIj5Nb3JlIGluZm9ybWF0aW9uPC9oMz48dWwgY2xhc3M9ImlubGluZSI+PGRpdiBpZD0idmlldzpfaWQyMTM6cmVwZWF0QmxvY2tMaW5rYnlwdWIiPgo8L2Rpdj4KPGRpdiBpZD0idmlldzpfaWQyMTM6cmVwZWF0QmxvY2tMaW5rYnlUQyI+CjxsaT48YSBpZD0idmlldzpfaWQyMTM6cmVwZWF0QmxvY2tMaW5rYnlUQzowOmxpbmsyIiBocmVmPSJodHRwczovL2V0ZWNoLmllYy5jaC9pc3N1ZS8yMDE5LTAyL2luLXRoZS1iZWdpbm5pbmctdGhlcmUtd2FzdGVybWlub2xvZ3kiIHRhcmdldD0iX2JsYW5rIj5BcnRpY2xlOiBhdm9pZGluZyBhbWJpZ3VpdHk8L2E+PC9saT48L2Rpdj4KPC91bD48YnI+PGgzPlNoYXJlIHRoaXMgcGFnZTwvaDM+PHVsIGNsYXNzPSJpbmxpbmUiPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMjA6bGluazEiIGhyZWY9Im1haWx0bzo/c3ViamVjdD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMiUzQTIwMDcmYW1wO2JvZHk9SGVsbG8lMkMlMEElMEFJJTIwdGhvdWdodCUyMHlvdSUyMG1pZ2h0JTIwYmUlMjBpbnRlcmVzdGVkJTIwYnklMjB0aGlzJTIwcHVibGljYXRpb24lM0ElMEElMEElMDlodHRwcyUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCUwQSUwQS0tJTBBU2VudCUyMGZyb20lMjB0aGUlMjBJRUMlMjBXZWJzdG9yZSUyMHdlYnN0b3JlLmllYy5jaCUwQSIgY2xhc3M9InNzLWljb24gc3MtbWFpbC1yZWd1bGFyIiB0YXJnZXQ9Il9ibGFuayI+bWFpbDwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMjA6bGluazEwIiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD1odHRwcyUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCZhbXA7dGV4dD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMiUzQTIwMDcmYW1wO3ZpYT1JRUNTdGFuZGFyZHMiIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPlR3aXR0ZXI8L2E+Jm5ic3A7PC9saT48bGk+Jm5ic3A7PGEgaWQ9InZpZXc6X2lkMjIwOmxpbmsxMSIgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci5waHA/dT1odHRwcyUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCZhbXA7dD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMiUzQTIwMDciIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPkZhY2Vib29rPC9hPiZuYnNwOzwvbGk+PGxpPiZuYnNwOzxhIGlkPSJ2aWV3Ol9pZDIyMDpsaW5rMTMiIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9zaGFyZUFydGljbGU/bWluaT10cnVlJmFtcDt1cmw9aHR0cHMlM0EvL3dlYnN0b3JlLmllYy5jaC9wdWJsaWNhdGlvbi8xNjAmYW1wO3RpdGxlPUlFQyUyMDYwMDUwLTEwMiUzQTIwMDcmYW1wO3N1bW1hcnk9JmFtcDtzb3VyY2U9SUVDJTIwV2Vic3RvcmUiIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPkxpbmtlZEluPC9hPiZuYnNwOzwvbGk+PC91bD48L2Rpdj48aHIgY2xhc3M9IndpZGUiPjxkaXYgY2xhc3M9ImwtcXVhcnRlcjEiPjxoND5TaGFyZSB5b3VyIHB1YmxpY2F0aW9uczwvaDQ+PHA+TGVhcm4gaG93IHRvIHNoYXJlIHlvdXIgcHVibGljYXRpb25zIHdpdGggeW91cgoJCQljb2xsZWFndWVzLCZuYnNwOzxhIGlkPSJ2aWV3Ol9pZDIzNTpsaW5rMiIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cEZBUS54c3A/aWQ9R0ZPVC03TlBQOEgiPnVzaW5nIG5ldHdvcmtpbmcgb3B0aW9uczwvYT4uPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImwtcXVhcnRlcjIiPjxoND5QYXltZW50IGluZm9ybWF0aW9uPC9oND48cD5PdXIgcHJpY2VzIGFyZSBpbiBTd2lzcyBmcmFuY3MgKDxhYmJyIHRpdGxlPSJTd2lzcyBmcmFuY3MiPkNIRjwvYWJicj4pLiBXZSBhY2NlcHQgYWxsIG1ham9yIGNyZWRpdCBjYXJkcyAoQW1lcmljYW4gRXhwcmVzcywgTWFzdGVyY2FyZCBhbmQKCQkJVmlzYSwgSkNCIGFuZCBDVVApLCBQYXlQYWwgYW5kIGJhbmsgdHJhbnNmZXJzIGFzIGZvcm0gb2YgcGF5bWVudC48L3A+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIzIj48aDQ+S2VlcCBpbiB0b3VjaDwvaDQ+PHA+S2VlcCB1cCB0byBkYXRlIHdpdGggbmV3IHB1YmxpY2F0aW9uIHJlbGVhc2VzIGFuZAoJCQlhbm5vdW5jZW1lbnRzIHdpdGgKCQkJb3VyIGZyZWUmbmJzcDs8YSBpZD0idmlldzpfaWQyMzU6bGluazEiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5JRUMgSnVzdCBQdWJsaXNoZWQgZW1haWwgbmV3c2xldHRlcjwvYT4uPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImwtcXVhcnRlcjQiPjxoNCBpZD0idmlldzpfaWQyMzU6Y29tcHV0ZWRGaWVsZDYiPkNvbnRhY3QgY3VzdG9tZXIgc2VydmljZXM8L2g0PjxwIGlkPSJ2aWV3Ol9pZDIzNTpjb21wdXRlZEZpZWxkNyI+UGxlYXNlIDxhIGhyZWY9Im1haWx0bzpzYWxlc0BpZWMuY2giPnNlbmQgeW91ciBlbnF1aXJ5IGJ5IGVtYWlsPC9hPiBvciBjYWxsIHVzIG9uICs0MSAyMiA5MTkgMDIgMTEgYmV0d2VlbiAwOTowMCAmbmRhc2g7IDE2OjAwIENFVCBNb25kYXkgdG8gRnJpZGF5LjwvcD48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGZvb3RlciByb2xlPSJjb250ZW50aW5mbyI+PGRpdiBjbGFzcz0iaW5uZXIiPjxwIGNsYXNzPSJzb2NpYWwiPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9JbnRlcm5hdGlvbmFsRWxlY3Ryb3RlY2huaWNhbENvbW1pc3Npb24iIHRpdGxlPSJGYWNlYm9vayI+PHNwYW4gY2xhc3M9Imljb24tZmFjZWJvb2siPjwvc3Bhbj48Yj5GYWNlYm9vazwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cHM6Ly93d3cudHdpdHRlci5jb20vSUVDU3RhbmRhcmRzIiB0aXRsZT0iVHdpdHRlciI+PHNwYW4gY2xhc3M9Imljb24tdHdpdHRlciI+PC9zcGFuPjxiPlR3aXR0ZXI8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L2ludGVybmF0aW9uYWwtZWxlY3Ryb3RlY2huaWNhbC1jb21taXNzaW9uLWllYy0vIiB0aXRsZT0iTGlua2VkSW4iPjxzcGFuIGNsYXNzPSJpY29uLWxpbmtlZGluIj48L3NwYW4+PGI+TGlua2VkSW48L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHBzOi8vd3d3LnBpbnRlcmVzdC5jb20vaWVjc3RhbmRhcmRzIiB0aXRsZT0iUGludGVyZXN0Ij48c3BhbiBjbGFzcz0iaWNvbi1waW50ZXJlc3QiPjwvc3Bhbj48Yj5QaW50ZXJlc3Q8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUN4R2tfU19ybll5RkJjVGlkZ255N0VBIiB0aXRsZT0iWW91VHViZSI+PHNwYW4gY2xhc3M9Imljb24teW91dHViZSI+PC9zcGFuPjxiPllvdVR1YmU8L2I+PC9hPjwvcD48dWwgY2xhc3M9ImxpbmtzIHRlcnRpYXJ5IGlubGluZSI+PGxpPjxhIGlkPSJ2aWV3Ol9pZDI1OTpsaW5rMiIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cEZBUS54c3A/aWQ9Q1NKTi05VkNCV0oiPlRlcm1zICZhbXA7IENvbmRpdGlvbnM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvcHJpdmFjeS8iPlByaXZhY3k8L2E+PC9saT48L3VsPjx1bCBjbGFzcz0iY29weXJpZ2h0IHRlcnRpYXJ5IGlubGluZSI+PGxpPjxpPjxhIGlkPSJ2aWV3Ol9pZDI1OTpsaW5rMSIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cEZBUS54c3A/aWQ9R0ZPVC03TldONlAiPkNvcHlyaWdodDwvYT48L2k+Jm5ic3A7JmNvcHk7Jm5ic3A7PGEgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2giPklFQzwvYT4mbmJzcDs8c3BhbiBpZD0idmlldzpfaWQyNTk6Y29tcHV0ZWRGaWVsZDEiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+MjAyMzwvc3Bhbj4uJm5ic3A7QWxsIHJpZ2h0cyByZXNlcnZlZC48L2xpPjwvdWw+PHAgY2xhc3M9InNlbGYiPjxhIGhyZWY9IiNpZWMtd2Vic3RvcmUiPlRvcDxzcGFuIGNsYXNzPSJpY29uLWNpcmNsZS1hcnJvdy11cCI+PC9zcGFuPjwvYT48L3A+PC9kaXY+PC9mb290ZXI+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy92ZW5kb3IvanF1ZXJ5LTEuOC4zLW1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy9jb25maWcuanMiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvd2Vic3RvcmVfQnVpbGQvanMvcGx1Z2lucy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy9tYWluLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogICAgLy92YXIgZWxsaXBzZXN0ZXh0ID0gIi4uLiI7CiAgICB2YXIgZWxsaXBzZXN0ZXh0ID0gIiI7CiAgICB2YXIgbW9yZXRleHQgPSAiU2hvdyBtb3JlIMK7IjsKICAgIHZhciBsZXNzdGV4dCA9ICJTaG93IGxlc3MiOwogICAgCiAgICB2YXIgY29udGVudEhlaWdodDsKICAgIHZhciBzaG93SGVpZ2h0PTIwMDsKICAgIAoKICAgICQoJy5yZWFkbW9yZScpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGNvbnRlbnQgPSAkKHRoaXMpLmh0bWwoKTsKCiAgICAgICAgY29udGVudEhlaWdodCA9ICQoJy5yZWFkbW9yZScpLmhlaWdodCgpOyAKICAgICAgICBpZihjb250ZW50SGVpZ2h0ID4gc2hvd0hlaWdodCkgewogICAgICAgIAkkKCcucmVhZG1vcmUnKS5jc3MoewoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjpzaG93SGVpZ2h0LAoJCQkgICAgICAgICJvdmVyZmxvdyIgOiAiaGlkZGVuIgoJCQkgICAgfSk7CiAgICAgICAgICAgICQodGhpcykuYWZ0ZXIoJzxzcGFuIGNsYXNzPSJtb3JlZWxsaXBzZXMiPicgKyBlbGxpcHNlc3RleHQrICc8L3NwYW4+PHNwYW4+PGEgaHJlZj0iIiBjbGFzcz0ibW9yZWxpbmsiPicgKyBtb3JldGV4dCArICc8L2E+PC9zcGFuPicpOwogICAgICAgIH0gCiAgICB9KTsKIAogICAgJCgiLm1vcmVsaW5rIikuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgICBpZigkKHRoaXMpLmhhc0NsYXNzKCJsZXNzIikpIHsKICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygibGVzcyIpOwogICAgICAgICAgICAkKHRoaXMpLmh0bWwobW9yZXRleHQpOwogICAgICAgICAgICAKICAgICAgICAgICAgJCgnLnJlYWRtb3JlJykuY3NzKHsKCQkJICAgICAgICAibWF4LWhlaWdodCI6c2hvd0hlaWdodCwKCQkJICAgICAgICAib3ZlcmZsb3ciIDogImhpZGRlbiIsCgkJCSAgICAgICAgIm1pbi1oZWlnaHQiOnNob3dIZWlnaHQKCQkJfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygibGVzcyIpOwogICAgICAgICAgICAkKHRoaXMpLmh0bWwobGVzc3RleHQpOwogICAgCgkJCSQoJy5yZWFkbW9yZScpLmNzcyh7CQkJCQkKCQkJICAgICAgICAibWF4LWhlaWdodCI6IiIsCgkJCSAgICAgICAgIm1pbi1oZWlnaHQiOiIiLAoJCQkgICAgICAgICJvdmVyZmxvdyIgOiAiIgoJCQl9KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJCh0aGlzKS5wcmV2KCkudG9nZ2xlKCk7ICAvLyBzaG93L2hpZGUgIi4uLiIgCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7Cn0pOwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoKZnVuY3Rpb24gdmlld19faWQzX19pZDQ2X2NsaWVudFNpZGVfb25DbGllbnRMb2FkKHRoaXNFdmVudCkgewoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsgCgl0cnl7CQoJCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoJCXZhciBiYXNrZXRuYW1lPXJldHVybkNvb2tpZVZhbChqc0Nvb2tpZU5hbWUpOwoJCQoJCWNvbXB1dGVCYXNrZXRJdGVtcyhiYXNrZXRuYW1lKTsKCQljb21wdXRlREFGaWxlcygpOwoJCSQoImRpdi5idXlib3ggZm9ybSIpLnN1Ym1pdCgKCQkJCQkJZnVuY3Rpb24oKSB7CgoJCQkJCQkJdmFyIG1lZGlhID0gJCh0aGlzKS5hdHRyKCdjbGFzcycpOwoJCQkJCQkJdmFyIHByaWNlID0gJCh0aGlzKS5maW5kKCgnaW5wdXRbbmFtZT1hcnRfcHJpY2VdJykpCgkJCQkJCQkJCS52YWwoKTsKCQkJCQkJCS8vdmFyIGxhbmdhcnRudW0gPSAkKHRoaXMpLmZpbmQoCgkJCQkJCQkvLwkJKCdzZWxlY3RbbmFtZT1hcnRfbGFuZ10nKSkudmFsKCk7IC8vIHB1YmlkK2xhbmcKCQkJCQkJCS8vdmFyIGxhbmdhcnRudW0gPSAkKHRoaXMpLmZpbmQoCgkJCQkJCQkvLwkJKCdzZWxlY3RbY2xhc3M9bGFuZ3N3aXRjaF0nKSkudmFsKCk7IC8vIHB1YmlkK2xhbmcKCQkJCQkJCQkJCgkJCQkJCQl2YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCQkJKCdbY2xhc3M9bGFuZ3N3aXRjaF0nKSkudmFsKCk7IC8vIHB1YmlkK2xhbmcJCQoJCQkJCQkJY29uc29sZS5sb2cobGFuZ2FydG51bSk7CgkJCQkJCQkJCQoJCQkJCQkJdmFyIGJhc2tldG5hbWUyID0gZ2V0Q29va2llKGpzQ29va2llTmFtZSk7CgkJCQkJCQlBZGRUb0Jhc2tldChtZWRpYSwgbGFuZ2FydG51bSwgYmFza2V0bmFtZTIpOwoKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfSk7CgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJfSBjYXRjaChlKSB7YWxlcnQoZS5tZXNzYWdlKTt9CgkJCn0pOwoKfQoKZnVuY3Rpb24gdmlld19faWQyMzVfX2lkMjU2X2NsaWVudFNpZGVfb25jbGljayh0aGlzRXZlbnQpIHsKdmFyIG15V2luZG93ID0gd2luZG93Lm9wZW4oImh0dHA6Ly9lZXB1cmwuY29tL2JZM3Y3OSIsICJfYmxhbmsiLCAidG9vbGJhcj1ubywgc2Nyb2xsYmFycz1ubywgcmVzaXphYmxlPW5vLCB0b3A9MjAwLCBsZWZ0PTUwMCwgd2lkdGg9OTAwLCBoZWlnaHQ9NTU1Iik7CgoKfQoKWFNQLmFkZE9uTG9hZChmdW5jdGlvbigpIHsKWFNQLmF0dGFjaEV2ZW50KCJ2aWV3Ol9pZDM6X2lkNDYiLCAidmlldzpfaWQzIiwgIm9uQ2xpZW50TG9hZCIsIHZpZXdfX2lkM19faWQ0Nl9jbGllbnRTaWRlX29uQ2xpZW50TG9hZCwgZmFsc2UsIDIpOwpYU1AuYXR0YWNoUGFydGlhbCgidmlldzpfaWQyMDc6X2lkMzA1Ol9pZDIxMSIsICJ2aWV3Ol9pZDIwNzpfaWQzMDU6bGlua3Nob3dhbGwiLCAidmlldzpfaWQyMDc6X2lkMzA1OmxpbmtzaG93YWxsIiwgIm9uY2xpY2siLCBmdW5jdGlvbigpe30sIDIsICJ2aWV3Ol9pZDIwNzpfaWQzMDU6b3RoZXJwYXJ0c2RpdiIpOwpYU1AuYXR0YWNoRXZlbnQoInZpZXc6X2lkMjM1Ol9pZDI1NiIsICJ2aWV3Ol9pZDIzNTpsaW5rMSIsICJvbmNsaWNrIiwgdmlld19faWQyMzVfX2lkMjU2X2NsaWVudFNpZGVfb25jbGljaywgZmFsc2UsIDIpOwp9KTsgCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
235
- recorded_at: Fri, 03 Feb 2023 03:14:50 GMT
236
- - request:
237
- method: get
238
- uri: https://webstore.iec.ch/webstore/webstore.nsf/AjaxRequestXML?Openagent&url=160
239
- body:
240
- encoding: US-ASCII
241
- string: ''
242
- headers:
243
- Accept-Encoding:
244
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
245
- Accept:
246
- - "*/*"
247
- User-Agent:
248
- - Ruby
249
- Host:
250
- - webstore.iec.ch
251
- response:
252
- status:
253
- code: 200
254
- message: OK
255
- headers:
256
- Content-Type:
257
- - text/xml
258
- Content-Length:
259
- - '326'
260
- Connection:
261
- - keep-alive
262
- Server:
263
- - Lotus-Domino
264
- Date:
265
- - Fri, 03 Feb 2023 03:14:53 GMT
266
- X-Content-Type-Options:
267
- - nosniff
268
- Cache-Control:
269
- - NoCache
270
- X-Cache:
271
- - Miss from cloudfront
272
- Via:
273
- - 1.1 f11cffdfa0c7886041aee925b0816e26.cloudfront.net (CloudFront)
274
- X-Amz-Cf-Pop:
275
- - ATL56-P1
276
- X-Amz-Cf-Id:
277
- - 0xWMUjAhgs3V_rEsciJWjFE4SRFqWB-wLYzB24wdsmyLxvvnr_l2dw==
278
- body:
279
- encoding: ASCII-8BIT
280
- string: '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><RES><ROW><FULL_NAME>IEC
281
- 60050-102:2007/AMD3:2021</FULL_NAME><PUB_DATE>2021-03-23</PUB_DATE><ARTNUM>109921</ARTNUM><STATUS>PUBLISHED</STATUS><CORR></CORR><ISH></ISH><VAP></VAP><ORDER>A006005001021000
282
- 99.0030000000</ORDER><PUB_ID>68709</PUB_ID><EDITION>1.0</EDITION><FPD></FPD><STAGE></STAGE></ROW><ROW><FULL_NAME>IEC
283
- 60050-102:2007/AMD2:2020</FULL_NAME><PUB_DATE>2020-05-26</PUB_DATE><ARTNUM>107982</ARTNUM><STATUS>PUBLISHED</STATUS><CORR></CORR><ISH></ISH><VAP></VAP><ORDER>A006005001021000
284
- 99.0020000000</ORDER><PUB_ID>66844</PUB_ID><EDITION>1.0</EDITION><FPD></FPD><STAGE></STAGE></ROW><ROW><FULL_NAME>IEC
285
- 60050-102:2007/AMD1:2017</FULL_NAME><PUB_DATE>2017-08-31</PUB_DATE><ARTNUM>102635</ARTNUM><STATUS>PUBLISHED</STATUS><CORR></CORR><ISH></ISH><VAP></VAP><ORDER>A006005001021000
286
- 99.0010000000</ORDER><PUB_ID>61315</PUB_ID><EDITION>1.0</EDITION><FPD></FPD><STAGE></STAGE></ROW></RES>
287
-
288
- '
289
- recorded_at: Fri, 03 Feb 2023 03:14:51 GMT
290
- recorded_with: VCR 6.1.0