bolognese 0.9.56 → 0.9.58

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/Gemfile.lock +6 -4
  4. data/README.md +7 -0
  5. data/bolognese.gemspec +1 -0
  6. data/lib/bolognese.rb +1 -0
  7. data/lib/bolognese/metadata.rb +12 -4
  8. data/lib/bolognese/readers/bibtex_reader.rb +4 -1
  9. data/lib/bolognese/readers/crossref_reader.rb +60 -34
  10. data/lib/bolognese/readers/datacite_reader.rb +4 -11
  11. data/lib/bolognese/readers/ris_reader.rb +2 -1
  12. data/lib/bolognese/utils.rb +111 -51
  13. data/lib/bolognese/version.rb +1 -1
  14. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  15. data/lib/bolognese/writers/citeproc_writer.rb +1 -1
  16. data/lib/bolognese/writers/crosscite_writer.rb +2 -1
  17. data/lib/bolognese/writers/jats_writer.rb +94 -0
  18. data/lib/bolognese/writers/ris_writer.rb +2 -1
  19. data/lib/bolognese/writers/schema_org_writer.rb +2 -1
  20. data/resources/kernel-4/include/datacite-dateType-v4.1.xsd +1 -1
  21. data/resources/kernel-4/include/datacite-relationType-v4.1.xsd +1 -1
  22. data/resources/kernel-4/include/datacite-resourceType-v4.1.xsd +1 -1
  23. data/resources/kernel-4/metadata.xsd +1 -1
  24. data/spec/author_utils_spec.rb +1 -1
  25. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/crossref/default.yml +9 -3
  26. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/crossref/to_bibtex.yml +9 -3
  27. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/crossref/to_crossref.yml +9 -3
  28. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/crossref/to_datacite.yml +9 -3
  29. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/crossref/to_schema_org.yml +9 -3
  30. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/default.yml +27 -13
  31. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_bibtex.yml +25 -13
  32. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_citation.yml +17 -17
  33. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_crossref.yml +27 -13
  34. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_datacite.yml +26 -12
  35. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_schema_org.yml +27 -13
  36. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/default.yml +15 -52
  37. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_bibtex.yml +16 -51
  38. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_citation.yml +20 -51
  39. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite.yml +16 -49
  40. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite_json.yml +15 -50
  41. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_schema_org.yml +16 -51
  42. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/default.yml +15 -15
  43. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_bibtex.yml +15 -15
  44. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_datacite.yml +14 -14
  45. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_schema_org.yml +16 -16
  46. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/author.yml +19 -7
  47. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/no_author.yml +19 -7
  48. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/single_author.yml +19 -7
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/with_organization.yml +18 -6
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_doi.yml +26 -63
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_title.yml +23 -64
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +19 -7
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +19 -7
  54. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi.yml +19 -7
  55. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/not_a_doi.yml +19 -7
  56. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/sandbox_url.yml +18 -6
  57. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/url.yml +18 -6
  58. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/crossref.yml +35 -31
  59. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/datacite.yml +36 -30
  60. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/medra.yml +35 -31
  61. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_a_valid_prefix.yml +18 -6
  62. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_found.yml +27 -27
  63. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi.yml +19 -7
  64. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi_with_protocol.yml +19 -7
  65. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/dx_doi_org_url.yml +19 -7
  66. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/force_test_resolver.yml +19 -7
  67. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/https_url.yml +19 -7
  68. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/test_resolver.yml +19 -7
  69. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/test_resolver_http.yml +18 -6
  70. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/doi.yml +19 -7
  71. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/doi_with_protocol.yml +19 -7
  72. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/dx_doi_org_url.yml +19 -7
  73. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/force_test_resolver.yml +19 -7
  74. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/https_url.yml +19 -7
  75. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/test_resolver.yml +19 -7
  76. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_search/test_resolver_http.yml +19 -7
  77. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref.yml +39 -86
  78. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +36 -89
  79. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite.yml +40 -85
  80. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite_doi_http.yml +36 -89
  81. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/github.yml +19 -62
  82. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/orcid.yml +21 -62
  83. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/schema_org.yml +22 -63
  84. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +31 -82
  85. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/bibtex.yml +20 -63
  86. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/citeproc.yml +21 -62
  87. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/codemeta.yml +23 -62
  88. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crosscite.yml +22 -63
  89. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crossref.yml +22 -63
  90. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite.yml +22 -63
  91. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite_json.yml +21 -62
  92. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml +24 -63
  93. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml +23 -62
  94. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml +20 -63
  95. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml +18 -6
  96. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/maremma.yml +10 -10
  97. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/no_codemeta_json.yml +8 -8
  98. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/not_found_error.yml +8 -8
  99. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +34 -30
  100. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +33 -29
  101. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +35 -31
  102. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter.yml +150 -0
  103. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset.yml +34 -30
  104. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml +33 -31
  105. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml +33 -31
  106. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml +26 -26
  107. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml +34 -30
  108. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_raw/journal_article.yml +9 -3
  109. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml +23 -64
  110. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting_in_test_system.yml +22 -65
  111. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system.yml +24 -64
  112. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_not_found.yml +24 -29
  113. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Dataset.yml +24 -65
  114. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding.yml +22 -65
  115. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +20 -65
  116. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_only_full_name.yml +23 -63
  117. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_scheme.yml +26 -64
  118. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +24 -66
  119. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/date.yml +24 -64
  120. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/empty_subject.yml +24 -65
  121. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_schema_version_3.yml +24 -66
  122. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/is_identical_to.yml +24 -64
  123. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml +28 -64
  124. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +26 -64
  125. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorName.yml +23 -64
  126. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml +25 -65
  127. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml +18 -6
  128. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml +19 -7
  129. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year.yml +19 -7
  130. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/date.yml +19 -7
  131. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year-month.yml +18 -6
  132. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year.yml +19 -7
  133. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_name_identifiers/has_ORCID.yml +11 -79
  134. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_name_identifiers/has_jacow_org_scheme.yml +13 -79
  135. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_name_identifiers/has_multiple_name_identifier.yml +14 -80
  136. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_name_identifiers/has_no_ORCID.yml +13 -79
  137. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_familyName.yml +11 -79
  138. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_multiple_names_in_display-order.yml +7 -44
  139. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_Thai.yml +12 -80
  140. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order.yml +12 -78
  141. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +13 -79
  142. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_sort-order.yml +12 -80
  143. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/hyper-authorship.yml +9 -79
  144. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/is_organization.yml +19 -7
  145. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_author_names_in_one_field.yml +9 -79
  146. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_name_identifier.yml +13 -44
  147. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation.yml +14 -45
  148. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_role.yml +14 -45
  149. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting.yml +19 -19
  150. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +20 -20
  151. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/not_found_error.yml +2 -2
  152. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +17 -23
  153. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/unknown_DOI_prefix.yml +8 -22
  154. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_alternate_identifiers/insert.yml +6 -41
  155. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors/none.yml +7 -40
  156. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_creators/insert.yml +7 -40
  157. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates/insert.yml +7 -40
  158. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_descriptions/insert.yml +7 -40
  159. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_identifier/doi.yml +6 -41
  160. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_person/creator_only_name.yml +5 -40
  161. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publication_year/insert.yml +7 -40
  162. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml +6 -41
  163. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml +5 -40
  164. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml +7 -40
  165. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml +5 -40
  166. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml +7 -40
  167. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +5 -42
  168. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_titles/insert.yml +6 -41
  169. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_version/insert.yml +7 -40
  170. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_comma.yml +19 -7
  171. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_family_name.yml +19 -7
  172. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_id.yml +19 -7
  173. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_known_given_name.yml +19 -7
  174. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_no_info.yml +19 -7
  175. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_type_organization.yml +18 -6
  176. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/missing_comma.yml +19 -62
  177. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/nil.yml +22 -63
  178. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/overlapping_keys.yml +20 -65
  179. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/valid.yml +22 -63
  180. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/SICI_doi.yml +19 -7
  181. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi.yml +18 -6
  182. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +19 -7
  183. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +19 -7
  184. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +18 -6
  185. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_too_long.yml +19 -7
  186. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_with_string.yml +19 -7
  187. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_with_protocol.yml +19 -7
  188. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/dx_doi_org_url.yml +18 -6
  189. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/https_url.yml +19 -7
  190. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/not_valid_doi_prefix.yml +19 -7
  191. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/url_with_one_slash.yml +19 -7
  192. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi.yml +19 -7
  193. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi_as_url.yml +19 -7
  194. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/ftp.yml +19 -7
  195. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/invalid_url.yml +19 -7
  196. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_options.yml +19 -7
  197. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_url.yml +19 -7
  198. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/string.yml +18 -6
  199. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url.yml +18 -6
  200. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url_with_utf-8.yml +19 -7
  201. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/doi.yml +19 -7
  202. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/url.yml +19 -7
  203. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/uri.yml +19 -7
  204. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash.yml +19 -7
  205. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array.yml +19 -7
  206. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array_of_strings.yml +19 -7
  207. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/first.yml +19 -7
  208. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/hash.yml +19 -7
  209. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/nil.yml +18 -6
  210. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/string.yml +19 -7
  211. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_only_keep_specific_tags.yml +19 -7
  212. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_remove_a_tags.yml +19 -7
  213. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org/with_id.yml +19 -7
  214. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid.yml +19 -7
  215. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_https.yml +19 -7
  216. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_id.yml +19 -7
  217. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_with_spaces.yml +19 -7
  218. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_wrong_id.yml +19 -7
  219. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_www.yml +19 -7
  220. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +19 -7
  221. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +19 -7
  222. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +19 -7
  223. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +19 -7
  224. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi.yml +19 -7
  225. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_as_url.yml +19 -7
  226. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_with_protocol.yml +19 -7
  227. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/only_prefix.yml +19 -7
  228. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/DOI.yml +18 -6
  229. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/ISSN.yml +19 -7
  230. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/URL.yml +19 -7
  231. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/string.yml +19 -7
  232. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/BlogPosting.yml +7 -40
  233. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/Dataset.yml +5 -42
  234. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/from_schema_org.yml +20 -20
  235. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/maremma.yml +11 -11
  236. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/text.yml +5 -40
  237. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_data_citation.yml +19 -7
  238. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_pages.yml +18 -6
  239. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Dataset.yml +8 -43
  240. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article.yml +10 -10
  241. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +12 -12
  242. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting.yml +4 -39
  243. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +19 -19
  244. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Dataset.yml +5 -40
  245. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/container_title.yml +5 -40
  246. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/journal_article.yml +19 -7
  247. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/maremma.yml +10 -10
  248. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +5 -40
  249. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software.yml +5 -40
  250. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_pages.yml +18 -6
  251. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +5 -40
  252. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +7 -40
  253. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/maremma.yml +8 -8
  254. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +18 -6
  255. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation.yml +19 -7
  256. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +19 -19
  257. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/from_DataCite.yml +7 -40
  258. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/journal_article.yml +9 -3
  259. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/maremma.yml +9 -9
  260. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +18 -6
  261. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +19 -7
  262. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +19 -19
  263. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +7 -40
  264. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +5 -40
  265. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/maremma.yml +9 -9
  266. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +18 -6
  267. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +19 -7
  268. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +20 -20
  269. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_editor.yml +18 -6
  270. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +38 -0
  271. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +40 -0
  272. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/book_chapter.yml +60 -0
  273. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/maremma.yml +73 -0
  274. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +79 -0
  275. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +79 -0
  276. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +121 -0
  277. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_editor.yml +79 -0
  278. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting.yml +5 -40
  279. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +19 -19
  280. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/Dataset.yml +7 -40
  281. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/alternate_name.yml +5 -40
  282. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/journal_article.yml +18 -6
  283. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/maremma.yml +10 -10
  284. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/with_pages.yml +18 -6
  285. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml +5 -40
  286. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +7 -40
  287. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +7 -40
  288. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +7 -40
  289. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +7 -40
  290. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/journal_article.yml +18 -6
  291. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +11 -11
  292. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting.yml +101 -80
  293. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting_Citeproc_JSON.yml +94 -40
  294. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting_DataCite_JSON.yml +94 -40
  295. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/Crossref_DOI.yml +94 -40
  296. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/DataONE.yml +94 -40
  297. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/Dataset.yml +99 -80
  298. data/spec/readers/crossref_reader_spec.rb +32 -20
  299. data/spec/readers/datacite_reader_spec.rb +0 -4
  300. data/spec/writers/bibtex_writer_spec.rb +1 -1
  301. data/spec/writers/citation_writer_spec.rb +1 -1
  302. data/spec/writers/crosscite_writer_spec.rb +4 -4
  303. data/spec/writers/datacite_json_writer_spec.rb +3 -3
  304. data/spec/writers/datacite_writer_spec.rb +4 -4
  305. data/spec/writers/jats_writer_spec.rb +173 -0
  306. data/spec/writers/ris_writer_spec.rb +19 -21
  307. data/spec/writers/schema_org_writer_spec.rb +2 -6
  308. metadata +27 -12
  309. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/datacite/default.yml +0 -38
  310. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/datacite/to_bibtex.yml +0 -38
  311. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/datacite/to_datacite.yml +0 -38
  312. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/datacite/to_datacite_invalid.yml +0 -38
  313. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_file/datacite/to_schema_org.yml +0 -38
  314. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting_from_string.yml +0 -38
  315. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_4_1_from_string.yml +0 -38
  316. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_4_1_from_string_with_doi_in_options.yml +0 -38
  317. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/missing_creator.yml +0 -38
  318. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_raw/BlogPosting.yml +0 -38
@@ -29,7 +29,7 @@ http_interactions:
29
29
  Content-Type:
30
30
  - application/vnd.api+json; charset=utf-8
31
31
  Date:
32
- - Mon, 25 Sep 2017 19:25:14 GMT
32
+ - Mon, 23 Oct 2017 22:30:09 GMT
33
33
  Etag:
34
34
  - W/"f03c5d43c9e031db0cf6b29702cab8ca"
35
35
  Server:
@@ -45,20 +45,20 @@ http_interactions:
45
45
  X-Kong-Proxy-Latency:
46
46
  - '0'
47
47
  X-Kong-Upstream-Latency:
48
- - '565'
48
+ - '389'
49
49
  X-Powered-By:
50
- - Phusion Passenger 5.1.8
50
+ - Phusion Passenger 5.1.11
51
51
  X-Request-Id:
52
- - f0ec5918-2b6e-4375-9e19-8d3a8e8713a4
52
+ - 436765f5-b19d-45b9-8aae-1005dca54f41
53
53
  X-Runtime:
54
- - '0.561817'
54
+ - '0.387554'
55
55
  Connection:
56
56
  - keep-alive
57
57
  body:
58
58
  encoding: UTF-8
59
59
  string: '{"data":{"id":"10.7554","type":"prefixes","attributes":{"registration-agency":"Crossref","created":null,"updated":"2016-09-21T21:07:27Z"},"relationships":{"clients":{"data":[]},"providers":{"data":[]}}}}'
60
60
  http_version:
61
- recorded_at: Mon, 25 Sep 2017 19:25:16 GMT
61
+ recorded_at: Mon, 23 Oct 2017 22:30:09 GMT
62
62
  - request:
63
63
  method: get
64
64
  uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.7554/elife.01567&noredirect=true&pid=tech@datacite.org
@@ -78,21 +78,21 @@ http_interactions:
78
78
  Server:
79
79
  - Apache-Coyote/1.1
80
80
  Crossref-Deployment-Name:
81
- - qs2-2
81
+ - qs5-1
82
82
  Content-Type:
83
83
  - text/xml;charset=UTF-8
84
84
  Content-Language:
85
85
  - en-US
86
86
  Date:
87
- - Mon, 25 Sep 2017 19:25:16 GMT
87
+ - Mon, 23 Oct 2017 22:30:09 GMT
88
88
  Connection:
89
89
  - close
90
90
  body:
91
91
  encoding: ASCII-8BIT
92
92
  string: !binary |-
93
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE1LTA4LTExIDA3OjM1OjAyIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgPHRpdGxlPkF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC90aXRsZT4NCiAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TWFydGlhbDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+U2Fua2FyPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+S2Fpc2E8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk5pZW1pbmVuPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SW9hbm5pczwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+WGVuYXJpb3M8L3N1cm5hbWU+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5DaHJpc3RpYW4gUzwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+SGFyZHRrZTwvc3VybmFtZT4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8Y3Jvc3NtYXJrPg0KICAgICAgICAgICAgPGNyb3NzbWFya192ZXJzaW9uPjE8L2Nyb3NzbWFya192ZXJzaW9uPg0KICAgICAgICAgICAgPGNyb3NzbWFya19wb2xpY3k+ZUxpZmVzY2llbmNlczwvY3Jvc3NtYXJrX3BvbGljeT4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgPGRvbWFpbj53d3cuZWxpZmVzY2llbmNlcy5vcmc8L2RvbWFpbj4NCiAgICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWluPg0KICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT5mYWxzZTwvY3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+DQogICAgICAgICAgICA8Y3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InJlY2VpdmVkIiBsYWJlbD0iUmVjZWl2ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMCI+MjAxMy0wOS0yMDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImFjY2VwdGVkIiBsYWJlbD0iQWNjZXB0ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMSI+MjAxMy0xMi0yNDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InB1Ymxpc2hlZCIgbGFiZWw9IlB1Ymxpc2hlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIyIj4yMDE0LTAyLTExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9ImZ1bmRyZWYiPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIEVNQk8NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAzMDQzPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgU3dpc3MgTmF0aW9uYWwgU2NpZW5jZSBGb3VuZGF0aW9uDQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMTcxMTwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciIgcHJvdmlkZXI9ImNyb3NzcmVmIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDYzOTA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8L3Byb2dyYW0+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2NzwvZG9pPg0KICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1Njc8L3Jlc291cmNlPg0KICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkJvbmtlPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+NDI2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE4MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI2Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzEvam91cm5hbC5wZ2VuLjEwMDI5OTc8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMCI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1vbGVjdWxhciBTeXN0ZW1zIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RnVjaHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT42PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM3MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5wYmkuMjAwNS4xMS4wMTM8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+SGlyYWthd2E8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjE4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwNzMvcG5hcy4wODA4NDQ0MTA1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTUiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT41Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTg5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMDQvcHAuMTA0LjA0MDIxMjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIEJpb3RlY2hub2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Tm9ibGU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yNDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTY1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9iaW9pbmZvcm1hdGljcy9idHEwNDY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UmFnbmk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMzIyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTExLjA4NDAyMDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+QWJzdHJhY3Q8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+ZUxpZmUgZGlnZXN0PC9iPg0KICAgICAgICAgICAgICAgIDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBMaWdodCBtaWNyb3Njb3B5IG9mIGNyb3NzIHNlY3Rpb25zIG9idGFpbmVkIGZyb20gQXJhYmlkb3BzaXMgaHlwb2NvdHlscyAob3JnYW4gcG9zaXRpb24gaWxsdXN0cmF0ZWQgZm9yIGEgOS1kYXktb2xkIHNlZWRsaW5nLCBsb3dlciBsZWZ0KSBhdCA5IGRhZyAodXBwZXIgbGVmdCkgYW5kIDM1IGRhZyAocmlnaHQpLiBTaXplIGJhcnMgYXJlIDEwMCDOvG0uIEJsdWUgR1VTIHN0YWluaW5nIGR1ZSB0byB0aGUgcHJlc2VuY2Ugb2YgYW4NCiAgICAgICAgICAgICAgICAgIDxpPkFQTDo6R1VTPC9pPg0KICAgICAgICAgICAgICAgICAgcmVwb3J0ZXIgZ2VuZSBpbiB0aGlzIENvbC0wIGJhY2tncm91bmQgbGluZSBtYXJrcyBwaGxvZW0gYnVuZGxlcy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QjwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFRoZSBzYW1lIGltYWdlIGFmdGVyIHByZS1wcm9jZXNzaW5nIGFuZCBiaW5hcml6YXRpb24sIGFuZCAoDQogICAgICAgICAgICAgICAgICA8Yj5FPC9iPg0KICAgICAgICAgICAgICAgICAgKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uICgNCiAgICAgICAgICAgICAgICAgIDxiPkY8L2I+DQogICAgICAgICAgICAgICAgICApIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAyLiBUaGUg4oCYUXVhbnRpdGF0aXZlIEhpc3RvbG9neeKAmSBhcHByb2FjaC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIOKAmFBoZW5vcHJpbnRz4oCZIGZvciB0aGUgZGlmZmVyZW50IGdlbm90eXBlcyBhbmQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAzLiBQcm9ncmVzc2lvbiBvZiB0aXNzdWUgcHJvbGlmZXJhdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QuKAk0U8L2I+DQogICAgICAgICAgICAgICAgICApIENvbXBhcmF0aXZlIHBsb3RzIG9mIHBhcmFtZXRlciBwcm9ncmVzc2lvbiBpbiB0aGUgdHdvIGdlbm90eXBlcy4gSW4gKA0KICAgICAgICAgICAgICAgICAgPGI+RDwvYj4NCiAgICAgICAgICAgICAgICAgICksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhdCBsYXRlciBzdGFnZXMgb2YgZGV2ZWxvcG1lbnQsIGZvciBleGFtcGxlIDMwIGRhZy4gVGhlIHNpemUgb2YgdGhlIGRpc2MgaW5jcmVhc2VzIHdpdGggdGhlIGFyZWEgb2YgdGhlIGNlbGwuIEJsdWUgY29sb3IgaW5kaWNhdGVzIHJhZGlhbCBjZWxsIG9yaWVudGF0aW9uLCByZWQgb3J0aG9yYWRpYWwuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy4NCiAgICAgICAgICAgICAgICA8L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAg4oCTDQogICAgICAgICAgICAgICAgICA8Yj5KPC9iPg0KICAgICAgICAgICAgICAgICAgKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgR2F1c3NpYW4ga2VybmVsIGRlbnNpdHkgZXN0aW1hdGUgb2YgdGhlIGxvY2F0aW9uIG9mIHByZWRpY3RlZCBwaGxvZW0gYnVuZGxlcyBjZWxscyBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBIaWdoIGRlbnNpdHkgcmVwcmVzZW50cyBwaGxvZW0gcG9sZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuDQogICAgICAgICAgICAgICAgICA8aT5BUEw6OkdVUzwvaT4NCiAgICAgICAgICAgICAgICAgIHJlcG9ydGVyIGNvbnN0cnVjdC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBvYnRhaW5lZCBmcm9tIGFuIGF1dG9tYXRlZCBCYXllc2lhbiBtb2RlbC4gVGhlIGRvbWluYW50IHNpbmdsZSBwZWFrIGluZGljYXRlcyBhIGNvbnN0YW50IGFyYyBkaXN0YW5jZSBvZiBjYS4gNjIgcGl4ZWwgYmV0d2VlbiB0aGUgcGhsb2VtIHBvbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIFN1cHBsZW1lbnRhcnkgZmlsZSAxLiAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFN1bW1hcnkgaW5mb3JtYXRpb24gb2YgdGhlIGhhbmQtbGFiZWxlZCB0cmFpbmluZyBzZXQgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoDQogICAgICAgICAgICAgICAgICA8Yj5EPC9iPg0KICAgICAgICAgICAgICAgICAgKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+RTwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGNlbGwgdHlwZSBjbGFzc2VzIHJlY29nbml6ZWQgYnkgdGhlIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZyBhcHByb2FjaCBhbmQgdGhlaXIgYXNzaWdubWVudCBjb2RlcyB1c2VkIGluIERhdGEgRmlsZXMgMyBhbmQgNC4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBDb2wtMCBzZWN0aW9ucy48L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBMZXIgc2VjdGlvbnMuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC4gVGhlIG5vcm1hbGl6ZWQgdmFsdWVzIG9mIHRoZSBwaGVub3ByaW50cyAoRmlndXJlIDJCKSB1c2VkIGZvciBQQ0EuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIDxiPkRlY2lzaW9uIGxldHRlcjwvYj4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+DQogICAgICAgICAgICAgICAgICA8Yj5BdXRob3IgcmVzcG9uc2U8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
93
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE3LTEwLTE4IDE1OjA5OjQzIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPGFic3RyYWN0Pg0KICAgICAgICAgICAgPHA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvcD4NCiAgICAgICAgICA8L2Fic3RyYWN0Pg0KICAgICAgICAgIDxhYnN0cmFjdCBhYnN0cmFjdC10eXBlPSJleGVjdXRpdmUtc3VtbWFyeSI+DQogICAgICAgICAgICA8cD5PdXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGl2aW5nIHdvcmxkIGhhcyBiZWVuIGFkdmFuY2VkIGdyZWF0bHkgYnkgc3R1ZGllcyBvZiDigJhtb2RlbCBvcmdhbmlzbXPigJksIHN1Y2ggYXMgbWljZSwgemVicmFmaXNoLCBhbmQgZnJ1aXQgZmxpZXMuIFN0dWR5aW5nIHRoZXNlIGNyZWF0dXJlcyBoYXMgYmVlbiBjcnVjaWFsIHRvIHVuY292ZXJpbmcgdGhlIGdlbmVzIHRoYXQgY29udHJvbCBob3cgb3VyIGJvZGllcyBkZXZlbG9wIGFuZCBncm93LCBhbmQgYWxzbyB0byBkaXNjb3ZlciB0aGUgZ2VuZXRpYyBiYXNpcyBvZiBkaXNlYXNlcyBzdWNoIGFzIGNhbmNlci48L3A+DQogICAgICAgICAgICA8cD5UaGFsZSBjcmVzc+KAlG9yIEFyYWJpZG9wc2lzIHRoYWxpYW5hIHRvIGdpdmUgaXRzIGZvcm1hbCBuYW1l4oCUaXMgdGhlIG1vZGVsIG9yZ2FuaXNtIG9mIGNob2ljZSBmb3IgbWFueSBwbGFudCBiaW9sb2dpc3RzLiBUaGlzIHRpbnkgd2VlZCBoYXMgYmVlbiB3aWRlbHkgc3R1ZGllZCBiZWNhdXNlIGl0IGNhbiBjb21wbGV0ZSBpdHMgbGlmZWN5Y2xlLCBmcm9tIHNlZWQgdG8gc2VlZCwgaW4gYWJvdXQgNiB3ZWVrcywgYW5kIGJlY2F1c2UgaXRzIHJlbGF0aXZlbHkgc21hbGwgZ2Vub21lIHNpbXBsaWZpZXMgdGhlIHNlYXJjaCBmb3IgZ2VuZXMgdGhhdCBjb250cm9sIHNwZWNpZmljIHRyYWl0cy4gSG93ZXZlciwgYXMgd2l0aCBvdGhlciBtdWNoLXN0dWRpZWQgbW9kZWwgc3lzdGVtcywgdW5kZXJzdGFuZGluZyB0aGUgY2hhbmdlcyB0aGF0IHVuZGVycGluIHRoZSBkZXZlbG9wbWVudCBvZiBzb21lIG9mIHRoZSBtb3JlIGNvbXBsZXggdGlzc3VlcyBpbiBBcmFiaWRvcHNpcyBoYXMgYmVlbiBzZXZlcmVseSBoYW1wZXJlZCBieSB0aGUgc2hlYXIgbnVtYmVyIG9mIGNlbGxzIGludm9sdmVkLjwvcD4NCiAgICAgICAgICAgIDxwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvcD4NCiAgICAgICAgICAgIDxwPk5vdyBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gaGF2ZSBkZXZlbG9wZWQgYSBub3ZlbCBhcHByb2FjaCwgdGVybWVkIOKAmGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d54oCZLCB0byBvdmVyY29tZSB0aGVzZSBwcm9ibGVtcy4gVGhpcyBzdHJhdGVneSBpbnZvbHZlcyDigJh0ZWFjaGluZ+KAmSBhIGNvbXB1dGVyIHRvIGF1dG9tYXRpY2FsbHkgcmVjb2duaXplIGRpZmZlcmVudCBwbGFudCBjZWxscyBhbmQgdG8gbWVhc3VyZSB0aGVpciBpbXBvcnRhbnQgZmVhdHVyZXMgaW4gaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBvZiB0aXNzdWUgc2VjdGlvbnMuIFRoZSByZXN1bHRpbmcg4oCYbWFw4oCZIG9mIHRoZSBkZXZlbG9waW5nIHN0ZW3igJR3aGljaCByZXF1aXJlZCBvdmVyIDgwMCBociBvZiBjb21wdXRpbmcgdGltZSB0byBjb21wbGV0ZeKAlHJldmVhbHMgdGhlIGNoYW5nZXMgdG8gY2VsbHMgYW5kIHRpc3N1ZXMgYXMgdGhleSBkZXZlbG9wIHRoYXQgYWxsb3cgdGhlIHRyYW5zcG9ydCBvZiB3YXRlciwgc3VnYXJzIGFuZCBudXRyaWVudHMgYmV0d2VlbiB0aGUgYWJvdmUtIGFuZCBiZWxvdy1ncm91bmQgb3JnYW5zLiBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gc3VnZ2VzdCB0aGF0IHRoZWlyIG5vdmVsIGFwcHJvYWNoIGNvdWxkLCBpbiB0aGUgZnV0dXJlLCBhbHNvIGJlIGFwcGxpZWQgdG8gc3R1ZHkgdGhlIGRldmVsb3BtZW50IG9mIG90aGVyIHRpc3N1ZXMgYW5kIG9yZ2FuaXNtcywgaW5jbHVkaW5nIGFuaW1hbHMuPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8cHJvZ3JhbSBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5FTUJPIGxvbmd0ZXJtIHBvc3QtZG9jdG9yYWwgZmVsbG93c2hpcHM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5NYXJpZSBIZWltLVZvZWd0bGluPC9hc3NlcnRpb24+DQogICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+NTAxMTAwMDA2MzkwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgRU1CTw0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDMwNDM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICBTd2lzcyBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAxNzExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwNjM5MDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89ImFtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0idGRtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgICAgPC9jdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgPC9jcm9zc21hcms+DQogICAgICAgICAgPHByb2dyYW0+DQogICAgICAgICAgICA8cmVsYXRlZF9pdGVtPg0KICAgICAgICAgICAgICA8ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvZGVzY3JpcHRpb24+DQogICAgICAgICAgICAgIDxpbnRlcl93b3JrX3JlbGF0aW9uIGlkZW50aWZpZXItdHlwZT0iZG9pIiByZWxhdGlvbnNoaXAtdHlwZT0iaXNTdXBwbGVtZW50ZWRCeSI+MTAuNTA2MS9kcnlhZC5iODM1azwvaW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgIDwvcmVsYXRlZF9pdGVtPg0KICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICA8YXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgICA8YXJjaGl2ZSBuYW1lPSJDTE9DS1NTIiAvPg0KICAgICAgICAgIDwvYXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NzwvcmVzb3VyY2U+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciPg0KICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0+DQogICAgICAgICAgICAgICAgPHJlc291cmNlIG1pbWVfdHlwZT0iYXBwbGljYXRpb24veG1sIj5odHRwczovL2Nkbi5lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9lbGlmZS0wMTU2Ny12MS54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Qm9ua2U8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT40MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTgxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFQTCByZWd1bGF0ZXMgdmFzY3VsYXIgdGlzc3VlIGlkZW50aXR5IGluIEFyYWJpZG9wc2lzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW4gdGhlIGJlZ2lubmluZyB3YXMgdGhlIHdvcm08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTUzNC9nZW5ldGljcy4xMDkuMTA0OTc2PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBoeXNpb2xvZ2lhIFBsYW50YXJ1bTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5DaGFmZmV5PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU5NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TZWNvbmRhcnkgeHlsZW0gZGV2ZWxvcG1lbnQgaW4gQXJhYmlkb3BzaXM6IGEgbW9kZWwgZm9yIHdvb2QgZm9ybWF0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzQvai4xMzk5LTMwNTQuMjAwMi4xMTQwNDEzLng8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmV1cmFsIGNvbXB1dGF0aW9uPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYW5nPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjExOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UcmFpbmluZyBudS1zdXBwb3J0IHZlY3RvciBjbGFzc2lmaWVyczogdGhlb3J5IGFuZCBhbGdvcml0aG1zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExNjIvMDg5OTc2NjAxNzUwMzk5MzM1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1hY2hpbmUgTGVhcm5pbmc8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q29ydGVzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjczPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3L0JGMDA5OTQwMTg8L2RvaT4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+U3VwcG9ydC12ZWN0b3IgTmV0d29ya3M8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNiI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRldmVsb3BtZW50PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkRvbGFuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE5PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNlbGx1bGFyIG9yZ2FuaXNhdGlvbiBvZiB0aGUgQXJhYmlkb3BzaXMgdGhhbGlhbmEgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdGVtIGNlbGwgZnVuY3Rpb24gZHVyaW5nIHBsYW50IHZhc2N1bGFyIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XT1g0IGFuZCBXT1gxNCBhY3QgZG93bnN0cmVhbSBvZiB0aGUgUFhZIHJlY2VwdG9yIGtpbmFzZSB0byByZWd1bGF0ZSBwbGFudCB2YXNjdWxhciBwcm9saWZlcmF0aW9uIGluZGVwZW5kZW50bHkgb2YgYW55IHJvbGUgaW4gdmFzY3VsYXIgb3JnYW5pc2F0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudCB2YXNjdWxhciBjZWxsIGRpdmlzaW9uIGlzIG1haW50YWluZWQgYnkgYW4gaW50ZXJhY3Rpb24gYmV0d2VlbiBQWFkgYW5kIGV0aHlsZW5lIHNpZ25hbGxpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3MS9qb3VybmFsLnBnZW4uMTAwMjk5NzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TW9sZWN1bGFyIFN5c3RlbXMgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5GdWNoczwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzcwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsdXN0ZXJpbmcgcGhlbm90eXBlIHBvcHVsYXRpb25zIGJ5IGdlbm9tZS13aWRlIFJOQWkgYW5kIG11bHRpcGFyYW1ldHJpYyBpbWFnaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5CYVNBUi1BIHRvb2wgaW4gUiBmb3IgZnJlcXVlbmN5IGRldGVjdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouYmlvc3lzdGVtcy4yMDEyLjA3LjAwNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q3VycmVudCBPcGluaW9uIGluIFBsYW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+R3Jvb3ZlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGV2ZWxvcG1lbnRhbCBtZWNoYW5pc21zIHJlZ3VsYXRpbmcgc2Vjb25kYXJ5IGdyb3d0aCBpbiB3b29keSBwbGFudHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnBiaS4yMDA1LjExLjAxMzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VERJRiBwZXB0aWRlIHNpZ25hbGluZyByZWd1bGF0ZXMgdmFzY3VsYXIgc3RlbSBjZWxsIHByb2xpZmVyYXRpb24gdmlhIHRoZSBXT1g0IGhvbWVvYm94IGdlbmUgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Ob24tY2VsbC1hdXRvbm9tb3VzIGNvbnRyb2wgb2YgdmFzY3VsYXIgc3RlbSBjZWxsIGZhdGUgYnkgYSBDTEUgcGVwdGlkZS9yZWNlcHRvciBzeXN0ZW08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjA4MDg0NDQxMDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjU2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BcmFiaWRvcHNpcywgYSB1c2VmdWwgd2VlZDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudHMgY29tcGFyZWQgdG8gYW5pbWFsczogdGhlIGJyb2FkZXN0IGNvbXBhcmF0aXZlIHN0dWR5IG9mIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BIHdlZWQgZm9yIHdvb2Q/IEFyYWJpZG9wc2lzIGFzIGEgZ2VuZXRpYyBtb2RlbCBmb3IgeHlsZW0gZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNC9wcC4xMDQuMDQwMjEyPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTgiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmUgQmlvdGVjaG5vbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Ob2JsZTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjI0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1NjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+V2hhdCBpcyBhIHN1cHBvcnQgdmVjdG9yIG1hY2hpbmU/PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmJ0MTIwNi0xNTY1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk9sc29uPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+Nzc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTUxNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODA8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DbGFzc2lmaWNhdGlvbiBvZiBjdWx0dXJlZCBtYW1tYWxpYW4gY2VsbHMgYnkgc2hhcGUgYW5hbHlzaXMgYW5kIHBhdHRlcm4gcmVjb2duaXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVCSW1hZ2XigJNhbiBSIHBhY2thZ2UgZm9yIGltYWdlIHByb2Nlc3Npbmcgd2l0aCBhcHBsaWNhdGlvbnMgdG8gY2VsbHVsYXIgcGhlbm90eXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDkzL2Jpb2luZm9ybWF0aWNzL2J0cTA0NjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5SYWduaTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEzMjI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TW9iaWxlIGdpYmJlcmVsbGluIGRpcmVjdGx5IHN0aW11bGF0ZXMgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHh5bGVtIGV4cGFuc2lvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTEuMDg0MDIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2Fua2FyPC9hdXRob3I+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC41MDYxL2RyeWFkLmI4MzVrPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjMiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2lib3V0PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDU4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkZsb3dlcmluZyBhcyBhIGNvbmRpdGlvbiBmb3IgeHlsZW0gZXhwYW5zaW9uIGluIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBhbmQgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RXZvbHV0aW9uIG9mIGRldmVsb3BtZW50IG9mIHZhc2N1bGFyIGNhbWJpYSBhbmQgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbCBtb3JwaG9sb2d5IGNsYXNzaWZpY2F0aW9uIGFuZCBjbHV0dGVyIG1pdGlnYXRpb24gaW4gcGhhc2UtY29udHJhc3QgbWljcm9zY29weSBpbWFnZXMgdXNpbmcgbWFjaGluZSBsZWFybmluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TWVjaGFuaWNhbCBzdHJlc3MgYWN0cyB2aWEga2F0YW5pbiB0byBhbXBsaWZ5IGRpZmZlcmVuY2VzIGluIGdyb3d0aCByYXRlIGJldHdlZW4gYWRqYWNlbnQgY2VsbHMgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNlbGwuMjAxMi4wMi4wNDg8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBDZWxsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+WWluPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ODYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgc2NyZWVuIGZvciBtb3JwaG9sb2dpY2FsIGNvbXBsZXhpdHkgaWRlbnRpZmllcyByZWd1bGF0b3JzIG9mIHN3aXRjaC1saWtlIHRyYW5zaXRpb25zIGJldHdlZW4gZGlzY3JldGUgY2VsbCBzaGFwZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uY2IyNzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICA8Y29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5BYnN0cmFjdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNhYnN0cmFjdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPmVMaWZlIGRpZ2VzdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNkaWdlc3Q8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIExpZ2h0IG1pY3Jvc2NvcHkgb2YgY3Jvc3Mgc2VjdGlvbnMgb2J0YWluZWQgZnJvbSBBcmFiaWRvcHNpcyBoeXBvY290eWxzIChvcmdhbiBwb3NpdGlvbiBpbGx1c3RyYXRlZCBmb3IgYSA5LWRheS1vbGQgc2VlZGxpbmcsIGxvd2VyIGxlZnQpIGF0IDkgZGFnICh1cHBlciBsZWZ0KSBhbmQgMzUgZGFnIChyaWdodCkuIFNpemUgYmFycyBhcmUgMTAwIM68bS4gQmx1ZSBHVVMgc3RhaW5pbmcgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhbiBBUEw6OkdVUyByZXBvcnRlciBnZW5lIGluIHRoaXMgQ29sLTAgYmFja2dyb3VuZCBsaW5lIG1hcmtzIHBobG9lbSBidW5kbGVzLiAoQikgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuIChDKSBFeGFtcGxlIG9mIGEgaGlnaC1yZXNvbHV0aW9uIGh5cG9jb3R5bCBzZWN0aW9uIGltYWdlIGFzc2VtYmxlZCBmcm9tIDExIMOXIDExIHRpbGVzLiAoRCkgVGhlIHNhbWUgaW1hZ2UgYWZ0ZXIgcHJlLXByb2Nlc3NpbmcgYW5kIGJpbmFyaXphdGlvbiwgYW5kIChFKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uIChGKSBOdW1iZXIgb2YgbWlzLXNlZ21lbnRlZCBjZWxscyBhcyBkZXRlcm1pbmVkIGJ5IGNhcmVmdWwgdmlzdWFsIGluc3BlY3Rpb24gaW4gMTIgc2VjdGlvbnMsIHBsb3R0ZWQgYWdhaW5zdCB0aGUgdG90YWwgbnVtYmVyIG9mIGNlbGxzIHBlciBzZWN0aW9uIChsb2cgc2NhbGUpLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDM8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDIuIFRoZSDigJhRdWFudGl0YXRpdmUgSGlzdG9sb2d54oCZIGFwcHJvYWNoLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBPdmVydmlldyBvZiB0aGUgY29tcHV0YXRpb25hbCBwaXBlbGluZSBmcm9tIGltYWdlIGFjcXVpc2l0aW9uIHRvIGFuYWx5c2lzLiAoQikg4oCYUGhlbm9wcmludHPigJkgZm9yIHRoZSBkaWZmZXJlbnQgZ2Vub3R5cGVzIGFuZCBkZXZlbG9wbWVudGFsIHN0YWdlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnMnMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDMuIFByb2dyZXNzaW9uIG9mIHRpc3N1ZSBwcm9saWZlcmF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBQcmluY2lwYWwgY29tcG9uZW50IGFuYWx5c2lzIChQQ0EpIG9mIHRoZSBwaGVub3ByaW50cyBzaG93biBpbiBGaWd1cmUgMkIsIHBlcmZvcm1lZCB3aXRoIG5vcm1hbGl6ZWQgdmFsdWVzIChTdXBwbGVtZW50YXJ5IGZpbGUgNCkuIFRoZSBpbmxheSBzY3JlZXBsb3QgZGlzcGxheXMgdGhlIHByb3BvcnRpb24gb2YgdG90YWwgdmFyaWF0aW9uIGV4cGxhaW5lZCBieSBlYWNoIHByaW5jaXBhbCBjb21wb25lbnQuIChC4oCTRSkgQ29tcGFyYXRpdmUgcGxvdHMgb2YgcGFyYW1ldGVyIHByb2dyZXNzaW9uIGluIHRoZSB0d28gZ2Vub3R5cGVzLiBJbiAoRCksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzM8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNC4gQmltb2RhbCBkaXN0cmlidXRpb24gb2YgaW5jbGluZSBhbmdsZSBhY2NvcmRpbmcgdG8gcG9zaXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEgYW5kIEIpIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoQikgYXMgY29tcGFyZWQgdG8gQ29sLTAgKEEpIGF0IGxhdGVyIHN0YWdlcyBvZiBkZXZlbG9wbWVudCwgZm9yIGV4YW1wbGUgMzAgZGFnLiBUaGUgc2l6ZSBvZiB0aGUgZGlzYyBpbmNyZWFzZXMgd2l0aCB0aGUgYXJlYSBvZiB0aGUgY2VsbC4gQmx1ZSBjb2xvciBpbmRpY2F0ZXMgcmFkaWFsIGNlbGwgb3JpZW50YXRpb24sIHJlZCBvcnRob3JhZGlhbC4gKEMgYW5kIEQpIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA04oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gaWxsdXN0cmF0aW9uIG9mIHRoZSBpbmNsaW5lIGFuZ2xlLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBpbmNsaW5lIGlzIHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBzZWN0aW9uIHJhZGl1cyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSBmaXQgdG8gYSBjZWxsIGFuZCB0aGUgbWFqb3IgYXhpcyBvZiB0aGF0IGVsbGlwc2UgZXh0ZW5kZWQgdG93YXJkcyB0aGUgeCBheGlzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDg8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI2ZpZzRzMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEHigJNKKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDXigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbmFseXNpcyBvZiBjZWxsIG51bWJlciBpbiBkZWZpbmVkIHh5bGVtIHJlZ2lvbnMgb2YgZGlmZmVyZW50IHNpemUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+Q2VsbCBudW1iZXIgaW4gYSBjaXJjbGUgb2YgMjAw4oCTNTAwIHBpeGVscyBhcm91bmQgdGhlIHNlY3Rpb24gY2VudGVycyBmb3IgQ29sLTAuIENlbGwgY291bnQgaW4gYSBjb25zdGFudCBhcmVhIG9mIHh5bGVtIG92ZXIgdGltZSBhY3Jvc3MgYWxsIGF2ZXJhZ2VkIGFjcm9zcyBhbGwgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNXMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgRXhhbXBsZSBvZiBHYXVzc2lhbiBrZXJuZWwgZGVuc2l0eSBlc3RpbWF0ZSBvZiB0aGUgbG9jYXRpb24gb2YgcHJlZGljdGVkIHBobG9lbSBidW5kbGVzIGNlbGxzIGluIGEgMzAgZGFnIENvbC0wIHNlY3Rpb24uIEhpZ2ggZGVuc2l0eSByZXByZXNlbnRzIHBobG9lbSBwb2xlcy4gKEIpIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuIEFQTDo6R1VTIHJlcG9ydGVyIGNvbnN0cnVjdC4gKEMpIFByb2JhYmlsaXR5IGRlbnNpdHkgZnVuY3Rpb24gb2YgdGhlIGRhdGEgc2hvd24gaW4gKEIpIG9idGFpbmVkIGZyb20gYW4gYXV0b21hdGVkIEJheWVzaWFuIG1vZGVsLiBUaGUgZG9taW5hbnQgc2luZ2xlIHBlYWsgaW5kaWNhdGVzIGEgY29uc3RhbnQgYXJjIGRpc3RhbmNlIG9mIGNhLiA2MiBwaXhlbCBiZXR3ZWVuIHRoZSBwaGxvZW0gcG9sZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgMS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgQW4gZXhwbGFuYXRpb24gb2YgdGhlIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIHRoYXQgZGVzY3JpYmUgdGhlIGNlbGx1bGFyIGZlYXR1cmVzLiAoQikgU3VtbWFyeSBpbmZvcm1hdGlvbiBvZiB0aGUgaGFuZC1sYWJlbGVkIHRyYWluaW5nIHNldCBmb3Igc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nLiAoQykgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoRCkgU3VtbWFyeSBvZiB0aGUgY2xhc3NpZmllciBwYXJhbWV0ZXJzIGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChFKSBPdmVydmlldyBvZiB0aGUgY2VsbCB0eXBlIGNsYXNzZXMgcmVjb2duaXplZCBieSB0aGUgc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nIGFwcHJvYWNoIGFuZCB0aGVpciBhc3NpZ25tZW50IGNvZGVzIHVzZWQgaW4gRGF0YSBGaWxlcyAzIGFuZCA0Ljwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEyPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDEtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIENvbC0wIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDItZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIExlciBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0QzLWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5UaGUgbm9ybWFsaXplZCB2YWx1ZXMgb2YgdGhlIHBoZW5vcHJpbnRzIChGaWd1cmUgMkIpIHVzZWQgZm9yIFBDQS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0Q0LWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5EZWNpc2lvbiBsZXR0ZXI8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZGVjaXNpb24tbGV0dGVyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+QXV0aG9yIHJlc3BvbnNlPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2F1dGhvci1yZXNwb25zZTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
94
94
  http_version:
95
- recorded_at: Mon, 25 Sep 2017 19:25:17 GMT
95
+ recorded_at: Mon, 23 Oct 2017 22:30:10 GMT
96
96
  - request:
97
97
  method: get
98
98
  uri: http://api.crossref.org/prefixes/10.7554
@@ -122,7 +122,7 @@ http_interactions:
122
122
  Server:
123
123
  - http-kit
124
124
  Date:
125
- - Mon, 25 Sep 2017 19:25:17 GMT
125
+ - Mon, 23 Oct 2017 22:30:11 GMT
126
126
  X-Rate-Limit-Limit:
127
127
  - '50'
128
128
  X-Rate-Limit-Interval:
@@ -134,7 +134,7 @@ http_interactions:
134
134
  string: '{"status":"ok","message-type":"prefix","message-version":"1.0.0","message":{"member":"http:\/\/id.crossref.org\/member\/4374","name":"eLife
135
135
  Sciences Organisation, Ltd.","prefix":"http:\/\/id.crossref.org\/prefix\/10.7554"}}'
136
136
  http_version:
137
- recorded_at: Mon, 25 Sep 2017 19:25:17 GMT
137
+ recorded_at: Mon, 23 Oct 2017 22:30:11 GMT
138
138
  - request:
139
139
  method: post
140
140
  uri: https://citation.crosscite.org/format?locale=en-US&style=vancouver
@@ -179,7 +179,7 @@ http_interactions:
179
179
  "DOI": "10.7554/elife.01567",
180
180
  "publisher": "eLife Sciences Organisation, Ltd.",
181
181
  "title": "Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth",
182
- "URL": "http://elifesciences.org/lookup/doi/10.7554/eLife.01567",
182
+ "URL": "https://elifesciences.org/articles/01567",
183
183
  "volume": "3"
184
184
  }
185
185
  headers:
@@ -203,7 +203,7 @@ http_interactions:
203
203
  Content-Type:
204
204
  - text/plain
205
205
  Date:
206
- - Mon, 25 Sep 2017 19:25:18 GMT
206
+ - Mon, 23 Oct 2017 22:30:12 GMT
207
207
  Server:
208
208
  - openresty/1.11.2.2
209
209
  Status:
@@ -211,7 +211,7 @@ http_interactions:
211
211
  X-Powered-By:
212
212
  - Phusion Passenger 5.1.5
213
213
  Content-Length:
214
- - '275'
214
+ - '260'
215
215
  Connection:
216
216
  - keep-alive
217
217
  body:
@@ -219,9 +219,9 @@ http_interactions:
219
219
  string: '1. Sankar M, Nieminen K, Ragni L, Xenarios I, Hardtke CS. Automated
220
220
  quantitative histology reveals vascular morphodynamics during Arabidopsis
221
221
  hypocotyl secondary growth. eLife [Internet]. 2014 Feb 11;3. Available from:
222
- http://elifesciences.org/lookup/doi/10.7554/eLife.01567
222
+ https://elifesciences.org/articles/01567
223
223
 
224
224
  '
225
225
  http_version:
226
- recorded_at: Mon, 25 Sep 2017 19:25:18 GMT
226
+ recorded_at: Mon, 23 Oct 2017 22:30:12 GMT
227
227
  recorded_with: VCR 3.0.3
@@ -29,7 +29,7 @@ http_interactions:
29
29
  Content-Type:
30
30
  - application/vnd.api+json; charset=utf-8
31
31
  Date:
32
- - Mon, 25 Sep 2017 19:24:49 GMT
32
+ - Mon, 23 Oct 2017 18:01:05 GMT
33
33
  Etag:
34
34
  - W/"f03c5d43c9e031db0cf6b29702cab8ca"
35
35
  Server:
@@ -45,20 +45,22 @@ http_interactions:
45
45
  X-Kong-Proxy-Latency:
46
46
  - '0'
47
47
  X-Kong-Upstream-Latency:
48
- - '815'
48
+ - '379'
49
49
  X-Powered-By:
50
- - Phusion Passenger 5.1.8
50
+ - Phusion Passenger 5.1.11
51
51
  X-Request-Id:
52
- - bfee6f74-e5a0-479e-9899-a998098042a8
52
+ - ee6dcc3f-41e2-4618-b604-70376ab242a9
53
53
  X-Runtime:
54
- - '0.810072'
54
+ - '0.375215'
55
+ Content-Length:
56
+ - '203'
55
57
  Connection:
56
58
  - keep-alive
57
59
  body:
58
60
  encoding: UTF-8
59
61
  string: '{"data":{"id":"10.7554","type":"prefixes","attributes":{"registration-agency":"Crossref","created":null,"updated":"2016-09-21T21:07:27Z"},"relationships":{"clients":{"data":[]},"providers":{"data":[]}}}}'
60
62
  http_version:
61
- recorded_at: Mon, 25 Sep 2017 19:24:49 GMT
63
+ recorded_at: Mon, 23 Oct 2017 18:01:05 GMT
62
64
  - request:
63
65
  method: get
64
66
  uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.7554/elife.01567&noredirect=true&pid=tech@datacite.org
@@ -78,21 +80,27 @@ http_interactions:
78
80
  Server:
79
81
  - Apache-Coyote/1.1
80
82
  Crossref-Deployment-Name:
81
- - cr6-1
83
+ - qs5-1
82
84
  Content-Type:
83
85
  - text/xml;charset=UTF-8
84
86
  Content-Language:
85
87
  - en-US
86
88
  Date:
87
- - Mon, 25 Sep 2017 19:24:49 GMT
89
+ - Mon, 23 Oct 2017 18:01:06 GMT
90
+ X-Cache:
91
+ - MISS from IMP-cache
92
+ X-Cache-Lookup:
93
+ - MISS from IMP-cache:3128
94
+ Via:
95
+ - 1.0 IMP-cache (squid/3.1.20)
88
96
  Connection:
89
97
  - close
90
98
  body:
91
99
  encoding: ASCII-8BIT
92
100
  string: !binary |-
93
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE1LTA4LTExIDA3OjM1OjAyIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgPHRpdGxlPkF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC90aXRsZT4NCiAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TWFydGlhbDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+U2Fua2FyPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+S2Fpc2E8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk5pZW1pbmVuPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SW9hbm5pczwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+WGVuYXJpb3M8L3N1cm5hbWU+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5DaHJpc3RpYW4gUzwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+SGFyZHRrZTwvc3VybmFtZT4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8Y3Jvc3NtYXJrPg0KICAgICAgICAgICAgPGNyb3NzbWFya192ZXJzaW9uPjE8L2Nyb3NzbWFya192ZXJzaW9uPg0KICAgICAgICAgICAgPGNyb3NzbWFya19wb2xpY3k+ZUxpZmVzY2llbmNlczwvY3Jvc3NtYXJrX3BvbGljeT4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgPGRvbWFpbj53d3cuZWxpZmVzY2llbmNlcy5vcmc8L2RvbWFpbj4NCiAgICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWluPg0KICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT5mYWxzZTwvY3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+DQogICAgICAgICAgICA8Y3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InJlY2VpdmVkIiBsYWJlbD0iUmVjZWl2ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMCI+MjAxMy0wOS0yMDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImFjY2VwdGVkIiBsYWJlbD0iQWNjZXB0ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMSI+MjAxMy0xMi0yNDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InB1Ymxpc2hlZCIgbGFiZWw9IlB1Ymxpc2hlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIyIj4yMDE0LTAyLTExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9ImZ1bmRyZWYiPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIEVNQk8NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAzMDQzPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgU3dpc3MgTmF0aW9uYWwgU2NpZW5jZSBGb3VuZGF0aW9uDQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMTcxMTwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciIgcHJvdmlkZXI9ImNyb3NzcmVmIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDYzOTA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8L3Byb2dyYW0+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2NzwvZG9pPg0KICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1Njc8L3Jlc291cmNlPg0KICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkJvbmtlPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+NDI2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE4MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI2Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzEvam91cm5hbC5wZ2VuLjEwMDI5OTc8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMCI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1vbGVjdWxhciBTeXN0ZW1zIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RnVjaHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT42PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM3MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5wYmkuMjAwNS4xMS4wMTM8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+SGlyYWthd2E8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjE4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwNzMvcG5hcy4wODA4NDQ0MTA1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTUiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT41Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTg5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMDQvcHAuMTA0LjA0MDIxMjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIEJpb3RlY2hub2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Tm9ibGU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yNDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTY1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9iaW9pbmZvcm1hdGljcy9idHEwNDY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UmFnbmk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMzIyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTExLjA4NDAyMDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+QWJzdHJhY3Q8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+ZUxpZmUgZGlnZXN0PC9iPg0KICAgICAgICAgICAgICAgIDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBMaWdodCBtaWNyb3Njb3B5IG9mIGNyb3NzIHNlY3Rpb25zIG9idGFpbmVkIGZyb20gQXJhYmlkb3BzaXMgaHlwb2NvdHlscyAob3JnYW4gcG9zaXRpb24gaWxsdXN0cmF0ZWQgZm9yIGEgOS1kYXktb2xkIHNlZWRsaW5nLCBsb3dlciBsZWZ0KSBhdCA5IGRhZyAodXBwZXIgbGVmdCkgYW5kIDM1IGRhZyAocmlnaHQpLiBTaXplIGJhcnMgYXJlIDEwMCDOvG0uIEJsdWUgR1VTIHN0YWluaW5nIGR1ZSB0byB0aGUgcHJlc2VuY2Ugb2YgYW4NCiAgICAgICAgICAgICAgICAgIDxpPkFQTDo6R1VTPC9pPg0KICAgICAgICAgICAgICAgICAgcmVwb3J0ZXIgZ2VuZSBpbiB0aGlzIENvbC0wIGJhY2tncm91bmQgbGluZSBtYXJrcyBwaGxvZW0gYnVuZGxlcy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QjwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFRoZSBzYW1lIGltYWdlIGFmdGVyIHByZS1wcm9jZXNzaW5nIGFuZCBiaW5hcml6YXRpb24sIGFuZCAoDQogICAgICAgICAgICAgICAgICA8Yj5FPC9iPg0KICAgICAgICAgICAgICAgICAgKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uICgNCiAgICAgICAgICAgICAgICAgIDxiPkY8L2I+DQogICAgICAgICAgICAgICAgICApIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAyLiBUaGUg4oCYUXVhbnRpdGF0aXZlIEhpc3RvbG9neeKAmSBhcHByb2FjaC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIOKAmFBoZW5vcHJpbnRz4oCZIGZvciB0aGUgZGlmZmVyZW50IGdlbm90eXBlcyBhbmQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAzLiBQcm9ncmVzc2lvbiBvZiB0aXNzdWUgcHJvbGlmZXJhdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QuKAk0U8L2I+DQogICAgICAgICAgICAgICAgICApIENvbXBhcmF0aXZlIHBsb3RzIG9mIHBhcmFtZXRlciBwcm9ncmVzc2lvbiBpbiB0aGUgdHdvIGdlbm90eXBlcy4gSW4gKA0KICAgICAgICAgICAgICAgICAgPGI+RDwvYj4NCiAgICAgICAgICAgICAgICAgICksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhdCBsYXRlciBzdGFnZXMgb2YgZGV2ZWxvcG1lbnQsIGZvciBleGFtcGxlIDMwIGRhZy4gVGhlIHNpemUgb2YgdGhlIGRpc2MgaW5jcmVhc2VzIHdpdGggdGhlIGFyZWEgb2YgdGhlIGNlbGwuIEJsdWUgY29sb3IgaW5kaWNhdGVzIHJhZGlhbCBjZWxsIG9yaWVudGF0aW9uLCByZWQgb3J0aG9yYWRpYWwuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy4NCiAgICAgICAgICAgICAgICA8L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAg4oCTDQogICAgICAgICAgICAgICAgICA8Yj5KPC9iPg0KICAgICAgICAgICAgICAgICAgKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgR2F1c3NpYW4ga2VybmVsIGRlbnNpdHkgZXN0aW1hdGUgb2YgdGhlIGxvY2F0aW9uIG9mIHByZWRpY3RlZCBwaGxvZW0gYnVuZGxlcyBjZWxscyBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBIaWdoIGRlbnNpdHkgcmVwcmVzZW50cyBwaGxvZW0gcG9sZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuDQogICAgICAgICAgICAgICAgICA8aT5BUEw6OkdVUzwvaT4NCiAgICAgICAgICAgICAgICAgIHJlcG9ydGVyIGNvbnN0cnVjdC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBvYnRhaW5lZCBmcm9tIGFuIGF1dG9tYXRlZCBCYXllc2lhbiBtb2RlbC4gVGhlIGRvbWluYW50IHNpbmdsZSBwZWFrIGluZGljYXRlcyBhIGNvbnN0YW50IGFyYyBkaXN0YW5jZSBvZiBjYS4gNjIgcGl4ZWwgYmV0d2VlbiB0aGUgcGhsb2VtIHBvbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIFN1cHBsZW1lbnRhcnkgZmlsZSAxLiAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFN1bW1hcnkgaW5mb3JtYXRpb24gb2YgdGhlIGhhbmQtbGFiZWxlZCB0cmFpbmluZyBzZXQgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoDQogICAgICAgICAgICAgICAgICA8Yj5EPC9iPg0KICAgICAgICAgICAgICAgICAgKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+RTwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGNlbGwgdHlwZSBjbGFzc2VzIHJlY29nbml6ZWQgYnkgdGhlIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZyBhcHByb2FjaCBhbmQgdGhlaXIgYXNzaWdubWVudCBjb2RlcyB1c2VkIGluIERhdGEgRmlsZXMgMyBhbmQgNC4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBDb2wtMCBzZWN0aW9ucy48L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBMZXIgc2VjdGlvbnMuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC4gVGhlIG5vcm1hbGl6ZWQgdmFsdWVzIG9mIHRoZSBwaGVub3ByaW50cyAoRmlndXJlIDJCKSB1c2VkIGZvciBQQ0EuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIDxiPkRlY2lzaW9uIGxldHRlcjwvYj4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+DQogICAgICAgICAgICAgICAgICA8Yj5BdXRob3IgcmVzcG9uc2U8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
101
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE3LTEwLTE4IDE1OjA5OjQzIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPGFic3RyYWN0Pg0KICAgICAgICAgICAgPHA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvcD4NCiAgICAgICAgICA8L2Fic3RyYWN0Pg0KICAgICAgICAgIDxhYnN0cmFjdCBhYnN0cmFjdC10eXBlPSJleGVjdXRpdmUtc3VtbWFyeSI+DQogICAgICAgICAgICA8cD5PdXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGl2aW5nIHdvcmxkIGhhcyBiZWVuIGFkdmFuY2VkIGdyZWF0bHkgYnkgc3R1ZGllcyBvZiDigJhtb2RlbCBvcmdhbmlzbXPigJksIHN1Y2ggYXMgbWljZSwgemVicmFmaXNoLCBhbmQgZnJ1aXQgZmxpZXMuIFN0dWR5aW5nIHRoZXNlIGNyZWF0dXJlcyBoYXMgYmVlbiBjcnVjaWFsIHRvIHVuY292ZXJpbmcgdGhlIGdlbmVzIHRoYXQgY29udHJvbCBob3cgb3VyIGJvZGllcyBkZXZlbG9wIGFuZCBncm93LCBhbmQgYWxzbyB0byBkaXNjb3ZlciB0aGUgZ2VuZXRpYyBiYXNpcyBvZiBkaXNlYXNlcyBzdWNoIGFzIGNhbmNlci48L3A+DQogICAgICAgICAgICA8cD5UaGFsZSBjcmVzc+KAlG9yIEFyYWJpZG9wc2lzIHRoYWxpYW5hIHRvIGdpdmUgaXRzIGZvcm1hbCBuYW1l4oCUaXMgdGhlIG1vZGVsIG9yZ2FuaXNtIG9mIGNob2ljZSBmb3IgbWFueSBwbGFudCBiaW9sb2dpc3RzLiBUaGlzIHRpbnkgd2VlZCBoYXMgYmVlbiB3aWRlbHkgc3R1ZGllZCBiZWNhdXNlIGl0IGNhbiBjb21wbGV0ZSBpdHMgbGlmZWN5Y2xlLCBmcm9tIHNlZWQgdG8gc2VlZCwgaW4gYWJvdXQgNiB3ZWVrcywgYW5kIGJlY2F1c2UgaXRzIHJlbGF0aXZlbHkgc21hbGwgZ2Vub21lIHNpbXBsaWZpZXMgdGhlIHNlYXJjaCBmb3IgZ2VuZXMgdGhhdCBjb250cm9sIHNwZWNpZmljIHRyYWl0cy4gSG93ZXZlciwgYXMgd2l0aCBvdGhlciBtdWNoLXN0dWRpZWQgbW9kZWwgc3lzdGVtcywgdW5kZXJzdGFuZGluZyB0aGUgY2hhbmdlcyB0aGF0IHVuZGVycGluIHRoZSBkZXZlbG9wbWVudCBvZiBzb21lIG9mIHRoZSBtb3JlIGNvbXBsZXggdGlzc3VlcyBpbiBBcmFiaWRvcHNpcyBoYXMgYmVlbiBzZXZlcmVseSBoYW1wZXJlZCBieSB0aGUgc2hlYXIgbnVtYmVyIG9mIGNlbGxzIGludm9sdmVkLjwvcD4NCiAgICAgICAgICAgIDxwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvcD4NCiAgICAgICAgICAgIDxwPk5vdyBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gaGF2ZSBkZXZlbG9wZWQgYSBub3ZlbCBhcHByb2FjaCwgdGVybWVkIOKAmGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d54oCZLCB0byBvdmVyY29tZSB0aGVzZSBwcm9ibGVtcy4gVGhpcyBzdHJhdGVneSBpbnZvbHZlcyDigJh0ZWFjaGluZ+KAmSBhIGNvbXB1dGVyIHRvIGF1dG9tYXRpY2FsbHkgcmVjb2duaXplIGRpZmZlcmVudCBwbGFudCBjZWxscyBhbmQgdG8gbWVhc3VyZSB0aGVpciBpbXBvcnRhbnQgZmVhdHVyZXMgaW4gaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBvZiB0aXNzdWUgc2VjdGlvbnMuIFRoZSByZXN1bHRpbmcg4oCYbWFw4oCZIG9mIHRoZSBkZXZlbG9waW5nIHN0ZW3igJR3aGljaCByZXF1aXJlZCBvdmVyIDgwMCBociBvZiBjb21wdXRpbmcgdGltZSB0byBjb21wbGV0ZeKAlHJldmVhbHMgdGhlIGNoYW5nZXMgdG8gY2VsbHMgYW5kIHRpc3N1ZXMgYXMgdGhleSBkZXZlbG9wIHRoYXQgYWxsb3cgdGhlIHRyYW5zcG9ydCBvZiB3YXRlciwgc3VnYXJzIGFuZCBudXRyaWVudHMgYmV0d2VlbiB0aGUgYWJvdmUtIGFuZCBiZWxvdy1ncm91bmQgb3JnYW5zLiBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gc3VnZ2VzdCB0aGF0IHRoZWlyIG5vdmVsIGFwcHJvYWNoIGNvdWxkLCBpbiB0aGUgZnV0dXJlLCBhbHNvIGJlIGFwcGxpZWQgdG8gc3R1ZHkgdGhlIGRldmVsb3BtZW50IG9mIG90aGVyIHRpc3N1ZXMgYW5kIG9yZ2FuaXNtcywgaW5jbHVkaW5nIGFuaW1hbHMuPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8cHJvZ3JhbSBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5FTUJPIGxvbmd0ZXJtIHBvc3QtZG9jdG9yYWwgZmVsbG93c2hpcHM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5NYXJpZSBIZWltLVZvZWd0bGluPC9hc3NlcnRpb24+DQogICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+NTAxMTAwMDA2MzkwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgRU1CTw0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDMwNDM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICBTd2lzcyBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAxNzExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwNjM5MDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89ImFtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0idGRtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgICAgPC9jdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgPC9jcm9zc21hcms+DQogICAgICAgICAgPHByb2dyYW0+DQogICAgICAgICAgICA8cmVsYXRlZF9pdGVtPg0KICAgICAgICAgICAgICA8ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvZGVzY3JpcHRpb24+DQogICAgICAgICAgICAgIDxpbnRlcl93b3JrX3JlbGF0aW9uIGlkZW50aWZpZXItdHlwZT0iZG9pIiByZWxhdGlvbnNoaXAtdHlwZT0iaXNTdXBwbGVtZW50ZWRCeSI+MTAuNTA2MS9kcnlhZC5iODM1azwvaW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgIDwvcmVsYXRlZF9pdGVtPg0KICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICA8YXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgICA8YXJjaGl2ZSBuYW1lPSJDTE9DS1NTIiAvPg0KICAgICAgICAgIDwvYXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NzwvcmVzb3VyY2U+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciPg0KICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0+DQogICAgICAgICAgICAgICAgPHJlc291cmNlIG1pbWVfdHlwZT0iYXBwbGljYXRpb24veG1sIj5odHRwczovL2Nkbi5lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9lbGlmZS0wMTU2Ny12MS54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Qm9ua2U8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT40MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTgxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFQTCByZWd1bGF0ZXMgdmFzY3VsYXIgdGlzc3VlIGlkZW50aXR5IGluIEFyYWJpZG9wc2lzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW4gdGhlIGJlZ2lubmluZyB3YXMgdGhlIHdvcm08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTUzNC9nZW5ldGljcy4xMDkuMTA0OTc2PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBoeXNpb2xvZ2lhIFBsYW50YXJ1bTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5DaGFmZmV5PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU5NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TZWNvbmRhcnkgeHlsZW0gZGV2ZWxvcG1lbnQgaW4gQXJhYmlkb3BzaXM6IGEgbW9kZWwgZm9yIHdvb2QgZm9ybWF0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzQvai4xMzk5LTMwNTQuMjAwMi4xMTQwNDEzLng8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmV1cmFsIGNvbXB1dGF0aW9uPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYW5nPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjExOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UcmFpbmluZyBudS1zdXBwb3J0IHZlY3RvciBjbGFzc2lmaWVyczogdGhlb3J5IGFuZCBhbGdvcml0aG1zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExNjIvMDg5OTc2NjAxNzUwMzk5MzM1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1hY2hpbmUgTGVhcm5pbmc8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q29ydGVzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjczPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3L0JGMDA5OTQwMTg8L2RvaT4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+U3VwcG9ydC12ZWN0b3IgTmV0d29ya3M8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNiI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRldmVsb3BtZW50PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkRvbGFuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE5PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNlbGx1bGFyIG9yZ2FuaXNhdGlvbiBvZiB0aGUgQXJhYmlkb3BzaXMgdGhhbGlhbmEgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdGVtIGNlbGwgZnVuY3Rpb24gZHVyaW5nIHBsYW50IHZhc2N1bGFyIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XT1g0IGFuZCBXT1gxNCBhY3QgZG93bnN0cmVhbSBvZiB0aGUgUFhZIHJlY2VwdG9yIGtpbmFzZSB0byByZWd1bGF0ZSBwbGFudCB2YXNjdWxhciBwcm9saWZlcmF0aW9uIGluZGVwZW5kZW50bHkgb2YgYW55IHJvbGUgaW4gdmFzY3VsYXIgb3JnYW5pc2F0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudCB2YXNjdWxhciBjZWxsIGRpdmlzaW9uIGlzIG1haW50YWluZWQgYnkgYW4gaW50ZXJhY3Rpb24gYmV0d2VlbiBQWFkgYW5kIGV0aHlsZW5lIHNpZ25hbGxpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3MS9qb3VybmFsLnBnZW4uMTAwMjk5NzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TW9sZWN1bGFyIFN5c3RlbXMgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5GdWNoczwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzcwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsdXN0ZXJpbmcgcGhlbm90eXBlIHBvcHVsYXRpb25zIGJ5IGdlbm9tZS13aWRlIFJOQWkgYW5kIG11bHRpcGFyYW1ldHJpYyBpbWFnaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5CYVNBUi1BIHRvb2wgaW4gUiBmb3IgZnJlcXVlbmN5IGRldGVjdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouYmlvc3lzdGVtcy4yMDEyLjA3LjAwNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q3VycmVudCBPcGluaW9uIGluIFBsYW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+R3Jvb3ZlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGV2ZWxvcG1lbnRhbCBtZWNoYW5pc21zIHJlZ3VsYXRpbmcgc2Vjb25kYXJ5IGdyb3d0aCBpbiB3b29keSBwbGFudHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnBiaS4yMDA1LjExLjAxMzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VERJRiBwZXB0aWRlIHNpZ25hbGluZyByZWd1bGF0ZXMgdmFzY3VsYXIgc3RlbSBjZWxsIHByb2xpZmVyYXRpb24gdmlhIHRoZSBXT1g0IGhvbWVvYm94IGdlbmUgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Ob24tY2VsbC1hdXRvbm9tb3VzIGNvbnRyb2wgb2YgdmFzY3VsYXIgc3RlbSBjZWxsIGZhdGUgYnkgYSBDTEUgcGVwdGlkZS9yZWNlcHRvciBzeXN0ZW08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjA4MDg0NDQxMDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjU2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BcmFiaWRvcHNpcywgYSB1c2VmdWwgd2VlZDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudHMgY29tcGFyZWQgdG8gYW5pbWFsczogdGhlIGJyb2FkZXN0IGNvbXBhcmF0aXZlIHN0dWR5IG9mIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BIHdlZWQgZm9yIHdvb2Q/IEFyYWJpZG9wc2lzIGFzIGEgZ2VuZXRpYyBtb2RlbCBmb3IgeHlsZW0gZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNC9wcC4xMDQuMDQwMjEyPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTgiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmUgQmlvdGVjaG5vbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Ob2JsZTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjI0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1NjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+V2hhdCBpcyBhIHN1cHBvcnQgdmVjdG9yIG1hY2hpbmU/PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmJ0MTIwNi0xNTY1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk9sc29uPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+Nzc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTUxNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODA8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DbGFzc2lmaWNhdGlvbiBvZiBjdWx0dXJlZCBtYW1tYWxpYW4gY2VsbHMgYnkgc2hhcGUgYW5hbHlzaXMgYW5kIHBhdHRlcm4gcmVjb2duaXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVCSW1hZ2XigJNhbiBSIHBhY2thZ2UgZm9yIGltYWdlIHByb2Nlc3Npbmcgd2l0aCBhcHBsaWNhdGlvbnMgdG8gY2VsbHVsYXIgcGhlbm90eXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDkzL2Jpb2luZm9ybWF0aWNzL2J0cTA0NjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5SYWduaTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEzMjI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TW9iaWxlIGdpYmJlcmVsbGluIGRpcmVjdGx5IHN0aW11bGF0ZXMgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHh5bGVtIGV4cGFuc2lvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTEuMDg0MDIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2Fua2FyPC9hdXRob3I+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC41MDYxL2RyeWFkLmI4MzVrPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjMiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2lib3V0PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDU4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkZsb3dlcmluZyBhcyBhIGNvbmRpdGlvbiBmb3IgeHlsZW0gZXhwYW5zaW9uIGluIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBhbmQgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RXZvbHV0aW9uIG9mIGRldmVsb3BtZW50IG9mIHZhc2N1bGFyIGNhbWJpYSBhbmQgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbCBtb3JwaG9sb2d5IGNsYXNzaWZpY2F0aW9uIGFuZCBjbHV0dGVyIG1pdGlnYXRpb24gaW4gcGhhc2UtY29udHJhc3QgbWljcm9zY29weSBpbWFnZXMgdXNpbmcgbWFjaGluZSBsZWFybmluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TWVjaGFuaWNhbCBzdHJlc3MgYWN0cyB2aWEga2F0YW5pbiB0byBhbXBsaWZ5IGRpZmZlcmVuY2VzIGluIGdyb3d0aCByYXRlIGJldHdlZW4gYWRqYWNlbnQgY2VsbHMgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNlbGwuMjAxMi4wMi4wNDg8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBDZWxsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+WWluPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ODYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgc2NyZWVuIGZvciBtb3JwaG9sb2dpY2FsIGNvbXBsZXhpdHkgaWRlbnRpZmllcyByZWd1bGF0b3JzIG9mIHN3aXRjaC1saWtlIHRyYW5zaXRpb25zIGJldHdlZW4gZGlzY3JldGUgY2VsbCBzaGFwZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uY2IyNzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICA8Y29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5BYnN0cmFjdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNhYnN0cmFjdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPmVMaWZlIGRpZ2VzdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNkaWdlc3Q8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIExpZ2h0IG1pY3Jvc2NvcHkgb2YgY3Jvc3Mgc2VjdGlvbnMgb2J0YWluZWQgZnJvbSBBcmFiaWRvcHNpcyBoeXBvY290eWxzIChvcmdhbiBwb3NpdGlvbiBpbGx1c3RyYXRlZCBmb3IgYSA5LWRheS1vbGQgc2VlZGxpbmcsIGxvd2VyIGxlZnQpIGF0IDkgZGFnICh1cHBlciBsZWZ0KSBhbmQgMzUgZGFnIChyaWdodCkuIFNpemUgYmFycyBhcmUgMTAwIM68bS4gQmx1ZSBHVVMgc3RhaW5pbmcgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhbiBBUEw6OkdVUyByZXBvcnRlciBnZW5lIGluIHRoaXMgQ29sLTAgYmFja2dyb3VuZCBsaW5lIG1hcmtzIHBobG9lbSBidW5kbGVzLiAoQikgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuIChDKSBFeGFtcGxlIG9mIGEgaGlnaC1yZXNvbHV0aW9uIGh5cG9jb3R5bCBzZWN0aW9uIGltYWdlIGFzc2VtYmxlZCBmcm9tIDExIMOXIDExIHRpbGVzLiAoRCkgVGhlIHNhbWUgaW1hZ2UgYWZ0ZXIgcHJlLXByb2Nlc3NpbmcgYW5kIGJpbmFyaXphdGlvbiwgYW5kIChFKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uIChGKSBOdW1iZXIgb2YgbWlzLXNlZ21lbnRlZCBjZWxscyBhcyBkZXRlcm1pbmVkIGJ5IGNhcmVmdWwgdmlzdWFsIGluc3BlY3Rpb24gaW4gMTIgc2VjdGlvbnMsIHBsb3R0ZWQgYWdhaW5zdCB0aGUgdG90YWwgbnVtYmVyIG9mIGNlbGxzIHBlciBzZWN0aW9uIChsb2cgc2NhbGUpLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDM8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDIuIFRoZSDigJhRdWFudGl0YXRpdmUgSGlzdG9sb2d54oCZIGFwcHJvYWNoLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBPdmVydmlldyBvZiB0aGUgY29tcHV0YXRpb25hbCBwaXBlbGluZSBmcm9tIGltYWdlIGFjcXVpc2l0aW9uIHRvIGFuYWx5c2lzLiAoQikg4oCYUGhlbm9wcmludHPigJkgZm9yIHRoZSBkaWZmZXJlbnQgZ2Vub3R5cGVzIGFuZCBkZXZlbG9wbWVudGFsIHN0YWdlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnMnMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDMuIFByb2dyZXNzaW9uIG9mIHRpc3N1ZSBwcm9saWZlcmF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBQcmluY2lwYWwgY29tcG9uZW50IGFuYWx5c2lzIChQQ0EpIG9mIHRoZSBwaGVub3ByaW50cyBzaG93biBpbiBGaWd1cmUgMkIsIHBlcmZvcm1lZCB3aXRoIG5vcm1hbGl6ZWQgdmFsdWVzIChTdXBwbGVtZW50YXJ5IGZpbGUgNCkuIFRoZSBpbmxheSBzY3JlZXBsb3QgZGlzcGxheXMgdGhlIHByb3BvcnRpb24gb2YgdG90YWwgdmFyaWF0aW9uIGV4cGxhaW5lZCBieSBlYWNoIHByaW5jaXBhbCBjb21wb25lbnQuIChC4oCTRSkgQ29tcGFyYXRpdmUgcGxvdHMgb2YgcGFyYW1ldGVyIHByb2dyZXNzaW9uIGluIHRoZSB0d28gZ2Vub3R5cGVzLiBJbiAoRCksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzM8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNC4gQmltb2RhbCBkaXN0cmlidXRpb24gb2YgaW5jbGluZSBhbmdsZSBhY2NvcmRpbmcgdG8gcG9zaXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEgYW5kIEIpIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoQikgYXMgY29tcGFyZWQgdG8gQ29sLTAgKEEpIGF0IGxhdGVyIHN0YWdlcyBvZiBkZXZlbG9wbWVudCwgZm9yIGV4YW1wbGUgMzAgZGFnLiBUaGUgc2l6ZSBvZiB0aGUgZGlzYyBpbmNyZWFzZXMgd2l0aCB0aGUgYXJlYSBvZiB0aGUgY2VsbC4gQmx1ZSBjb2xvciBpbmRpY2F0ZXMgcmFkaWFsIGNlbGwgb3JpZW50YXRpb24sIHJlZCBvcnRob3JhZGlhbC4gKEMgYW5kIEQpIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA04oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gaWxsdXN0cmF0aW9uIG9mIHRoZSBpbmNsaW5lIGFuZ2xlLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBpbmNsaW5lIGlzIHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBzZWN0aW9uIHJhZGl1cyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSBmaXQgdG8gYSBjZWxsIGFuZCB0aGUgbWFqb3IgYXhpcyBvZiB0aGF0IGVsbGlwc2UgZXh0ZW5kZWQgdG93YXJkcyB0aGUgeCBheGlzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDg8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI2ZpZzRzMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEHigJNKKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDXigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbmFseXNpcyBvZiBjZWxsIG51bWJlciBpbiBkZWZpbmVkIHh5bGVtIHJlZ2lvbnMgb2YgZGlmZmVyZW50IHNpemUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+Q2VsbCBudW1iZXIgaW4gYSBjaXJjbGUgb2YgMjAw4oCTNTAwIHBpeGVscyBhcm91bmQgdGhlIHNlY3Rpb24gY2VudGVycyBmb3IgQ29sLTAuIENlbGwgY291bnQgaW4gYSBjb25zdGFudCBhcmVhIG9mIHh5bGVtIG92ZXIgdGltZSBhY3Jvc3MgYWxsIGF2ZXJhZ2VkIGFjcm9zcyBhbGwgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNXMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgRXhhbXBsZSBvZiBHYXVzc2lhbiBrZXJuZWwgZGVuc2l0eSBlc3RpbWF0ZSBvZiB0aGUgbG9jYXRpb24gb2YgcHJlZGljdGVkIHBobG9lbSBidW5kbGVzIGNlbGxzIGluIGEgMzAgZGFnIENvbC0wIHNlY3Rpb24uIEhpZ2ggZGVuc2l0eSByZXByZXNlbnRzIHBobG9lbSBwb2xlcy4gKEIpIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuIEFQTDo6R1VTIHJlcG9ydGVyIGNvbnN0cnVjdC4gKEMpIFByb2JhYmlsaXR5IGRlbnNpdHkgZnVuY3Rpb24gb2YgdGhlIGRhdGEgc2hvd24gaW4gKEIpIG9idGFpbmVkIGZyb20gYW4gYXV0b21hdGVkIEJheWVzaWFuIG1vZGVsLiBUaGUgZG9taW5hbnQgc2luZ2xlIHBlYWsgaW5kaWNhdGVzIGEgY29uc3RhbnQgYXJjIGRpc3RhbmNlIG9mIGNhLiA2MiBwaXhlbCBiZXR3ZWVuIHRoZSBwaGxvZW0gcG9sZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgMS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgQW4gZXhwbGFuYXRpb24gb2YgdGhlIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIHRoYXQgZGVzY3JpYmUgdGhlIGNlbGx1bGFyIGZlYXR1cmVzLiAoQikgU3VtbWFyeSBpbmZvcm1hdGlvbiBvZiB0aGUgaGFuZC1sYWJlbGVkIHRyYWluaW5nIHNldCBmb3Igc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nLiAoQykgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoRCkgU3VtbWFyeSBvZiB0aGUgY2xhc3NpZmllciBwYXJhbWV0ZXJzIGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChFKSBPdmVydmlldyBvZiB0aGUgY2VsbCB0eXBlIGNsYXNzZXMgcmVjb2duaXplZCBieSB0aGUgc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nIGFwcHJvYWNoIGFuZCB0aGVpciBhc3NpZ25tZW50IGNvZGVzIHVzZWQgaW4gRGF0YSBGaWxlcyAzIGFuZCA0Ljwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEyPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDEtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIENvbC0wIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDItZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIExlciBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0QzLWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5UaGUgbm9ybWFsaXplZCB2YWx1ZXMgb2YgdGhlIHBoZW5vcHJpbnRzIChGaWd1cmUgMkIpIHVzZWQgZm9yIFBDQS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0Q0LWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5EZWNpc2lvbiBsZXR0ZXI8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZGVjaXNpb24tbGV0dGVyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+QXV0aG9yIHJlc3BvbnNlPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2F1dGhvci1yZXNwb25zZTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
94
102
  http_version:
95
- recorded_at: Mon, 25 Sep 2017 19:24:50 GMT
103
+ recorded_at: Mon, 23 Oct 2017 18:01:09 GMT
96
104
  - request:
97
105
  method: get
98
106
  uri: http://api.crossref.org/prefixes/10.7554
@@ -122,17 +130,23 @@ http_interactions:
122
130
  Server:
123
131
  - http-kit
124
132
  Date:
125
- - Mon, 25 Sep 2017 19:24:50 GMT
133
+ - Mon, 23 Oct 2017 18:01:13 GMT
126
134
  X-Rate-Limit-Limit:
127
135
  - '50'
128
136
  X-Rate-Limit-Interval:
129
137
  - 1s
138
+ X-Cache:
139
+ - MISS from IMP-cache
140
+ X-Cache-Lookup:
141
+ - MISS from IMP-cache:3128
142
+ Via:
143
+ - 1.0 IMP-cache (squid/3.1.20)
130
144
  Connection:
131
- - close
145
+ - keep-alive
132
146
  body:
133
147
  encoding: UTF-8
134
148
  string: '{"status":"ok","message-type":"prefix","message-version":"1.0.0","message":{"member":"http:\/\/id.crossref.org\/member\/4374","name":"eLife
135
149
  Sciences Organisation, Ltd.","prefix":"http:\/\/id.crossref.org\/prefix\/10.7554"}}'
136
150
  http_version:
137
- recorded_at: Mon, 25 Sep 2017 19:24:50 GMT
151
+ recorded_at: Mon, 23 Oct 2017 18:01:13 GMT
138
152
  recorded_with: VCR 3.0.3
@@ -29,7 +29,7 @@ http_interactions:
29
29
  Content-Type:
30
30
  - application/vnd.api+json; charset=utf-8
31
31
  Date:
32
- - Mon, 25 Sep 2017 19:24:51 GMT
32
+ - Mon, 23 Oct 2017 18:00:52 GMT
33
33
  Etag:
34
34
  - W/"f03c5d43c9e031db0cf6b29702cab8ca"
35
35
  Server:
@@ -45,20 +45,22 @@ http_interactions:
45
45
  X-Kong-Proxy-Latency:
46
46
  - '0'
47
47
  X-Kong-Upstream-Latency:
48
- - '666'
48
+ - '963'
49
49
  X-Powered-By:
50
- - Phusion Passenger 5.1.8
50
+ - Phusion Passenger 5.1.11
51
51
  X-Request-Id:
52
- - fa762601-1043-45ce-a38d-ef1f9fb4c440
52
+ - 70043893-6170-424a-9777-e492bfac5089
53
53
  X-Runtime:
54
- - '0.660981'
54
+ - '0.961131'
55
+ Content-Length:
56
+ - '203'
55
57
  Connection:
56
58
  - keep-alive
57
59
  body:
58
60
  encoding: UTF-8
59
61
  string: '{"data":{"id":"10.7554","type":"prefixes","attributes":{"registration-agency":"Crossref","created":null,"updated":"2016-09-21T21:07:27Z"},"relationships":{"clients":{"data":[]},"providers":{"data":[]}}}}'
60
62
  http_version:
61
- recorded_at: Mon, 25 Sep 2017 19:24:51 GMT
63
+ recorded_at: Mon, 23 Oct 2017 18:00:52 GMT
62
64
  - request:
63
65
  method: get
64
66
  uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.7554/elife.01567&noredirect=true&pid=tech@datacite.org
@@ -84,15 +86,21 @@ http_interactions:
84
86
  Content-Language:
85
87
  - en-US
86
88
  Date:
87
- - Mon, 25 Sep 2017 19:24:51 GMT
89
+ - Mon, 23 Oct 2017 18:00:54 GMT
90
+ X-Cache:
91
+ - MISS from IMP-cache
92
+ X-Cache-Lookup:
93
+ - MISS from IMP-cache:3128
94
+ Via:
95
+ - 1.0 IMP-cache (squid/3.1.20)
88
96
  Connection:
89
97
  - close
90
98
  body:
91
99
  encoding: ASCII-8BIT
92
100
  string: !binary |-
93
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE1LTA4LTExIDA3OjM1OjAyIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgPHRpdGxlPkF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC90aXRsZT4NCiAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TWFydGlhbDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+U2Fua2FyPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+S2Fpc2E8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk5pZW1pbmVuPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SW9hbm5pczwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+WGVuYXJpb3M8L3N1cm5hbWU+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5DaHJpc3RpYW4gUzwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+SGFyZHRrZTwvc3VybmFtZT4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8Y3Jvc3NtYXJrPg0KICAgICAgICAgICAgPGNyb3NzbWFya192ZXJzaW9uPjE8L2Nyb3NzbWFya192ZXJzaW9uPg0KICAgICAgICAgICAgPGNyb3NzbWFya19wb2xpY3k+ZUxpZmVzY2llbmNlczwvY3Jvc3NtYXJrX3BvbGljeT4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgPGRvbWFpbj53d3cuZWxpZmVzY2llbmNlcy5vcmc8L2RvbWFpbj4NCiAgICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWluPg0KICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT5mYWxzZTwvY3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+DQogICAgICAgICAgICA8Y3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InJlY2VpdmVkIiBsYWJlbD0iUmVjZWl2ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMCI+MjAxMy0wOS0yMDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImFjY2VwdGVkIiBsYWJlbD0iQWNjZXB0ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMSI+MjAxMy0xMi0yNDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InB1Ymxpc2hlZCIgbGFiZWw9IlB1Ymxpc2hlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIyIj4yMDE0LTAyLTExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9ImZ1bmRyZWYiPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIEVNQk8NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAzMDQzPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgU3dpc3MgTmF0aW9uYWwgU2NpZW5jZSBGb3VuZGF0aW9uDQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMTcxMTwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciIgcHJvdmlkZXI9ImNyb3NzcmVmIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDYzOTA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8L3Byb2dyYW0+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2NzwvZG9pPg0KICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1Njc8L3Jlc291cmNlPg0KICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkJvbmtlPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+NDI2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE4MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI2Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzEvam91cm5hbC5wZ2VuLjEwMDI5OTc8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMCI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1vbGVjdWxhciBTeXN0ZW1zIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RnVjaHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT42PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM3MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5wYmkuMjAwNS4xMS4wMTM8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+SGlyYWthd2E8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjE4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwNzMvcG5hcy4wODA4NDQ0MTA1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTUiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT41Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTg5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMDQvcHAuMTA0LjA0MDIxMjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIEJpb3RlY2hub2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Tm9ibGU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yNDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTY1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9iaW9pbmZvcm1hdGljcy9idHEwNDY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UmFnbmk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMzIyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTExLjA4NDAyMDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+QWJzdHJhY3Q8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+ZUxpZmUgZGlnZXN0PC9iPg0KICAgICAgICAgICAgICAgIDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBMaWdodCBtaWNyb3Njb3B5IG9mIGNyb3NzIHNlY3Rpb25zIG9idGFpbmVkIGZyb20gQXJhYmlkb3BzaXMgaHlwb2NvdHlscyAob3JnYW4gcG9zaXRpb24gaWxsdXN0cmF0ZWQgZm9yIGEgOS1kYXktb2xkIHNlZWRsaW5nLCBsb3dlciBsZWZ0KSBhdCA5IGRhZyAodXBwZXIgbGVmdCkgYW5kIDM1IGRhZyAocmlnaHQpLiBTaXplIGJhcnMgYXJlIDEwMCDOvG0uIEJsdWUgR1VTIHN0YWluaW5nIGR1ZSB0byB0aGUgcHJlc2VuY2Ugb2YgYW4NCiAgICAgICAgICAgICAgICAgIDxpPkFQTDo6R1VTPC9pPg0KICAgICAgICAgICAgICAgICAgcmVwb3J0ZXIgZ2VuZSBpbiB0aGlzIENvbC0wIGJhY2tncm91bmQgbGluZSBtYXJrcyBwaGxvZW0gYnVuZGxlcy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QjwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFRoZSBzYW1lIGltYWdlIGFmdGVyIHByZS1wcm9jZXNzaW5nIGFuZCBiaW5hcml6YXRpb24sIGFuZCAoDQogICAgICAgICAgICAgICAgICA8Yj5FPC9iPg0KICAgICAgICAgICAgICAgICAgKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uICgNCiAgICAgICAgICAgICAgICAgIDxiPkY8L2I+DQogICAgICAgICAgICAgICAgICApIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAyLiBUaGUg4oCYUXVhbnRpdGF0aXZlIEhpc3RvbG9neeKAmSBhcHByb2FjaC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIOKAmFBoZW5vcHJpbnRz4oCZIGZvciB0aGUgZGlmZmVyZW50IGdlbm90eXBlcyBhbmQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAzLiBQcm9ncmVzc2lvbiBvZiB0aXNzdWUgcHJvbGlmZXJhdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QuKAk0U8L2I+DQogICAgICAgICAgICAgICAgICApIENvbXBhcmF0aXZlIHBsb3RzIG9mIHBhcmFtZXRlciBwcm9ncmVzc2lvbiBpbiB0aGUgdHdvIGdlbm90eXBlcy4gSW4gKA0KICAgICAgICAgICAgICAgICAgPGI+RDwvYj4NCiAgICAgICAgICAgICAgICAgICksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhdCBsYXRlciBzdGFnZXMgb2YgZGV2ZWxvcG1lbnQsIGZvciBleGFtcGxlIDMwIGRhZy4gVGhlIHNpemUgb2YgdGhlIGRpc2MgaW5jcmVhc2VzIHdpdGggdGhlIGFyZWEgb2YgdGhlIGNlbGwuIEJsdWUgY29sb3IgaW5kaWNhdGVzIHJhZGlhbCBjZWxsIG9yaWVudGF0aW9uLCByZWQgb3J0aG9yYWRpYWwuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy4NCiAgICAgICAgICAgICAgICA8L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAg4oCTDQogICAgICAgICAgICAgICAgICA8Yj5KPC9iPg0KICAgICAgICAgICAgICAgICAgKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgR2F1c3NpYW4ga2VybmVsIGRlbnNpdHkgZXN0aW1hdGUgb2YgdGhlIGxvY2F0aW9uIG9mIHByZWRpY3RlZCBwaGxvZW0gYnVuZGxlcyBjZWxscyBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBIaWdoIGRlbnNpdHkgcmVwcmVzZW50cyBwaGxvZW0gcG9sZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuDQogICAgICAgICAgICAgICAgICA8aT5BUEw6OkdVUzwvaT4NCiAgICAgICAgICAgICAgICAgIHJlcG9ydGVyIGNvbnN0cnVjdC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBvYnRhaW5lZCBmcm9tIGFuIGF1dG9tYXRlZCBCYXllc2lhbiBtb2RlbC4gVGhlIGRvbWluYW50IHNpbmdsZSBwZWFrIGluZGljYXRlcyBhIGNvbnN0YW50IGFyYyBkaXN0YW5jZSBvZiBjYS4gNjIgcGl4ZWwgYmV0d2VlbiB0aGUgcGhsb2VtIHBvbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIFN1cHBsZW1lbnRhcnkgZmlsZSAxLiAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFN1bW1hcnkgaW5mb3JtYXRpb24gb2YgdGhlIGhhbmQtbGFiZWxlZCB0cmFpbmluZyBzZXQgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoDQogICAgICAgICAgICAgICAgICA8Yj5EPC9iPg0KICAgICAgICAgICAgICAgICAgKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+RTwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGNlbGwgdHlwZSBjbGFzc2VzIHJlY29nbml6ZWQgYnkgdGhlIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZyBhcHByb2FjaCBhbmQgdGhlaXIgYXNzaWdubWVudCBjb2RlcyB1c2VkIGluIERhdGEgRmlsZXMgMyBhbmQgNC4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBDb2wtMCBzZWN0aW9ucy48L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBMZXIgc2VjdGlvbnMuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC4gVGhlIG5vcm1hbGl6ZWQgdmFsdWVzIG9mIHRoZSBwaGVub3ByaW50cyAoRmlndXJlIDJCKSB1c2VkIGZvciBQQ0EuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIDxiPkRlY2lzaW9uIGxldHRlcjwvYj4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+DQogICAgICAgICAgICAgICAgICA8Yj5BdXRob3IgcmVzcG9uc2U8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
101
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE3LTEwLTE4IDE1OjA5OjQzIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPGFic3RyYWN0Pg0KICAgICAgICAgICAgPHA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvcD4NCiAgICAgICAgICA8L2Fic3RyYWN0Pg0KICAgICAgICAgIDxhYnN0cmFjdCBhYnN0cmFjdC10eXBlPSJleGVjdXRpdmUtc3VtbWFyeSI+DQogICAgICAgICAgICA8cD5PdXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGl2aW5nIHdvcmxkIGhhcyBiZWVuIGFkdmFuY2VkIGdyZWF0bHkgYnkgc3R1ZGllcyBvZiDigJhtb2RlbCBvcmdhbmlzbXPigJksIHN1Y2ggYXMgbWljZSwgemVicmFmaXNoLCBhbmQgZnJ1aXQgZmxpZXMuIFN0dWR5aW5nIHRoZXNlIGNyZWF0dXJlcyBoYXMgYmVlbiBjcnVjaWFsIHRvIHVuY292ZXJpbmcgdGhlIGdlbmVzIHRoYXQgY29udHJvbCBob3cgb3VyIGJvZGllcyBkZXZlbG9wIGFuZCBncm93LCBhbmQgYWxzbyB0byBkaXNjb3ZlciB0aGUgZ2VuZXRpYyBiYXNpcyBvZiBkaXNlYXNlcyBzdWNoIGFzIGNhbmNlci48L3A+DQogICAgICAgICAgICA8cD5UaGFsZSBjcmVzc+KAlG9yIEFyYWJpZG9wc2lzIHRoYWxpYW5hIHRvIGdpdmUgaXRzIGZvcm1hbCBuYW1l4oCUaXMgdGhlIG1vZGVsIG9yZ2FuaXNtIG9mIGNob2ljZSBmb3IgbWFueSBwbGFudCBiaW9sb2dpc3RzLiBUaGlzIHRpbnkgd2VlZCBoYXMgYmVlbiB3aWRlbHkgc3R1ZGllZCBiZWNhdXNlIGl0IGNhbiBjb21wbGV0ZSBpdHMgbGlmZWN5Y2xlLCBmcm9tIHNlZWQgdG8gc2VlZCwgaW4gYWJvdXQgNiB3ZWVrcywgYW5kIGJlY2F1c2UgaXRzIHJlbGF0aXZlbHkgc21hbGwgZ2Vub21lIHNpbXBsaWZpZXMgdGhlIHNlYXJjaCBmb3IgZ2VuZXMgdGhhdCBjb250cm9sIHNwZWNpZmljIHRyYWl0cy4gSG93ZXZlciwgYXMgd2l0aCBvdGhlciBtdWNoLXN0dWRpZWQgbW9kZWwgc3lzdGVtcywgdW5kZXJzdGFuZGluZyB0aGUgY2hhbmdlcyB0aGF0IHVuZGVycGluIHRoZSBkZXZlbG9wbWVudCBvZiBzb21lIG9mIHRoZSBtb3JlIGNvbXBsZXggdGlzc3VlcyBpbiBBcmFiaWRvcHNpcyBoYXMgYmVlbiBzZXZlcmVseSBoYW1wZXJlZCBieSB0aGUgc2hlYXIgbnVtYmVyIG9mIGNlbGxzIGludm9sdmVkLjwvcD4NCiAgICAgICAgICAgIDxwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvcD4NCiAgICAgICAgICAgIDxwPk5vdyBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gaGF2ZSBkZXZlbG9wZWQgYSBub3ZlbCBhcHByb2FjaCwgdGVybWVkIOKAmGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d54oCZLCB0byBvdmVyY29tZSB0aGVzZSBwcm9ibGVtcy4gVGhpcyBzdHJhdGVneSBpbnZvbHZlcyDigJh0ZWFjaGluZ+KAmSBhIGNvbXB1dGVyIHRvIGF1dG9tYXRpY2FsbHkgcmVjb2duaXplIGRpZmZlcmVudCBwbGFudCBjZWxscyBhbmQgdG8gbWVhc3VyZSB0aGVpciBpbXBvcnRhbnQgZmVhdHVyZXMgaW4gaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBvZiB0aXNzdWUgc2VjdGlvbnMuIFRoZSByZXN1bHRpbmcg4oCYbWFw4oCZIG9mIHRoZSBkZXZlbG9waW5nIHN0ZW3igJR3aGljaCByZXF1aXJlZCBvdmVyIDgwMCBociBvZiBjb21wdXRpbmcgdGltZSB0byBjb21wbGV0ZeKAlHJldmVhbHMgdGhlIGNoYW5nZXMgdG8gY2VsbHMgYW5kIHRpc3N1ZXMgYXMgdGhleSBkZXZlbG9wIHRoYXQgYWxsb3cgdGhlIHRyYW5zcG9ydCBvZiB3YXRlciwgc3VnYXJzIGFuZCBudXRyaWVudHMgYmV0d2VlbiB0aGUgYWJvdmUtIGFuZCBiZWxvdy1ncm91bmQgb3JnYW5zLiBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gc3VnZ2VzdCB0aGF0IHRoZWlyIG5vdmVsIGFwcHJvYWNoIGNvdWxkLCBpbiB0aGUgZnV0dXJlLCBhbHNvIGJlIGFwcGxpZWQgdG8gc3R1ZHkgdGhlIGRldmVsb3BtZW50IG9mIG90aGVyIHRpc3N1ZXMgYW5kIG9yZ2FuaXNtcywgaW5jbHVkaW5nIGFuaW1hbHMuPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8cHJvZ3JhbSBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5FTUJPIGxvbmd0ZXJtIHBvc3QtZG9jdG9yYWwgZmVsbG93c2hpcHM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5NYXJpZSBIZWltLVZvZWd0bGluPC9hc3NlcnRpb24+DQogICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+NTAxMTAwMDA2MzkwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgRU1CTw0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDMwNDM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICBTd2lzcyBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAxNzExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwNjM5MDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89ImFtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0idGRtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgICAgPC9jdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgPC9jcm9zc21hcms+DQogICAgICAgICAgPHByb2dyYW0+DQogICAgICAgICAgICA8cmVsYXRlZF9pdGVtPg0KICAgICAgICAgICAgICA8ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvZGVzY3JpcHRpb24+DQogICAgICAgICAgICAgIDxpbnRlcl93b3JrX3JlbGF0aW9uIGlkZW50aWZpZXItdHlwZT0iZG9pIiByZWxhdGlvbnNoaXAtdHlwZT0iaXNTdXBwbGVtZW50ZWRCeSI+MTAuNTA2MS9kcnlhZC5iODM1azwvaW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgIDwvcmVsYXRlZF9pdGVtPg0KICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICA8YXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgICA8YXJjaGl2ZSBuYW1lPSJDTE9DS1NTIiAvPg0KICAgICAgICAgIDwvYXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NzwvcmVzb3VyY2U+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciPg0KICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0+DQogICAgICAgICAgICAgICAgPHJlc291cmNlIG1pbWVfdHlwZT0iYXBwbGljYXRpb24veG1sIj5odHRwczovL2Nkbi5lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9lbGlmZS0wMTU2Ny12MS54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Qm9ua2U8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT40MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTgxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFQTCByZWd1bGF0ZXMgdmFzY3VsYXIgdGlzc3VlIGlkZW50aXR5IGluIEFyYWJpZG9wc2lzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW4gdGhlIGJlZ2lubmluZyB3YXMgdGhlIHdvcm08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTUzNC9nZW5ldGljcy4xMDkuMTA0OTc2PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBoeXNpb2xvZ2lhIFBsYW50YXJ1bTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5DaGFmZmV5PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU5NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TZWNvbmRhcnkgeHlsZW0gZGV2ZWxvcG1lbnQgaW4gQXJhYmlkb3BzaXM6IGEgbW9kZWwgZm9yIHdvb2QgZm9ybWF0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzQvai4xMzk5LTMwNTQuMjAwMi4xMTQwNDEzLng8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmV1cmFsIGNvbXB1dGF0aW9uPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYW5nPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjExOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UcmFpbmluZyBudS1zdXBwb3J0IHZlY3RvciBjbGFzc2lmaWVyczogdGhlb3J5IGFuZCBhbGdvcml0aG1zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExNjIvMDg5OTc2NjAxNzUwMzk5MzM1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1hY2hpbmUgTGVhcm5pbmc8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q29ydGVzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjczPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3L0JGMDA5OTQwMTg8L2RvaT4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+U3VwcG9ydC12ZWN0b3IgTmV0d29ya3M8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNiI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRldmVsb3BtZW50PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkRvbGFuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE5PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNlbGx1bGFyIG9yZ2FuaXNhdGlvbiBvZiB0aGUgQXJhYmlkb3BzaXMgdGhhbGlhbmEgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdGVtIGNlbGwgZnVuY3Rpb24gZHVyaW5nIHBsYW50IHZhc2N1bGFyIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XT1g0IGFuZCBXT1gxNCBhY3QgZG93bnN0cmVhbSBvZiB0aGUgUFhZIHJlY2VwdG9yIGtpbmFzZSB0byByZWd1bGF0ZSBwbGFudCB2YXNjdWxhciBwcm9saWZlcmF0aW9uIGluZGVwZW5kZW50bHkgb2YgYW55IHJvbGUgaW4gdmFzY3VsYXIgb3JnYW5pc2F0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudCB2YXNjdWxhciBjZWxsIGRpdmlzaW9uIGlzIG1haW50YWluZWQgYnkgYW4gaW50ZXJhY3Rpb24gYmV0d2VlbiBQWFkgYW5kIGV0aHlsZW5lIHNpZ25hbGxpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3MS9qb3VybmFsLnBnZW4uMTAwMjk5NzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TW9sZWN1bGFyIFN5c3RlbXMgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5GdWNoczwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzcwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsdXN0ZXJpbmcgcGhlbm90eXBlIHBvcHVsYXRpb25zIGJ5IGdlbm9tZS13aWRlIFJOQWkgYW5kIG11bHRpcGFyYW1ldHJpYyBpbWFnaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5CYVNBUi1BIHRvb2wgaW4gUiBmb3IgZnJlcXVlbmN5IGRldGVjdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouYmlvc3lzdGVtcy4yMDEyLjA3LjAwNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q3VycmVudCBPcGluaW9uIGluIFBsYW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+R3Jvb3ZlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGV2ZWxvcG1lbnRhbCBtZWNoYW5pc21zIHJlZ3VsYXRpbmcgc2Vjb25kYXJ5IGdyb3d0aCBpbiB3b29keSBwbGFudHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnBiaS4yMDA1LjExLjAxMzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VERJRiBwZXB0aWRlIHNpZ25hbGluZyByZWd1bGF0ZXMgdmFzY3VsYXIgc3RlbSBjZWxsIHByb2xpZmVyYXRpb24gdmlhIHRoZSBXT1g0IGhvbWVvYm94IGdlbmUgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Ob24tY2VsbC1hdXRvbm9tb3VzIGNvbnRyb2wgb2YgdmFzY3VsYXIgc3RlbSBjZWxsIGZhdGUgYnkgYSBDTEUgcGVwdGlkZS9yZWNlcHRvciBzeXN0ZW08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjA4MDg0NDQxMDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjU2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BcmFiaWRvcHNpcywgYSB1c2VmdWwgd2VlZDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudHMgY29tcGFyZWQgdG8gYW5pbWFsczogdGhlIGJyb2FkZXN0IGNvbXBhcmF0aXZlIHN0dWR5IG9mIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BIHdlZWQgZm9yIHdvb2Q/IEFyYWJpZG9wc2lzIGFzIGEgZ2VuZXRpYyBtb2RlbCBmb3IgeHlsZW0gZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNC9wcC4xMDQuMDQwMjEyPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTgiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmUgQmlvdGVjaG5vbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Ob2JsZTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjI0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1NjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+V2hhdCBpcyBhIHN1cHBvcnQgdmVjdG9yIG1hY2hpbmU/PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmJ0MTIwNi0xNTY1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk9sc29uPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+Nzc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTUxNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODA8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DbGFzc2lmaWNhdGlvbiBvZiBjdWx0dXJlZCBtYW1tYWxpYW4gY2VsbHMgYnkgc2hhcGUgYW5hbHlzaXMgYW5kIHBhdHRlcm4gcmVjb2duaXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVCSW1hZ2XigJNhbiBSIHBhY2thZ2UgZm9yIGltYWdlIHByb2Nlc3Npbmcgd2l0aCBhcHBsaWNhdGlvbnMgdG8gY2VsbHVsYXIgcGhlbm90eXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDkzL2Jpb2luZm9ybWF0aWNzL2J0cTA0NjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5SYWduaTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEzMjI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TW9iaWxlIGdpYmJlcmVsbGluIGRpcmVjdGx5IHN0aW11bGF0ZXMgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHh5bGVtIGV4cGFuc2lvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTEuMDg0MDIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2Fua2FyPC9hdXRob3I+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC41MDYxL2RyeWFkLmI4MzVrPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjMiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2lib3V0PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDU4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkZsb3dlcmluZyBhcyBhIGNvbmRpdGlvbiBmb3IgeHlsZW0gZXhwYW5zaW9uIGluIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBhbmQgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RXZvbHV0aW9uIG9mIGRldmVsb3BtZW50IG9mIHZhc2N1bGFyIGNhbWJpYSBhbmQgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbCBtb3JwaG9sb2d5IGNsYXNzaWZpY2F0aW9uIGFuZCBjbHV0dGVyIG1pdGlnYXRpb24gaW4gcGhhc2UtY29udHJhc3QgbWljcm9zY29weSBpbWFnZXMgdXNpbmcgbWFjaGluZSBsZWFybmluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TWVjaGFuaWNhbCBzdHJlc3MgYWN0cyB2aWEga2F0YW5pbiB0byBhbXBsaWZ5IGRpZmZlcmVuY2VzIGluIGdyb3d0aCByYXRlIGJldHdlZW4gYWRqYWNlbnQgY2VsbHMgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNlbGwuMjAxMi4wMi4wNDg8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBDZWxsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+WWluPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ODYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgc2NyZWVuIGZvciBtb3JwaG9sb2dpY2FsIGNvbXBsZXhpdHkgaWRlbnRpZmllcyByZWd1bGF0b3JzIG9mIHN3aXRjaC1saWtlIHRyYW5zaXRpb25zIGJldHdlZW4gZGlzY3JldGUgY2VsbCBzaGFwZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uY2IyNzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICA8Y29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5BYnN0cmFjdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNhYnN0cmFjdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPmVMaWZlIGRpZ2VzdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNkaWdlc3Q8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIExpZ2h0IG1pY3Jvc2NvcHkgb2YgY3Jvc3Mgc2VjdGlvbnMgb2J0YWluZWQgZnJvbSBBcmFiaWRvcHNpcyBoeXBvY290eWxzIChvcmdhbiBwb3NpdGlvbiBpbGx1c3RyYXRlZCBmb3IgYSA5LWRheS1vbGQgc2VlZGxpbmcsIGxvd2VyIGxlZnQpIGF0IDkgZGFnICh1cHBlciBsZWZ0KSBhbmQgMzUgZGFnIChyaWdodCkuIFNpemUgYmFycyBhcmUgMTAwIM68bS4gQmx1ZSBHVVMgc3RhaW5pbmcgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhbiBBUEw6OkdVUyByZXBvcnRlciBnZW5lIGluIHRoaXMgQ29sLTAgYmFja2dyb3VuZCBsaW5lIG1hcmtzIHBobG9lbSBidW5kbGVzLiAoQikgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuIChDKSBFeGFtcGxlIG9mIGEgaGlnaC1yZXNvbHV0aW9uIGh5cG9jb3R5bCBzZWN0aW9uIGltYWdlIGFzc2VtYmxlZCBmcm9tIDExIMOXIDExIHRpbGVzLiAoRCkgVGhlIHNhbWUgaW1hZ2UgYWZ0ZXIgcHJlLXByb2Nlc3NpbmcgYW5kIGJpbmFyaXphdGlvbiwgYW5kIChFKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uIChGKSBOdW1iZXIgb2YgbWlzLXNlZ21lbnRlZCBjZWxscyBhcyBkZXRlcm1pbmVkIGJ5IGNhcmVmdWwgdmlzdWFsIGluc3BlY3Rpb24gaW4gMTIgc2VjdGlvbnMsIHBsb3R0ZWQgYWdhaW5zdCB0aGUgdG90YWwgbnVtYmVyIG9mIGNlbGxzIHBlciBzZWN0aW9uIChsb2cgc2NhbGUpLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDM8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDIuIFRoZSDigJhRdWFudGl0YXRpdmUgSGlzdG9sb2d54oCZIGFwcHJvYWNoLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBPdmVydmlldyBvZiB0aGUgY29tcHV0YXRpb25hbCBwaXBlbGluZSBmcm9tIGltYWdlIGFjcXVpc2l0aW9uIHRvIGFuYWx5c2lzLiAoQikg4oCYUGhlbm9wcmludHPigJkgZm9yIHRoZSBkaWZmZXJlbnQgZ2Vub3R5cGVzIGFuZCBkZXZlbG9wbWVudGFsIHN0YWdlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnMnMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDMuIFByb2dyZXNzaW9uIG9mIHRpc3N1ZSBwcm9saWZlcmF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBQcmluY2lwYWwgY29tcG9uZW50IGFuYWx5c2lzIChQQ0EpIG9mIHRoZSBwaGVub3ByaW50cyBzaG93biBpbiBGaWd1cmUgMkIsIHBlcmZvcm1lZCB3aXRoIG5vcm1hbGl6ZWQgdmFsdWVzIChTdXBwbGVtZW50YXJ5IGZpbGUgNCkuIFRoZSBpbmxheSBzY3JlZXBsb3QgZGlzcGxheXMgdGhlIHByb3BvcnRpb24gb2YgdG90YWwgdmFyaWF0aW9uIGV4cGxhaW5lZCBieSBlYWNoIHByaW5jaXBhbCBjb21wb25lbnQuIChC4oCTRSkgQ29tcGFyYXRpdmUgcGxvdHMgb2YgcGFyYW1ldGVyIHByb2dyZXNzaW9uIGluIHRoZSB0d28gZ2Vub3R5cGVzLiBJbiAoRCksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzM8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNC4gQmltb2RhbCBkaXN0cmlidXRpb24gb2YgaW5jbGluZSBhbmdsZSBhY2NvcmRpbmcgdG8gcG9zaXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEgYW5kIEIpIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoQikgYXMgY29tcGFyZWQgdG8gQ29sLTAgKEEpIGF0IGxhdGVyIHN0YWdlcyBvZiBkZXZlbG9wbWVudCwgZm9yIGV4YW1wbGUgMzAgZGFnLiBUaGUgc2l6ZSBvZiB0aGUgZGlzYyBpbmNyZWFzZXMgd2l0aCB0aGUgYXJlYSBvZiB0aGUgY2VsbC4gQmx1ZSBjb2xvciBpbmRpY2F0ZXMgcmFkaWFsIGNlbGwgb3JpZW50YXRpb24sIHJlZCBvcnRob3JhZGlhbC4gKEMgYW5kIEQpIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA04oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gaWxsdXN0cmF0aW9uIG9mIHRoZSBpbmNsaW5lIGFuZ2xlLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBpbmNsaW5lIGlzIHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBzZWN0aW9uIHJhZGl1cyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSBmaXQgdG8gYSBjZWxsIGFuZCB0aGUgbWFqb3IgYXhpcyBvZiB0aGF0IGVsbGlwc2UgZXh0ZW5kZWQgdG93YXJkcyB0aGUgeCBheGlzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDg8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI2ZpZzRzMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEHigJNKKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDXigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbmFseXNpcyBvZiBjZWxsIG51bWJlciBpbiBkZWZpbmVkIHh5bGVtIHJlZ2lvbnMgb2YgZGlmZmVyZW50IHNpemUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+Q2VsbCBudW1iZXIgaW4gYSBjaXJjbGUgb2YgMjAw4oCTNTAwIHBpeGVscyBhcm91bmQgdGhlIHNlY3Rpb24gY2VudGVycyBmb3IgQ29sLTAuIENlbGwgY291bnQgaW4gYSBjb25zdGFudCBhcmVhIG9mIHh5bGVtIG92ZXIgdGltZSBhY3Jvc3MgYWxsIGF2ZXJhZ2VkIGFjcm9zcyBhbGwgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNXMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgRXhhbXBsZSBvZiBHYXVzc2lhbiBrZXJuZWwgZGVuc2l0eSBlc3RpbWF0ZSBvZiB0aGUgbG9jYXRpb24gb2YgcHJlZGljdGVkIHBobG9lbSBidW5kbGVzIGNlbGxzIGluIGEgMzAgZGFnIENvbC0wIHNlY3Rpb24uIEhpZ2ggZGVuc2l0eSByZXByZXNlbnRzIHBobG9lbSBwb2xlcy4gKEIpIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuIEFQTDo6R1VTIHJlcG9ydGVyIGNvbnN0cnVjdC4gKEMpIFByb2JhYmlsaXR5IGRlbnNpdHkgZnVuY3Rpb24gb2YgdGhlIGRhdGEgc2hvd24gaW4gKEIpIG9idGFpbmVkIGZyb20gYW4gYXV0b21hdGVkIEJheWVzaWFuIG1vZGVsLiBUaGUgZG9taW5hbnQgc2luZ2xlIHBlYWsgaW5kaWNhdGVzIGEgY29uc3RhbnQgYXJjIGRpc3RhbmNlIG9mIGNhLiA2MiBwaXhlbCBiZXR3ZWVuIHRoZSBwaGxvZW0gcG9sZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgMS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgQW4gZXhwbGFuYXRpb24gb2YgdGhlIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIHRoYXQgZGVzY3JpYmUgdGhlIGNlbGx1bGFyIGZlYXR1cmVzLiAoQikgU3VtbWFyeSBpbmZvcm1hdGlvbiBvZiB0aGUgaGFuZC1sYWJlbGVkIHRyYWluaW5nIHNldCBmb3Igc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nLiAoQykgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoRCkgU3VtbWFyeSBvZiB0aGUgY2xhc3NpZmllciBwYXJhbWV0ZXJzIGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChFKSBPdmVydmlldyBvZiB0aGUgY2VsbCB0eXBlIGNsYXNzZXMgcmVjb2duaXplZCBieSB0aGUgc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nIGFwcHJvYWNoIGFuZCB0aGVpciBhc3NpZ25tZW50IGNvZGVzIHVzZWQgaW4gRGF0YSBGaWxlcyAzIGFuZCA0Ljwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEyPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDEtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIENvbC0wIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDItZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIExlciBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0QzLWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5UaGUgbm9ybWFsaXplZCB2YWx1ZXMgb2YgdGhlIHBoZW5vcHJpbnRzIChGaWd1cmUgMkIpIHVzZWQgZm9yIFBDQS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0Q0LWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5EZWNpc2lvbiBsZXR0ZXI8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZGVjaXNpb24tbGV0dGVyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+QXV0aG9yIHJlc3BvbnNlPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2F1dGhvci1yZXNwb25zZTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
94
102
  http_version:
95
- recorded_at: Mon, 25 Sep 2017 19:24:51 GMT
103
+ recorded_at: Mon, 23 Oct 2017 18:00:59 GMT
96
104
  - request:
97
105
  method: get
98
106
  uri: http://api.crossref.org/prefixes/10.7554
@@ -122,17 +130,23 @@ http_interactions:
122
130
  Server:
123
131
  - http-kit
124
132
  Date:
125
- - Mon, 25 Sep 2017 19:24:52 GMT
133
+ - Mon, 23 Oct 2017 18:01:02 GMT
126
134
  X-Rate-Limit-Limit:
127
135
  - '50'
128
136
  X-Rate-Limit-Interval:
129
137
  - 1s
138
+ X-Cache:
139
+ - MISS from IMP-cache
140
+ X-Cache-Lookup:
141
+ - MISS from IMP-cache:3128
142
+ Via:
143
+ - 1.0 IMP-cache (squid/3.1.20)
130
144
  Connection:
131
- - close
145
+ - keep-alive
132
146
  body:
133
147
  encoding: UTF-8
134
148
  string: '{"status":"ok","message-type":"prefix","message-version":"1.0.0","message":{"member":"http:\/\/id.crossref.org\/member\/4374","name":"eLife
135
149
  Sciences Organisation, Ltd.","prefix":"http:\/\/id.crossref.org\/prefix\/10.7554"}}'
136
150
  http_version:
137
- recorded_at: Mon, 25 Sep 2017 19:24:52 GMT
151
+ recorded_at: Mon, 23 Oct 2017 18:01:02 GMT
138
152
  recorded_with: VCR 3.0.3
@@ -29,7 +29,7 @@ http_interactions:
29
29
  Content-Type:
30
30
  - application/vnd.api+json; charset=utf-8
31
31
  Date:
32
- - Mon, 25 Sep 2017 19:24:54 GMT
32
+ - Mon, 23 Oct 2017 18:01:15 GMT
33
33
  Etag:
34
34
  - W/"f03c5d43c9e031db0cf6b29702cab8ca"
35
35
  Server:
@@ -45,20 +45,22 @@ http_interactions:
45
45
  X-Kong-Proxy-Latency:
46
46
  - '0'
47
47
  X-Kong-Upstream-Latency:
48
- - '390'
48
+ - '378'
49
49
  X-Powered-By:
50
- - Phusion Passenger 5.1.8
50
+ - Phusion Passenger 5.1.11
51
51
  X-Request-Id:
52
- - bd00e886-f9ee-4dad-914c-e2e0a047692b
52
+ - 816fcacd-b21e-4c55-8365-ea86430149fe
53
53
  X-Runtime:
54
- - '0.387943'
54
+ - '0.376242'
55
+ Content-Length:
56
+ - '203'
55
57
  Connection:
56
58
  - keep-alive
57
59
  body:
58
60
  encoding: UTF-8
59
61
  string: '{"data":{"id":"10.7554","type":"prefixes","attributes":{"registration-agency":"Crossref","created":null,"updated":"2016-09-21T21:07:27Z"},"relationships":{"clients":{"data":[]},"providers":{"data":[]}}}}'
60
62
  http_version:
61
- recorded_at: Mon, 25 Sep 2017 19:24:54 GMT
63
+ recorded_at: Mon, 23 Oct 2017 18:01:15 GMT
62
64
  - request:
63
65
  method: get
64
66
  uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.7554/elife.01567&noredirect=true&pid=tech@datacite.org
@@ -78,21 +80,27 @@ http_interactions:
78
80
  Server:
79
81
  - Apache-Coyote/1.1
80
82
  Crossref-Deployment-Name:
81
- - cr7-1
83
+ - qs4-1
82
84
  Content-Type:
83
85
  - text/xml;charset=UTF-8
84
86
  Content-Language:
85
87
  - en-US
86
88
  Date:
87
- - Mon, 25 Sep 2017 19:24:54 GMT
89
+ - Mon, 23 Oct 2017 18:01:16 GMT
90
+ X-Cache:
91
+ - MISS from IMP-cache
92
+ X-Cache-Lookup:
93
+ - MISS from IMP-cache:3128
94
+ Via:
95
+ - 1.0 IMP-cache (squid/3.1.20)
88
96
  Connection:
89
97
  - close
90
98
  body:
91
99
  encoding: ASCII-8BIT
92
100
  string: !binary |-
93
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE1LTA4LTExIDA3OjM1OjAyIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgPHRpdGxlPkF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC90aXRsZT4NCiAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TWFydGlhbDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+U2Fua2FyPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+S2Fpc2E8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk5pZW1pbmVuPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SW9hbm5pczwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+WGVuYXJpb3M8L3N1cm5hbWU+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5DaHJpc3RpYW4gUzwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+SGFyZHRrZTwvc3VybmFtZT4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8Y3Jvc3NtYXJrPg0KICAgICAgICAgICAgPGNyb3NzbWFya192ZXJzaW9uPjE8L2Nyb3NzbWFya192ZXJzaW9uPg0KICAgICAgICAgICAgPGNyb3NzbWFya19wb2xpY3k+ZUxpZmVzY2llbmNlczwvY3Jvc3NtYXJrX3BvbGljeT4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgPGRvbWFpbj53d3cuZWxpZmVzY2llbmNlcy5vcmc8L2RvbWFpbj4NCiAgICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWluPg0KICAgICAgICAgICAgPC9jcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT5mYWxzZTwvY3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+DQogICAgICAgICAgICA8Y3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InJlY2VpdmVkIiBsYWJlbD0iUmVjZWl2ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMCI+MjAxMy0wOS0yMDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImFjY2VwdGVkIiBsYWJlbD0iQWNjZXB0ZWQiIGdyb3VwX25hbWU9InB1YmxpY2F0aW9uX2hpc3RvcnkiIGdyb3VwX2xhYmVsPSJQdWJsaWNhdGlvbiBIaXN0b3J5IiBvcmRlcj0iMSI+MjAxMy0xMi0yNDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9InB1Ymxpc2hlZCIgbGFiZWw9IlB1Ymxpc2hlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIyIj4yMDE0LTAyLTExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9ImZ1bmRyZWYiPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIEVNQk8NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAzMDQzPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgU3dpc3MgTmF0aW9uYWwgU2NpZW5jZSBGb3VuZGF0aW9uDQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMTcxMTwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciIgcHJvdmlkZXI9ImNyb3NzcmVmIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDYzOTA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICA8L3Byb2dyYW0+DQogICAgICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDxsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2NzwvZG9pPg0KICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1Njc8L3Jlc291cmNlPg0KICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkJvbmtlPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+NDI2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE4MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI2Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzEvam91cm5hbC5wZ2VuLjEwMDI5OTc8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMCI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1vbGVjdWxhciBTeXN0ZW1zIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RnVjaHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT42PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM3MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5wYmkuMjAwNS4xMS4wMTM8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+SGlyYWthd2E8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjE4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwNzMvcG5hcy4wODA4NDQ0MTA1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTUiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT41Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4xOTg5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMDQvcHAuMTA0LjA0MDIxMjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIEJpb3RlY2hub2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Tm9ibGU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yNDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTY1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9iaW9pbmZvcm1hdGljcy9idHEwNDY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IENlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UmFnbmk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMzIyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTExLjA4NDAyMDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+QWJzdHJhY3Q8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPg0KICAgICAgICAgICAgICAgICAgPGI+ZUxpZmUgZGlnZXN0PC9iPg0KICAgICAgICAgICAgICAgIDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBMaWdodCBtaWNyb3Njb3B5IG9mIGNyb3NzIHNlY3Rpb25zIG9idGFpbmVkIGZyb20gQXJhYmlkb3BzaXMgaHlwb2NvdHlscyAob3JnYW4gcG9zaXRpb24gaWxsdXN0cmF0ZWQgZm9yIGEgOS1kYXktb2xkIHNlZWRsaW5nLCBsb3dlciBsZWZ0KSBhdCA5IGRhZyAodXBwZXIgbGVmdCkgYW5kIDM1IGRhZyAocmlnaHQpLiBTaXplIGJhcnMgYXJlIDEwMCDOvG0uIEJsdWUgR1VTIHN0YWluaW5nIGR1ZSB0byB0aGUgcHJlc2VuY2Ugb2YgYW4NCiAgICAgICAgICAgICAgICAgIDxpPkFQTDo6R1VTPC9pPg0KICAgICAgICAgICAgICAgICAgcmVwb3J0ZXIgZ2VuZSBpbiB0aGlzIENvbC0wIGJhY2tncm91bmQgbGluZSBtYXJrcyBwaGxvZW0gYnVuZGxlcy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QjwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFRoZSBzYW1lIGltYWdlIGFmdGVyIHByZS1wcm9jZXNzaW5nIGFuZCBiaW5hcml6YXRpb24sIGFuZCAoDQogICAgICAgICAgICAgICAgICA8Yj5FPC9iPg0KICAgICAgICAgICAgICAgICAgKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uICgNCiAgICAgICAgICAgICAgICAgIDxiPkY8L2I+DQogICAgICAgICAgICAgICAgICApIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAyLiBUaGUg4oCYUXVhbnRpdGF0aXZlIEhpc3RvbG9neeKAmSBhcHByb2FjaC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIOKAmFBoZW5vcHJpbnRz4oCZIGZvciB0aGUgZGlmZmVyZW50IGdlbm90eXBlcyBhbmQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAzLiBQcm9ncmVzc2lvbiBvZiB0aXNzdWUgcHJvbGlmZXJhdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QuKAk0U8L2I+DQogICAgICAgICAgICAgICAgICApIENvbXBhcmF0aXZlIHBsb3RzIG9mIHBhcmFtZXRlciBwcm9ncmVzc2lvbiBpbiB0aGUgdHdvIGdlbm90eXBlcy4gSW4gKA0KICAgICAgICAgICAgICAgICAgPGI+RDwvYj4NCiAgICAgICAgICAgICAgICAgICksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuDQogICAgICAgICAgICAgICAgPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBhdCBsYXRlciBzdGFnZXMgb2YgZGV2ZWxvcG1lbnQsIGZvciBleGFtcGxlIDMwIGRhZy4gVGhlIHNpemUgb2YgdGhlIGRpc2MgaW5jcmVhc2VzIHdpdGggdGhlIGFyZWEgb2YgdGhlIGNlbGwuIEJsdWUgY29sb3IgaW5kaWNhdGVzIHJhZGlhbCBjZWxsIG9yaWVudGF0aW9uLCByZWQgb3J0aG9yYWRpYWwuICgNCiAgICAgICAgICAgICAgICAgIDxiPkM8L2I+DQogICAgICAgICAgICAgICAgICBhbmQNCiAgICAgICAgICAgICAgICAgIDxiPkQ8L2I+DQogICAgICAgICAgICAgICAgICApIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy4NCiAgICAgICAgICAgICAgICA8L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAg4oCTDQogICAgICAgICAgICAgICAgICA8Yj5KPC9iPg0KICAgICAgICAgICAgICAgICAgKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgIDxiPkE8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgR2F1c3NpYW4ga2VybmVsIGRlbnNpdHkgZXN0aW1hdGUgb2YgdGhlIGxvY2F0aW9uIG9mIHByZWRpY3RlZCBwaGxvZW0gYnVuZGxlcyBjZWxscyBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBIaWdoIGRlbnNpdHkgcmVwcmVzZW50cyBwaGxvZW0gcG9sZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuDQogICAgICAgICAgICAgICAgICA8aT5BUEw6OkdVUzwvaT4NCiAgICAgICAgICAgICAgICAgIHJlcG9ydGVyIGNvbnN0cnVjdC4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoDQogICAgICAgICAgICAgICAgICA8Yj5CPC9iPg0KICAgICAgICAgICAgICAgICAgKSBvYnRhaW5lZCBmcm9tIGFuIGF1dG9tYXRlZCBCYXllc2lhbiBtb2RlbC4gVGhlIGRvbWluYW50IHNpbmdsZSBwZWFrIGluZGljYXRlcyBhIGNvbnN0YW50IGFyYyBkaXN0YW5jZSBvZiBjYS4gNjIgcGl4ZWwgYmV0d2VlbiB0aGUgcGhsb2VtIHBvbGVzLg0KICAgICAgICAgICAgICAgIDwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIFN1cHBsZW1lbnRhcnkgZmlsZSAxLiAoDQogICAgICAgICAgICAgICAgICA8Yj5BPC9iPg0KICAgICAgICAgICAgICAgICAgKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuICgNCiAgICAgICAgICAgICAgICAgIDxiPkI8L2I+DQogICAgICAgICAgICAgICAgICApIFN1bW1hcnkgaW5mb3JtYXRpb24gb2YgdGhlIGhhbmQtbGFiZWxlZCB0cmFpbmluZyBzZXQgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+QzwvYj4NCiAgICAgICAgICAgICAgICAgICkgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoDQogICAgICAgICAgICAgICAgICA8Yj5EPC9iPg0KICAgICAgICAgICAgICAgICAgKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKA0KICAgICAgICAgICAgICAgICAgPGI+RTwvYj4NCiAgICAgICAgICAgICAgICAgICkgT3ZlcnZpZXcgb2YgdGhlIGNlbGwgdHlwZSBjbGFzc2VzIHJlY29nbml6ZWQgYnkgdGhlIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZyBhcHByb2FjaCBhbmQgdGhlaXIgYXNzaWdubWVudCBjb2RlcyB1c2VkIGluIERhdGEgRmlsZXMgMyBhbmQgNC4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBDb2wtMCBzZWN0aW9ucy48L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1JlZmVyZW5jZWRCeSI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLiBRdWFsaXR5IGNvbnRyb2wgZmlsZXMgZm9yIHRoZSBMZXIgc2VjdGlvbnMuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTQ8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNSZWZlcmVuY2VkQnkiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC4gVGhlIG5vcm1hbGl6ZWQgdmFsdWVzIG9mIHRoZSBwaGVub3ByaW50cyAoRmlndXJlIDJCKSB1c2VkIGZvciBQQ0EuPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2VsaWZlc2NpZW5jZXMub3JnL2xvb2t1cC9kb2kvMTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT4NCiAgICAgICAgICAgICAgICAgIDxiPkRlY2lzaW9uIGxldHRlcjwvYj4NCiAgICAgICAgICAgICAgICA8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9lbGlmZXNjaWVuY2VzLm9yZy9sb29rdXAvZG9pLzEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+DQogICAgICAgICAgICAgICAgICA8Yj5BdXRob3IgcmVzcG9uc2U8L2I+DQogICAgICAgICAgICAgICAgPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZWxpZmVzY2llbmNlcy5vcmcvbG9va3VwL2RvaS8xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
101
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE3LTEwLTE4IDE1OjA5OjQzIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPGFic3RyYWN0Pg0KICAgICAgICAgICAgPHA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvcD4NCiAgICAgICAgICA8L2Fic3RyYWN0Pg0KICAgICAgICAgIDxhYnN0cmFjdCBhYnN0cmFjdC10eXBlPSJleGVjdXRpdmUtc3VtbWFyeSI+DQogICAgICAgICAgICA8cD5PdXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGl2aW5nIHdvcmxkIGhhcyBiZWVuIGFkdmFuY2VkIGdyZWF0bHkgYnkgc3R1ZGllcyBvZiDigJhtb2RlbCBvcmdhbmlzbXPigJksIHN1Y2ggYXMgbWljZSwgemVicmFmaXNoLCBhbmQgZnJ1aXQgZmxpZXMuIFN0dWR5aW5nIHRoZXNlIGNyZWF0dXJlcyBoYXMgYmVlbiBjcnVjaWFsIHRvIHVuY292ZXJpbmcgdGhlIGdlbmVzIHRoYXQgY29udHJvbCBob3cgb3VyIGJvZGllcyBkZXZlbG9wIGFuZCBncm93LCBhbmQgYWxzbyB0byBkaXNjb3ZlciB0aGUgZ2VuZXRpYyBiYXNpcyBvZiBkaXNlYXNlcyBzdWNoIGFzIGNhbmNlci48L3A+DQogICAgICAgICAgICA8cD5UaGFsZSBjcmVzc+KAlG9yIEFyYWJpZG9wc2lzIHRoYWxpYW5hIHRvIGdpdmUgaXRzIGZvcm1hbCBuYW1l4oCUaXMgdGhlIG1vZGVsIG9yZ2FuaXNtIG9mIGNob2ljZSBmb3IgbWFueSBwbGFudCBiaW9sb2dpc3RzLiBUaGlzIHRpbnkgd2VlZCBoYXMgYmVlbiB3aWRlbHkgc3R1ZGllZCBiZWNhdXNlIGl0IGNhbiBjb21wbGV0ZSBpdHMgbGlmZWN5Y2xlLCBmcm9tIHNlZWQgdG8gc2VlZCwgaW4gYWJvdXQgNiB3ZWVrcywgYW5kIGJlY2F1c2UgaXRzIHJlbGF0aXZlbHkgc21hbGwgZ2Vub21lIHNpbXBsaWZpZXMgdGhlIHNlYXJjaCBmb3IgZ2VuZXMgdGhhdCBjb250cm9sIHNwZWNpZmljIHRyYWl0cy4gSG93ZXZlciwgYXMgd2l0aCBvdGhlciBtdWNoLXN0dWRpZWQgbW9kZWwgc3lzdGVtcywgdW5kZXJzdGFuZGluZyB0aGUgY2hhbmdlcyB0aGF0IHVuZGVycGluIHRoZSBkZXZlbG9wbWVudCBvZiBzb21lIG9mIHRoZSBtb3JlIGNvbXBsZXggdGlzc3VlcyBpbiBBcmFiaWRvcHNpcyBoYXMgYmVlbiBzZXZlcmVseSBoYW1wZXJlZCBieSB0aGUgc2hlYXIgbnVtYmVyIG9mIGNlbGxzIGludm9sdmVkLjwvcD4NCiAgICAgICAgICAgIDxwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvcD4NCiAgICAgICAgICAgIDxwPk5vdyBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gaGF2ZSBkZXZlbG9wZWQgYSBub3ZlbCBhcHByb2FjaCwgdGVybWVkIOKAmGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d54oCZLCB0byBvdmVyY29tZSB0aGVzZSBwcm9ibGVtcy4gVGhpcyBzdHJhdGVneSBpbnZvbHZlcyDigJh0ZWFjaGluZ+KAmSBhIGNvbXB1dGVyIHRvIGF1dG9tYXRpY2FsbHkgcmVjb2duaXplIGRpZmZlcmVudCBwbGFudCBjZWxscyBhbmQgdG8gbWVhc3VyZSB0aGVpciBpbXBvcnRhbnQgZmVhdHVyZXMgaW4gaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBvZiB0aXNzdWUgc2VjdGlvbnMuIFRoZSByZXN1bHRpbmcg4oCYbWFw4oCZIG9mIHRoZSBkZXZlbG9waW5nIHN0ZW3igJR3aGljaCByZXF1aXJlZCBvdmVyIDgwMCBociBvZiBjb21wdXRpbmcgdGltZSB0byBjb21wbGV0ZeKAlHJldmVhbHMgdGhlIGNoYW5nZXMgdG8gY2VsbHMgYW5kIHRpc3N1ZXMgYXMgdGhleSBkZXZlbG9wIHRoYXQgYWxsb3cgdGhlIHRyYW5zcG9ydCBvZiB3YXRlciwgc3VnYXJzIGFuZCBudXRyaWVudHMgYmV0d2VlbiB0aGUgYWJvdmUtIGFuZCBiZWxvdy1ncm91bmQgb3JnYW5zLiBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gc3VnZ2VzdCB0aGF0IHRoZWlyIG5vdmVsIGFwcHJvYWNoIGNvdWxkLCBpbiB0aGUgZnV0dXJlLCBhbHNvIGJlIGFwcGxpZWQgdG8gc3R1ZHkgdGhlIGRldmVsb3BtZW50IG9mIG90aGVyIHRpc3N1ZXMgYW5kIG9yZ2FuaXNtcywgaW5jbHVkaW5nIGFuaW1hbHMuPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8cHJvZ3JhbSBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5FTUJPIGxvbmd0ZXJtIHBvc3QtZG9jdG9yYWwgZmVsbG93c2hpcHM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5NYXJpZSBIZWltLVZvZWd0bGluPC9hc3NlcnRpb24+DQogICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+NTAxMTAwMDA2MzkwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgRU1CTw0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDMwNDM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICBTd2lzcyBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAxNzExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwNjM5MDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89ImFtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0idGRtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgICAgPC9jdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgPC9jcm9zc21hcms+DQogICAgICAgICAgPHByb2dyYW0+DQogICAgICAgICAgICA8cmVsYXRlZF9pdGVtPg0KICAgICAgICAgICAgICA8ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvZGVzY3JpcHRpb24+DQogICAgICAgICAgICAgIDxpbnRlcl93b3JrX3JlbGF0aW9uIGlkZW50aWZpZXItdHlwZT0iZG9pIiByZWxhdGlvbnNoaXAtdHlwZT0iaXNTdXBwbGVtZW50ZWRCeSI+MTAuNTA2MS9kcnlhZC5iODM1azwvaW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgIDwvcmVsYXRlZF9pdGVtPg0KICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICA8YXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgICA8YXJjaGl2ZSBuYW1lPSJDTE9DS1NTIiAvPg0KICAgICAgICAgIDwvYXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NzwvcmVzb3VyY2U+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciPg0KICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0+DQogICAgICAgICAgICAgICAgPHJlc291cmNlIG1pbWVfdHlwZT0iYXBwbGljYXRpb24veG1sIj5odHRwczovL2Nkbi5lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9lbGlmZS0wMTU2Ny12MS54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Qm9ua2U8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT40MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTgxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFQTCByZWd1bGF0ZXMgdmFzY3VsYXIgdGlzc3VlIGlkZW50aXR5IGluIEFyYWJpZG9wc2lzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW4gdGhlIGJlZ2lubmluZyB3YXMgdGhlIHdvcm08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTUzNC9nZW5ldGljcy4xMDkuMTA0OTc2PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBoeXNpb2xvZ2lhIFBsYW50YXJ1bTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5DaGFmZmV5PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU5NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TZWNvbmRhcnkgeHlsZW0gZGV2ZWxvcG1lbnQgaW4gQXJhYmlkb3BzaXM6IGEgbW9kZWwgZm9yIHdvb2QgZm9ybWF0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzQvai4xMzk5LTMwNTQuMjAwMi4xMTQwNDEzLng8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmV1cmFsIGNvbXB1dGF0aW9uPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYW5nPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjExOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UcmFpbmluZyBudS1zdXBwb3J0IHZlY3RvciBjbGFzc2lmaWVyczogdGhlb3J5IGFuZCBhbGdvcml0aG1zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExNjIvMDg5OTc2NjAxNzUwMzk5MzM1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1hY2hpbmUgTGVhcm5pbmc8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q29ydGVzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjczPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3L0JGMDA5OTQwMTg8L2RvaT4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+U3VwcG9ydC12ZWN0b3IgTmV0d29ya3M8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNiI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRldmVsb3BtZW50PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkRvbGFuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE5PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNlbGx1bGFyIG9yZ2FuaXNhdGlvbiBvZiB0aGUgQXJhYmlkb3BzaXMgdGhhbGlhbmEgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdGVtIGNlbGwgZnVuY3Rpb24gZHVyaW5nIHBsYW50IHZhc2N1bGFyIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XT1g0IGFuZCBXT1gxNCBhY3QgZG93bnN0cmVhbSBvZiB0aGUgUFhZIHJlY2VwdG9yIGtpbmFzZSB0byByZWd1bGF0ZSBwbGFudCB2YXNjdWxhciBwcm9saWZlcmF0aW9uIGluZGVwZW5kZW50bHkgb2YgYW55IHJvbGUgaW4gdmFzY3VsYXIgb3JnYW5pc2F0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudCB2YXNjdWxhciBjZWxsIGRpdmlzaW9uIGlzIG1haW50YWluZWQgYnkgYW4gaW50ZXJhY3Rpb24gYmV0d2VlbiBQWFkgYW5kIGV0aHlsZW5lIHNpZ25hbGxpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3MS9qb3VybmFsLnBnZW4uMTAwMjk5NzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TW9sZWN1bGFyIFN5c3RlbXMgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5GdWNoczwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzcwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsdXN0ZXJpbmcgcGhlbm90eXBlIHBvcHVsYXRpb25zIGJ5IGdlbm9tZS13aWRlIFJOQWkgYW5kIG11bHRpcGFyYW1ldHJpYyBpbWFnaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5CYVNBUi1BIHRvb2wgaW4gUiBmb3IgZnJlcXVlbmN5IGRldGVjdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouYmlvc3lzdGVtcy4yMDEyLjA3LjAwNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q3VycmVudCBPcGluaW9uIGluIFBsYW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+R3Jvb3ZlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGV2ZWxvcG1lbnRhbCBtZWNoYW5pc21zIHJlZ3VsYXRpbmcgc2Vjb25kYXJ5IGdyb3d0aCBpbiB3b29keSBwbGFudHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnBiaS4yMDA1LjExLjAxMzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VERJRiBwZXB0aWRlIHNpZ25hbGluZyByZWd1bGF0ZXMgdmFzY3VsYXIgc3RlbSBjZWxsIHByb2xpZmVyYXRpb24gdmlhIHRoZSBXT1g0IGhvbWVvYm94IGdlbmUgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Ob24tY2VsbC1hdXRvbm9tb3VzIGNvbnRyb2wgb2YgdmFzY3VsYXIgc3RlbSBjZWxsIGZhdGUgYnkgYSBDTEUgcGVwdGlkZS9yZWNlcHRvciBzeXN0ZW08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjA4MDg0NDQxMDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjU2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BcmFiaWRvcHNpcywgYSB1c2VmdWwgd2VlZDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudHMgY29tcGFyZWQgdG8gYW5pbWFsczogdGhlIGJyb2FkZXN0IGNvbXBhcmF0aXZlIHN0dWR5IG9mIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BIHdlZWQgZm9yIHdvb2Q/IEFyYWJpZG9wc2lzIGFzIGEgZ2VuZXRpYyBtb2RlbCBmb3IgeHlsZW0gZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNC9wcC4xMDQuMDQwMjEyPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTgiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmUgQmlvdGVjaG5vbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Ob2JsZTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjI0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1NjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+V2hhdCBpcyBhIHN1cHBvcnQgdmVjdG9yIG1hY2hpbmU/PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmJ0MTIwNi0xNTY1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk9sc29uPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+Nzc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTUxNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODA8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DbGFzc2lmaWNhdGlvbiBvZiBjdWx0dXJlZCBtYW1tYWxpYW4gY2VsbHMgYnkgc2hhcGUgYW5hbHlzaXMgYW5kIHBhdHRlcm4gcmVjb2duaXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVCSW1hZ2XigJNhbiBSIHBhY2thZ2UgZm9yIGltYWdlIHByb2Nlc3Npbmcgd2l0aCBhcHBsaWNhdGlvbnMgdG8gY2VsbHVsYXIgcGhlbm90eXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDkzL2Jpb2luZm9ybWF0aWNzL2J0cTA0NjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5SYWduaTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEzMjI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TW9iaWxlIGdpYmJlcmVsbGluIGRpcmVjdGx5IHN0aW11bGF0ZXMgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHh5bGVtIGV4cGFuc2lvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTEuMDg0MDIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2Fua2FyPC9hdXRob3I+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC41MDYxL2RyeWFkLmI4MzVrPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjMiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2lib3V0PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDU4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkZsb3dlcmluZyBhcyBhIGNvbmRpdGlvbiBmb3IgeHlsZW0gZXhwYW5zaW9uIGluIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBhbmQgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RXZvbHV0aW9uIG9mIGRldmVsb3BtZW50IG9mIHZhc2N1bGFyIGNhbWJpYSBhbmQgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbCBtb3JwaG9sb2d5IGNsYXNzaWZpY2F0aW9uIGFuZCBjbHV0dGVyIG1pdGlnYXRpb24gaW4gcGhhc2UtY29udHJhc3QgbWljcm9zY29weSBpbWFnZXMgdXNpbmcgbWFjaGluZSBsZWFybmluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TWVjaGFuaWNhbCBzdHJlc3MgYWN0cyB2aWEga2F0YW5pbiB0byBhbXBsaWZ5IGRpZmZlcmVuY2VzIGluIGdyb3d0aCByYXRlIGJldHdlZW4gYWRqYWNlbnQgY2VsbHMgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNlbGwuMjAxMi4wMi4wNDg8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBDZWxsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+WWluPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ODYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgc2NyZWVuIGZvciBtb3JwaG9sb2dpY2FsIGNvbXBsZXhpdHkgaWRlbnRpZmllcyByZWd1bGF0b3JzIG9mIHN3aXRjaC1saWtlIHRyYW5zaXRpb25zIGJldHdlZW4gZGlzY3JldGUgY2VsbCBzaGFwZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uY2IyNzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICA8Y29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5BYnN0cmFjdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNhYnN0cmFjdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPmVMaWZlIGRpZ2VzdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNkaWdlc3Q8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIExpZ2h0IG1pY3Jvc2NvcHkgb2YgY3Jvc3Mgc2VjdGlvbnMgb2J0YWluZWQgZnJvbSBBcmFiaWRvcHNpcyBoeXBvY290eWxzIChvcmdhbiBwb3NpdGlvbiBpbGx1c3RyYXRlZCBmb3IgYSA5LWRheS1vbGQgc2VlZGxpbmcsIGxvd2VyIGxlZnQpIGF0IDkgZGFnICh1cHBlciBsZWZ0KSBhbmQgMzUgZGFnIChyaWdodCkuIFNpemUgYmFycyBhcmUgMTAwIM68bS4gQmx1ZSBHVVMgc3RhaW5pbmcgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhbiBBUEw6OkdVUyByZXBvcnRlciBnZW5lIGluIHRoaXMgQ29sLTAgYmFja2dyb3VuZCBsaW5lIG1hcmtzIHBobG9lbSBidW5kbGVzLiAoQikgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuIChDKSBFeGFtcGxlIG9mIGEgaGlnaC1yZXNvbHV0aW9uIGh5cG9jb3R5bCBzZWN0aW9uIGltYWdlIGFzc2VtYmxlZCBmcm9tIDExIMOXIDExIHRpbGVzLiAoRCkgVGhlIHNhbWUgaW1hZ2UgYWZ0ZXIgcHJlLXByb2Nlc3NpbmcgYW5kIGJpbmFyaXphdGlvbiwgYW5kIChFKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uIChGKSBOdW1iZXIgb2YgbWlzLXNlZ21lbnRlZCBjZWxscyBhcyBkZXRlcm1pbmVkIGJ5IGNhcmVmdWwgdmlzdWFsIGluc3BlY3Rpb24gaW4gMTIgc2VjdGlvbnMsIHBsb3R0ZWQgYWdhaW5zdCB0aGUgdG90YWwgbnVtYmVyIG9mIGNlbGxzIHBlciBzZWN0aW9uIChsb2cgc2NhbGUpLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDM8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDIuIFRoZSDigJhRdWFudGl0YXRpdmUgSGlzdG9sb2d54oCZIGFwcHJvYWNoLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBPdmVydmlldyBvZiB0aGUgY29tcHV0YXRpb25hbCBwaXBlbGluZSBmcm9tIGltYWdlIGFjcXVpc2l0aW9uIHRvIGFuYWx5c2lzLiAoQikg4oCYUGhlbm9wcmludHPigJkgZm9yIHRoZSBkaWZmZXJlbnQgZ2Vub3R5cGVzIGFuZCBkZXZlbG9wbWVudGFsIHN0YWdlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnMnMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDMuIFByb2dyZXNzaW9uIG9mIHRpc3N1ZSBwcm9saWZlcmF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBQcmluY2lwYWwgY29tcG9uZW50IGFuYWx5c2lzIChQQ0EpIG9mIHRoZSBwaGVub3ByaW50cyBzaG93biBpbiBGaWd1cmUgMkIsIHBlcmZvcm1lZCB3aXRoIG5vcm1hbGl6ZWQgdmFsdWVzIChTdXBwbGVtZW50YXJ5IGZpbGUgNCkuIFRoZSBpbmxheSBzY3JlZXBsb3QgZGlzcGxheXMgdGhlIHByb3BvcnRpb24gb2YgdG90YWwgdmFyaWF0aW9uIGV4cGxhaW5lZCBieSBlYWNoIHByaW5jaXBhbCBjb21wb25lbnQuIChC4oCTRSkgQ29tcGFyYXRpdmUgcGxvdHMgb2YgcGFyYW1ldGVyIHByb2dyZXNzaW9uIGluIHRoZSB0d28gZ2Vub3R5cGVzLiBJbiAoRCksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzM8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNC4gQmltb2RhbCBkaXN0cmlidXRpb24gb2YgaW5jbGluZSBhbmdsZSBhY2NvcmRpbmcgdG8gcG9zaXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEgYW5kIEIpIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoQikgYXMgY29tcGFyZWQgdG8gQ29sLTAgKEEpIGF0IGxhdGVyIHN0YWdlcyBvZiBkZXZlbG9wbWVudCwgZm9yIGV4YW1wbGUgMzAgZGFnLiBUaGUgc2l6ZSBvZiB0aGUgZGlzYyBpbmNyZWFzZXMgd2l0aCB0aGUgYXJlYSBvZiB0aGUgY2VsbC4gQmx1ZSBjb2xvciBpbmRpY2F0ZXMgcmFkaWFsIGNlbGwgb3JpZW50YXRpb24sIHJlZCBvcnRob3JhZGlhbC4gKEMgYW5kIEQpIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA04oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gaWxsdXN0cmF0aW9uIG9mIHRoZSBpbmNsaW5lIGFuZ2xlLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBpbmNsaW5lIGlzIHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBzZWN0aW9uIHJhZGl1cyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSBmaXQgdG8gYSBjZWxsIGFuZCB0aGUgbWFqb3IgYXhpcyBvZiB0aGF0IGVsbGlwc2UgZXh0ZW5kZWQgdG93YXJkcyB0aGUgeCBheGlzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDg8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI2ZpZzRzMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEHigJNKKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDXigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbmFseXNpcyBvZiBjZWxsIG51bWJlciBpbiBkZWZpbmVkIHh5bGVtIHJlZ2lvbnMgb2YgZGlmZmVyZW50IHNpemUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+Q2VsbCBudW1iZXIgaW4gYSBjaXJjbGUgb2YgMjAw4oCTNTAwIHBpeGVscyBhcm91bmQgdGhlIHNlY3Rpb24gY2VudGVycyBmb3IgQ29sLTAuIENlbGwgY291bnQgaW4gYSBjb25zdGFudCBhcmVhIG9mIHh5bGVtIG92ZXIgdGltZSBhY3Jvc3MgYWxsIGF2ZXJhZ2VkIGFjcm9zcyBhbGwgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNXMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgRXhhbXBsZSBvZiBHYXVzc2lhbiBrZXJuZWwgZGVuc2l0eSBlc3RpbWF0ZSBvZiB0aGUgbG9jYXRpb24gb2YgcHJlZGljdGVkIHBobG9lbSBidW5kbGVzIGNlbGxzIGluIGEgMzAgZGFnIENvbC0wIHNlY3Rpb24uIEhpZ2ggZGVuc2l0eSByZXByZXNlbnRzIHBobG9lbSBwb2xlcy4gKEIpIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuIEFQTDo6R1VTIHJlcG9ydGVyIGNvbnN0cnVjdC4gKEMpIFByb2JhYmlsaXR5IGRlbnNpdHkgZnVuY3Rpb24gb2YgdGhlIGRhdGEgc2hvd24gaW4gKEIpIG9idGFpbmVkIGZyb20gYW4gYXV0b21hdGVkIEJheWVzaWFuIG1vZGVsLiBUaGUgZG9taW5hbnQgc2luZ2xlIHBlYWsgaW5kaWNhdGVzIGEgY29uc3RhbnQgYXJjIGRpc3RhbmNlIG9mIGNhLiA2MiBwaXhlbCBiZXR3ZWVuIHRoZSBwaGxvZW0gcG9sZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgMS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgQW4gZXhwbGFuYXRpb24gb2YgdGhlIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIHRoYXQgZGVzY3JpYmUgdGhlIGNlbGx1bGFyIGZlYXR1cmVzLiAoQikgU3VtbWFyeSBpbmZvcm1hdGlvbiBvZiB0aGUgaGFuZC1sYWJlbGVkIHRyYWluaW5nIHNldCBmb3Igc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nLiAoQykgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoRCkgU3VtbWFyeSBvZiB0aGUgY2xhc3NpZmllciBwYXJhbWV0ZXJzIGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChFKSBPdmVydmlldyBvZiB0aGUgY2VsbCB0eXBlIGNsYXNzZXMgcmVjb2duaXplZCBieSB0aGUgc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nIGFwcHJvYWNoIGFuZCB0aGVpciBhc3NpZ25tZW50IGNvZGVzIHVzZWQgaW4gRGF0YSBGaWxlcyAzIGFuZCA0Ljwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEyPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDEtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIENvbC0wIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDItZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIExlciBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0QzLWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5UaGUgbm9ybWFsaXplZCB2YWx1ZXMgb2YgdGhlIHBoZW5vcHJpbnRzIChGaWd1cmUgMkIpIHVzZWQgZm9yIFBDQS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0Q0LWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5EZWNpc2lvbiBsZXR0ZXI8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZGVjaXNpb24tbGV0dGVyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+QXV0aG9yIHJlc3BvbnNlPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2F1dGhvci1yZXNwb25zZTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
94
102
  http_version:
95
- recorded_at: Mon, 25 Sep 2017 19:24:55 GMT
103
+ recorded_at: Mon, 23 Oct 2017 18:01:16 GMT
96
104
  - request:
97
105
  method: get
98
106
  uri: http://api.crossref.org/prefixes/10.7554
@@ -122,17 +130,23 @@ http_interactions:
122
130
  Server:
123
131
  - http-kit
124
132
  Date:
125
- - Mon, 25 Sep 2017 19:24:55 GMT
133
+ - Mon, 23 Oct 2017 18:01:18 GMT
126
134
  X-Rate-Limit-Limit:
127
135
  - '50'
128
136
  X-Rate-Limit-Interval:
129
137
  - 1s
138
+ X-Cache:
139
+ - MISS from IMP-cache
140
+ X-Cache-Lookup:
141
+ - MISS from IMP-cache:3128
142
+ Via:
143
+ - 1.0 IMP-cache (squid/3.1.20)
130
144
  Connection:
131
- - close
145
+ - keep-alive
132
146
  body:
133
147
  encoding: UTF-8
134
148
  string: '{"status":"ok","message-type":"prefix","message-version":"1.0.0","message":{"member":"http:\/\/id.crossref.org\/member\/4374","name":"eLife
135
149
  Sciences Organisation, Ltd.","prefix":"http:\/\/id.crossref.org\/prefix\/10.7554"}}'
136
150
  http_version:
137
- recorded_at: Mon, 25 Sep 2017 19:24:55 GMT
151
+ recorded_at: Mon, 23 Oct 2017 18:01:18 GMT
138
152
  recorded_with: VCR 3.0.3
@@ -29,9 +29,9 @@ http_interactions:
29
29
  Content-Type:
30
30
  - application/vnd.api+json; charset=utf-8
31
31
  Date:
32
- - Mon, 25 Sep 2017 19:24:41 GMT
32
+ - Mon, 23 Oct 2017 18:00:30 GMT
33
33
  Etag:
34
- - W/"63b070d9362acb72859bf074ab04ba65"
34
+ - W/"4e810c77c586ebf1cbb8d0340562d005"
35
35
  Server:
36
36
  - openresty/1.11.2.2
37
37
  Status:
@@ -45,27 +45,27 @@ http_interactions:
45
45
  X-Kong-Proxy-Latency:
46
46
  - '0'
47
47
  X-Kong-Upstream-Latency:
48
- - '31'
48
+ - '56'
49
49
  X-Powered-By:
50
- - Phusion Passenger 5.1.8
50
+ - Phusion Passenger 5.1.11
51
51
  X-Request-Id:
52
- - 5be8761e-6fcf-4039-a76a-214f1e8c57e4
52
+ - 28c96258-7872-4f34-baaf-3cd388acd7cd
53
53
  X-Runtime:
54
- - '0.029507'
54
+ - '0.054754'
55
55
  Content-Length:
56
- - '1833'
56
+ - '1023'
57
57
  Connection:
58
58
  - keep-alive
59
59
  body:
60
60
  encoding: UTF-8
61
- string: '{"data":{"id":"10.5061","type":"prefixes","attributes":{"registration-agency":"DataCite","created":"2010-01-01T00:00:00.000Z","updated":null},"relationships":{"clients":{"data":[{"id":"cdl.dryad","type":"clients"}]},"providers":{"data":[{"id":"cdl","type":"providers"}]}}},"included":[{"id":"cdl.dryad","type":"clients","attributes":{"name":"Dryad","year":2013,"contact":"Greg
62
- Janee","email":"gjanee@ucop.edu","domains":"*","is-active":true,"doi-count":[{"id":2010,"title":2010,"count":1418},{"id":2011,"title":2011,"count":2891},{"id":2012,"title":2012,"count":3845},{"id":2013,"title":2013,"count":5880},{"id":2014,"title":2014,"count":16965},{"id":2015,"title":2015,"count":18387},{"id":2016,"title":2016,"count":18955},{"id":2017,"title":2017,"count":15135}],"created":"2013-02-19T17:42:03.000Z","updated":"2017-09-24T01:44:31.000Z"},"relationships":{"prefixes":{"meta":{}},"provider":{"meta":{}}}},{"id":"cdl","type":"providers","attributes":{"name":"California
63
- Digital Library","year":2010,"contact":"Greg Janee","email":"gjanee@ucop.edu","logo-url":"https://assets.datacite.org/images/members/cdl.png","is-active":true,"doi-count":[{"id":2010,"title":2010,"count":1422},{"id":2011,"title":2011,"count":16535},{"id":2012,"title":2012,"count":119682},{"id":2013,"title":2013,"count":288016},{"id":2014,"title":2014,"count":524667},{"id":2015,"title":2015,"count":1058502},{"id":2016,"title":2016,"count":170312},{"id":2017,"title":2017,"count":620819}],"client-count":[{"id":2011,"title":2011,"count":7},{"id":2012,"title":2012,"count":51},{"id":2013,"title":2013,"count":90},{"id":2014,"title":2014,"count":119},{"id":2015,"title":2015,"count":180},{"id":2016,"title":2016,"count":215}],"created":"2010-01-01T00:00:00.000Z","updated":"2017-09-24T01:43:55.000Z"},"relationships":{"clients":{"meta":{}},"prefixes":{"meta":{}}}}]}'
61
+ string: '{"data":{"id":"10.5061","type":"prefixes","attributes":{"registration-agency":"DataCite","created":"2010-01-01T00:00:00.000Z","updated":null},"relationships":{"clients":{"data":[{"id":"cdl.dryad","type":"clients"}]},"providers":{"data":[{"id":"cdl","type":"providers"}]}}},"included":[{"id":"cdl.dryad","type":"clients","attributes":{"name":"Dryad","symbol":"CDL.DRYAD","year":2013,"contact-name":"Greg
62
+ Janee","contact-email":"gjanee@ucop.edu","domains":"*","is-active":true,"created":"2013-02-19T17:42:03Z","updated":"2017-09-29T05:47:50Z"},"relationships":{"prefixes":{"meta":{}},"provider":{"meta":{}},"repository":{"meta":{}}}},{"id":"cdl","type":"providers","attributes":{"name":"California
63
+ Digital Library","symbol":"CDL","year":2010,"contact-name":"Greg Janee","contact-email":"gjanee@ucop.edu","logo-url":"https://assets.datacite.org/images/members/cdl.png","is-active":true,"created":"2010-01-01T00:00:00.000Z","updated":"2017-09-27T16:30:44.000Z"},"relationships":{"clients":{"meta":{}},"prefixes":{"meta":{}}}}]}'
64
64
  http_version:
65
- recorded_at: Mon, 25 Sep 2017 19:24:41 GMT
65
+ recorded_at: Mon, 23 Oct 2017 18:00:29 GMT
66
66
  - request:
67
67
  method: get
68
- uri: https://search.datacite.org/api?fl=doi,xml,allocator_symbol,datacentre_symbol,media,minted,updated&q=doi:10.5061/dryad.8515&wt=json
68
+ uri: https://search.datacite.org/api?fl=doi,url,xml,allocator_symbol,datacentre_symbol,media,minted,updated&q=doi:10.5061/dryad.8515&wt=json
69
69
  body:
70
70
  encoding: US-ASCII
71
71
  string: ''
@@ -86,53 +86,16 @@ http_interactions:
86
86
  Content-Type:
87
87
  - application/json;charset=UTF-8
88
88
  Date:
89
- - Mon, 25 Sep 2017 19:24:41 GMT
89
+ - Mon, 23 Oct 2017 18:00:31 GMT
90
90
  Server:
91
91
  - openresty/1.11.2.2
92
- Content-Length:
93
- - '4112'
94
92
  Connection:
95
93
  - keep-alive
96
94
  body:
97
95
  encoding: UTF-8
98
- string: '{"responseHeader":{"status":0,"QTime":16},"response":{"numFound":1,"start":0,"docs":[{"datacentre_symbol":"CDL.DRYAD","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6bWV0cz0iaHR0cDovL3d3dy5sb2MuZ292L01FVFMvIiB4bWxuczpkc3BhY2U9Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkaW09Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkcnlhZD0iaHR0cDovL3B1cmwub3JnL2RyeWFkL3Rlcm1zLyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC44NTE1PC9pZGVudGlmaWVyPgogIDx2ZXJzaW9uPjE8L3ZlcnNpb24+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5PbGxvbW8sIEJlbmphbWluPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+RHVyYW5kLCBQYXRyaWNrPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+UHJ1Z25vbGxlLCBGcmFuY2s8L2NyZWF0b3JOYW1lPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5Eb3V6ZXJ5LCBFbW1hbnVlbCBKLiBQLjwvY3JlYXRvck5hbWU+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lPkFybmF0aGF1LCBDw6lsaW5lPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+TmtvZ2hlLCBEaWV1ZG9ubsOpPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+TGVyb3ksIEVyaWM8L2NyZWF0b3JOYW1lPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5SZW5hdWQsIEZyYW7Dp29pczwvY3JlYXRvck5hbWU+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPkRhdGEgZnJvbTogQSBuZXcgbWFsYXJpYSBhZ2VudCBpbiBBZnJpY2FuIGhvbWluaWRzLjwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTE8L3B1YmxpY2F0aW9uWWVhcj4KICA8c3ViamVjdHM+CiAgICA8c3ViamVjdD5QaHlsb2dlbnk8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5NYWxhcmlhPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+UGFyYXNpdGVzPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+VGF4b25vbXk8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5NaXRvY2hvbmRyaWFsIGdlbm9tZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkFmcmljYTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PlBsYXNtb2RpdW08L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkRhdGFzZXQiPkRhdGFQYWNrYWdlPC9yZXNvdXJjZVR5cGU+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9ImNpdGF0aW9uIj5PbGxvbW8gQiwgRHVyYW5kIFAsIFBydWdub2xsZSBGLCBEb3V6ZXJ5IEVKUCwgQXJuYXRoYXUgQywgTmtvZ2hlIEQsIExlcm95IEUsIFJlbmF1ZCBGICgyMDA5KSBBIG5ldyBtYWxhcmlhIGFnZW50IGluIEFmcmljYW4gaG9taW5pZHMuIFBMb1MgUGF0aG9nZW5zIDUoNSk6IGUxMDAwNDQ2LjwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+MTAuNTA2MS9EUllBRC44NTE1LzE8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9Ikhhc1BhcnQiPjEwLjUwNjEvRFJZQUQuODUxNS8yPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1JlZmVyZW5jZWRCeSI+MTAuMTM3MS9KT1VSTkFMLlBQQVQuMTAwMDQ0NjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNTdXBwbGVtZW50VG8iPjEwLjEzNzEvSk9VUk5BTC5QUEFULjEwMDA0NDY8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iUE1JRCIgcmVsYXRpb25UeXBlPSJJc1JlZmVyZW5jZWRCeSI+MTk0Nzg4Nzc8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iUE1JRCIgcmVsYXRpb25UeXBlPSJJc1N1cHBsZW1lbnRUbyI+MTk0Nzg4Nzc8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDxyaWdodHNMaXN0PgogICAgPHJpZ2h0cyByaWdodHNVUkk9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8iLz4KICA8L3JpZ2h0c0xpc3Q+CjwvcmVzb3VyY2U+","allocator_symbol":"CDL","minted":"2011-02-01T17:32:02Z","updated":"2017-09-02T07:32:23Z","doi":"10.5061/DRYAD.8515"}]}}
96
+ string: '{"responseHeader":{"status":0,"QTime":1},"response":{"numFound":1,"start":0,"docs":[{"datacentre_symbol":"CDL.DRYAD","url":"http://datadryad.org/resource/doi:10.5061/dryad.8515","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6bWV0cz0iaHR0cDovL3d3dy5sb2MuZ292L01FVFMvIiB4bWxuczpkc3BhY2U9Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkaW09Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkcnlhZD0iaHR0cDovL3B1cmwub3JnL2RyeWFkL3Rlcm1zLyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC44NTE1PC9pZGVudGlmaWVyPgogIDx2ZXJzaW9uPjE8L3ZlcnNpb24+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5PbGxvbW8sIEJlbmphbWluPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+RHVyYW5kLCBQYXRyaWNrPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+UHJ1Z25vbGxlLCBGcmFuY2s8L2NyZWF0b3JOYW1lPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5Eb3V6ZXJ5LCBFbW1hbnVlbCBKLiBQLjwvY3JlYXRvck5hbWU+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lPkFybmF0aGF1LCBDw6lsaW5lPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+TmtvZ2hlLCBEaWV1ZG9ubsOpPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+TGVyb3ksIEVyaWM8L2NyZWF0b3JOYW1lPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5SZW5hdWQsIEZyYW7Dp29pczwvY3JlYXRvck5hbWU+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPkRhdGEgZnJvbTogQSBuZXcgbWFsYXJpYSBhZ2VudCBpbiBBZnJpY2FuIGhvbWluaWRzLjwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTE8L3B1YmxpY2F0aW9uWWVhcj4KICA8c3ViamVjdHM+CiAgICA8c3ViamVjdD5QaHlsb2dlbnk8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5NYWxhcmlhPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+UGFyYXNpdGVzPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+VGF4b25vbXk8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5NaXRvY2hvbmRyaWFsIGdlbm9tZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkFmcmljYTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PlBsYXNtb2RpdW08L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkRhdGFzZXQiPkRhdGFQYWNrYWdlPC9yZXNvdXJjZVR5cGU+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9ImNpdGF0aW9uIj5PbGxvbW8gQiwgRHVyYW5kIFAsIFBydWdub2xsZSBGLCBEb3V6ZXJ5IEVKUCwgQXJuYXRoYXUgQywgTmtvZ2hlIEQsIExlcm95IEUsIFJlbmF1ZCBGICgyMDA5KSBBIG5ldyBtYWxhcmlhIGFnZW50IGluIEFmcmljYW4gaG9taW5pZHMuIFBMb1MgUGF0aG9nZW5zIDUoNSk6IGUxMDAwNDQ2LjwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+MTAuNTA2MS9EUllBRC44NTE1LzE8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9Ikhhc1BhcnQiPjEwLjUwNjEvRFJZQUQuODUxNS8yPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1JlZmVyZW5jZWRCeSI+MTAuMTM3MS9KT1VSTkFMLlBQQVQuMTAwMDQ0NjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNTdXBwbGVtZW50VG8iPjEwLjEzNzEvSk9VUk5BTC5QUEFULjEwMDA0NDY8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iUE1JRCIgcmVsYXRpb25UeXBlPSJJc1JlZmVyZW5jZWRCeSI+MTk0Nzg4Nzc8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iUE1JRCIgcmVsYXRpb25UeXBlPSJJc1N1cHBsZW1lbnRUbyI+MTk0Nzg4Nzc8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDxyaWdodHNMaXN0PgogICAgPHJpZ2h0cyByaWdodHNVUkk9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8iLz4KICA8L3JpZ2h0c0xpc3Q+CjwvcmVzb3VyY2U+","allocator_symbol":"CDL","minted":"2011-02-01T17:32:02Z","updated":"2017-09-02T07:32:23Z","doi":"10.5061/DRYAD.8515"}]}}
99
97
 
100
98
  '
101
99
  http_version:
102
- recorded_at: Mon, 25 Sep 2017 19:24:41 GMT
103
- - request:
104
- method: head
105
- uri: https://doi.org/10.5061/dryad.8515
106
- body:
107
- encoding: US-ASCII
108
- string: ''
109
- headers:
110
- User-Agent:
111
- - Maremma - https://github.com/datacite/maremma
112
- Accept:
113
- - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
114
- response:
115
- status:
116
- code: 303
117
- message: See Other
118
- headers:
119
- Server:
120
- - Apache-Coyote/1.1
121
- Vary:
122
- - Accept
123
- Location:
124
- - http://datadryad.org/resource/doi:10.5061/dryad.8515
125
- Expires:
126
- - Mon, 25 Sep 2017 19:29:21 GMT
127
- Content-Type:
128
- - text/html;charset=utf-8
129
- Content-Length:
130
- - '189'
131
- Date:
132
- - Mon, 25 Sep 2017 19:24:41 GMT
133
- body:
134
- encoding: UTF-8
135
- string: ''
136
- http_version:
137
- recorded_at: Mon, 25 Sep 2017 19:24:41 GMT
100
+ recorded_at: Mon, 23 Oct 2017 18:00:30 GMT
138
101
  recorded_with: VCR 3.0.3