openbeautyfacts 0.6.3 → 0.10.0

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -1
  3. data/Rakefile +5 -3
  4. data/lib/openbeautyfacts/additive.rb +9 -39
  5. data/lib/openbeautyfacts/allergen.rb +14 -22
  6. data/lib/openbeautyfacts/brand.rb +14 -22
  7. data/lib/openbeautyfacts/category.rb +14 -22
  8. data/lib/openbeautyfacts/city.rb +14 -22
  9. data/lib/openbeautyfacts/contributor.rb +14 -22
  10. data/lib/openbeautyfacts/country.rb +14 -22
  11. data/lib/openbeautyfacts/entry_date.rb +15 -23
  12. data/lib/openbeautyfacts/faq.rb +16 -41
  13. data/lib/openbeautyfacts/ingredient.rb +14 -22
  14. data/lib/openbeautyfacts/ingredient_that_may_be_from_palm_oil.rb +14 -22
  15. data/lib/openbeautyfacts/label.rb +14 -22
  16. data/lib/openbeautyfacts/last_edit_date.rb +15 -23
  17. data/lib/openbeautyfacts/locale.rb +8 -31
  18. data/lib/openbeautyfacts/manufacturing_place.rb +14 -22
  19. data/lib/openbeautyfacts/mission.rb +16 -63
  20. data/lib/openbeautyfacts/number_of_ingredients.rb +15 -23
  21. data/lib/openbeautyfacts/origin.rb +14 -22
  22. data/lib/openbeautyfacts/packager_code.rb +14 -22
  23. data/lib/openbeautyfacts/packaging.rb +14 -22
  24. data/lib/openbeautyfacts/period_after_opening.rb +14 -22
  25. data/lib/openbeautyfacts/press.rb +16 -47
  26. data/lib/openbeautyfacts/product.rb +18 -175
  27. data/lib/openbeautyfacts/product_state.rb +14 -22
  28. data/lib/openbeautyfacts/purchase_place.rb +14 -22
  29. data/lib/openbeautyfacts/store.rb +14 -22
  30. data/lib/openbeautyfacts/trace.rb +14 -22
  31. data/lib/openbeautyfacts/user.rb +15 -30
  32. data/lib/openbeautyfacts/version.rb +3 -1
  33. data/lib/openbeautyfacts.rb +6 -9
  34. data/test/fixtures/additives.yml +48 -0
  35. data/test/fixtures/brands.yml +48 -0
  36. data/test/fixtures/entry_dates.yml +48 -0
  37. data/test/fixtures/entry_dates_locale.yml +48 -0
  38. data/test/fixtures/faq.yml +48 -0
  39. data/test/fixtures/fetch_product_3600550362626.yml +54 -0
  40. data/test/fixtures/index.yml +48 -0
  41. data/test/fixtures/ingredients.yml +99 -0
  42. data/test/fixtures/ingredients_locale.yml +99 -0
  43. data/test/fixtures/last_edit_dates.yml +48 -0
  44. data/test/fixtures/last_edit_dates_locale.yml +48 -0
  45. data/test/fixtures/login_user.yml +363 -0
  46. data/test/fixtures/mission.yml +48 -0
  47. data/test/fixtures/missions.yml +48 -0
  48. data/test/fixtures/number_of_ingredients_locale.yml +48 -0
  49. data/test/fixtures/numbers_of_ingredients.yml +48 -0
  50. data/test/fixtures/press.yml +48 -0
  51. data/test/fixtures/product_3600550362626.yml +54 -0
  52. data/test/fixtures/product_states.yml +48 -0
  53. data/test/fixtures/product_states_locale.yml +48 -0
  54. data/test/fixtures/products_for_brand.yml +99 -0
  55. data/test/fixtures/products_for_entry_date.yml +99 -0
  56. data/test/fixtures/products_for_ingredient.yml +99 -0
  57. data/test/fixtures/products_for_last_edit_date.yml +99 -0
  58. data/test/fixtures/products_for_number_of_ingredients.yml +99 -0
  59. data/test/fixtures/products_for_period_after_opening.yml +99 -0
  60. data/test/fixtures/products_for_state.yml +99 -0
  61. data/test/fixtures/products_with_additive.yml +99 -0
  62. data/test/fixtures/search_doux.yml +105 -0
  63. data/test/fixtures/search_doux_1_000_000.yml +54 -0
  64. data/test/minitest_helper.rb +5 -3
  65. data/test/test_openbeautyfacts.rb +129 -97
  66. metadata +59 -17
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://fr.openbeautyfacts.org/facets/etats
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Connection:
22
+ - close
23
+ Content-Type:
24
+ - text/html; charset=UTF-8
25
+ Date:
26
+ - Mon, 29 Sep 2025 14:07:15 GMT
27
+ Expires:
28
+ - Sun, 28 Sep 2025 14:07:15 GMT
29
+ Server:
30
+ - nginx/1.18.0
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Vary:
34
+ - Accept-Encoding
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Download-Options:
38
+ - noopen
39
+ X-Request-Id:
40
+ - ENS1mIUzF1FzTVF4
41
+ X-Xss-Protection:
42
+ - 1; mode=block
43
+ body:
44
+ encoding: ASCII-8BIT
45
+ string: !binary |-
46
+ PCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9zaXRlX2xheW91dC50dC5odG1sIC0tPgoKPCFkb2N0eXBlIGh0bWw+CjxodG1sIGNsYXNzPSJuby1qcyIgbGFuZz0iZnIiIGRhdGEtc2VydmVyZG9tYWluPSJvcGVuYmVhdXR5ZmFjdHMub3JnIiBkaXI9Imx0ciI+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPHRpdGxlPkxpc3RlIGRlcyDDqXRhdHMg4oCTIEZyYW5jZTwvdGl0bGU+CiAgICAKICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KCTxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjIxOTMzMTM4MTUxODA0MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0iZm9vZCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9Ikxpc3RlIGRlcyDDqXRhdHMg4oCTIEZyYW5jZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmcvZmFjZXRzL2V0YXRzLzEiPgogICAgCiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vc3RhdGljLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby12ZXJ0aWNhbC13aGl0ZS1zb2NpYWwtbWVkaWEtcHJldmlldy5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJVbmUgYmFzZSBkZSBkb25uw6llcyBjb2xsYWJvcmF0aXZlLCBncmF0dWl0ZSBldCBvdXZlcnRlIHN1ciBsZXMgaW5ncsOpZGllbnRzLCBldCBkZXMgaW5mb3JtYXRpb25zIHN1ciBsZXMgcHJvZHVpdHMgY29zbcOpdGlxdWVzIGR1IG1vbmRlIGVudGllciI+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2FwcGxlLXRvdWNoLWljb24ucG5nIj4KPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9mYXZpY29uLTMyeDMyLnBuZyI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTZ4MTYiIGhyZWY9Ii9pbWFnZXMvZmF2aWNvbi9vYmYvZmF2aWNvbi0xNngxNi5wbmciPgo8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL3NpdGUud2VibWFuaWZlc3QiPgo8bGluayByZWw9Im1hc2staWNvbiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9zYWZhcmktcGlubmVkLXRhYi5zdmciIGNvbG9yPSIjNWJiYWQ1Ij4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2Zhdmljb24uaWNvIj4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3IiIGNvbnRlbnQ9IiMyYjU3OTciPgo8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLWNvbmZpZyIgY29udGVudD0iL2ltYWdlcy9mYXZpY29uL29iZi9icm93c2VyY29uZmlnLnhtbCI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KCgk8bWV0YSBuYW1lPSJhcHBsZS1pdHVuZXMtYXBwIiBjb250ZW50PSJhcHAtaWQ9NTg4Nzk3OTQ4Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmcvZmFjZXRzL2V0YXRzLzEiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2Nzcy9kaXN0L2FwcC1sdHIuY3NzP3Y9MTc1NzY1ODEwMiIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvY3NzL2Rpc3QvanF1ZXJ5dWkvdGhlbWVzL2Jhc2UvanF1ZXJ5LXVpLmNzcyIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvY3NzL2Rpc3Qvc2VsZWN0Mi5taW4uY3NzIj4KICAgIDxsaW5rIHJlbD0ic2VhcmNoIiBocmVmPSJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmcvY2dpL29wZW5zZWFyY2gucGwiIHR5cGU9ImFwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwiIHRpdGxlPSJPcGVuIEJlYXV0eSBGYWN0cyI+CiAgICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3Qvb2ZmLXdlYmNvbXBvbmVudHMuYnVuZGxlZC5qcyI+PC9zY3JpcHQ+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGF0YXRhYmxlcy5taW4uY3NzIj4KCiAgICA8c3R5bGUgbWVkaWE9ImFsbCI+CiAgICAgICAgLnNob3ctd2hlbi1uby1hY2Nlc3MtdG8tcHJvZHVjZXJzLXBsYXRmb3JtIHtkaXNwbGF5Om5vbmV9Ci5zaG93LXdoZW4tbG9nZ2VkLWluIHtkaXNwbGF5Om5vbmV9CgoJCQoJCS5iYWRnZS1jb250YWluZXJ7CgkJCW1hcmdpbjogMCBhdXRvOwoJCX0KCgkJLmJhZGdlLWNvbnRhaW5lciBpbWd7CgkJCW1hcmdpbjogNXB4OwoJCX0KCQlAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUzN3B4ICkgYW5kIChtaW4td2lkdGg6IDI4MHB4KSB7CgkJCS5iYWRnZS1jb250YWluZXJ7CgkJCQl3aWR0aDogMjgwcHg7CgkJCX0KCQl9CgkJQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNzlweCApewoJCQkuYmFkZ2UtY29udGFpbmVyewoJCQkJd2lkdGg6IDEzMHB4OwoJCQl9CgkJfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBjbGFzcz0ibGlzdF9vZl90YWdzX3BhZ2UiPgoKCTwhLS0gTWF0b21vIC0tPgo8c2NyaXB0PgogIHZhciBfcGFxID0gd2luZG93Ll9wYXEgPSB3aW5kb3cuX3BhcSB8fCBbXTsKICAvKiB0cmFja2VyIG1ldGhvZHMgbGlrZSAic2V0Q3VzdG9tRGltZW5zaW9uIiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSAidHJhY2tQYWdlVmlldyIgKi8KICBfcGFxLnB1c2goWyJzZXREb2N1bWVudFRpdGxlIiwgZG9jdW1lbnQuZG9tYWluICsgIi8iICsgZG9jdW1lbnQudGl0bGVdKTsKICBfcGFxLnB1c2goWyJzZXRDb29raWVEb21haW4iLCAiKi5vcGVuYmVhdXR5ZmFjdHMub3JnIl0pOwogIF9wYXEucHVzaChbInNldERvbWFpbnMiLCBbIioub3BlbmJlYXV0eWZhY3RzLm9yZyJdXSk7CiAgX3BhcS5wdXNoKFsic2V0RG9Ob3RUcmFjayIsIHRydWVdKTsKICBfcGFxLnB1c2goWyJkaXNhYmxlQ29va2llcyJdKTsKICBfcGFxLnB1c2goWyd0cmFja1BhZ2VWaWV3J10pOwogIF9wYXEucHVzaChbJ2VuYWJsZUxpbmtUcmFja2luZyddKTsKICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgdT0iLy9hbmFseXRpY3Mub3BlbmZvb2RmYWN0cy5vcmcvIjsKICAgIF9wYXEucHVzaChbJ3NldFRyYWNrZXJVcmwnLCB1KydtYXRvbW8ucGhwJ10pOwogICAgX3BhcS5wdXNoKFsnc2V0U2l0ZUlkJywgJzEwJ10pOwogICAgdmFyIGQ9ZG9jdW1lbnQsIGc9ZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwgcz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKICAgIGcuYXN5bmM9dHJ1ZTsgZy5zcmM9dSsnbWF0b21vLmpzJzsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLHMpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+PHA+PGltZyBzcmM9Ii8vYW5hbHl0aWNzLm9wZW5mb29kZmFjdHMub3JnL21hdG9tby5waHA/aWRzaXRlPTEwJmFtcDtyZWM9MSIgc3R5bGU9ImJvcmRlcjowOyIgYWx0PSIiIC8+PC9wPjwvbm9zY3JpcHQ+CgoKCTxvZmYtd2ViY29tcG9uZW50cy1jb25maWd1cmF0aW9uCiAgbGFuZ3VhZ2UtY29kZT0iZnIiCiAgY291bnRyeS1jb2RlPSJmciIKICByb2JvdG9mZi1jb25maWd1cmF0aW9uPSd7CiAgICAiYXBpVXJsIjogImh0dHBzOi8vcm9ib3RvZmYub3BlbmZvb2RmYWN0cy5vcmcvYXBpL3YxIiwKICAgICJpbWdVcmwiOiAiaHR0cHM6Ly9pbWFnZXMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvcHJvZHVjdHMiCiAgfScKICAKICBvcGVuZm9vZGZhY3RzLWFwaS11cmw9Imh0dHBzOi8vZnIub3BlbmJlYXV0eWZhY3RzLm9yZyIKICBhc3NldHMtaW1hZ2VzLXBhdGg9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvY3NzL2Rpc3QvaW1hZ2VzIgogID48L29mZi13ZWJjb21wb25lbnRzLWNvbmZpZ3VyYXRpb24+CgkKCQoJPGRpdiBjbGFzcz0ic2tpcCI+PGEgaHJlZj0iI2NvbnRlbnQiIHRhYmluZGV4PSIwIj5BbGxlciBhdSBjb250ZW51PC9hPjwvZGl2PgoJCgoJPGRpdiBpZD0iYmFyY29kZS1zY2FubmVyLW1vZGFsIiBjbGFzcz0ibW9kYWwgaXNfaGlkZGVuIj4KICA8ZGl2IGNsYXNzPSJtb2RhbC1iYWNrZHJvcCI+PC9kaXY+CiAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICA8c3Bhbj48aDI+U2Nhbm5leiB1biBwcm9kdWl0PGgyPjwvc3Bhbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9kYWwtY2xvc2UtYnV0dG9uIj4mdGltZXM7PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXY+CiAgICAgIDxiYXJjb2RlLXNjYW5uZXIgaWQ9ImJhcmNvZGUtc2Nhbm5lciI+PC9iYXJjb2RlLXNjYW5uZXI+CiAgICA8L2Rpdj4KICAgIDxkaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgPgogICAgICA8bGFiZWwgZm9yPSJiYXJjb2RlLW1vZGFsLWlucHV0Ij5PdSBlbnRyZXogbGUgY29kZS1iYXJyZXMgbWFudWVsbGVtZW50PC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iYmFyY29kZS1tb2RhbC1ncm91cCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJiYXJjb2RlLW1vZGFsLWlucHV0IiBjbGFzcz0iYmFyY29kZS1tb2RhbC1pbnB1dCIgaW5wdXRtb2RlPSJudW1lcmljIiBwYXR0ZXJuPSJcZCoiIC8+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFyY29kZS1tb2RhbC1idXR0b24gYnV0dG9uIiBpZD0iYmFyY29kZS1tb2RhbC1idXR0b24iIGRpc2FibGVkPlNjYW5uZXI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2JhcmNvZGUtc2Nhbm5lci5qcyI+PC9zY3JpcHQ+CgoKCTxkaXYgaWQ9InBhZ2UiPgoJCQoJCTxkaXYgY2xhc3M9InVwcGVyLW5hdiBjb250YWluLXRvLWdyaWQiICBpZD0idXBOYXYiPgoJCQk8bmF2IGNsYXNzPSJ0b3AtYmFyICIgZGF0YS10b3BiYXIgcm9sZT0ibmF2aWdhdGlvbiI+CgkJCQkKCQkJCTxzZWN0aW9uIGNsYXNzPSJ0b3AtYmFyLXNlY3Rpb24iPgoJCQkJCQoJCQkJCTwhLS0gTGVmdCBOYXYgU2VjdGlvbiAtLT4KCQkJCQk8dWwgY2xhc3M9ImxlZnQiPgoKCQkJCQkJPGxpIGNsYXNzPSJoYXMtZHJvcGRvd24iPgoJCQkJCQkJPGEgaWQ9Im1lbnVfbGluayI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIj4KCQkJCQkJCQkJbWVudQoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJCTx1bCBjbGFzcz0iZHJvcGRvd24iPgkJCQkKCQkJCQkJCQkKCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9kZWNvdXZyaXIiPkTDqWNvdXZyaXI8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9jb250cmlidWVyIj5Db250cmlidWVyPC9hPjwvbGk+CgkJCQkJCQkJCTxsaSBjbGFzcz0iZGl2aWRlciI+PC9saT4KCQkJCQkJCQkJPGxpPjxsYWJlbD5Bam91dGVyIGRlcyBwcm9kdWl0czwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgIDwhLS0gRm9yIHJlZmVyZW5jZTogZ2V0X3RoZV9hcHBfbGlua19vZmYiID0gL29wZW4tZm9vZC1mYWN0cy1tb2JpbGUtYXBwIiAtLT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9hcHBsaWNhdGlvbi1tb2JpbGUtb3Blbi1iZWF1dHktZmFjdHM/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPXByb19wbGF0Zm9ybV9pbnN0YWxsX3RoZV9hcHBfdG9fYWRkX3Byb2R1Y3RzX2ZyIj5JbnN0YWxsZXogbCdhcHBsaWNhdGlvbiBwb3VyIGFqb3V0ZXIgZGVzIHByb2R1aXRzPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvY2dpL3Byb2R1Y3QucGw/dHlwZT1zZWFyY2hfb3JfYWRkJmFjdGlvbj1kaXNwbGF5Ij5Bam91dGVyIHVuIHByb2R1aXQ8L2E+PC9saT4KCQkJCQkJCQkKCgkJCQkJCQkJPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgoJCQkJCQkJCTxsaT48bGFiZWw+UmVjaGVyY2hlciBldCBhbmFseXNlciBkZXMgcHJvZHVpdHM8L2xhYmVsPjwvbGk+CgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJPGEgaHJlZj0iL2NnaS9zZWFyY2gucGwiPlJlY2hlcmNoZSBhdmFuY8OpZTwvYT4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJPGEgaHJlZj0iL2NnaS9zZWFyY2gucGw/Z3JhcGg9MSI+R3JhcGhpcXVlcyBldCBjYXJ0ZXM8L2E+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQkKCQkJCQkJCTwvdWw+CgkJCQkJCTwvbGk+CgkJCQkJCQoJCQkJCQk8bGk+CgkJCQkJCQk8dWwgY2xhc3M9ImNvdW50cnlfbGFuZ3VhZ2Vfc2VsZWN0aW9uIj4KCQkJCQkJCQk8bGkgY2xhc3M9Imhhcy1mb3JtIGhhcy1kcm9wZG93biIgaWQ9InNlbGVjdF9jb3VudHJ5X2xpIj4KCQkJCQkJCQkJPHNlbGVjdCBpZD0ic2VsZWN0X2NvdW50cnkiIHN0eWxlPSJ3aWR0aDoxMDAlIiBkYXRhLXBsYWNlaG9sZGVyPSJQYXlzIj4KCQkJCQkJCQkJCTxvcHRpb24+PC9vcHRpb24+CgkJCQkJCQkJCTwvc2VsZWN0PgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpIGNsYXNzPSJoYXMtZHJvcGRvd24iPgoJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL2ZyLm9wZW5iZWF1dHlmYWN0cy5vcmcvIj5GcmFuw6dhaXM8L2E+CgoJCQkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duIj4KCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL2ZyLWVuLm9wZW5iZWF1dHlmYWN0cy5vcmcvIj5FbmdsaXNoPC9hPjwvbGk+CgkJCQkJCQkJCTwvdWw+CgkJCQkJCQkJPC9saT4KCQkJCQkJCTwvdWw+CgkJCQkJCTwvbGk+CgkJCQkJPC91bD4KCgoJCQkJCTwhLS0gUmlnaHQgTmF2IFNlY3Rpb24gLS0+CgkJCQkJCgkJCQkJPHVsIGNsYXNzPSJyaWdodCI+CgkJCQkJCQoJCQkJCQkJPGxpIGNsYXNzPSJoLXNwYWNlLXRpbnkgaGFzLWZvcm0iPgoJCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2Vzc2lvbi5wbCIgY2xhc3M9InJvdW5kIGJ1dHRvbiBzZWNvbmRhcnkiPgoJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMgbWF0ZXJpYWwtc3ltYm9scy1idXR0b24iPmFjY291bnRfY2lyY2xlPC9zcGFuPgoJCQkJCQkJCQlTZSBjb25uZWN0ZXIKCQkJCQkJCQk8L2E+CgkJCQkJCQk8L2xpPgoJCQkJCQkKCQkJCQk8L3VsPgoJCQkJPC9zZWN0aW9uPgoJCQk8L25hdj4KCQk8L2Rpdj4KCQkKCgkJPGRpdiBpZD0ibWFpbl9jb250YWluZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZSIgY2xhc3M9ImJsb2NrX2xhdHRlIj4KCQkKCQkKCQk8ZGl2IGNsYXNzPSJ0b3BiYXJzdGlja3kiPgoJCQk8ZGl2IGNsYXNzPSJjb250YWluLXRvLWdyaWQgIiBpZD0ib2ZmTmF2IiA+CgkJCQk8bmF2IGNsYXNzPSJ0b3AtYmFyIiBkYXRhLXRvcGJhciByb2xlPSJuYXZpZ2F0aW9uIiA+CgoJCQkJCTx1bCBjbGFzcz0idGl0bGUtYXJlYSI+CgkJCQkJCTxsaSBjbGFzcz0ibmFtZSI+CgkJCQkJCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MjkycHg7Ij4KCQkJCQkJCQk8YSBocmVmPSIvIj4KCQkJCQkJCQk8aW1nIGlkPSJsb2dvIiBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL29iZi1sb2dvLWhvcml6b250YWwtbGlnaHQuc3ZnIiBhbHQ9Ik9wZW4gQmVhdXR5IEZhY3RzIiBzdHlsZT0ibWFyZ2luOjhweDtoZWlnaHQ6NDhweDt3aWR0aDphdXRvOyI+CgkJCQkJCQkJCgkJCQkJCQk8L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9saT4KCQkJCQk8L3VsPgoKCQkJCQkKCQkJCQkKCQkJCQk8c2VjdGlvbiBjbGFzcz0idG9wLWJhci1zZWN0aW9uIj4KCQkJCQkKCQkJCQkJPHVsIGNsYXNzPSJsZWZ0IHNtYWxsLTQiPgoJCQkJCQkJPGxpIGNsYXNzPSJzZWFyY2gtbGkiPgoJCQkJCQkJCgkJCQkJCQkJPGZvcm0gYWN0aW9uPSIvY2dpL3NlYXJjaC5wbCI+CgkJCQkJCQkJPGRpdiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJzbWFsbC0xMiI+CgkJCQkJCQkJPGRpdiBjbGFzcz0icm93IGNvbGxhcHNlIHBvc3RmaXgtcm91bmQiPgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW5zIj4KCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJDaGVyY2hlciB1biBwcm9kdWl0IiBuYW1lPSJzZWFyY2hfdGVybXMiIHZhbHVlPSIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlIj4KCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlYXJjaF9zaW1wbGUiIHZhbHVlPSIxIiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQk8aW5wdXQgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icHJvY2VzcyIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbnMgcG9zdGZpeC1idXR0b24td3JhcHBlciI+CgkJCQkJCQkJCTxidXR0b24gdHlwZT0ic3VibWl0IiB0aXRsZT0iUmVjaGVyY2hlciIgY2xhc3M9ImJ1dHRvbiBwb3N0Zml4IiBzdHlsZT0ibGluZS1oZWlnaHQ6bm9ybWFsIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz48L2J1dHRvbj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbnMgcG9zdGZpeC1idXR0b24td3JhcHBlciBpc19oaWRkZW4iPgogIDxidXR0b24KICAgIHR5cGU9ImJ1dHRvbiIKICAgIHRpdGxlPSJTY2FubmV6IHVuIHByb2R1aXQiCiAgICBjbGFzcz0iYnV0dG9uIGJhcmNvZGUtc2Nhbm5lci1idXR0b24iCiAgICBpZD0iYmFyY29kZS1zY2FubmVyLWJ1dHRvbiIKICA+CiAgICA8c3ZnIHN0eWxlPSJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTIsNkg0VjE4SDJWNk01LDZINlYxOEg1VjZNNyw2SDEwVjE4SDdWNk0xMSw2SDEyVjE4SDExVjZNMTQsNkgxNlYxOEgxNFY2TTE3LDZIMjBWMThIMTdWNk0yMSw2SDIyVjE4SDIxVjZaIi8+PC9zdmc+CiAgPC9idXR0b24+CgogIDxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvYmFyY29kZS1zY2FubmVyLWJ1dHRvbi5qcyI+PC9zY3JpcHQ+CjwvZGl2PgoKCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQk8L2Rpdj48L2Rpdj4KCQkJCQkJCQk8L2Zvcm0+CgkJCQkJCQk8L2xpPgoJCQkJCQk8L3VsPgoJCQkJCTx1bCBjbGFzcz0ic2VhcmNoX2FuZF9saW5rcyI+CgkJCQkJCTxsaT48YSBocmVmPSIvZGVjb3V2cmlyIiBjbGFzcz0idG9wLWJhci1saW5rcyI+RMOpY291dnJpcjwvYT48L2xpPgoJCQkJCQk8bGk+PGEgaHJlZj0iL2NvbnRyaWJ1ZXIiIGNsYXNzPSJ0b3AtYmFyLWxpbmtzIj5Db250cmlidWVyPC9hPjwvbGk+CgkJCQkJCTxsaSBjbGFzcz0ic2hvdy1mb3IteGxhcmdlLXVwIj48YSBocmVmPSJodHRwczovL2ZyLnByby5vcGVuZm9vZGZhY3RzLm9yZy8iIGNsYXNzPSJ0b3AtYmFyLWxpbmtzIj5Qcm9kdWN0ZXVyczwvYT48L2xpPgoJCQkJCQk8bGkgY2xhc3M9ImZsZXgtZ3JpZCBnZXRhcHAiPjxhIGhyZWY9Ii9hcHBsaWNhdGlvbi1tb2JpbGUtb3Blbi1iZWF1dHktZmFjdHM/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPXNlYXJjaF9hbmRfbGlua3NfcHJvbW9fZnIiIGNsYXNzPSJidXR0b25iYXIgYnV0dG9uIiBzdHlsZT0idG9wOjA7Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNiAxSDhDNi4zNCAxIDUgMi4zNCA1IDR2MTZjMCAxLjY2IDEuMzQgMyAzIDNoOGMxLjY2IDAgMy0xLjM0IDMtM1Y0YzAtMS42Ni0xLjM0LTMtMy0zem0tMiAyMGgtNHYtMWg0djF6bTMuMjUtM0g2Ljc1VjRoMTAuNXYxNHoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+IDxzcGFuIGNsYXNzPSJidC10ZXh0Ij5JbnN0YWxsZXIgbCdhcHA8L3NwYW4+PC9hPjwvbGk+CgkJCQk8IS0tIEZvciByZWZlcmVuY2U6IGdldF90aGVfYXBwX2xpbmtfb2ZmIiA9IC9vcGVuLWZvb2QtZmFjdHMtbW9iaWxlLWFwcCIgLS0+CiAgICAgICAgICA8L3VsPgoJCQkJCTwvc2VjdGlvbj4KCQkJCQkKCQkJCTwvbmF2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCgkKCQoJCTxuYXYgY2xhc3M9InRhYi1iYXIgaGlkZSI+CgkJCTxkaXYgY2xhc3M9ImxlZnQtc21hbGwiPgoJCQkJPGEgaHJlZj0iI2lkT2ZMZWZ0TWVudSIgcm9sZT0iYnV0dG9uIiBhcmlhLWNvbnRyb2xzPSJpZE9mTGVmdE1lbnUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBjbGFzcz0ibGVmdC1vZmYtY2FudmFzLXRvZ2dsZSBidXR0b24gcG9zdGZpeCBhbm9ueW1vdXMiPgoJCQkJPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMyA1djE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJINWMtMS4xMSAwLTIgLjktMiAyem0xMiA0YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3ptLTkgOGMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjF2MUg2di0xeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9Im1pZGRsZSB0YWItYmFyLXNlY3Rpb24iPgoJCQkJPGZvcm0gYWN0aW9uPSIvY2dpL3NlYXJjaC5wbCI+CgkJCQkJPGRpdiBjbGFzcz0icm93IGNvbGxhcHNlIj4KCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOCBjb2x1bW5zIj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iQ2hlcmNoZXIgdW4gcHJvZHVpdCIgbmFtZT0ic2VhcmNoX3Rlcm1zIj4KCQkJCQkJCTxpbnB1dCBuYW1lPSJzZWFyY2hfc2ltcGxlIiB2YWx1ZT0iMSIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCTxpbnB1dCBuYW1lPSJhY3Rpb24iIHZhbHVlPSJwcm9jZXNzIiB0eXBlPSJoaWRkZW4iPgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMiBjb2x1bW5zIj4KCQkJCQkJCTxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIHBvc3RmaXgiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPjwvYnV0dG9uPgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMiBjb2x1bW5zIj4KCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2VhcmNoLnBsIiB0aXRsZT0iUmVjaGVyY2hlIGF2YW5jw6llIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz48L2E+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9mb3JtPgoJCQk8L2Rpdj4KCQk8L25hdj4KCQkKCgkJPGRpdiBpZD0iY29udGVudCIgY2xhc3M9Im9mZi1jYW52YXMtd3JhcCBibG9ja19sYXR0ZSIgZGF0YS1vZmZjYW52YXM+CgkJCTxkaXYgY2xhc3M9ImlubmVyLXdyYXAiPgoJCQkKCQkJCTxhIGNsYXNzPSJleGl0LW9mZi1jYW52YXMiPjwvYT4KCgkJCQkKCQkJCQoJCQkJPCEtLSBmdWxsIHdpZHRoIGJhbm5lciBvbiBtb2JpbGUgLS0+CgkJCQkKCQkJCQoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9Im1haW4gYmxvY2tfbGlnaHQiPgoJCQkJCTxkaXYgaWQ9Im1haW5fY29sdW1uIj4KCgkJCQkJCQoJCQkJCQkKCQkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoKCjwhLS0gRG9uYXRpb24gYmFubmVyIEAgZm9vdGVyIC0tPgoKCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvY29tbW9uL2luY2x1ZGVzL2RvbmF0ZV9iYW5uZXIudHQuaHRtbCAtLT4KCgkJCQkJCQkJCgoKPHNlY3Rpb24gaWQ9ImRvbmF0aW9uLWJhbm5lci10b3AiIGNsYXNzPSJyb3ciIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZSI+CiAgCiAgPGEgaHJlZj0iaHR0cHM6Ly9jb25uZWN0Lm9wZW5mb29kZmFjdHMub3JnL2ZyL2V2ZW50L29wZW4tZm9vZC1mYWN0cy1kYXlzLTIwMjUtMzAvcmVnaXN0ZXIiPgogICAgPGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9kb25hdGlvbi1iYW5uZXJzL29mZi1kYXlzLTIwMjUtZnIuMTI4MHgxOTEucG5nIgogICAgICAgYWx0PSJKb3VybsOpZXMgT3BlbiBGb29kIEZhY3RzIDIwMjUiCiAgICAgICB3aWR0aD0iMTI4MCIKICAgICAgIGhlaWdodD0iMTkxIiBjbGFzcz0ic2hvdy1mb3ItbWVkaXVtLXVwIi8+CiAgICAgICA8aW1nIHNyYz0iL2ltYWdlcy9taXNjL2RvbmF0aW9uLWJhbm5lcnMvb2ZmLWRheXMtMjAyNS1mci5tb2JpbGUucG5nIgogICAgICAgYWx0PSJKb3VybsOpZXMgT3BlbiBGb29kIEZhY3RzIDIwMjUiCiAgICAgICB3aWR0aD0iMTI4MCIKICAgICAgIGhlaWdodD0iNDc3IiBjbGFzcz0ic2hvdy1mb3Itc21hbGwtb25seSIvPiAgICAgICAKICA8L2E+ICAKICAKCgogIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lcl9fY2xvc2UiPgogICAgPGJ1dHRvbiBpZD0iaGlkZS1kb25hdGUtYmFubmVyIiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMgbW9kZXN0IiBvbmNsaWNrPSJEb25hdGlvbkJ1dHRvbigpOyIgb25rZXlwcmVzcz0iRG9uYXRpb25CdXR0b24oKTsiPmNsb3NlPC9idXR0b24+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzY3JpcHQ+CiAgbGV0IGQgPSBuZXcgRGF0ZSgpOwogIGxldCBiYW5uZXJJRCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb25hdGlvbi1iYW5uZXItdG9wJyk7CiAgbGV0IGdldERvbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4uc3BsaXQoJy4nKTsKCiAgZnVuY3Rpb24gc2V0QmFubmVyQ29va2llKGJjbmFtZSwgYmN2YWwsIGJjZXhkYXlzKSB7CiAgICBkLnNldFRpbWUoZC5nZXRUaW1lKCkgKyAoYmNleGRheXMqNjAqNjAqMjQqMTAwMCkpOwogICAgbGV0IGV4cGlyZXMgPSAnZXhwaXJlcz0nICsgZC50b1VUQ1N0cmluZygpOwogICAgLy8gQXBwbHkgY29va2llIGZvciBldmVyeSBkb21haW4gY29udGFpbnMgb3Blbi4uLmZhY3RzCiAgICBsZXQgZG9tYWluID0gJ2RvbWFpbj0uJyArIGdldERvbWFpbi5zbGljZSgxKS5qb2luKCcuJyk7CiAgICBkb2N1bWVudC5jb29raWUgPSBiY25hbWUgKyAnPScgKyBiY3ZhbCArICc7JyArIGV4cGlyZXMgKyAnOycgKyBkb21haW4gKyAnO1NhbWVTaXRlPU5vbmU7U2VjdXJlO3BhdGg9Lyc7CiAgfQoKICBmdW5jdGlvbiBnZXRCYW5uZXJDb29raWUoYmNuYW1lKSB7CiAgICBjb25zdCBuYW1lID0gYmNuYW1lICsgJz0nOwogICAgY29uc3QgZGVjb2RlZENvb2tpZXMgPSBkZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llKTsKICAgIGNvbnN0IGNvb2tpZXMgPSBkZWNvZGVkQ29va2llcy5zcGxpdCgnOycpOwogICAgZm9yIChjb25zdCBjb29raWUgb2YgY29va2llcykgewogICAgICBsZXQgYyA9IGNvb2tpZTsKICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09ICcgJykgeyBjID0gYy5zdWJzdHJpbmcoMSk7IH0KICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7IHJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOyB9CiAgICB9CgogICAgcmV0dXJuICcnOwogIH0KCiAgZnVuY3Rpb24gRG9uYXRpb25CdXR0b24oKSB7CiAgICBzZXRCYW5uZXJDb29raWUoJ29mZl9kYXlzXzIwMjUnLCAxLCAxODApOwogICAgYmFubmVySUQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB9CgogIGlmIChnZXRCYW5uZXJDb29raWUoJ29mZl9kYXlzXzIwMjUnKSAhPT0gJycpIHsKICAgIGJhbm5lcklELnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgfSBlbHNlIHsKICAgIGJhbm5lcklELnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgfQo8L3NjcmlwdD4KCgoJCQkJCQkJCgkJCQkJCQoJCQkJCQkKICAgICAgICAgICAgCQkJCgkJCQkJCQoJCQkJCQkJPGRpdiBjbGFzcz0icm93Ij4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0xMiBjb2x1bW4iPgoJCQkJCQkJCQk8aDEgY2xhc3M9ImlmLWVtcHR5LWRub25lIj5MaXN0ZSBkZXMgw6l0YXRzIOKAkyBGcmFuY2U8L2gxPgoJCQkJCQkJCQk8IS0tIHN0YXJ0IHRlbXBsYXRlcy93ZWIvcGFnZXMvdGFnL3RhZy50dC5odG1sIC0tPgo8ZGl2IGNsYXNzPSJ0YWciPgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJsYXJnZS02IGNvbHVtbiI+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdfbmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICA8cD5QYXlzwqA6IEZyYW5jZQogICAgICAgICAgICAgICAgLSA8YSBocmVmPSJodHRwczovL3dvcmxkLWZyLm9wZW5iZWF1dHlmYWN0cy5vcmcvZmFjZXRzL2V0YXRzIj5Wb2lyIGxhIGxpc3RlIHBvdXIgbGVzIHByb2R1aXRzIGNvcnJlc3BvbmRhbnRzIGR1IG1vbmRlIGVudGllcjwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAKCiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgoKICAgICAgICAKICAgIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvcGFnZXMvdGFnL3RhZy50dC5odG1sIC0tPgo8cD4zOCDDqXRhdHPCoDo8L3A+PGRpdiBzdHlsZT0ibWF4LXdpZHRoOjYwMHB4OyI+PHRhYmxlIGlkPSJ0YWdzdGFibGUiPgo8dGhlYWQ+PHRyPjx0aD5FdGF0PC90aD48dGg+UHJvZHVpdHM8L3RoPjx0aD4qPC90aD48L3RyPjwvdGhlYWQ+Cjx0Ym9keT4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2RhdGUtbGltaXRlLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj5EYXRlIGxpbWl0ZSDDoCBjb21wbMOpdGVyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9kYXRlLWxpbWl0ZS1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+MjA0MjE8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvY29kZS1lbWJhbGxldXItYS1jb21wbGV0ZXIiIGNsYXNzPSJ0YWcga25vd24iPkNvZGUgZW1iYWxsZXVyIMOgIGNvbXBsw6l0ZXI8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2NvZGUtZW1iYWxsZXVyLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj4xOTExODwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90b3MtZW52b3llZXMiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvcyBlbnZvecOpZXM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3Rvcy1lbnZveWVlcyIgY2xhc3M9InRhZyBrbm93biI+MTg3Mjc8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvYS1jb21wbGV0ZXIiIGNsYXNzPSJ0YWcga25vd24iPsOAIGNvbXBsw6l0ZXI8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2EtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj4xODU4MDwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jYXJhY3RlcmlzdGlxdWVzLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj5DYXJhY3TDqXJpc3RpcXVlcyDDoCBjb21wbMOpdGVyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jYXJhY3RlcmlzdGlxdWVzLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj4xNzQ3NDwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90b3MtYS12YWxpZGVyIiBjbGFzcz0idGFnIGtub3duIj5QaG90b3Mgw6AgdmFsaWRlcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG9zLWEtdmFsaWRlciIgY2xhc3M9InRhZyBrbm93biI+MTU4OTU8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvaW5mb3JtYXRpb25zLW51dHJpdGlvbm5lbGxlcy1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+SW5mb3JtYXRpb25zIG51dHJpdGlvbm5lbGxlcyDDoCBjb21wbMOpdGVyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9pbmZvcm1hdGlvbnMtbnV0cml0aW9ubmVsbGVzLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj4xNTA2MTwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9ub20tZHUtcHJvZHVpdC1jb21wbGV0ZSIgY2xhc3M9InRhZyBrbm93biI+Tm9tIGR1IHByb2R1aXQgY29tcGzDqXTDqTwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvbm9tLWR1LXByb2R1aXQtY29tcGxldGUiIGNsYXNzPSJ0YWcga25vd24iPjE0OTMzPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2VtYmFsbGFnZS1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+RW1iYWxsYWdlIMOgIGNvbXBsw6l0ZXI8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2VtYmFsbGFnZS1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+MTQxMjA8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvbWFycXVlcy1jb21wbGV0ZWVzIiBjbGFzcz0idGFnIGtub3duIj5NYXJxdWVzIGNvbXBsw6l0w6llczwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvbWFycXVlcy1jb21wbGV0ZWVzIiBjbGFzcz0idGFnIGtub3duIj4xMzk1OTwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9pbmdyZWRpZW50cy1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+SW5ncsOpZGllbnRzIMOgIGNvbXBsw6l0ZXI8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2luZ3JlZGllbnRzLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj4xMzQ1NDwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jYXRlZ29yaWVzLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj5DYXTDqWdvcmllcyDDoCBjb21wbMOpdGVyPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jYXRlZ29yaWVzLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj4xMTgwNTwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9vcmlnaW5lcy1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+T3JpZ2luZXMgw6AgY29tcGzDqXRlcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvb3JpZ2luZXMtYS1jb21wbGV0ZXIiIGNsYXNzPSJ0YWcga25vd24iPjExNTg0PC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3F1YW50aXRlLWNvbXBsZXRlZSIgY2xhc3M9InRhZyBrbm93biI+UXVhbnRpdMOpIGNvbXBsw6l0w6llPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9xdWFudGl0ZS1jb21wbGV0ZWUiIGNsYXNzPSJ0YWcga25vd24iPjExMjM2PC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3RvLWRlLWxhLW51dHJpdGlvbi1ub24tc2VsZWN0aW9ubmVlIiBjbGFzcz0idGFnIGtub3duIj5QaG90byBkZSBsYSBudXRyaXRpb24gbm9uIHPDqWxlY3Rpb25uw6llPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90by1kZS1sYS1udXRyaXRpb24tbm9uLXNlbGVjdGlvbm5lZSIgY2xhc3M9InRhZyBrbm93biI+OTc0MjwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90by1kZS1sLWVtYmFsbGFnZS1ub24tc2VsZWN0aW9ubmVlIiBjbGFzcz0idGFnIGtub3duIj5QaG90byBkZSBsJ2VtYmFsbGFnZSBub24gc8OpbGVjdGlvbm7DqWU8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3RvLWRlLWwtZW1iYWxsYWdlLW5vbi1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPjk2MDA8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG8tZGUtZmFjZS1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvIGRlIGZhY2Ugc8OpbGVjdGlvbm7DqWU8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3RvLWRlLWZhY2Utc2VsZWN0aW9ubmVlIiBjbGFzcz0idGFnIGtub3duIj45NTM3PC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3F1YW50aXRlLWEtY29tcGxldGVyIiBjbGFzcz0idGFnIGtub3duIj5RdWFudGl0w6kgw6AgY29tcGzDqXRlcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcXVhbnRpdGUtYS1jb21wbGV0ZXIiIGNsYXNzPSJ0YWcga25vd24iPjk0Nzg8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvY2F0ZWdvcmllcy1jb21wbGV0ZWVzIiBjbGFzcz0idGFnIGtub3duIj5DYXTDqWdvcmllcyBjb21wbMOpdMOpZXM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2NhdGVnb3JpZXMtY29tcGxldGVlcyIgY2xhc3M9InRhZyBrbm93biI+ODkwOTwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9pbmdyZWRpZW50cy1jb21wbGV0ZXMiIGNsYXNzPSJ0YWcga25vd24iPkluZ3LDqWRpZW50cyBjb21wbMOpdMOpczwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvaW5ncmVkaWVudHMtY29tcGxldGVzIiBjbGFzcz0idGFnIGtub3duIj43MjYwPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL21hcnF1ZXMtYS1jb21wbGV0ZXIiIGNsYXNzPSJ0YWcga25vd24iPk1hcnF1ZXMgw6AgY29tcGzDqXRlcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvbWFycXVlcy1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+Njc1NTwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9lbWJhbGxhZ2UtY29tcGxldGUiIGNsYXNzPSJ0YWcga25vd24iPkVtYmFsbGFnZSBjb21wbMOpdMOpPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9lbWJhbGxhZ2UtY29tcGxldGUiIGNsYXNzPSJ0YWcga25vd24iPjY1OTQ8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG8tZGVzLWluZ3JlZGllbnRzLW5vbi1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvIGRlcyBpbmdyw6lkaWVudHMgbm9uIHPDqWxlY3Rpb25uw6llPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90by1kZXMtaW5ncmVkaWVudHMtbm9uLXNlbGVjdGlvbm5lZSIgY2xhc3M9InRhZyBrbm93biI+NjM5NTwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9ub20tZHUtcHJvZHVpdC1hLWNvbXBsZXRlciIgY2xhc3M9InRhZyBrbm93biI+Tm9tIGR1IHByb2R1aXQgw6AgY29tcGzDqXRlcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvbm9tLWR1LXByb2R1aXQtYS1jb21wbGV0ZXIiIGNsYXNzPSJ0YWcga25vd24iPjU3ODE8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvaW5mb3JtYXRpb25zLW51dHJpdGlvbm5lbGxlcy1jb21wbGV0ZWVzIiBjbGFzcz0idGFnIGtub3duIj5JbmZvcm1hdGlvbnMgbnV0cml0aW9ubmVsbGVzIGNvbXBsw6l0w6llczwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvaW5mb3JtYXRpb25zLW51dHJpdGlvbm5lbGxlcy1jb21wbGV0ZWVzIiBjbGFzcz0idGFnIGtub3duIj41NjUzPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3RvLWRlcy1pbmdyZWRpZW50cy1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvIGRlcyBpbmdyw6lkaWVudHMgc8OpbGVjdGlvbm7DqWU8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3RvLWRlcy1pbmdyZWRpZW50cy1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPjQ0NTg8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvY2FyYWN0ZXJpc3RpcXVlcy1jb21wbGV0ZWVzIiBjbGFzcz0idGFnIGtub3duIj5DYXJhY3TDqXJpc3RpcXVlcyBjb21wbMOpdMOpZXM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2NhcmFjdGVyaXN0aXF1ZXMtY29tcGxldGVlcyIgY2xhc3M9InRhZyBrbm93biI+MzI0MDwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90b3MtdmFsaWRlZXMiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvcyB2YWxpZMOpZXM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3Rvcy12YWxpZGVlcyIgY2xhc3M9InRhZyBrbm93biI+MjgzMjwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jb21wbGV0IiBjbGFzcz0idGFnIGtub3duIj5Db21wbGV0PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jb21wbGV0IiBjbGFzcz0idGFnIGtub3duIj4yMTM0PC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2EtdmVyaWZpZXIiIGNsYXNzPSJ0YWcga25vd24iPsOAIHbDqXJpZmllcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvYS12ZXJpZmllciIgY2xhc3M9InRhZyBrbm93biI+MjEzNDwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90b3MtYS1lbnZveWVyIiBjbGFzcz0idGFnIGtub3duIj5QaG90b3Mgw6AgZW52b3llcjwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG9zLWEtZW52b3llciIgY2xhc3M9InRhZyBrbm93biI+MTk4NzwvYT48L3RkPjx0ZD48L3RkPjwvdHI+Cjx0cj48dGQ+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90by1kZS1mYWNlLW5vbi1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvIGRlIGZhY2Ugbm9uIHPDqWxlY3Rpb25uw6llPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9waG90by1kZS1mYWNlLW5vbi1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPjEzMTY8L2E+PC90ZD48dGQ+PC90ZD48L3RyPgo8dHI+PHRkPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG8tZGUtbC1lbWJhbGxhZ2Utc2VsZWN0aW9ubmVlIiBjbGFzcz0idGFnIGtub3duIj5QaG90byBkZSBsJ2VtYmFsbGFnZSBzw6lsZWN0aW9ubsOpZTwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG8tZGUtbC1lbWJhbGxhZ2Utc2VsZWN0aW9ubmVlIiBjbGFzcz0idGFnIGtub3duIj4xMjUzPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2NvZGUtZW1iYWxsZXVyLWNvbXBsZXRlIiBjbGFzcz0idGFnIGtub3duIj5Db2RlIGVtYmFsbGV1ciBjb21wbMOpdMOpPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iL2ZhY2V0cy9ldGF0cy9jb2RlLWVtYmFsbGV1ci1jb21wbGV0ZSIgY2xhc3M9InRhZyBrbm93biI+NTEyPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3Bob3RvLWRlLWxhLW51dHJpdGlvbi1zZWxlY3Rpb25uZWUiIGNsYXNzPSJ0YWcga25vd24iPlBob3RvIGRlIGxhIG51dHJpdGlvbiBzw6lsZWN0aW9ubsOpZTwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvcGhvdG8tZGUtbGEtbnV0cml0aW9uLXNlbGVjdGlvbm5lZSIgY2xhc3M9InRhZyBrbm93biI+NDIyPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2RhdGUtbGltaXRlLWNvbXBsZXRlZSIgY2xhc3M9InRhZyBrbm93biI+RGF0ZSBsaW1pdGUgY29tcGzDqXTDqWU8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL2RhdGUtbGltaXRlLWNvbXBsZXRlZSIgY2xhc3M9InRhZyBrbm93biI+MjkzPC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL29yaWdpbmVzLWNvbXBsZXRlZXMiIGNsYXNzPSJ0YWcga25vd24iPk9yaWdpbmVzIGNvbXBsw6l0w6llczwvYT48L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9Ii9mYWNldHMvZXRhdHMvb3JpZ2luZXMtY29tcGxldGVlcyIgY2xhc3M9InRhZyBrbm93biI+Mjg1PC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPHRyPjx0ZD48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3ZpZGUiIGNsYXNzPSJ0YWcga25vd24iPlZpZGU8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIvZmFjZXRzL2V0YXRzL3ZpZGUiIGNsYXNzPSJ0YWcga25vd24iPjE5PC9hPjwvdGQ+PHRkPjwvdGQ+PC90cj4KPC90Ym9keT48L3RhYmxlPjwvZGl2PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJCTwvZGl2PgoKCQkKCQk8Zm9vdGVyPgoJCQk8ZGl2IGNsYXNzPSJibG9ja19saWdodCBiZy13aGl0ZSIgaWQ9Imluc3RhbGxfdGhlX2FwcF9ibG9jayI+CgkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGZsZXgtZ3JpZCB2LXNwYWNlLXNob3J0IHYtYWxpZ24tY2VudGVyIGRpcmVjdGlvbi1yb3cgaC1zcGFjZS10aW55Ij4KCQkJCQkJPGRpdiBjbGFzcz0iY2VsbCBzbWFsbC0xMDAgbWVkaXVtLTEwMCBsYXJnZS01MCBmbGV4LWdyaWQgdi1hbGlnbi1jZW50ZXIgZGlyZWN0aW9uLXJvdyI+CgkJCQkJCQk8aW1nIGNsYXNzPSJjZWxsIHNtYWxsLTUwIHYtYWxpZ24tY2VudGVyIiBzcmM9Ii9pbWFnZXMvaWxsdXN0cmF0aW9ucy9hcHAtaWNvbi1pbi10aGUtY2xvdWRzLnN2ZyIgYWx0PSJUaGUgT3BlbiBGb29kIEZhY3RzIGxvZ28gaW4gdGhlIGNsb3VkIiBzdHlsZT0iaGVpZ2h0OjEyMHB4Ij4KCQkJCQkJCTxkaXYgY2xhc3M9ImNlbGwgc21hbGwtNTAgdi1hbGlnbi1jZW50ZXIiIGlkPSJmb290ZXJfc2NhbiIgc3R5bGU9ImRpc3BsYXk6YmxvY2siPgoJCQkJCQkJCTxkaXYgaWQ9ImZvb3Rlcl9pbnN0YWxsX3RoZV9hcHAiPgoJCQkJCQkJCQlJbnN0YWxsZXIgbCdhcHAhCgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJU2Nhbm5leiBsZXMgPHNwYW4gaWQ9ImZvb2RzIj5hbGltZW50czwvc3Bhbj4gZGUgdm90cmUgPHNwYW4gaWQ9ImV2ZXJ5ZGF5Ij5xdW90aWRpZW48L3NwYW4+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9InJvdyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0xMiBtZWRpdW0tMTIgbGFyZ2UtMTIgdi1zcGFjZS1ub3JtYWwgY29sdW1uIGJhZGdlLWNvbnRhaW5lciI+CgkJCQkJCQkJPCEtLSBhbmRyb2lkX2FwcF9saW5rIC0gaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPW9yZy5vcGVuYmVhdXR5ZmFjdHMuc2Nhbm5lciZobD1lbiAtLT4KCQkJCQkJCQk8YSAgaHJlZj0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPW9yZy5vcGVuZm9vZGZhY3RzLnNjYW5uZXImdXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPWluc3RhbGxfdGhlX2FwcF9hbmRyb2lkX2Zvb3Rlcl9mciI+PGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9wbGF5c3RvcmUvaW1nL2xhdGVzdC9HZXRJdE9uR29vZ2xlUGxheV9CYWRnZV9XZWJfY29sb3JfRW5nbGlzaC5zdmciIGFsdD0iRGlzcG9uaWJsZSBzdXIgR29vZ2xlIFBsYXkiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iNDAiIHdpZHRoPSIxMjAiPjwvYT4KCQkJCQkJCQkKCQkJCQkJCQk8YSBocmVmPSIiPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvZi1kcm9pZC9zdmcvZ2V0LWl0LW9uLWVuLnN2ZyIgYWx0PSJEaXNwb25pYmxlIHN1ciBGLURyb2lkIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQwIiB3aWR0aD0iMTIwIj48L2E+CgoJCQkJCQkJCTwhLS0gYW5kcm9pZF9hcGtfYXBwX2xpbmsgLSBodHRwczovL3dvcmxkLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9hcHBzL29mZi5hcGsgLS0+CgkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hcHBzL29iZi5hcGs/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWI/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPWluc3RhbGxfdGhlX2FwcF9hcGtfZm9vdGVyX2ZyIj48aW1nIHNyYz0iL2ltYWdlcy9taXNjL2FwcC1sYW5kaW5nLXBhZ2UvZG93bmxvYWQtYXBrL2Rvd25sb2FkLWFwa19lbi5zdmciIGFsdD0iQVBLIEFuZHJvaWQiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iNDAiIHdpZHRoPSIxMjAiPjwvYT4KCQkJCQkJCQkKCQkJCQkJCQk8IS0tIG1zZ2lkICJodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9vcGVuLWJlYXV0eS1mYWN0cy9pZDExMjI5MjYzODAiIC0tPgoJCQkJCQkJCTxhIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL29wZW4tYmVhdXR5LWZhY3RzL2lkMTEyMjkyNjM4MD91dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249aW5zdGFsbF90aGVfYXBwX2lvc19mb290ZXJfZnIiPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvYXBwc3RvcmUvYmxhY2svYXBwc3RvcmVfRlIuc3ZnIiBhbHQ9IkRpc3BvbmlibGUgc3VyIGwnQXBwIFN0b3JlIiAgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0MCIgd2lkdGg9IjEyMCI+PC9hPgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoKCQkJCiAgICAgIAkJCTwhLS0gc3RhcnQgdGVtcGxhdGVzL3dlYi9jb21tb24vaW5jbHVkZXMvZG9uYXRlX2Jhbm5lci50dC5odG1sIC0tPgoKCgo8IS0tIERvbmF0aW9uIGJhbm5lciBAIGZvb3RlciAtLT4KCgo8IS0tIGVuZCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoJCQkJCgo8c2VjdGlvbiBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3RlciByb3ciPgogIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2xlZnQtYXNpZGUiPgogICAgPGRpdiBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3Rlcl9faG9vay1zZWN0aW9uIj4KICAgICAgPHA+QWlkZXotbm91cyDDoCBpbmZvcm1lciBkZXMgbWlsbGlvbnMgZGUgY29uc29tbWF0ZXVycyDDoCB0cmF2ZXJzIGxlIG1vbmRlIHN1ciBjZSBxdSdpbHMgbWFuZ2VudDwvcD4KICAgIDwvZGl2PgogICAgPGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9kb25hdGlvbi1iYW5uZXJzL2RvbmF0aW9uLWJhbm5lci1ncm91cC1waG90by5wbmciIGFsdD0iZ3JvdXAgcGhvdG8gZG9uYXRpb24gMjAyNCIgLz4KICA8L2Rpdj4KICA8ZGl2PgogICAgPGRpdj4KICAgICAgPGRpdiBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3Rlcl9fbWFpbi1zZWN0aW9uIj4KICAgICAgICA8aW1nCiAgICAgICAgICB3aWR0aD0iNTAiCiAgICAgICAgICBoZWlnaHQ9IjUwIgogICAgICAgICAgc3JjPSJodHRwczovL3dvcmxkLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9sb2dvLXZhcmlhbnRzL0NNSk4tSUNPTl9XSElURV9CR19PRkYuc3ZnIgogICAgICAgICAgYWx0PSJvcGVuIGZvb2QgZmFjdHMgbG9nbyIKICAgICAgICAvPgogICAgICAgIDxoMyBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3Rlcl9fbWFpbi10aXRsZSI+TWVyY2kgZGUgY29udHJpYnVlciDDoCBub3RyZSBjb2xsZWN0ZSBkZSBmb25kcyAyMDI1PC9oMz4KICAgICAgPC9kaXY+CiAgICAgIDxwPlZvcyBkb25zIGZpbmFuY2VudCBsZSBmb25jdGlvbm5lbWVudCBxdW90aWRpZW4gZGUgbm90cmUgYXNzb2NpYXRpb24gw6AgYnV0IG5vbiBsdWNyYXRpZiA6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPgogICAgICAgICAgZ2FyZGVyIG5vdHJlIGJhc2UgZGUgZG9ubsOpZXMgb3V2ZXJ0ZSBldCBhY2Nlc3NpYmxlIMOgIHRvdXMsCiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5pbmZyYXN0cnVjdHVyZSB0ZWNobmlxdWUgKHNpdGUgd2ViL2FwcGxpY2F0aW9uIG1vYmlsZSkgZXQgdW5lIHBldGl0ZSDDqXF1aXBlIHBlcm1hbmVudGU8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxwPnJlc3RlciBpbmTDqXBlbmRhbnQgZGUgbCdpbmR1c3RyaWUgYWxpbWVudGFpcmUsPC9wPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPgogICAgICAgICAgPHA+bW9iaWxpc2VyIHVuZSBjb21tdW5hdXTDqSBkZSBjaXRveWVucyBlbmdhZ8Opcyw8L3A+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICA8cD5zb3V0ZW5pciBs4oCZYXZhbmNlbWVudCBkZSBsYSByZWNoZXJjaGUgZW4gc2FudMOpIHB1YmxpcXVlLjwvcD4KICAgICAgICA8L2xpPgogICAgICA8L3VsPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19hY3Rpb25zLXNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19hY3Rpb25zLXNlY3Rpb25fX2ZpbmFuY2lhbCI+CiAgICAgICAgPHA+CiAgICAgICAgICBDaGFxdWUgZG9uIGNvbXB0ZSAhIE5vdXMgYXBwcsOpY2lvbnMgdm90cmUgc291dGllbiBwb3VyIHVuZSBwbHVzIGdyYW5kZSB0cmFuc3BhcmVuY2UgYWxpbWVudGFpcmUgZGFucyBsZSBtb25kZS4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19hY3Rpb25zLXNlY3Rpb25fX2RvbmF0ZS1idXR0b24iPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vb3Blbi1mb29kLWZhY3RzLmFzc29jb25uZWN0LmNvbS9jb2xsZWN0L2Rlc2NyaXB0aW9uLzQ3Njc1MC1jLWZhaXJlLXVuLWRvbi1hLW9wZW4tZm9vZC1mYWN0cz91dG1fc291cmNlPW9mZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249ZG9uYXRlLTIwMjQtYSZ1dG1fdGVybT1lbi10ZXh0LWJ1dHRvbiI+CiAgICAgICAgICA8YnV0dG9uPkpFIFNPVVRJRU5TPC9idXR0b24+CiAgICAgICAgPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+CgoKCQkJCiAgICAgIAkJCgkJCTxkaXYgY2xhc3M9ImJsb2NrX2xpZ2h0IGJsb2NrX2NhcHB1Y2lubyIgaWQ9ImNvbnRyaWJ1dGVfYW5kX2Rpc2NvdmVyX2xpbmtzX2Jsb2NrIj4KCQkJCTxkaXYgY2xhc3M9InJvdyI+CgkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgbGFyZ2UtNiBjb2x1bW5zIHYtc3BhY2Utbm9ybWFsIGJsb2NrX29mZiI+CgkJCQkJCTxoMyBjbGFzcz0idGl0bGUtNSB0ZXh0LW1lZGl1bSI+UmVqb2lnbmV6IGxhIGNvbW11bmF1dMOpPC9oMz4KCQkJCQkJPHA+RMOpY291dnJleiBub3RyZSA8YSBocmVmPSIvY29kZS1kZS1jb25kdWl0ZSI+Q29kZSBkZSBjb25kdWl0ZTwvYT48L3A+CgkJCQkJCTxwPlJlam9pZ25lei1ub3VzIHN1ciA8YSBocmVmPSJodHRwczovL3NsYWNrLm9wZW5mb29kZmFjdHMub3JnIj5TbGFjazwvYT48L3A+CgkJCQkJCTxwPjxhIGhyZWY9Imh0dHBzOi8vZm9ydW0ub3BlbmZvb2RmYWN0cy5vcmcvIj5Gb3J1bTwvYT48L3A+CgkJCQkJCTxwIGlkPSJmb290ZXJfc29jaWFsX2ljb25zIj5TdWl2ZXotbm91cyA6IAoJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly94LmNvbS9PcGVuRm9vZEZhY3RzIj48aW1nIHNyYz0iL2ltYWdlcy9pY29ucy9kaXN0L3guc3ZnIiBjbGFzcz0iZm9vdGVyX3NvY2lhbF9pY29uIiBhbHQ9IngiPjwvYT4KCQkJCQkJCTxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9vcGVuZm9vZGZhY3RzP3V0bV9zb3VyY2U9b2JmJnV0Zl9tZWRpdW09d2ViIj48aW1nIHNyYz0iL2ltYWdlcy9pY29ucy9kaXN0L2ZhY2Vib29rLnN2ZyIgY2xhc3M9ImZvb3Rlcl9zb2NpYWxfaWNvbiIgYWx0PSJGYWNlYm9vayI+PC9hPgoJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9vcGVuLmZvb2QuZmFjdHMvIj48aW1nIHNyYz0iL2ltYWdlcy9pY29ucy9kaXN0L2luc3RhZ3JhbS5zdmciIGNsYXNzPSJmb290ZXJfc29jaWFsX2ljb24iIGFsdD0iSW5zdGFncmFtIj48L2E+CgkJCQkJCQkKCQkJCQkJPC9wPgoJCQkJCQk8cD48YSBocmVmPSJodHRwczovL2xpbmsub3BlbmZvb2RmYWN0cy5vcmcvbmV3c2xldHRlci1mciI+UydhYm9ubmVyIMOgIG5vdHJlIG5ld3NsZXR0ZXI8L2E+PC9wPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGxhcmdlLTYgY29sdW1ucyBwcm9qZWN0IHYtc3BhY2Utbm9ybWFsIj4KCQkJCQkJPGgzIGNsYXNzPSJ0aXRsZS01IHRleHQtbWVkaXVtIj5Ew6ljb3V2cmV6IGxlIHByb2pldDwvaDM+CgkJCQkJCTx1bCBjbGFzcz0iaW5saW5lLWxpc3QgdGFnc19saW5rcyB2LXNwYWNlLXRpbnkgaC1zcGFjZS10aW55IiA+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvcXVpLXNvbW1lcy1ub3VzIj5RdWkgc29tbWVzLW5vdXMgPzwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuZm9vZGZhY3RzLm9yZy9vcGVuLWZvb2QtZmFjdHMtdmlzaW9uLW1pc3Npb24tdmFsdWVzLWFuZC1wcm9ncmFtcyI+VmlzaW9uLCBtaXNzaW9uLCB2YWxldXJzIGV0IHByb2dyYW1tZXM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5vcGVuZm9vZGZhY3RzLm9yZy9oZWxwL2ZyLWZyIj5RdWVzdGlvbnMgZnLDqXF1ZW50ZXM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vYmxvZy5vcGVuZm9vZGZhY3RzLm9yZy9mci8iPkxlIGJsb2cgZCdPcGVuIEJlYXV0eSBGYWN0czwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iL3ByZXNzZSI+UHJlc3NlPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSJodHRwczovL2ZyLndpa2kub3BlbmZvb2RmYWN0cy5vcmciPk9wZW4gQmVhdXR5IEZhY3RzIHdpa2kgKGZyKTwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iL2NnaS90b3BfdHJhbnNsYXRvcnMucGwiPlRyYWR1Y3RldXJzPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvcGFydGVuYWlyZXMiPlBhcnRlbmFpcmVzPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSJodHRwczovL3dvcmxkLWZyLm9wZW5iZWF1dHlmYWN0cy5vcmciPk9wZW4gQmVhdXR5IEZhY3RzIC0gQ29zbcOpdGlxdWVzPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSJodHRwczovL2ZyLnByby5vcGVuYmVhdXR5ZmFjdHMub3JnLyI+T3BlbiBGb29kIEZhY3RzIHBvdXIgbGVzIHByb2R1Y3RldXJzPC9hPjwvbGk+CgkJCQkJCTwvdWw+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgoJCQk8ZGl2IGNsYXNzPSJibG9ja19vZmYgYmxvY2tfZGFyayBibG9ja19yaXN0cmV0byIgaWQ9ImZvb3Rlcl9ibG9jayI+CgoJCQkJPGRpdiBpZD0iZm9vdGVyX2Jsb2NrX2ltYWdlX2Jhbm5lcl9vdXRzaWRlIj4KCQkJCQk8ZGl2IGlkPSJmb290ZXJfYmxvY2tfaW1hZ2VfYmFubmVyX291dHNpZGUyIj4KCgkJCQkJCTxkaXYgY2xhc3M9InJvdyI+CgoJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgdGV4dC1jZW50ZXIgdi1zcGFjZS1zaG9ydCBoLXNwYWNlLWxhcmdlIj4KCQkJCQkJCQk8YSBocmVmPSIvIiBzdHlsZT0iZm9udC1zaXplOjFyZW07Ij48aW1nIGlkPSJsb2dvIiBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL29iZi1sb2dvLWhvcml6b250YWwtbW9uby13aGl0ZS5zdmciIGFsdD0iT3BlbiBCZWF1dHkgRmFjdHMiIHN0eWxlPSJtYXJnaW46OHB4O2hlaWdodDo0OHB4O3dpZHRoOmF1dG87Ij48L2E+CgoJCQkJCQkJCTxwPlVuZSBiYXNlIGRlIGRvbm7DqWVzIGNvbGxhYm9yYXRpdmUsIGxpYnJlIGV0IG91dmVydGUgZGVzIHByb2R1aXRzIGNvc23DqXRpcXVlcyBkdSBtb25kZSBlbnRpZXIuPC9wPgoJCQkJCQkJCQoJCQkJCQkJCTx1bCBjbGFzcz0iaW5saW5lLWxpc3QgdGV4dC1jZW50ZXIgdGV4dC1zbWFsbCI+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvbWVudGlvbnMtbGVnYWxlcyI+TWVudGlvbnMgbMOpZ2FsZXM8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9wcml2YWN5Ij5Db25maWRlbnRpYWxpdMOpPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvY29uZGl0aW9ucy1kLXV0aWxpc2F0aW9uIj5Db25kaXRpb25zIGQndXRpbGlzYXRpb248L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9kYXRhIj5Eb25uw6llcywgQVBJIGV0IFNESzwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9mci5vcGVuZm9vZGZhY3RzLm9yZy9mYWlyZS11bi1kb24tYS1vcGVuLWZvb2QtZmFjdHMiPkZhaXJlIHVuIGRvbiDDoCBsJ2Fzc29jaWF0aW9uIE9wZW4gRm9vZCBGYWN0czwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9mci5wcm8ub3BlbmZvb2RmYWN0cy5vcmcvIj5Qcm9kdWN0ZXVyczwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9saW5rLm9wZW5mb29kZmFjdHMub3JnL25ld3NsZXR0ZXItZnIiPlMnYWJvbm5lciDDoCBub3RyZSBuZXdzbGV0dGVyPC9hPjwvbGk+CgkJCQkJCQkJPC91bD4KCQkJCQkJCTwvZGl2PgoKCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZm9vdGVyPgoJCQoKCTwvZGl2PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9tb2Rlcm5penIuanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2pxdWVyeS5qcyIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvanF1ZXJ5LXVpLmpzIiBkYXRhLWJhc2UtbGF5b3V0PSJ0cnVlIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9oYy1zdGlja3kuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2Rpc3BsYXkuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L3N0aWtlbGVtLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9zY3JvbGxOYXYuanMiPjwvc2NyaXB0PgogIAoKPHNjcmlwdD4KJChmdW5jdGlvbigpIHsKbGV0IG9UYWJsZSA9ICQoJyN0YWdzdGFibGUnKS5EYXRhVGFibGUoewoJbGFuZ3VhZ2U6IHsKCQlzZWFyY2g6ICJSZWNoZXJjaGUgOiIsCgkJaW5mbzogIl9UT1RBTF8gw6l0YXRzIiwKCQlpbmZvRmlsdGVyZWQ6ICIgLSBwYXJtaSBfTUFYXyIKCX0sCglwYWdpbmc6IGZhbHNlLAoJb3JkZXI6IFtbIDEsICJkZXNjIiBdXSwKCWNvbHVtbnM6IFsKCQludWxsLAoJCXsic2VhcmNoYWJsZSI6IGZhbHNlfSAsIHsic2VhcmNoYWJsZSI6IGZhbHNlfQoJXQp9KTsKCgp9KTsKPC9zY3JpcHQ+CgoKCjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvZm91bmRhdGlvbi5qcyIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvanF1ZXJ5LmNvb2tpZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3Qvc2VsZWN0Mi5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kYXRhdGFibGVzLm1pbi5qcyI+PC9zY3JpcHQ+Cgo8c2NyaXB0PgokKGRvY3VtZW50KS5mb3VuZGF0aW9uKHsKCWVxdWFsaXplciA6IHsKCQllcXVhbGl6ZV9vbl9zdGFjazogdHJ1ZQoJfSwKCWFjY29yZGlvbjogewoJCWNhbGxiYWNrIDogZnVuY3Rpb24gKGFjY29yZGlvbikgewoJCQkkKGRvY3VtZW50KS5mb3VuZGF0aW9uKCdlcXVhbGl6ZXInLCAncmVmbG93Jyk7CgkJfQoJfQp9KTsKCjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgp7CgkiQGNvbnRleHQiIDogImh0dHBzOi8vc2NoZW1hLm9yZyIsCgkiQHR5cGUiIDogIldlYlNpdGUiLAoJIm5hbWUiIDogIk9wZW4gQmVhdXR5IEZhY3RzIiwKCSJ1cmwiIDogImh0dHBzOi8vZnIub3BlbmJlYXV0eWZhY3RzLm9yZyIsCgkicG90ZW50aWFsQWN0aW9uIjogewoJCSJAdHlwZSI6ICJTZWFyY2hBY3Rpb24iLAoJCSJ0YXJnZXQiOiAiaHR0cHM6Ly9mci5vcGVuYmVhdXR5ZmFjdHMub3JnL2NnaS9zZWFyY2gucGw/c2VhcmNoX3Rlcm1zPT97c2VhcmNoX3Rlcm1fc3RyaW5nfSIsCgkJInF1ZXJ5LWlucHV0IjogInJlcXVpcmVkIG5hbWU9c2VhcmNoX3Rlcm1fc3RyaW5nIgoJfQp9Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgp7CgkiQGNvbnRleHQiOiAiaHR0cHM6Ly9zY2hlbWEub3JnLyIsCgkiQHR5cGUiOiAiT3JnYW5pemF0aW9uIiwKCSJ1cmwiOiAiaHR0cHM6Ly9mci5vcGVuYmVhdXR5ZmFjdHMub3JnIiwKCSJsb2dvIjogImh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL29iZi1sb2dvLXZlcnRpY2FsLWxpZ2h0LnN2ZyIsCgkibmFtZSI6ICJPcGVuIEJlYXV0eSBGYWN0cyIsCgkic2FtZUFzIiA6IFsiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL29wZW5mb29kZmFjdHM/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWIiLCAiaHR0cHM6Ly94LmNvbS9PcGVuRm9vZEZhY3RzIl0KfQo8L3NjcmlwdD4KCgoKCgo8L2JvZHk+CjwvaHRtbD4KCjwhLS0gZGF0YV9kZWJ1ZzogZGF0YV9kZWJ1ZyBzdGFydApwbGF0Zm9ybTogcHVibGljCmNhbl91c2VfY2FjaGU6IDEKY2FjaGVfaGl0Ci0tPgoKPCEtLSBlbmQgdGVtcGxhdGVzL3dlYi9jb21tb24vc2l0ZV9sYXlvdXQudHQuaHRtbCAtLT4K
47
+ recorded_at: Mon, 29 Sep 2025 14:07:15 GMT
48
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,99 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://world.openbeautyfacts.org/brand/sedapoux/1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 301
19
+ message: Moved Permanently
20
+ headers:
21
+ Access-Control-Allow-Headers:
22
+ - DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,If-None-Match,Authorization
23
+ Access-Control-Allow-Methods:
24
+ - HEAD, GET, PATCH, POST, PUT, OPTIONS
25
+ Access-Control-Allow-Origin:
26
+ - "*"
27
+ Access-Control-Expose-Headers:
28
+ - Content-Length,Content-Range
29
+ Connection:
30
+ - close
31
+ Content-Type:
32
+ - text/html; charset=iso-8859-1
33
+ Date:
34
+ - Mon, 29 Sep 2025 14:07:22 GMT
35
+ Location:
36
+ - "/facets/brands/sedapoux"
37
+ Server:
38
+ - nginx/1.18.0
39
+ Transfer-Encoding:
40
+ - chunked
41
+ body:
42
+ encoding: UTF-8
43
+ string: |
44
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
45
+ <html><head>
46
+ <title>301 Moved Permanently</title>
47
+ </head><body>
48
+ <h1>Moved Permanently</h1>
49
+ <p>The document has moved <a href="/facets/brands/sedapoux">here</a>.</p>
50
+ <hr>
51
+ <address>Apache/2.4.61 (Debian) Server at world.openbeautyfacts.org Port 80</address>
52
+ </body></html>
53
+ recorded_at: Mon, 29 Sep 2025 14:07:22 GMT
54
+ - request:
55
+ method: get
56
+ uri: https://world.openbeautyfacts.org/facets/brands/sedapoux
57
+ body:
58
+ encoding: US-ASCII
59
+ string: ''
60
+ headers:
61
+ Accept-Encoding:
62
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
63
+ Accept:
64
+ - "*/*"
65
+ User-Agent:
66
+ - Ruby
67
+ response:
68
+ status:
69
+ code: 200
70
+ message: OK
71
+ headers:
72
+ Connection:
73
+ - close
74
+ Content-Type:
75
+ - text/html; charset=UTF-8
76
+ Date:
77
+ - Mon, 29 Sep 2025 14:07:22 GMT
78
+ Expires:
79
+ - Sun, 28 Sep 2025 14:07:22 GMT
80
+ Server:
81
+ - nginx/1.18.0
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Vary:
85
+ - Accept-Encoding
86
+ X-Content-Type-Options:
87
+ - nosniff
88
+ X-Download-Options:
89
+ - noopen
90
+ X-Request-Id:
91
+ - lxsixJxEP1wEsg07
92
+ X-Xss-Protection:
93
+ - 1; mode=block
94
+ body:
95
+ encoding: ASCII-8BIT
96
+ string: !binary |-
97
+ PCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9zaXRlX2xheW91dC50dC5odG1sIC0tPgoKPCFkb2N0eXBlIGh0bWw+CjxodG1sIGNsYXNzPSJuby1qcyIgbGFuZz0iZW4iIGRhdGEtc2VydmVyZG9tYWluPSJvcGVuYmVhdXR5ZmFjdHMub3JnIiBkaXI9Imx0ciI+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPHRpdGxlPnNlZGFwb3V4PC90aXRsZT4KICAgIAogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgoJPG1ldGEgcHJvcGVydHk9ImZiOmFwcF9pZCIgY29udGVudD0iMjE5MzMxMzgxNTE4MDQxIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJmb29kIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0ic2VkYXBvdXgiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL2ZhY2V0cy9icmFuZHMvZW46c2VkYXBvdXgvMSI+CiAgICAKICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9zdGF0aWMub3BlbmZvb2RmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL29iZi1sb2dvLXZlcnRpY2FsLXdoaXRlLXNvY2lhbC1tZWRpYS1wcmV2aWV3LnBuZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkEgY29sbGFib3JhdGl2ZSwgZnJlZSBhbmQgb3BlbiBkYXRhYmFzZSBvZiBpbmdyZWRpZW50cywgYW5kIGluZm9ybWF0aW9uIG9uIGNvc21ldGljIHByb2R1Y3RzIGZyb20gYXJvdW5kIHRoZSB3b3JsZCI+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2FwcGxlLXRvdWNoLWljb24ucG5nIj4KPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9mYXZpY29uLTMyeDMyLnBuZyI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTZ4MTYiIGhyZWY9Ii9pbWFnZXMvZmF2aWNvbi9vYmYvZmF2aWNvbi0xNngxNi5wbmciPgo8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL3NpdGUud2VibWFuaWZlc3QiPgo8bGluayByZWw9Im1hc2staWNvbiIgaHJlZj0iL2ltYWdlcy9mYXZpY29uL29iZi9zYWZhcmktcGlubmVkLXRhYi5zdmciIGNvbG9yPSIjNWJiYWQ1Ij4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvaW1hZ2VzL2Zhdmljb24vb2JmL2Zhdmljb24uaWNvIj4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3IiIGNvbnRlbnQ9IiMyYjU3OTciPgo8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLWNvbmZpZyIgY29udGVudD0iL2ltYWdlcy9mYXZpY29uL29iZi9icm93c2VyY29uZmlnLnhtbCI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KCgk8bWV0YSBuYW1lPSJhcHBsZS1pdHVuZXMtYXBwIiBjb250ZW50PSJhcHAtaWQ9NTg4Nzk3OTQ4Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvZmFjZXRzL2JyYW5kcy9lbjpzZWRhcG91eC8xIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9jc3MvZGlzdC9hcHAtbHRyLmNzcz92PTE3NTc2NTgxMDIiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2Nzcy9kaXN0L2pxdWVyeXVpL3RoZW1lcy9iYXNlL2pxdWVyeS11aS5jc3MiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2Nzcy9kaXN0L3NlbGVjdDIubWluLmNzcyI+CiAgICA8bGluayByZWw9InNlYXJjaCIgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL2NnaS9vcGVuc2VhcmNoLnBsIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiB0aXRsZT0iT3BlbiBCZWF1dHkgRmFjdHMiPgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L29mZi13ZWJjb21wb25lbnRzLmJ1bmRsZWQuanMiPjwvc2NyaXB0PgoJCiAgICA8c3R5bGUgbWVkaWE9ImFsbCI+CiAgICAgICAgLnNob3ctd2hlbi1uby1hY2Nlc3MtdG8tcHJvZHVjZXJzLXBsYXRmb3JtIHtkaXNwbGF5Om5vbmV9Ci5zaG93LXdoZW4tbG9nZ2VkLWluIHtkaXNwbGF5Om5vbmV9CgoJCQoJCS5iYWRnZS1jb250YWluZXJ7CgkJCW1hcmdpbjogMCBhdXRvOwoJCX0KCgkJLmJhZGdlLWNvbnRhaW5lciBpbWd7CgkJCW1hcmdpbjogNXB4OwoJCX0KCQlAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUzN3B4ICkgYW5kIChtaW4td2lkdGg6IDI4MHB4KSB7CgkJCS5iYWRnZS1jb250YWluZXJ7CgkJCQl3aWR0aDogMjgwcHg7CgkJCX0KCQl9CgkJQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNzlweCApewoJCQkuYmFkZ2UtY29udGFpbmVyewoJCQkJd2lkdGg6IDEzMHB4OwoJCQl9CgkJfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBjbGFzcz0icHJvZHVjdHNfcGFnZSI+CgoJPCEtLSBNYXRvbW8gLS0+CjxzY3JpcHQ+CiAgdmFyIF9wYXEgPSB3aW5kb3cuX3BhcSA9IHdpbmRvdy5fcGFxIHx8IFtdOwogIC8qIHRyYWNrZXIgbWV0aG9kcyBsaWtlICJzZXRDdXN0b21EaW1lbnNpb24iIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlICJ0cmFja1BhZ2VWaWV3IiAqLwogIF9wYXEucHVzaChbInNldERvY3VtZW50VGl0bGUiLCBkb2N1bWVudC5kb21haW4gKyAiLyIgKyBkb2N1bWVudC50aXRsZV0pOwogIF9wYXEucHVzaChbInNldENvb2tpZURvbWFpbiIsICIqLm9wZW5iZWF1dHlmYWN0cy5vcmciXSk7CiAgX3BhcS5wdXNoKFsic2V0RG9tYWlucyIsIFsiKi5vcGVuYmVhdXR5ZmFjdHMub3JnIl1dKTsKICBfcGFxLnB1c2goWyJzZXREb05vdFRyYWNrIiwgdHJ1ZV0pOwogIF9wYXEucHVzaChbImRpc2FibGVDb29raWVzIl0pOwogIF9wYXEucHVzaChbJ3RyYWNrUGFnZVZpZXcnXSk7CiAgX3BhcS5wdXNoKFsnZW5hYmxlTGlua1RyYWNraW5nJ10pOwogIChmdW5jdGlvbigpIHsKICAgIHZhciB1PSIvL2FuYWx5dGljcy5vcGVuZm9vZGZhY3RzLm9yZy8iOwogICAgX3BhcS5wdXNoKFsnc2V0VHJhY2tlclVybCcsIHUrJ21hdG9tby5waHAnXSk7CiAgICBfcGFxLnB1c2goWydzZXRTaXRlSWQnLCAnMTAnXSk7CiAgICB2YXIgZD1kb2N1bWVudCwgZz1kLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLCBzPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgZy5hc3luYz10cnVlOyBnLnNyYz11KydtYXRvbW8uanMnOyBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcscyk7CiAgfSkoKTsKPC9zY3JpcHQ+Cjxub3NjcmlwdD48cD48aW1nIHNyYz0iLy9hbmFseXRpY3Mub3BlbmZvb2RmYWN0cy5vcmcvbWF0b21vLnBocD9pZHNpdGU9MTAmYW1wO3JlYz0xIiBzdHlsZT0iYm9yZGVyOjA7IiBhbHQ9IiIgLz48L3A+PC9ub3NjcmlwdD4KCgoJPG9mZi13ZWJjb21wb25lbnRzLWNvbmZpZ3VyYXRpb24KICBsYW5ndWFnZS1jb2RlPSJlbiIKICBjb3VudHJ5LWNvZGU9IndvcmxkIgogIHJvYm90b2ZmLWNvbmZpZ3VyYXRpb249J3sKICAgICJhcGlVcmwiOiAiaHR0cHM6Ly9yb2JvdG9mZi5vcGVuZm9vZGZhY3RzLm9yZy9hcGkvdjEiLAogICAgImltZ1VybCI6ICJodHRwczovL2ltYWdlcy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9wcm9kdWN0cyIKICB9JwogIAogIG9wZW5mb29kZmFjdHMtYXBpLXVybD0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnIgogIGFzc2V0cy1pbWFnZXMtcGF0aD0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9jc3MvZGlzdC9pbWFnZXMiCiAgPjwvb2ZmLXdlYmNvbXBvbmVudHMtY29uZmlndXJhdGlvbj4KCQoJCgk8ZGl2IGNsYXNzPSJza2lwIj48YSBocmVmPSIjY29udGVudCIgdGFiaW5kZXg9IjAiPlNraXAgdG8gQ29udGVudDwvYT48L2Rpdj4KCQoKCTxkaXYgaWQ9ImJhcmNvZGUtc2Nhbm5lci1tb2RhbCIgY2xhc3M9Im1vZGFsIGlzX2hpZGRlbiI+CiAgPGRpdiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AiPjwvZGl2PgogIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPgogICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgPHNwYW4+PGgyPlNjYW4gYSBwcm9kdWN0PGgyPjwvc3Bhbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9kYWwtY2xvc2UtYnV0dG9uIj4mdGltZXM7PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXY+CiAgICAgIDxiYXJjb2RlLXNjYW5uZXIgaWQ9ImJhcmNvZGUtc2Nhbm5lciI+PC9iYXJjb2RlLXNjYW5uZXI+CiAgICA8L2Rpdj4KICAgIDxkaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgPgogICAgICA8bGFiZWwgZm9yPSJiYXJjb2RlLW1vZGFsLWlucHV0Ij5PciBlbnRlciBiYXJjb2RlIG1hbnVhbGx5PC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iYmFyY29kZS1tb2RhbC1ncm91cCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJiYXJjb2RlLW1vZGFsLWlucHV0IiBjbGFzcz0iYmFyY29kZS1tb2RhbC1pbnB1dCIgaW5wdXRtb2RlPSJudW1lcmljIiBwYXR0ZXJuPSJcZCoiIC8+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFyY29kZS1tb2RhbC1idXR0b24gYnV0dG9uIiBpZD0iYmFyY29kZS1tb2RhbC1idXR0b24iIGRpc2FibGVkPlNjYW48L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2JhcmNvZGUtc2Nhbm5lci5qcyI+PC9zY3JpcHQ+CgoKCTxkaXYgaWQ9InBhZ2UiPgoJCQoJCTxkaXYgY2xhc3M9InVwcGVyLW5hdiBjb250YWluLXRvLWdyaWQiICBpZD0idXBOYXYiPgoJCQk8bmF2IGNsYXNzPSJ0b3AtYmFyICIgZGF0YS10b3BiYXIgcm9sZT0ibmF2aWdhdGlvbiI+CgkJCQkKCQkJCTxzZWN0aW9uIGNsYXNzPSJ0b3AtYmFyLXNlY3Rpb24iPgoJCQkJCQoJCQkJCTwhLS0gTGVmdCBOYXYgU2VjdGlvbiAtLT4KCQkJCQk8dWwgY2xhc3M9ImxlZnQiPgoKCQkJCQkJPGxpIGNsYXNzPSJoYXMtZHJvcGRvd24iPgoJCQkJCQkJPGEgaWQ9Im1lbnVfbGluayI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIj4KCQkJCQkJCQkJbWVudQoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJCTx1bCBjbGFzcz0iZHJvcGRvd24iPgkJCQkKCQkJCQkJCQkKCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9kaXNjb3ZlciI+RGlzY292ZXI8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9jb250cmlidXRlIj5Db250cmlidXRlPC9hPjwvbGk+CgkJCQkJCQkJCTxsaSBjbGFzcz0iZGl2aWRlciI+PC9saT4KCQkJCQkJCQkJPGxpPjxsYWJlbD5BZGQgcHJvZHVjdHM8L2xhYmVsPjwvbGk+CiAgICAgICAgICAgICAgICA8IS0tIEZvciByZWZlcmVuY2U6IGdldF90aGVfYXBwX2xpbmtfb2ZmIiA9IC9vcGVuLWZvb2QtZmFjdHMtbW9iaWxlLWFwcCIgLS0+CgkJCQkJCQkJCTxsaT48YSBocmVmPSIvb3Blbi1iZWF1dHktZmFjdHMtbW9iaWxlLWFwcD91dG1fc291cmNlPW9mZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249cHJvX3BsYXRmb3JtX2luc3RhbGxfdGhlX2FwcF90b19hZGRfcHJvZHVjdHNfZW4iPkluc3RhbGwgdGhlIGFwcCB0byBhZGQgcHJvZHVjdHM8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii9jZ2kvcHJvZHVjdC5wbD90eXBlPXNlYXJjaF9vcl9hZGQmYWN0aW9uPWRpc3BsYXkiPkFkZCBhIHByb2R1Y3Q8L2E+PC9saT4KCQkJCQkJCQkKCgkJCQkJCQkJPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgoJCQkJCQkJCTxsaT48bGFiZWw+U2VhcmNoIGFuZCBhbmFseXplIHByb2R1Y3RzPC9sYWJlbD48L2xpPgoKCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2VhcmNoLnBsIj5BZHZhbmNlZCBzZWFyY2g8L2E+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2VhcmNoLnBsP2dyYXBoPTEiPkdyYXBocyBhbmQgbWFwczwvYT4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCQoJCQkJCQkJPC91bD4KCQkJCQkJPC9saT4KCQkJCQkJCgkJCQkJCTxsaT4KCQkJCQkJCTx1bCBjbGFzcz0iY291bnRyeV9sYW5ndWFnZV9zZWxlY3Rpb24iPgoJCQkJCQkJCTxsaSBjbGFzcz0iaGFzLWZvcm0gaGFzLWRyb3Bkb3duIiBpZD0ic2VsZWN0X2NvdW50cnlfbGkiPgoJCQkJCQkJCQk8c2VsZWN0IGlkPSJzZWxlY3RfY291bnRyeSIgc3R5bGU9IndpZHRoOjEwMCUiIGRhdGEtcGxhY2Vob2xkZXI9IkNvdW50cnkiPgoJCQkJCQkJCQkJPG9wdGlvbj48L29wdGlvbj4KCQkJCQkJCQkJPC9zZWxlY3Q+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGkgY2xhc3M9Imhhcy1kcm9wZG93biI+CgkJCQkJCQkJCTxhIGhyZWY9Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZy8iPkVuZ2xpc2g8L2E+CgoJCQkJCQkJCQk8dWwgY2xhc3M9ImRyb3Bkb3duIj4KCQkJCQkJCQkJCQoJCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQk8L3VsPgoJCQkJCQk8L2xpPgoJCQkJCTwvdWw+CgoKCQkJCQk8IS0tIFJpZ2h0IE5hdiBTZWN0aW9uIC0tPgoJCQkJCQoJCQkJCTx1bCBjbGFzcz0icmlnaHQiPgoJCQkJCQkKCQkJCQkJCTxsaSBjbGFzcz0iaC1zcGFjZS10aW55IGhhcy1mb3JtIj4KCQkJCQkJCQk8YSBocmVmPSIvY2dpL3Nlc3Npb24ucGwiIGNsYXNzPSJyb3VuZCBidXR0b24gc2Vjb25kYXJ5Ij4KCQkJCQkJCQkJPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIG1hdGVyaWFsLXN5bWJvbHMtYnV0dG9uIj5hY2NvdW50X2NpcmNsZTwvc3Bhbj4KCQkJCQkJCQkJU2lnbiBpbgoJCQkJCQkJCTwvYT4KCQkJCQkJCTwvbGk+CgkJCQkJCQoJCQkJCTwvdWw+CgkJCQk8L3NlY3Rpb24+CgkJCTwvbmF2PgoJCTwvZGl2PgoJCQoKCQk8ZGl2IGlkPSJtYWluX2NvbnRhaW5lciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlIiBjbGFzcz0iYmxvY2tfbGF0dGUiPgoJCQoJCQoJCTxkaXYgY2xhc3M9InRvcGJhcnN0aWNreSI+CgkJCTxkaXYgY2xhc3M9ImNvbnRhaW4tdG8tZ3JpZCAiIGlkPSJvZmZOYXYiID4KCQkJCTxuYXYgY2xhc3M9InRvcC1iYXIiIGRhdGEtdG9wYmFyIHJvbGU9Im5hdmlnYXRpb24iID4KCgkJCQkJPHVsIGNsYXNzPSJ0aXRsZS1hcmVhIj4KCQkJCQkJPGxpIGNsYXNzPSJuYW1lIj4KCQkJCQkJCTxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDoyOTJweDsiPgoJCQkJCQkJCTxhIGhyZWY9Ii8iPgoJCQkJCQkJCTxpbWcgaWQ9ImxvZ28iIHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvbG9nb3Mvb2JmLWxvZ28taG9yaXpvbnRhbC1saWdodC5zdmciIGFsdD0iT3BlbiBCZWF1dHkgRmFjdHMiIHN0eWxlPSJtYXJnaW46OHB4O2hlaWdodDo0OHB4O3dpZHRoOmF1dG87Ij4KCQkJCQkJCQkKCQkJCQkJCTwvYT4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2xpPgoJCQkJCTwvdWw+CgoJCQkJCQoJCQkJCQoJCQkJCTxzZWN0aW9uIGNsYXNzPSJ0b3AtYmFyLXNlY3Rpb24iPgoJCQkJCQoJCQkJCQk8dWwgY2xhc3M9ImxlZnQgc21hbGwtNCI+CgkJCQkJCQk8bGkgY2xhc3M9InNlYXJjaC1saSI+CgkJCQkJCQkKCQkJCQkJCQk8Zm9ybSBhY3Rpb249Ii9jZ2kvc2VhcmNoLnBsIj4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPjxkaXYgY2xhc3M9InNtYWxsLTEyIj4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJyb3cgY29sbGFwc2UgcG9zdGZpeC1yb3VuZCI+CgkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbnMiPgoJCQkJCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBmb3IgYSBwcm9kdWN0IiBuYW1lPSJzZWFyY2hfdGVybXMiIHZhbHVlPSIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlIj4KCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlYXJjaF9zaW1wbGUiIHZhbHVlPSIxIiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQk8aW5wdXQgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icHJvY2VzcyIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbnMgcG9zdGZpeC1idXR0b24td3JhcHBlciI+CgkJCQkJCQkJCTxidXR0b24gdHlwZT0ic3VibWl0IiB0aXRsZT0iU2VhcmNoIiBjbGFzcz0iYnV0dG9uIHBvc3RmaXgiIHN0eWxlPSJsaW5lLWhlaWdodDpub3JtYWwiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPjwvYnV0dG9uPgoJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sdW1ucyBwb3N0Zml4LWJ1dHRvbi13cmFwcGVyIGlzX2hpZGRlbiI+CiAgPGJ1dHRvbgogICAgdHlwZT0iYnV0dG9uIgogICAgdGl0bGU9IlNjYW4gYSBwcm9kdWN0IgogICAgY2xhc3M9ImJ1dHRvbiBiYXJjb2RlLXNjYW5uZXItYnV0dG9uIgogICAgaWQ9ImJhcmNvZGUtc2Nhbm5lci1idXR0b24iCiAgPgogICAgPHN2ZyBzdHlsZT0id2lkdGg6MjRweDtoZWlnaHQ6MjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0yLDZINFYxOEgyVjZNNSw2SDZWMThINVY2TTcsNkgxMFYxOEg3VjZNMTEsNkgxMlYxOEgxMVY2TTE0LDZIMTZWMThIMTRWNk0xNyw2SDIwVjE4SDE3VjZNMjEsNkgyMlYxOEgyMVY2WiIvPjwvc3ZnPgogIDwvYnV0dG9uPgoKICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2JhcmNvZGUtc2Nhbm5lci1idXR0b24uanMiPjwvc2NyaXB0Pgo8L2Rpdj4KCgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPC9kaXY+PC9kaXY+CgkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJPC9saT4KCQkJCQkJPC91bD4KCQkJCQk8dWwgY2xhc3M9InNlYXJjaF9hbmRfbGlua3MiPgoJCQkJCQk8bGk+PGEgaHJlZj0iL2Rpc2NvdmVyIiBjbGFzcz0idG9wLWJhci1saW5rcyI+RGlzY292ZXI8L2E+PC9saT4KCQkJCQkJPGxpPjxhIGhyZWY9Ii9jb250cmlidXRlIiBjbGFzcz0idG9wLWJhci1saW5rcyI+Q29udHJpYnV0ZTwvYT48L2xpPgoJCQkJCQk8bGkgY2xhc3M9InNob3ctZm9yLXhsYXJnZS11cCI+PGEgaHJlZj0iaHR0cHM6Ly93b3JsZC5wcm8ub3BlbmZvb2RmYWN0cy5vcmcvIiBjbGFzcz0idG9wLWJhci1saW5rcyI+UHJvZHVjZXJzPC9hPjwvbGk+CgkJCQkJCTxsaSBjbGFzcz0iZmxleC1ncmlkIGdldGFwcCI+PGEgaHJlZj0iL29wZW4tYmVhdXR5LWZhY3RzLW1vYmlsZS1hcHA/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPXNlYXJjaF9hbmRfbGlua3NfcHJvbW9fZW4iIGNsYXNzPSJidXR0b25iYXIgYnV0dG9uIiBzdHlsZT0idG9wOjA7Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNiAxSDhDNi4zNCAxIDUgMi4zNCA1IDR2MTZjMCAxLjY2IDEuMzQgMyAzIDNoOGMxLjY2IDAgMy0xLjM0IDMtM1Y0YzAtMS42Ni0xLjM0LTMtMy0zem0tMiAyMGgtNHYtMWg0djF6bTMuMjUtM0g2Ljc1VjRoMTAuNXYxNHoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+IDxzcGFuIGNsYXNzPSJidC10ZXh0Ij5HZXQgdGhlIGFwcDwvc3Bhbj48L2E+PC9saT4KCQkJCTwhLS0gRm9yIHJlZmVyZW5jZTogZ2V0X3RoZV9hcHBfbGlua19vZmYiID0gL29wZW4tZm9vZC1mYWN0cy1tb2JpbGUtYXBwIiAtLT4KICAgICAgICAgIDwvdWw+CgkJCQkJPC9zZWN0aW9uPgoJCQkJCQoJCQkJPC9uYXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoKCQoJCgkJPG5hdiBjbGFzcz0idGFiLWJhciBoaWRlIj4KCQkJPGRpdiBjbGFzcz0ibGVmdC1zbWFsbCI+CgkJCQk8YSBocmVmPSIjaWRPZkxlZnRNZW51IiByb2xlPSJidXR0b24iIGFyaWEtY29udHJvbHM9ImlkT2ZMZWZ0TWVudSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGNsYXNzPSJsZWZ0LW9mZi1jYW52YXMtdG9nZ2xlIGJ1dHRvbiBwb3N0Zml4IGFub255bW91cyI+CgkJCQk8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0zIDV2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjExIDAtMiAuOS0yIDJ6bTEyIDRjMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtMyAzIDEuMzQgMyAzem0tOSA4YzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMXYxSDZ2LTF6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ibWlkZGxlIHRhYi1iYXItc2VjdGlvbiI+CgkJCQk8Zm9ybSBhY3Rpb249Ii9jZ2kvc2VhcmNoLnBsIj4KCQkJCQk8ZGl2IGNsYXNzPSJyb3cgY29sbGFwc2UiPgoJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC04IGNvbHVtbnMiPgoJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yIGEgcHJvZHVjdCIgbmFtZT0ic2VhcmNoX3Rlcm1zIj4KCQkJCQkJCTxpbnB1dCBuYW1lPSJzZWFyY2hfc2ltcGxlIiB2YWx1ZT0iMSIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCTxpbnB1dCBuYW1lPSJhY3Rpb24iIHZhbHVlPSJwcm9jZXNzIiB0eXBlPSJoaWRkZW4iPgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMiBjb2x1bW5zIj4KCQkJCQkJCTxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIHBvc3RmaXgiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGNsYXNzPSJpY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPjwvYnV0dG9uPgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMiBjb2x1bW5zIj4KCQkJCQkJCTxhIGhyZWY9Ii9jZ2kvc2VhcmNoLnBsIiB0aXRsZT0iQWR2YW5jZWQgc2VhcmNoIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0iaWNvbiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Imljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz48L2E+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9mb3JtPgoJCQk8L2Rpdj4KCQk8L25hdj4KCQkKCgkJPGRpdiBpZD0iY29udGVudCIgY2xhc3M9Im9mZi1jYW52YXMtd3JhcCBibG9ja19sYXR0ZSIgZGF0YS1vZmZjYW52YXM+CgkJCTxkaXYgY2xhc3M9ImlubmVyLXdyYXAiPgoJCQkKCQkJCTxhIGNsYXNzPSJleGl0LW9mZi1jYW52YXMiPjwvYT4KCgkJCQkKCQkJCQoJCQkJPCEtLSBmdWxsIHdpZHRoIGJhbm5lciBvbiBtb2JpbGUgLS0+CgkJCQkKCQkJCQoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9Im1haW4gYmxvY2tfbGlnaHQiPgoJCQkJCTxkaXYgaWQ9Im1haW5fY29sdW1uIj4KCgkJCQkJCQoJCQkJCQkKCQkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoKCjwhLS0gRG9uYXRpb24gYmFubmVyIEAgZm9vdGVyIC0tPgoKCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvY29tbW9uL2luY2x1ZGVzL2RvbmF0ZV9iYW5uZXIudHQuaHRtbCAtLT4KCgkJCQkJCQkJCgoKPHNlY3Rpb24gaWQ9ImRvbmF0aW9uLWJhbm5lci10b3AiIGNsYXNzPSJyb3ciIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZSI+CiAgCiAgPGEgaHJlZj0iaHR0cHM6Ly9jb25uZWN0Lm9wZW5mb29kZmFjdHMub3JnL2V2ZW50L29wZW4tZm9vZC1mYWN0cy1kYXlzLTIwMjUtMzAvcmVnaXN0ZXIiPgogICAgPGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9kb25hdGlvbi1iYW5uZXJzL29mZi1kYXlzLTIwMjUtZW4uMTI4MHgxOTEucG5nIgogICAgICAgYWx0PSJPcGVuIEZvb2QgRmFjdHMgRGF5cyAyMDI1IgogICAgICAgd2lkdGg9IjEyODAiCiAgICAgICBoZWlnaHQ9IjE5MSIgY2xhc3M9InNob3ctZm9yLW1lZGl1bS11cCIvPgogICAgPGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9kb25hdGlvbi1iYW5uZXJzL29mZi1kYXlzLTIwMjUtZW4ubW9iaWxlLnBuZyIKICAgICAgIGFsdD0iT3BlbiBGb29kIEZhY3RzIERheXMgMjAyNSIKICAgICAgIHdpZHRoPSIxMjgwIgogICAgICAgaGVpZ2h0PSI0NzciIGNsYXNzPSJzaG93LWZvci1zbWFsbC1vbmx5Ii8+ICAgIAogIDwvYT4KICAKCgogIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lcl9fY2xvc2UiPgogICAgPGJ1dHRvbiBpZD0iaGlkZS1kb25hdGUtYmFubmVyIiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMgbW9kZXN0IiBvbmNsaWNrPSJEb25hdGlvbkJ1dHRvbigpOyIgb25rZXlwcmVzcz0iRG9uYXRpb25CdXR0b24oKTsiPmNsb3NlPC9idXR0b24+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzY3JpcHQ+CiAgbGV0IGQgPSBuZXcgRGF0ZSgpOwogIGxldCBiYW5uZXJJRCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb25hdGlvbi1iYW5uZXItdG9wJyk7CiAgbGV0IGdldERvbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4uc3BsaXQoJy4nKTsKCiAgZnVuY3Rpb24gc2V0QmFubmVyQ29va2llKGJjbmFtZSwgYmN2YWwsIGJjZXhkYXlzKSB7CiAgICBkLnNldFRpbWUoZC5nZXRUaW1lKCkgKyAoYmNleGRheXMqNjAqNjAqMjQqMTAwMCkpOwogICAgbGV0IGV4cGlyZXMgPSAnZXhwaXJlcz0nICsgZC50b1VUQ1N0cmluZygpOwogICAgLy8gQXBwbHkgY29va2llIGZvciBldmVyeSBkb21haW4gY29udGFpbnMgb3Blbi4uLmZhY3RzCiAgICBsZXQgZG9tYWluID0gJ2RvbWFpbj0uJyArIGdldERvbWFpbi5zbGljZSgxKS5qb2luKCcuJyk7CiAgICBkb2N1bWVudC5jb29raWUgPSBiY25hbWUgKyAnPScgKyBiY3ZhbCArICc7JyArIGV4cGlyZXMgKyAnOycgKyBkb21haW4gKyAnO1NhbWVTaXRlPU5vbmU7U2VjdXJlO3BhdGg9Lyc7CiAgfQoKICBmdW5jdGlvbiBnZXRCYW5uZXJDb29raWUoYmNuYW1lKSB7CiAgICBjb25zdCBuYW1lID0gYmNuYW1lICsgJz0nOwogICAgY29uc3QgZGVjb2RlZENvb2tpZXMgPSBkZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llKTsKICAgIGNvbnN0IGNvb2tpZXMgPSBkZWNvZGVkQ29va2llcy5zcGxpdCgnOycpOwogICAgZm9yIChjb25zdCBjb29raWUgb2YgY29va2llcykgewogICAgICBsZXQgYyA9IGNvb2tpZTsKICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09ICcgJykgeyBjID0gYy5zdWJzdHJpbmcoMSk7IH0KICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7IHJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOyB9CiAgICB9CgogICAgcmV0dXJuICcnOwogIH0KCiAgZnVuY3Rpb24gRG9uYXRpb25CdXR0b24oKSB7CiAgICBzZXRCYW5uZXJDb29raWUoJ29mZl9kYXlzXzIwMjUnLCAxLCAxODApOwogICAgYmFubmVySUQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB9CgogIGlmIChnZXRCYW5uZXJDb29raWUoJ29mZl9kYXlzXzIwMjUnKSAhPT0gJycpIHsKICAgIGJhbm5lcklELnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgfSBlbHNlIHsKICAgIGJhbm5lcklELnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgfQo8L3NjcmlwdD4KCgoJCQkJCQkJCgkJCQkJCQoJCQkJCQkKICAgICAgICAgICAgCQkJCgkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJPCEtLSBzb21lIGxpc3RzIG9mIHByb2R1Y3RzIGZvciBmYWNldHMgKGUuZy4gYnJhbmRzKSBoYXZlIG1pY3JvZm9ybWF0cyBkYXRhIC0tPgoJCQkJCQkJCTxkaXYgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwczovL3NjaGVtYS5vcmcvQnJhbmQiPgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgY29sdW1uIHYtc3BhY2Utc2hvcnQiPgoJCQkJCQkJCQkJCTxoMSBpdGVtcHJvcD0ibmFtZSI+c2VkYXBvdXg8L2gxPgoJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCSAgPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL3BhZ2VzL3RhZy90YWcudHQuaHRtbCAtLT4KPGRpdiBjbGFzcz0idGFnIj4KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFyZ2UtNiBjb2x1bW4iPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnX25hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZhY2V0cy9icmFuZHMiPkJyYW5kPC9hPjoKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2JyYW5kcy9zZWRhcG91eCI+U2VkYXBvdXg8L2E+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgIAoKICAgICAgICAgICAgCgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgPC9kaXY+CjwvZGl2PgoKPCEtLSBlbmQgdGVtcGxhdGVzL3dlYi9wYWdlcy90YWcvdGFnLnR0Lmh0bWwgLS0+CjwhLS0gc3RhcnQgdGVtcGxhdGVzL3dlYi9jb21tb24vaW5jbHVkZXMvbGlzdF9vZl9wcm9kdWN0cy50dC5odG1sIC0tPiAKCjxkaXYgY2xhc3M9InJvdyI+CiAgPGRpdiBjbGFzcz0ic21hbGwtMTIgY29sdW1ucyI+IAogICAgCiAgICAKICAgICAgCiAgICAgIAogICAgICAKICAgICAgPCEtLSBkaXNwbGF5IGEgcGVybWFsaW5rIGlmIHRoZSB1cmwgaXMgZm9yIGEgc2NyaXB0IHRoYXQgbWF5IGhhdmUgUE9TVCBwYXJhbWV0ZXJzIC0tPgogICAgICAKICAgIAogICAgCiAgPC9kaXY+CjwvZGl2PgoKIAoKPGRpdiBjbGFzcz0iYmxvY2sgc2hvcnQgYmxvY2tfcmlzdHJldG8iPgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IGNsYXNzPSJzbWFsbC0xMiBjb2x1bW5zIGZpbHRlclByb2R1Y3RzIj4KICAgICAgPGRpdj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmlsdGVyUHJvZHVjdHNfX3Jlc3VsdHMiPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im1hdGVyaWFsLWljb25zIiBhcmlhLWhpZGRlbj0idHJ1ZSI+c2VhcmNoPC9zcGFuPgogICAgICAgICAgMSBwcm9kdWN0CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyUHJvZHVjdHNfX2J1dHRvbnMiPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8YnV0dG9uIGhyZWY9IiMiIGRhdGEtZHJvcGRvd249ImRyb3Bfc29ydCIgYXJpYS1jb250cm9scz0iZHJvcF9zb3J0IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgY2xhc3M9ImJ1dHRvbiByb3VuZCBkcm9wZG93biBzbWFsbCBzZWNvbmRhcnkgdW5tYXJnZWQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtaWNvbnMiPnN3YXBfdmVydDwvc3Bhbj4KICAgICAgICAgICAgUmVjZW50bHkgbW9kaWZpZWQgcHJvZHVjdHMKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPHVsIGlkPSJkcm9wX3NvcnQiIGRhdGEtZHJvcGRvd24tY29udGVudCBjbGFzcz0iZi1kcm9wZG93biIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2JyYW5kcy9zZWRhcG91eD9zb3J0X2J5PWNyZWF0ZWRfdCIgb25jbGljaz0iJC5jb29raWUoJ2xhc3Rfc29ydF9ieScsICdjcmVhdGVkX3QnLCB7IGV4cGlyZXM6IDE4MCwgcGF0aDogJy8nIH0pOyI+UmVjZW50bHkgYWRkZWQgcHJvZHVjdHM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICA8YSBocmVmPSIvZmFjZXRzL2JyYW5kcy9zZWRhcG91eD9zb3J0X2J5PWxhc3RfbW9kaWZpZWRfdCIgb25jbGljaz0iJC5jb29raWUoJ2xhc3Rfc29ydF9ieScsICdsYXN0X21vZGlmaWVkX3QnLCB7IGV4cGlyZXM6IDE4MCwgcGF0aDogJy8nIH0pOyI+UmVjZW50bHkgbW9kaWZpZWQgcHJvZHVjdHM8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgCiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJyb3ciPgoJPGRpdiBjbGFzcz0ic21hbGwtMTIgY29sdW1ucyI+CiAgICA8ZGl2IGlkPSJwcmVmZXJlbmNlc19zZWxlY3RlZCIgY2xhc3M9InNtYWxsLTEyIGZsZXgtZ3JpZCB2LXNwYWNlLXNob3J0IHYtYWxpZ24tY2VudGVyIGRpcmVjdGlvbi1yb3cgZnVsbC13aWR0aCB2LWFsaWduLWJldHdlZW4iPjwvZGl2PgogICAgPGRpdiBpZD0icHJlZmVyZW5jZXNfc2VsZWN0aW9uX2Zvcm0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCgkgCjxkaXYgY2xhc3M9InJvdyI+CjxkaXYgY2xhc3M9ImxhcmdlLTEyIGNvbHVtbnMiPgogICAgCiAgICA8ZGl2IGlkPSJzZWFyY2hfcmVzdWx0cyIgc3R5bGU9ImNsZWFyOmxlZnQ7Ij4KICAgICAgICA8dWwgY2xhc3M9InByb2R1Y3RzIj4KICAgIAogICAgCiAgICAKICAgICAgCiAgICAKICAgIAoJCTwvdWw+CiAgPC9kaXY+CiAgICAgIAogICAgCgkKICA8L2Rpdj4KPC9kaXY+CgoKPCEtLSBlbmQgdGVtcGxhdGVzL3dlYi9jb21tb24vaW5jbHVkZXMvbGlzdF9vZl9wcm9kdWN0cy50dC5odG1sIC0tPgoKCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8L2Rpdj4KCgkJCgkJPGZvb3Rlcj4KCQkJPGRpdiBjbGFzcz0iYmxvY2tfbGlnaHQgYmctd2hpdGUiIGlkPSJpbnN0YWxsX3RoZV9hcHBfYmxvY2siPgoJCQkJPGRpdiBjbGFzcz0icm93Ij4KCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0xMiBmbGV4LWdyaWQgdi1zcGFjZS1zaG9ydCB2LWFsaWduLWNlbnRlciBkaXJlY3Rpb24tcm93IGgtc3BhY2UtdGlueSI+CgkJCQkJCTxkaXYgY2xhc3M9ImNlbGwgc21hbGwtMTAwIG1lZGl1bS0xMDAgbGFyZ2UtNTAgZmxleC1ncmlkIHYtYWxpZ24tY2VudGVyIGRpcmVjdGlvbi1yb3ciPgoJCQkJCQkJPGltZyBjbGFzcz0iY2VsbCBzbWFsbC01MCB2LWFsaWduLWNlbnRlciIgc3JjPSIvaW1hZ2VzL2lsbHVzdHJhdGlvbnMvYXBwLWljb24taW4tdGhlLWNsb3Vkcy5zdmciIGFsdD0iVGhlIE9wZW4gRm9vZCBGYWN0cyBsb2dvIGluIHRoZSBjbG91ZCIgc3R5bGU9ImhlaWdodDoxMjBweCI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjZWxsIHNtYWxsLTUwIHYtYWxpZ24tY2VudGVyIiBpZD0iZm9vdGVyX3NjYW4iIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj4KCQkJCQkJCQk8ZGl2IGlkPSJmb290ZXJfaW5zdGFsbF90aGVfYXBwIj4KCQkJCQkJCQkJSW5zdGFsbCB0aGUgYXBwIQoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCVNjYW4geW91ciA8c3BhbiBpZD0iZXZlcnlkYXkiPmV2ZXJ5ZGF5PC9zcGFuPiA8c3BhbiBpZD0iZm9vZHMiPmZvb2RzPC9zcGFuPgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMTIgbWVkaXVtLTEyIGxhcmdlLTEyIHYtc3BhY2Utbm9ybWFsIGNvbHVtbiBiYWRnZS1jb250YWluZXIiPgoJCQkJCQkJCTwhLS0gYW5kcm9pZF9hcHBfbGluayAtIGh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1vcmcub3BlbmJlYXV0eWZhY3RzLnNjYW5uZXImaGw9ZW4gLS0+CgkJCQkJCQkJPGEgIGhyZWY9Imh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1vcmcub3BlbmZvb2RmYWN0cy5zY2FubmVyJnV0bV9zb3VyY2U9b2JmJnV0Zl9tZWRpdW09d2ViJnV0bV9jYW1wYWlnbj1pbnN0YWxsX3RoZV9hcHBfYW5kcm9pZF9mb290ZXJfZW4iPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvcGxheXN0b3JlL2ltZy9sYXRlc3QvR2V0SXRPbkdvb2dsZVBsYXlfQmFkZ2VfV2ViX2NvbG9yX0VuZ2xpc2guc3ZnIiBhbHQ9IkdldCBJdCBPbiBHb29nbGUgUGxheSIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0MCIgd2lkdGg9IjEyMCI+PC9hPgoJCQkJCQkJCQoJCQkJCQkJCTxhIGhyZWY9IiI+PGltZyBzcmM9Ii9pbWFnZXMvbWlzYy9mLWRyb2lkL3N2Zy9nZXQtaXQtb24tZW4uc3ZnIiBhbHQ9IkF2YWlsYWJsZSBvbiBGLURyb2lkIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQwIiB3aWR0aD0iMTIwIj48L2E+CgoJCQkJCQkJCTwhLS0gYW5kcm9pZF9hcGtfYXBwX2xpbmsgLSBodHRwczovL3dvcmxkLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9hcHBzL29mZi5hcGsgLS0+CgkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9hcHBzL29iZi5hcGs/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWI/dXRtX3NvdXJjZT1vZmYmdXRmX21lZGl1bT13ZWImdXRtX2NhbXBhaWduPWluc3RhbGxfdGhlX2FwcF9hcGtfZm9vdGVyX2VuIj48aW1nIHNyYz0iL2ltYWdlcy9taXNjL2FwcC1sYW5kaW5nLXBhZ2UvZG93bmxvYWQtYXBrL2Rvd25sb2FkLWFwa19lbi5zdmciIGFsdD0iQW5kcm9pZCBBUEsiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iNDAiIHdpZHRoPSIxMjAiPjwvYT4KCQkJCQkJCQkKCQkJCQkJCQk8IS0tIG1zZ2lkICJodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9vcGVuLWJlYXV0eS1mYWN0cy9pZDExMjI5MjYzODAiIC0tPgoJCQkJCQkJCTxhIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL29wZW4tYmVhdXR5LWZhY3RzL2lkMTEyMjkyNjM4MD91dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249aW5zdGFsbF90aGVfYXBwX2lvc19mb290ZXJfZW4iPjxpbWcgc3JjPSIvaW1hZ2VzL21pc2MvYXBwc3RvcmUvYmxhY2svYXBwc3RvcmVfVVMuc3ZnIiBhbHQ9IkRvd25sb2FkIG9uIHRoZSBBcHAgU3RvcmUiICBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQwIiB3aWR0aD0iMTIwIj48L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgoJCQkKICAgICAgCQkJPCEtLSBzdGFydCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9pbmNsdWRlcy9kb25hdGVfYmFubmVyLnR0Lmh0bWwgLS0+CgoKCjwhLS0gRG9uYXRpb24gYmFubmVyIEAgZm9vdGVyIC0tPgoKCjwhLS0gZW5kIHRlbXBsYXRlcy93ZWIvY29tbW9uL2luY2x1ZGVzL2RvbmF0ZV9iYW5uZXIudHQuaHRtbCAtLT4KCgkJCQkKCjxzZWN0aW9uIGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyIHJvdyI+CiAgPGRpdiBjbGFzcz0iZG9uYXRpb24tYmFubmVyLWZvb3Rlcl9fbGVmdC1hc2lkZSI+CiAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19ob29rLXNlY3Rpb24iPgogICAgICA8cD5IZWxwIHVzIGluZm9ybSBtaWxsaW9ucyBvZiBjb25zdW1lcnMgYXJvdW5kIHRoZSB3b3JsZCBhYm91dCB3aGF0IHRoZXkgZWF0PC9wPgogICAgPC9kaXY+CiAgICA8aW1nIHNyYz0iL2ltYWdlcy9taXNjL2RvbmF0aW9uLWJhbm5lcnMvZG9uYXRpb24tYmFubmVyLWdyb3VwLXBob3RvLnBuZyIgYWx0PSJncm91cCBwaG90byBkb25hdGlvbiAyMDI0IiAvPgogIDwvZGl2PgogIDxkaXY+CiAgICA8ZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19tYWluLXNlY3Rpb24iPgogICAgICAgIDxpbWcKICAgICAgICAgIHdpZHRoPSI1MCIKICAgICAgICAgIGhlaWdodD0iNTAiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd29ybGQub3BlbmZvb2RmYWN0cy5vcmcvaW1hZ2VzL2xvZ29zL2xvZ28tdmFyaWFudHMvQ01KTi1JQ09OX1dISVRFX0JHX09GRi5zdmciCiAgICAgICAgICBhbHQ9Im9wZW4gZm9vZCBmYWN0cyBsb2dvIgogICAgICAgIC8+CiAgICAgICAgPGgzIGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19tYWluLXRpdGxlIj5QbGVhc2UgZ2l2ZSB0byBvdXIgMjAyNSBGdW5kcmFpc2VyPC9oMz4KICAgICAgPC9kaXY+CiAgICAgIDxwPllvdXIgZG9uYXRpb25zIGZ1bmQgdGhlIGRheS10by1kYXkgb3BlcmF0aW9ucyBvZiBvdXIgbm9uLXByb2ZpdCBhc3NvY2lhdGlvbjo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+CiAgICAgICAgICBrZWVwaW5nIG91ciBkYXRhYmFzZSBvcGVuICYgYXZhaWxhYmxlIHRvIGFsbCwKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPnRlY2huaWNhbCBpbmZyYXN0cnVjdHVyZSAod2Vic2l0ZS9tb2JpbGUgYXBwKSAmIGEgc21hbGwgcGVybWFuZW50IHRlYW08L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxwPnJlbWFpbiBpbmRlcGVuZGVudCBvZiB0aGUgZm9vZCBpbmR1c3RyeSw8L3A+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICA8cD5lbmdhZ2UgYSBjb21tdW5pdHkgb2YgY29tbWl0dGVkIGNpdGl6ZW5zLDwvcD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxwPnN1cHBvcnQgdGhlIGFkdmFuY2VtZW50IG9mIHB1YmxpYyBoZWFsdGggcmVzZWFyY2guPC9wPgogICAgICAgIDwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9ImRvbmF0aW9uLWJhbm5lci1mb290ZXJfX2FjdGlvbnMtc2VjdGlvbl9fZmluYW5jaWFsIj4KICAgICAgICA8cD4KICAgICAgICAgIEVhY2ggZG9uYXRpb24gY291bnRzISBXZSBhcHByZWNpYXRlIHlvdXIgc3VwcG9ydCBpbiBicmluZ2luZyBmdXJ0aGVyIGZvb2QgdHJhbnNwYXJlbmN5IGluIHRoZSB3b3JsZC4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkb25hdGlvbi1iYW5uZXItZm9vdGVyX19hY3Rpb25zLXNlY3Rpb25fX2RvbmF0ZS1idXR0b24iPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd29ybGQub3BlbmZvb2RmYWN0cy5vcmcvZG9uYXRlLXRvLW9wZW4tZm9vZC1mYWN0cz91dG1fc291cmNlPW9mZiZ1dGZfbWVkaXVtPXdlYiZ1dG1fY2FtcGFpZ249ZG9uYXRlLTIwMjQtYSZ1dG1fdGVybT1lbi10ZXh0LWJ1dHRvbiI+CiAgICAgICAgICA8YnV0dG9uPkkgU1VQUE9SVDwvYnV0dG9uPgogICAgICAgIDwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKCgkJCQogICAgICAJCQoJCQk8ZGl2IGNsYXNzPSJibG9ja19saWdodCBibG9ja19jYXBwdWNpbm8iIGlkPSJjb250cmlidXRlX2FuZF9kaXNjb3Zlcl9saW5rc19ibG9jayI+CgkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGxhcmdlLTYgY29sdW1ucyB2LXNwYWNlLW5vcm1hbCBibG9ja19vZmYiPgoJCQkJCQk8aDMgY2xhc3M9InRpdGxlLTUgdGV4dC1tZWRpdW0iPkpvaW4gdGhlIGNvbW11bml0eTwvaDM+CgkJCQkJCTxwPkRpc2NvdmVyIG91ciA8YSBocmVmPSIvY29kZS1vZi1jb25kdWN0Ij5Db2RlIG9mIGNvbmR1Y3Q8L2E+PC9wPgoJCQkJCQk8cD5Kb2luIHVzIG9uIDxhIGhyZWY9Imh0dHBzOi8vc2xhY2sub3BlbmZvb2RmYWN0cy5vcmciPlNsYWNrPC9hPjwvcD4KCQkJCQkJPHA+PGEgaHJlZj0iaHR0cHM6Ly9mb3J1bS5vcGVuZm9vZGZhY3RzLm9yZy8iPkZvcnVtPC9hPjwvcD4KCQkJCQkJPHAgaWQ9ImZvb3Rlcl9zb2NpYWxfaWNvbnMiPkZvbGxvdyB1czogCgkJCQkJCQk8YSBocmVmPSJodHRwczovL3guY29tL09wZW5Gb29kRmFjdHMiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QveC5zdmciIGNsYXNzPSJmb290ZXJfc29jaWFsX2ljb24iIGFsdD0ieCI+PC9hPgoJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL29wZW5mb29kZmFjdHM/dXRtX3NvdXJjZT1vYmYmdXRmX21lZGl1bT13ZWIiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QvZmFjZWJvb2suc3ZnIiBjbGFzcz0iZm9vdGVyX3NvY2lhbF9pY29uIiBhbHQ9IkZhY2Vib29rIj48L2E+CgkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL29wZW4uZm9vZC5mYWN0cy8iPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2Rpc3QvaW5zdGFncmFtLnN2ZyIgY2xhc3M9ImZvb3Rlcl9zb2NpYWxfaWNvbiIgYWx0PSJJbnN0YWdyYW0iPjwvYT4KCQkJCQkJCQoJCQkJCQk8L3A+CgkJCQkJCTxwPjxhIGhyZWY9Imh0dHBzOi8vbGluay5vcGVuZm9vZGZhY3RzLm9yZy9uZXdzbGV0dGVyLWVuIj5TdWJzY3JpYmUgdG8gb3VyIG5ld3NsZXR0ZXI8L2E+PC9wPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIGxhcmdlLTYgY29sdW1ucyBwcm9qZWN0IHYtc3BhY2Utbm9ybWFsIj4KCQkJCQkJPGgzIGNsYXNzPSJ0aXRsZS01IHRleHQtbWVkaXVtIj5EaXNjb3ZlciB0aGUgcHJvamVjdDwvaDM+CgkJCQkJCTx1bCBjbGFzcz0iaW5saW5lLWxpc3QgdGFnc19saW5rcyB2LXNwYWNlLXRpbnkgaC1zcGFjZS10aW55IiA+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvd2hvLXdlLWFyZSI+V2hvIHdlIGFyZTwvYT48L2xpPgoJCQkJCQkJPGxpPjxhIGNsYXNzPSJidXR0b24gc21hbGwgd2hpdGUtYnV0dG9uIHJhZGl1cyIgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuZm9vZGZhY3RzLm9yZy9vcGVuLWZvb2QtZmFjdHMtdmlzaW9uLW1pc3Npb24tdmFsdWVzLWFuZC1wcm9ncmFtcyI+VmlzaW9uLCBNaXNzaW9uLCBWYWx1ZXMgYW5kIFByb2dyYW1zPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSJodHRwczovL3N1cHBvcnQub3BlbmZvb2RmYWN0cy5vcmcvaGVscC9lbi1nYiI+RnJlcXVlbnRseSBhc2tlZCBxdWVzdGlvbnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vYmxvZy5vcGVuZm9vZGZhY3RzLm9yZy9lbi8iPk9wZW4gQmVhdXR5IEZhY3RzIGJsb2c8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Ii9wcmVzcyI+UHJlc3M8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd2lraS5vcGVuZm9vZGZhY3RzLm9yZyI+T3BlbiBCZWF1dHkgRmFjdHMgd2lraSAoZW4pPC9hPjwvbGk+CgkJCQkJCQk8bGk+PGEgY2xhc3M9ImJ1dHRvbiBzbWFsbCB3aGl0ZS1idXR0b24gcmFkaXVzIiBocmVmPSIvY2dpL3RvcF90cmFuc2xhdG9ycy5wbCI+VHJhbnNsYXRvcnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Ii9wYXJ0bmVycyI+UGFydG5lcnM8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd29ybGQub3BlbmJlYXV0eWZhY3RzLm9yZyI+T3BlbiBCZWF1dHkgRmFjdHMgLSBDb3NtZXRpY3M8L2E+PC9saT4KCQkJCQkJCTxsaT48YSBjbGFzcz0iYnV0dG9uIHNtYWxsIHdoaXRlLWJ1dHRvbiByYWRpdXMiIGhyZWY9Imh0dHBzOi8vd29ybGQucHJvLm9wZW5iZWF1dHlmYWN0cy5vcmcvIj5PcGVuIEZvb2QgRmFjdHMgZm9yIFByb2R1Y2VyczwvYT48L2xpPgoJCQkJCQk8L3VsPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoKCQkJPGRpdiBjbGFzcz0iYmxvY2tfb2ZmIGJsb2NrX2RhcmsgYmxvY2tfcmlzdHJldG8iIGlkPSJmb290ZXJfYmxvY2siPgoKCQkJCTxkaXYgaWQ9ImZvb3Rlcl9ibG9ja19pbWFnZV9iYW5uZXJfb3V0c2lkZSI+CgkJCQkJPGRpdiBpZD0iZm9vdGVyX2Jsb2NrX2ltYWdlX2Jhbm5lcl9vdXRzaWRlMiI+CgoJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPgoKCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTEyIHRleHQtY2VudGVyIHYtc3BhY2Utc2hvcnQgaC1zcGFjZS1sYXJnZSI+CgkJCQkJCQkJPGEgaHJlZj0iLyIgc3R5bGU9ImZvbnQtc2l6ZToxcmVtOyI+PGltZyBpZD0ibG9nbyIgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2ltYWdlcy9sb2dvcy9vYmYtbG9nby1ob3Jpem9udGFsLW1vbm8td2hpdGUuc3ZnIiBhbHQ9Ik9wZW4gQmVhdXR5IEZhY3RzIiBzdHlsZT0ibWFyZ2luOjhweDtoZWlnaHQ6NDhweDt3aWR0aDphdXRvOyI+PC9hPgoKCQkJCQkJCQk8cD5BIGNvbGxhYm9yYXRpdmUsIGZyZWUgYW5kIG9wZW4gZGF0YWJhc2Ugb2YgY29zbWV0aWMgcHJvZHVjdHMgZnJvbSBhcm91bmQgdGhlIHdvcmxkLjwvcD4KCQkJCQkJCQkKCQkJCQkJCQk8dWwgY2xhc3M9ImlubGluZS1saXN0IHRleHQtY2VudGVyIHRleHQtc21hbGwiPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL2xlZ2FsIj5MZWdhbDwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL3ByaXZhY3kiPlByaXZhY3k8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ii90ZXJtcy1vZi11c2UiPlRlcm1zIG9mIHVzZTwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iL2RhdGEiPkRhdGEsIEFQSSBhbmQgU0RLczwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93b3JsZC5vcGVuZm9vZGZhY3RzLm9yZy9kb25hdGUtdG8tb3Blbi1mb29kLWZhY3RzIj5Eb25hdGUgdG8gT3BlbiBGb29kIEZhY3RzPC9hPjwvbGk+CgkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwczovL3dvcmxkLnByby5vcGVuZm9vZGZhY3RzLm9yZy8iPlByb2R1Y2VyczwvYT48L2xpPgoJCQkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9saW5rLm9wZW5mb29kZmFjdHMub3JnL25ld3NsZXR0ZXItZW4iPlN1YnNjcmliZSB0byBvdXIgbmV3c2xldHRlcjwvYT48L2xpPgoJCQkJCQkJCTwvdWw+CgkJCQkJCQk8L2Rpdj4KCgkJCQkJCTwvZGl2PgoKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Zvb3Rlcj4KCQkKCgk8L2Rpdj4KCjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvbW9kZXJuaXpyLmpzIiBkYXRhLWJhc2UtbGF5b3V0PSJ0cnVlIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9qcXVlcnkuanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2pxdWVyeS11aS5qcyIgZGF0YS1iYXNlLWxheW91dD0idHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3QvaGMtc3RpY2t5LmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9kaXNwbGF5LmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvZGlzdC9zdGlrZWxlbS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL2Rpc3Qvc2Nyb2xsTmF2LmpzIj48L3NjcmlwdD4KICAKCjxzY3JpcHQ+CiQoZnVuY3Rpb24oKSB7CmRpc3BsYXlfdXNlcl9wcm9kdWN0X3ByZWZlcmVuY2VzKCIjcHJlZmVyZW5jZXNfc2VsZWN0ZWQiLCAiI3ByZWZlcmVuY2VzX3NlbGVjdGlvbl9mb3JtIiwgZnVuY3Rpb24gKCkgewoJcmFua19hbmRfZGlzcGxheV9wcm9kdWN0cygiI3NlYXJjaF9yZXN1bHRzIiwgcHJvZHVjdHMsIGNvbnRyaWJ1dG9yX3ByZWZzKTsKfSk7CnJhbmtfYW5kX2Rpc3BsYXlfcHJvZHVjdHMoIiNzZWFyY2hfcmVzdWx0cyIsIHByb2R1Y3RzLCBjb250cmlidXRvcl9wcmVmcyk7CgoKfSk7Cjwvc2NyaXB0PgoKCgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2ZvdW5kYXRpb24uanMiIGRhdGEtYmFzZS1sYXlvdXQ9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L2pxdWVyeS5jb29raWUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9qcy9kaXN0L3NlbGVjdDIubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgcGFnZV90eXBlID0gInByb2R1Y3RzIjsKdmFyIGRlZmF1bHRfcHJlZmVyZW5jZXMgPSB7ImxhYmVsc19mYWlyX3RyYWRlIjoiaW1wb3J0YW50IiwibGFiZWxzX29yZ2FuaWMiOiJpbXBvcnRhbnQifTsKdmFyIHByZWZlcmVuY2VzX3RleHQgPSAiQ2xhc3NpZnkgdGhlIDEgcHJvZHVjdHMgYmVsb3cgYWNjb3JkaW5nIHRvIHlvdXIgcHJlZmVyZW5jZXMiOwp2YXIgY29udHJpYnV0b3JfcHJlZnMgPSB7ImRpc3BsYXlfYmFyY29kZSI6bnVsbCwiZWRpdF9saW5rIjpudWxsfTsKdmFyIHByb2R1Y3RzID0gWwogICB7CiAgICAgICJhdHRyaWJ1dGVfZ3JvdXBzIjpbCiAgICAgICAgIHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOlsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2FuLXN0YXR1cy11bmtub3duLnN2ZyIsCiAgICAgICAgICAgICAgICAgICJpZCI6InZlZ2FuIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiJWZWdhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2FuLXN0YXR1cy11bmtub3duIiwKICAgICAgICAgICAgICAgICAgInN0YXR1cyI6InVua25vd24iLAogICAgICAgICAgICAgICAgICAidGl0bGUiOiJWZWdhbiBzdGF0dXMgdW5rbm93biIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L3ZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoidmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiVmVnZXRhcmlhbiIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnZlZ2V0YXJpYW4tc3RhdHVzLXVua25vd24iLAogICAgICAgICAgICAgICAgICAic3RhdHVzIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJ0aXRsZSI6IlZlZ2V0YXJpYW4gc3RhdHVzIHVua25vd24iCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9wYWxtLW9pbC1jb250ZW50LXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoicGFsbV9vaWxfZnJlZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiUGFsbSBvaWwgZnJlZSIsCiAgICAgICAgICAgICAgICAgICJwYW5lbF9pZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzX2VuOnBhbG0tb2lsLWNvbnRlbnQtdW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiUGFsbSBvaWwgY29udGVudCB1bmtub3duIgogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpZCI6ImluZ3JlZGllbnRzX2FuYWx5c2lzIiwKICAgICAgICAgICAgIm5hbWUiOiJJbmdyZWRpZW50cyIKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAiYXR0cmlidXRlcyI6WwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6Ik9yZ2FuaWMgZmFybWluZyBhaW1zIHRvIHByb3RlY3QgdGhlIGVudmlyb25tZW50IGFuZCB0byBjb25zZXJ2ZSBiaW9kaXZlcnNpdHkgYnkgcHJvaGliaXRpbmcgb3IgbGltaXRpbmcgdGhlIHVzZSBvZiBzeW50aGV0aWMgZmVydGlsaXplcnMsIHBlc3RpY2lkZXMgYW5kIGZvb2QgYWRkaXRpdmVzLiIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbl9zaG9ydCI6Ik9yZ2FuaWMgcHJvZHVjdHMgcHJvbW90ZSBlY29sb2dpY2FsIHN1c3RhaW5hYmlsaXR5IGFuZCBiaW9kaXZlcnNpdHkuIiwKICAgICAgICAgICAgICAgICAgImdyYWRlIjoidW5rbm93biIsCiAgICAgICAgICAgICAgICAgICJpY29uX3VybCI6Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvaW1hZ2VzL2F0dHJpYnV0ZXMvZGlzdC9vcmdhbmljLXVua25vd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgImlkIjoibGFiZWxzX29yZ2FuaWMiLAogICAgICAgICAgICAgICAgICAibmFtZSI6Ik9yZ2FuaWMgZmFybWluZyIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWlzc2luZyBpbmZvcm1hdGlvbjogb3JnYW5pYyBwcm9kdWN0PyIKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJXaGVuIHlvdSBidXkgZmFpciB0cmFkZSBwcm9kdWN0cywgcHJvZHVjZXJzIGluIGRldmVsb3BpbmcgY291bnRyaWVzIGFyZSBwYWlkIGFuIGhpZ2hlciBhbmQgZmFpcmVyIHByaWNlLCB3aGljaCBoZWxwcyB0aGVtIGltcHJvdmUgYW5kIHN1c3RhaW4gaGlnaGVyIHNvY2lhbCBhbmQgb2Z0ZW4gZW52aXJvbm1lbnRhbCBzdGFuZGFyZHMuIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uX3Nob3J0IjoiRmFpciB0cmFkZSBwcm9kdWN0cyBoZWxwIHByb2R1Y2VycyBpbiBkZXZlbG9waW5nIGNvdW50cmllcy4iLAogICAgICAgICAgICAgICAgICAiZ3JhZGUiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgImljb25fdXJsIjoiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvYXR0cmlidXRlcy9kaXN0L2ZhaXItdHJhZGUtdW5rbm93bi5zdmciLAogICAgICAgICAgICAgICAgICAiaWQiOiJsYWJlbHNfZmFpcl90cmFkZSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjoiRmFpciB0cmFkZSIsCiAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInRpdGxlIjoiTWlzc2luZyBpbmZvcm1hdGlvbjogZmFpciB0cmFkZSBwcm9kdWN0PyIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaWQiOiJsYWJlbHMiLAogICAgICAgICAgICAibmFtZSI6IkxhYmVscyIKICAgICAgICAgfQogICAgICBdLAogICAgICAiY29kZSI6IjMxNjA5MjA5NjUwMDUiLAogICAgICAiaW1hZ2VfZnJvbnRfc21hbGxfdXJsIjoiaHR0cHM6Ly9pbWFnZXMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvcHJvZHVjdHMvMzE2LzA5Mi8wOTYvNTAwNS9mcm9udF9lbi45LjIwMC5qcGciLAogICAgICAicHJvZHVjdF9kaXNwbGF5X25hbWUiOiJTaGFtcG9vaW5nIGFudGkgcG91eCBldCBsZW50ZXMg4oCTIENhcnMg4oCTIDEyNcKgbWwiLAogICAgICAidXJsIjoiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnL3Byb2R1Y3QvMzE2MDkyMDk2NTAwNS9zaGFtcG9vaW5nLWFudGktcG91eC1ldC1sZW50ZXMtY2FycyIKICAgfQpdCjsKdmFyIHByb2R1Y3RfdHlwZSA9ICJiZWF1dHkiOwo8L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3RhdGljLm9wZW5iZWF1dHlmYWN0cy5vcmcvanMvcHJvZHVjdC1wcmVmZXJlbmNlcy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3N0YXRpYy5vcGVuYmVhdXR5ZmFjdHMub3JnL2pzL3Byb2R1Y3Qtc2VhcmNoLmpzIj48L3NjcmlwdD4KCjxzY3JpcHQ+CiQoZG9jdW1lbnQpLmZvdW5kYXRpb24oewoJZXF1YWxpemVyIDogewoJCWVxdWFsaXplX29uX3N0YWNrOiB0cnVlCgl9LAoJYWNjb3JkaW9uOiB7CgkJY2FsbGJhY2sgOiBmdW5jdGlvbiAoYWNjb3JkaW9uKSB7CgkJCSQoZG9jdW1lbnQpLmZvdW5kYXRpb24oJ2VxdWFsaXplcicsICdyZWZsb3cnKTsKCQl9Cgl9Cn0pOwoKPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsKCSJAY29udGV4dCIgOiAiaHR0cHM6Ly9zY2hlbWEub3JnIiwKCSJAdHlwZSIgOiAiV2ViU2l0ZSIsCgkibmFtZSIgOiAiT3BlbiBCZWF1dHkgRmFjdHMiLAoJInVybCIgOiAiaHR0cHM6Ly93b3JsZC5vcGVuYmVhdXR5ZmFjdHMub3JnIiwKCSJwb3RlbnRpYWxBY3Rpb24iOiB7CgkJIkB0eXBlIjogIlNlYXJjaEFjdGlvbiIsCgkJInRhcmdldCI6ICJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmcvY2dpL3NlYXJjaC5wbD9zZWFyY2hfdGVybXM9P3tzZWFyY2hfdGVybV9zdHJpbmd9IiwKCQkicXVlcnktaW5wdXQiOiAicmVxdWlyZWQgbmFtZT1zZWFyY2hfdGVybV9zdHJpbmciCgl9Cn0KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsKCSJAY29udGV4dCI6ICJodHRwczovL3NjaGVtYS5vcmcvIiwKCSJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAoJInVybCI6ICJodHRwczovL3dvcmxkLm9wZW5iZWF1dHlmYWN0cy5vcmciLAoJImxvZ28iOiAiaHR0cHM6Ly9zdGF0aWMub3BlbmJlYXV0eWZhY3RzLm9yZy9pbWFnZXMvbG9nb3Mvb2JmLWxvZ28tdmVydGljYWwtbGlnaHQuc3ZnIiwKCSJuYW1lIjogIk9wZW4gQmVhdXR5IEZhY3RzIiwKCSJzYW1lQXMiIDogWyJodHRwczovL3d3dy5mYWNlYm9vay5jb20vb3BlbmZvb2RmYWN0cz91dG1fc291cmNlPW9iZiZ1dGZfbWVkaXVtPXdlYiIsICJodHRwczovL3guY29tL09wZW5Gb29kRmFjdHMiXQp9Cjwvc2NyaXB0PgoKCgoKCjwvYm9keT4KPC9odG1sPgoKPCEtLSBkYXRhX2RlYnVnOiBkYXRhX2RlYnVnIHN0YXJ0CnBsYXRmb3JtOiBwdWJsaWMKY2FuX3VzZV9jYWNoZTogMQpjYWNoZV9oaXQKLS0+Cgo8IS0tIGVuZCB0ZW1wbGF0ZXMvd2ViL2NvbW1vbi9zaXRlX2xheW91dC50dC5odG1sIC0tPgo=
98
+ recorded_at: Mon, 29 Sep 2025 14:07:22 GMT
99
+ recorded_with: VCR 6.3.1