video_info 2.7.1 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/unit_test.yml +42 -0
  3. data/Guardfile +1 -1
  4. data/README.md +8 -19
  5. data/lib/video_info/provider.rb +11 -2
  6. data/lib/video_info/providers/vimeo_api.rb +9 -3
  7. data/lib/video_info/providers/vimeo_scraper.rb +12 -2
  8. data/lib/video_info/providers/youtube.rb +8 -0
  9. data/lib/video_info/providers/youtube_api.rb +1 -2
  10. data/lib/video_info/providers/youtube_scraper.rb +43 -25
  11. data/lib/video_info/providers/youtubeplaylist_api.rb +15 -1
  12. data/lib/video_info/version.rb +1 -1
  13. data/lib/video_info.rb +3 -3
  14. data/tmp/rspec_guard_result +25 -0
  15. data/video_info.gemspec +5 -6
  16. metadata +16 -472
  17. data/.travis.yml +0 -21
  18. data/lib/video_info/providers/vkontakte.rb +0 -212
  19. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_invalid_video_url/_available_/1_2_2_1_1.yml +0 -93
  20. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -96
  21. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author/1_3_7_1.yml +0 -100
  22. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_thumbnail/1_3_9_1.yml +0 -100
  23. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_url/1_3_8_1.yml +0 -100
  24. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_date/should_show_correct_date.yml +0 -100
  25. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_description/1_3_10_1.yml +0 -100
  26. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_duration/1_3_12_1.yml +0 -100
  27. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_keywords/1_3_11_1.yml +0 -100
  28. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail/1_3_19_1.yml +0 -100
  29. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_large/1_3_18_1.yml +0 -100
  30. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_medium/1_3_17_1.yml +0 -100
  31. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_small/1_3_16_1.yml +0 -100
  32. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_title/1_3_6_1.yml +0 -100
  33. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_view_count/1_3_20_1.yml +0 -100
  34. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/1_2_3_1_1.yml +0 -150
  35. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/2_2_3_1_1.yml +0 -65
  36. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/1_2_2_1_1.yml +0 -124
  37. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/2_2_2_1_1.yml +0 -67
  38. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -150
  39. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/2_2_1_1_1.yml +0 -67
  40. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author/1_13_2_1.yml +0 -128
  41. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_thumbnail/1_13_3_1.yml +0 -128
  42. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_url/1_13_4_1.yml +0 -128
  43. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/available_/1_13_1_1.yml +0 -128
  44. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/date/1_13_7_1.yml +0 -128
  45. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/description/1_13_6_1.yml +0 -128
  46. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/duration/1_13_8_1.yml +0 -128
  47. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/height/1_13_10_1.yml +0 -128
  48. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/keywords/1_13_9_1.yml +0 -128
  49. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_large/1_13_14_1.yml +0 -128
  50. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_medium/1_13_13_1.yml +0 -128
  51. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_small/1_13_12_1.yml +0 -128
  52. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/title/1_13_5_1.yml +0 -128
  53. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/view_count/1_13_15_1.yml +0 -128
  54. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/width/1_13_11_1.yml +0 -128
  55. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_18_1.yml +0 -150
  56. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_18_1.yml +0 -79
  57. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_17_1.yml +0 -150
  58. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_17_1.yml +0 -79
  59. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_19_1.yml +0 -150
  60. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_19_1.yml +0 -79
  61. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_date/should_have_correct_upload_date.yml +0 -226
  62. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/1_3_7_1.yml +0 -150
  63. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/2_3_7_1.yml +0 -79
  64. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/1_3_9_1.yml +0 -150
  65. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/2_3_9_1.yml +0 -79
  66. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/1_3_11_1.yml +0 -150
  67. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/2_3_11_1.yml +0 -79
  68. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_keywords/should_return_a_string_list_of_keywords.yml +0 -226
  69. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_16_1.yml +0 -222
  70. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_16_1.yml +0 -79
  71. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/1_3_15_1.yml +0 -222
  72. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/2_3_15_1.yml +0 -79
  73. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/1_3_14_1.yml +0 -222
  74. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/2_3_14_1.yml +0 -79
  75. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/1_3_13_1.yml +0 -222
  76. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/2_3_13_1.yml +0 -79
  77. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/1_3_6_1.yml +0 -150
  78. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/2_3_6_1.yml +0 -79
  79. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_20_1.yml +0 -150
  80. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_20_1.yml +0 -79
  81. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/1_3_10_1.yml +0 -150
  82. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/2_3_10_1.yml +0 -79
  83. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/1_12_1_1.yml +0 -222
  84. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/2_12_1_1.yml +0 -75
  85. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/1_12_2_1.yml +0 -222
  86. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/2_12_2_1.yml +0 -75
  87. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/1_12_3_1.yml +0 -222
  88. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/2_12_3_1.yml +0 -75
  89. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/1_12_4_1.yml +0 -222
  90. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/2_12_4_1.yml +0 -75
  91. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_hashes/available_/1_2_6_1_1.yml +0 -86
  92. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_invalid_video/available_/1_2_2_1_1.yml +0 -50
  93. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_private_video/available_/1_2_3_1_1.yml +0 -132
  94. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect/available_/1_2_4_1_1.yml +0 -134
  95. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect_to_main_page_for_auth/available_/1_2_5_1_1.yml +0 -85
  96. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_valid_video/available_/1_2_1_1_1.yml +0 -87
  97. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author/1_5_14_1.yml +0 -48
  98. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author_thumbnail/1_5_15_1.yml +0 -48
  99. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author_url/1_5_16_1.yml +0 -48
  100. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/description/1_5_8_1.yml +0 -48
  101. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/duration/1_5_10_1.yml +0 -48
  102. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/embed_code/1_5_6_1.yml +0 -48
  103. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/embed_url/1_5_5_1.yml +0 -48
  104. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/height/1_5_12_1.yml +0 -48
  105. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/thumbnail_small/1_5_18_1.yml +0 -48
  106. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/title/1_5_7_1.yml +0 -48
  107. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/view_count/1_5_13_1.yml +0 -48
  108. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/width/1_5_11_1.yml +0 -50
  109. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/author/1_3_7_1.yml +0 -48
  110. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/embed_code/1_3_6_1.yml +0 -48
  111. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/embed_url/1_3_5_1.yml +0 -48
  112. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/title/1_3_4_1.yml +0 -48
  113. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video-54799401_165822734/title/1_7_4_1.yml +0 -48
  114. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video3552522_171340713/embed_url/1_10_1_1.yml +0 -48
  115. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/description/1_6_8_1.yml +0 -48
  116. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/duration/1_6_10_1.yml +0 -48
  117. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_code/1_6_6_1.yml +0 -48
  118. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_url/1_6_5_1.yml +0 -48
  119. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/height/1_6_12_1.yml +0 -48
  120. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/title/1_6_7_1.yml +0 -48
  121. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/view_count/1_6_13_1.yml +0 -48
  122. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/width/1_6_11_1.yml +0 -48
  123. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author/1_4_5_1.yml +0 -48
  124. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_thumbnail/1_4_6_1.yml +0 -48
  125. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_url/1_4_7_1.yml +0 -48
  126. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/title/1_4_4_1.yml +0 -48
  127. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_invalid_video/_available_/1_2_2_1_1.yml +0 -67
  128. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -69
  129. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_duration/1_4_7_1.yml +0 -77
  130. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_height/1_4_9_1.yml +0 -77
  131. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_large/1_4_12_1.yml +0 -77
  132. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_medium/1_4_11_1.yml +0 -77
  133. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_small/1_4_10_1.yml +0 -77
  134. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_title/1_4_6_1.yml +0 -77
  135. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_width/1_4_8_1.yml +0 -77
  136. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_duration/1_3_7_1.yml +0 -77
  137. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_height/1_3_9_1.yml +0 -77
  138. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail/1_3_13_1.yml +0 -77
  139. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_large/1_3_12_1.yml +0 -77
  140. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_medium/1_3_11_1.yml +0 -77
  141. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_small/1_3_10_1.yml +0 -77
  142. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_title/1_3_6_1.yml +0 -77
  143. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_width/1_3_8_1.yml +0 -77
  144. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/1_2_2_1_1.yml +0 -1447
  145. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/2_2_2_1_1.yml +0 -156
  146. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_2_1_1.yml +0 -481
  147. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_3_1_1.yml +0 -485
  148. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_2_1_1.yml +0 -54
  149. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_3_1_1.yml +0 -54
  150. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_2_11_1.yml +0 -481
  151. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_3_11_1.yml +0 -481
  152. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_2_11_1.yml +0 -54
  153. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_3_11_1.yml +0 -54
  154. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_2_8_1.yml +0 -483
  155. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_3_8_1.yml +0 -483
  156. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_2_8_1.yml +0 -54
  157. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_3_8_1.yml +0 -54
  158. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_2_10_1.yml +0 -485
  159. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_3_10_1.yml +0 -484
  160. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_2_10_1.yml +0 -54
  161. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_3_10_1.yml +0 -54
  162. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_2_9_1.yml +0 -485
  163. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_3_9_1.yml +0 -484
  164. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_2_9_1.yml +0 -54
  165. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_3_9_1.yml +0 -54
  166. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_2_7_1.yml +0 -481
  167. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_3_7_1.yml +0 -484
  168. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_2_7_1.yml +0 -54
  169. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_3_7_1.yml +0 -54
  170. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_17_1.yml +0 -485
  171. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_3_17_1.yml +0 -485
  172. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_17_1.yml +0 -54
  173. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_3_17_1.yml +0 -54
  174. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -56
  175. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/2_2_1_1_1.yml +0 -125
  176. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_3_1_1.yml +0 -483
  177. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_4_1_1.yml +0 -484
  178. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_3_1_1.yml +0 -54
  179. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_4_1_1.yml +0 -54
  180. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_date/should_return_date_video_was_posted.yml +0 -178
  181. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/1_17_7_1.yml +0 -56
  182. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/2_17_7_1.yml +0 -125
  183. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/1_17_9_1.yml +0 -56
  184. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/2_17_9_1.yml +0 -125
  185. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/1_17_8_1.yml +0 -56
  186. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/2_17_8_1.yml +0 -125
  187. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/1_17_6_1.yml +0 -56
  188. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/2_17_6_1.yml +0 -125
  189. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_16_1.yml +0 -56
  190. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_16_1.yml +0 -125
  191. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/1_3_6_1.yml +0 -56
  192. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/2_3_6_1.yml +0 -125
  193. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/1_3_7_1.yml +0 -56
  194. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/2_3_7_1.yml +0 -208
  195. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/1_3_8_1.yml +0 -56
  196. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/2_3_8_1.yml +0 -208
  197. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_date/should_return_date_video_was_posted.yml +0 -178
  198. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/1_3_10_1.yml +0 -56
  199. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/2_3_10_1.yml +0 -125
  200. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/1_3_12_1.yml +0 -56
  201. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/2_3_12_1.yml +0 -125
  202. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/1_3_11_1.yml +0 -56
  203. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/2_3_11_1.yml +0 -125
  204. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/1_3_9_1.yml +0 -56
  205. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/2_3_9_1.yml +0 -125
  206. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_20_1.yml +0 -56
  207. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_20_1.yml +0 -125
  208. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/1_2_2_1_1.yml +0 -60
  209. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/2_2_2_1_1.yml +0 -60
  210. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/1_2_3_1_1.yml +0 -94
  211. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/2_2_3_1_1.yml +0 -94
  212. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/1_2_1_1_1.yml +0 -94
  213. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/2_2_1_1_1.yml +0 -94
  214. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_19_1.yml +0 -105
  215. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/2_3_19_1.yml +0 -105
  216. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_20_1.yml +0 -189
  217. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/2_3_20_1.yml +0 -189
  218. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_21_1.yml +0 -189
  219. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/2_3_21_1.yml +0 -189
  220. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/1_3_7_1.yml +0 -105
  221. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/2_3_7_1.yml +0 -105
  222. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/1_3_8_1.yml +0 -105
  223. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/2_3_8_1.yml +0 -105
  224. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_16_1.yml +0 -105
  225. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/2_3_16_1.yml +0 -105
  226. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/1_3_15_1.yml +0 -105
  227. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/2_3_15_1.yml +0 -105
  228. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/1_3_14_1.yml +0 -105
  229. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/2_3_14_1.yml +0 -105
  230. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/1_3_13_1.yml +0 -105
  231. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/2_3_13_1.yml +0 -105
  232. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/1_3_6_1.yml +0 -105
  233. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/2_3_6_1.yml +0 -105
  234. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_videos/returns_list_of_videos_in_playlist.yml +0 -265
  235. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/1_4_2_1.yml +0 -54
  236. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/2_4_2_1.yml +0 -54
  237. data/spec/lib/video_info/provider_spec.rb +0 -80
  238. data/spec/lib/video_info/providers/dailymotion_spec.rb +0 -194
  239. data/spec/lib/video_info/providers/vimeo_spec.rb +0 -328
  240. data/spec/lib/video_info/providers/vkontakte_spec.rb +0 -236
  241. data/spec/lib/video_info/providers/wistia_spec.rb +0 -197
  242. data/spec/lib/video_info/providers/youtube_playlist_spec.rb +0 -236
  243. data/spec/lib/video_info/providers/youtube_scraper_spec.rb +0 -12
  244. data/spec/lib/video_info/providers/youtube_spec.rb +0 -575
  245. data/spec/lib/video_info_spec.rb +0 -106
  246. data/spec/spec_helper.rb +0 -26
@@ -1,128 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: head
5
- uri: https://vimeo.com/0812455
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - VideoInfo/2.7
12
- Accept:
13
- - "*/*"
14
- response:
15
- status:
16
- code: 404
17
- message: Not Found
18
- headers:
19
- Server:
20
- - nginx
21
- Content-Type:
22
- - text/html; charset=UTF-8
23
- Expires:
24
- - Mon, 27 Mar 2017 09:01:11 GMT
25
- X-Frame-Options:
26
- - sameorigin
27
- Via:
28
- - 1.1 varnish
29
- - 1.1 varnish
30
- - 1.1 varnish
31
- Cache-Control:
32
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
33
- X-Varnish-Cache:
34
- - '0'
35
- X-Vserver:
36
- - dfvimeowebproxy3
37
- Fastly-Debug-Digest:
38
- - 5c8cad581c94a8a0faf793c8c4898a0848cc94c3ce18c6c8e7834c3408b6d12c
39
- Content-Length:
40
- - '57898'
41
- Accept-Ranges:
42
- - bytes
43
- Date:
44
- - Mon, 27 Mar 2017 21:01:12 GMT
45
- Age:
46
- - '0'
47
- Connection:
48
- - keep-alive
49
- X-Served-By:
50
- - cache-iad2148-IAD, cache-lax8633-LAX
51
- X-Cache:
52
- - MISS, MISS
53
- X-Cache-Hits:
54
- - 0, 0
55
- X-Timer:
56
- - S1490648471.340295,VS0,VE1300
57
- Vary:
58
- - Accept-Encoding
59
- body:
60
- encoding: UTF-8
61
- string: ''
62
- http_version:
63
- recorded_at: Mon, 27 Mar 2017 21:01:12 GMT
64
- - request:
65
- method: get
66
- uri: https://vimeo.com/0812455
67
- body:
68
- encoding: US-ASCII
69
- string: ''
70
- headers:
71
- Accept-Encoding:
72
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
- Accept:
74
- - "*/*"
75
- User-Agent:
76
- - Ruby
77
- response:
78
- status:
79
- code: 404
80
- message: Not Found
81
- headers:
82
- Server:
83
- - nginx
84
- Content-Type:
85
- - text/html; charset=UTF-8
86
- Expires:
87
- - Mon, 27 Mar 2017 09:01:12 GMT
88
- X-Frame-Options:
89
- - sameorigin
90
- Via:
91
- - 1.1 varnish
92
- - 1.1 varnish
93
- - 1.1 varnish
94
- Cache-Control:
95
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
96
- X-Varnish-Cache:
97
- - '0'
98
- X-Vserver:
99
- - dfvimeowebproxy3
100
- Fastly-Debug-Digest:
101
- - 5c8cad581c94a8a0faf793c8c4898a0848cc94c3ce18c6c8e7834c3408b6d12c
102
- Content-Length:
103
- - '15269'
104
- Accept-Ranges:
105
- - bytes
106
- Date:
107
- - Mon, 27 Mar 2017 21:01:13 GMT
108
- Age:
109
- - '0'
110
- Connection:
111
- - keep-alive
112
- X-Served-By:
113
- - cache-iad2142-IAD, cache-lax8636-LAX
114
- X-Cache:
115
- - MISS, MISS
116
- X-Cache-Hits:
117
- - 0, 0
118
- X-Timer:
119
- - S1490648472.671265,VS0,VE447
120
- Vary:
121
- - Accept-Encoding
122
- body:
123
- encoding: ASCII-8BIT
124
- string: !binary |-
125
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgoKCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vIj4KIAo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vcGxheWVyLnZpbWVvLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9pLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9mLnZpbWVvY2RuLmNvbSI+CjxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjE5ODg0MDI4OTYzIj4KCgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJTb3JyeSwgd2UgY291bGRuJnJzcXVvO3QgZmluZCB0aGF0IHBhZ2UiPgogIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCI+CgoKCgoKIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgaHJlZj0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL21haW4tdG91Y2hfMTgwIj4KCjxsaW5rIHJlbD0ibWFzay1pY29uIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N2Zy9sZWdhY3lfdmlld19zdXBwb3J0L2lyaXNfaWNvbl92XzY0LnN2ZyIgY29sb3I9IiMxNzI3MmUiPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2L2Zhdmljb24uaWNvIiBkYXRhLXBsYXk9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9wbGF5XzMyIiBkYXRhLXBhdXNlPSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vcGF1c2VfMzIiPgoKPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9tYWluLXRvdWNoXzE0NCI+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMDBhZGVmIj4KCjxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiBocmVmPSIvc2VhcmNoL29wZW5zZWFyY2gueG1sIiB0aXRsZT0iVmltZW8gc2VhcmNoIj4KPGxpbmsgcmVsPSJsb2dvIiB0eXBlPSJpbWFnZS9zdmciIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vbG9nby5zdmciPgogPHRpdGxlPlZpbWVVaE9oPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC9nbG9iYWwvaWNvbl9mb250cy5taW4uY3NzP0RFViI+CgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N0eWxlcy9jc3Nfb3B0L2V4Y2VwdGlvbl9jb21iaW5lZC5taW4uY3NzPzcwMmFiZWMxIj4KCgoKIDxzY3JpcHQ+CiAgCiAgdmFyIHBsYXllckFzc2V0VXJscyA9IHsianMiOiJodHRwczpcL1wvZi52aW1lb2Nkbi5jb21cL3BcLzIuNTMuMTBcL2pzXC9wbGF5ZXIuanMiLCJtb29nIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC9mbGFzaFwvbW9vZ2Fsb29wXC82LjQuNVwvbW9vZ2Fsb29wLnN3ZiIsImNocm9tZWxlc3NfY3NzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9jc3NcL2Nocm9tZWxlc3MuY3NzIiwiY2hyb21lbGVzc19qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvanNcL2Nocm9tZWxlc3MuanMiLCJtb29nX2pzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9qc1wvbW9vZ2Fsb29wLmpzIiwiY3NzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9jc3NcL3BsYXllci5jc3MiLCJwbGF5ZXJfdXJsIjoicGxheWVyLnZpbWVvLmNvbSJ9OwoKICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogIHdpbmRvdyA9IF9leHRlbmQod2luZG93LCB7InZpbWVvX2VzaSI6eyJjb25maWciOnsiYXV0b2NvbXBsZXRlX2VuYWJsZWQiOnRydWV9fSwiZ2xvYmFsX25vdGlmaWNhdGlvbnMiOltdfSk7Cjwvc2NyaXB0PgoKIDxzdHlsZSBpZD0iZXNpX3JpYmJvbiI+CiAuZXNpX3JpYmJvbiB7CiBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjUwMCUyMiUzRSUzQ3JlY3QlMjB4JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyOGExZDglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM0JTIyJTIwd2lkdGglM0QlMjI1NSUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyMzI0OGJjNyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyODklMjIlMjB3aWR0aCUzRCUyMjMlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMxZTM5NTUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjkyJTIyJTIwd2lkdGglM0QlMjIxNTclMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyZjUxMzIlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI0OSUyMiUyMHdpZHRoJTNEJTIyMzAlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM0MTY4MjglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI3OSUyMiUyMHdpZHRoJTNEJTIyNTQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM3ZWFhMjklMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjMzMyUyMiUyMHdpZHRoJTNEJTIyMTElMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNkY2JkNDIlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM0NCUyMiUyMHdpZHRoJTNEJTIyNCUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2RjYWQyNyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyMzQ4JTIyJTIwd2lkdGglM0QlMjIyMyUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2UzOWEyMyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyMzcxJTIyJTIwd2lkdGglM0QlMjIzNSUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2NjNTU0YyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNDA2JTIyJTIwd2lkdGglM0QlMjIxOCUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2NhNDczZiUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNDI0JTIyJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzYTcyODM0JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0MzAlMjIlMjB3aWR0aCUzRCUyMjQ2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNzM1Njc1JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0NzYlMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNjUzZTY2JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0ODglMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzM2IzMTViJTIyJTJGJTNFJTNDJTJGc3ZnJTNFJTBBKSB0b3AgbGVmdC81MDBweCAxMDAlIHJlcGVhdC14ICFpbXBvcnRhbnQ7CiB9CiA8L3N0eWxlPgogCiA8c2NyaXB0PgogdmFyIGFibGluY29sbl9jb25maWcgPSBhYmxpbmNvbG5fY29uZmlnIHx8IHt9OwogYWJsaW5jb2xuX2NvbmZpZy50ZXN0cyA9IHsiREZQQWRDb2hvcnRzIjp7ImlkIjo2OSwibmFtZSI6IkRGUEFkQ29ob3J0cyIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6bnVsbCwiZXhwZXJpbWVudHMiOltdfSwiRXhwbG9yZSI6eyJpZCI6NjQsIm5hbWUiOiJFeHBsb3JlIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W119LCJUb3BOYXZBQiI6eyJpZCI6NjcsIm5hbWUiOiJUb3BOYXZBQiIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvIiwiZXhwZXJpbWVudHMiOltdfSwiVG9wTmF2Q29weVRlc3QiOnsiaWQiOjc3LCJuYW1lIjoiVG9wTmF2Q29weVRlc3QiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcL2Fib3V0IiwiZXhwZXJpbWVudHMiOltdfSwiVG9wTmF2Lkhvc3RWaWRlb3NMaW5rIjp7ImlkIjoxMDMsIm5hbWUiOiJUb3BOYXYuSG9zdFZpZGVvc0xpbmsiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOm51bGwsImV4cGVyaW1lbnRzIjpbXX19OwogPC9zY3JpcHQ+CgoKIAogPHNjcmlwdD4KIHZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge30sCiBncHRhZHNsb3RzID0gW10sCiBsYW5ndWFnZSwKIGhhc191cGxvYWRlZCwKIGNvaG9ydDsKIGdvb2dsZXRhZy5jbWQgPSBnb29nbGV0YWcuY21kIHx8IFtdOwoKIChmdW5jdGlvbigpIHsKIHZhciBnYWRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksCiB1c2VTU0wgPSAnaHR0cHM6JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCwKIG5vZGU7CiBnYWRzLmFzeW5jID0gdHJ1ZTsKIGdhZHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogZ2Fkcy5zcmMgPSAodXNlU1NMID8gJ2h0dHBzOicgOiAnaHR0cDonKSArICcvL3d3dy5nb29nbGV0YWdzZXJ2aWNlcy5jb20vdGFnL2pzL2dwdC5qcyc7CiBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYWRzLCBub2RlKTsKIH0pKCk7CgogZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewogCiAgbGFuZ3VhZ2UgPSBkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopbGFuZ3VhZ2VccypcPVxzKihbXjtdKikuKiQpfF4uKiQvLCAiJDEiKTsKIGhhc191cGxvYWRlZCA9IChkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopaGFzX3VwbG9hZGVkXHMqXD1ccyooW147XSopLiokKXxeLiokLywgIiQxIikpID8gJ1knIDogJ04nOwogCiBjb2hvcnQgPSAod2luZG93LkFCTGluY29sbikgPyB3aW5kb3cuQUJMaW5jb2xuLmdldFRlc3QoJ0RGUEFkQ29ob3J0cycpLmdldCgnY29ob3J0JywgJ0EnKSA6ICdBJzsKCiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdsYW5ndWFnZScsIFtsYW5ndWFnZV0pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnaXNfdXBsb2FkZXInLCBbaGFzX3VwbG9hZGVkXSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnQnLCBbY29ob3J0XSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnRfYScsIFsoY29ob3J0ID09PSAnQScpID8gJ1knIDogJ04nXSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnRfYicsIFsoY29ob3J0ID09PSAnQicpID8gJ1knIDogJ04nXSk7CgogIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ3NlYycsIFsnZmFsc2UnXSk7CgogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnbG9nZ2VkX2luJywgWydmYWxzZSddKTsKCiAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygncnB2JywgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDApKzEpLnRvU3RyaW5nKCkpOwoKIGdvb2dsZXRhZy5wdWJhZHMoKS5lbmFibGVBc3luY1JlbmRlcmluZygpOwogZ29vZ2xldGFnLmVuYWJsZVNlcnZpY2VzKCk7CiB9KTsKIDwvc2NyaXB0PgoKPHNjcmlwdD4KIWZ1bmN0aW9uKCl7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OmV4cG9ydHMscj1bXTtpZihlLnBlcmZvcm1hbmNlfHwoZS5wZXJmb3JtYW5jZT17fSksZS5wZXJmb3JtYW5jZS5ub3d8fChlLnBlcmZvcm1hbmNlLm5vdz1wZXJmb3JtYW5jZS5ub3d8fHBlcmZvcm1hbmNlLndlYmtpdE5vd3x8cGVyZm9ybWFuY2UubXNOb3d8fHBlcmZvcm1hbmNlLm1vek5vdyksIWUucGVyZm9ybWFuY2Uubm93KXt2YXIgbj1EYXRlLm5vdz9EYXRlLm5vdygpOituZXcgRGF0ZTtwZXJmb3JtYW5jZS50aW1pbmcmJnBlcmZvcm1hbmNlLnRpbWluZyYmKG49cGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCksZS5wZXJmb3JtYW5jZS5ub3c9ZnVuY3Rpb24oKXt2YXIgZT1EYXRlLm5vdz9EYXRlLm5vdygpOituZXcgRGF0ZTtyZXR1cm4gZS1ufX1lLnBlcmZvcm1hbmNlLm1hcmt8fChlLnBlcmZvcm1hbmNlLm1hcms9ZS5wZXJmb3JtYW5jZS53ZWJraXRNYXJrP2UucGVyZm9ybWFuY2Uud2Via2l0TWFyazpmdW5jdGlvbihuKXtyLmZvckVhY2goZnVuY3Rpb24oZSxyLGEpe2UubmFtZT09PW4mJmEuc3BsaWNlKHIsMSl9KSxyLnB1c2goe25hbWU6bixlbnRyeVR5cGU6Im1hcmsiLHN0YXJ0VGltZTplLnBlcmZvcm1hbmNlLm5vdygpLGR1cmF0aW9uOjB9KX0pLGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZXx8KGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZT1lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGU/ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlUeXBlOmZ1bmN0aW9uKGUpe3ZhciBuPWZ1bmN0aW9uKHIpe3JldHVybiByLmVudHJ5VHlwZT09PWV9O3JldHVybi0xIT09WyJtYXJrIiwibWVhc3VyZSJdLmluZGV4T2YoZSk/ci5maWx0ZXIobik6dm9pZCAwfSksZS5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lfHwoZS5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lPWUucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZT9lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiByLm5hbWU9PT1lfSl9KSxlLnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXN8fChlLnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXM9ZS5wZXJmb3JtYW5jZS53ZWJraXRDbGVhck1lYXN1cmVzP2UucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNZWFzdXJlczpmdW5jdGlvbigpe3IuZm9yRWFjaChmdW5jdGlvbihlLHIsbil7Im1lYXN1cmUiPT09ZS5lbnRyeVR5cGUmJm4uc3BsaWNlKHIsMSl9KSxyPVtdfSksZS5wZXJmb3JtYW5jZS5jbGVhck1hcmtzfHwoZS5wZXJmb3JtYW5jZS5jbGVhck1hcmtzPWUucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNYXJrcz9lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWFya3M6ZnVuY3Rpb24oKXtyLmZvckVhY2goZnVuY3Rpb24oZSxyLG4peyJtYXJrIj09PWUuZW50cnlUeXBlJiZuLnNwbGljZShyLDEpfSkscj1bXX0pLGUucGVyZm9ybWFuY2UubWVhc3VyZXx8KGUucGVyZm9ybWFuY2UubWVhc3VyZT1lLnBlcmZvcm1hbmNlLndlYmtpdE1lYXN1cmU/ZS5wZXJmb3JtYW5jZS53ZWJraXRNZWFzdXJlOmZ1bmN0aW9uKGUsbixhKXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHIubmFtZT09PWUmJiJtYXJrIj09PXIuZW50cnlUeXBlfX0sbz1yLmZpbHRlcih0KG4pKVswXSxtPXIuZmlsdGVyKHQoYSkpWzBdLGk9bS5zdGFydFRpbWUtby5zdGFydFRpbWU7ci5wdXNoKHtuYW1lOmUsZW50cnlUeXBlOiJtZWFzdXJlIixzdGFydFRpbWU6by5zdGFydFRpbWUsZHVyYXRpb246aX0pfSl9KCksd2luZG93Lm1hcmtVc2VyVGltZT1mdW5jdGlvbihlKXt2YXIgcj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGUsMCl9O3IoZnVuY3Rpb24oKXt3aW5kb3cucGVyZm9ybWFuY2UubWFyayhlKSx3aW5kb3cuY29uc29sZSYmY29uc29sZS50aW1lU3RhbXAmJmNvbnNvbGUudGltZVN0YW1wKGUpfSl9OwoKKGZ1bmN0aW9uKCkgewogd2luZG93Lm1hcmtVc2VyVGltZSA9IGZ1bmN0aW9uKGxhYmVsKSB7CiB3aW5kb3cuX2d0bSA9IHdpbmRvdy5fZ3RtIHx8IFtdOwoKIC8vIEV4aXQgZWFybHkgaWYgdGhlIGJyb3dzZXIgY2FuJ3QgaGFuZGxlIG5ldyB0aGluZ3MKIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBwZXJmb3JtYW5jZS5tYXJrICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBwZXJmb3JtYW5jZS5jbGVhck1hcmtzICE9PSAnZnVuY3Rpb24nKSB7CiByZXR1cm47CiB9CgogdmFyIHVpZCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zcGxpdCgnMC4nKVsxXSkgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKIG1hcmtfbmFtZSA9IGxhYmVsICsgJ18nICsgdWlkLAogcGFydHMgPSBsYWJlbC5zcGxpdCgnfCcpLAogY2F0ZWdvcnkgPSBwYXJ0c1swXSwKIHZhcmlhYmxlID0gcGFydHNbMV0sCiBsYWJlbCA9IHBhcnRzWzJdLAogbWFya190aW1lLAogbWFya19lbnRyaWVzOwoKIHBlcmZvcm1hbmNlLm1hcmsobWFya19uYW1lKTsKIG1hcmtfZW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUobWFya19uYW1lKTsKCiBpZiAobWFya19lbnRyaWVzLmxlbmd0aCkgewogbWFya190aW1lID0gbWFya19lbnRyaWVzWzBdLnN0YXJ0VGltZTsKIHdpbmRvdy5fZ3RtLnB1c2goewogJ2V2ZW50JzogJ3BlcmZvcm1hbmNlX3RpbWluZycsCiAncGVyZm9ybWFuY2VfdGltaW5nLmNhdGVnb3J5JzogY2F0ZWdvcnksCiAncGVyZm9ybWFuY2VfdGltaW5nLnZhcmlhYmxlJzogdmFyaWFibGUsCiAncGVyZm9ybWFuY2VfdGltaW5nLnRpbWUnOiBtYXJrX3RpbWUgLyAxMDAwLAogJ3BlcmZvcm1hbmNlX3RpbWluZy5sYWJlbCc6IGxhYmVsCiB9KTsKIH0KIH07Cn0oKSk7Cjwvc2NyaXB0PgoKIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9hYmxpbmNvbG5fY29tYmluZWQubWluLmpzPzQ2NDIzMGYwIj48L3NjcmlwdD4KCgoKIDwvaGVhZD4KIDxib2R5IGNsYXNzPSJvbnNpdGUgIj4KIDxkaXYgaWQ9IndyYXAiIGNsYXNzPSJvdXRlcl93cmFwIj4KIAogPGRpdiBjbGFzcz0iYm9keV9yaWJib24gZXNpX3JpYmJvbiI+PC9kaXY+CgogCiAKPHNjcmlwdD4KIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKPC9zY3JpcHQ+CjxkaXYgaWQ9InRvcG5hdl9kZXNrdG9wIiBjbGFzcz0idG9wbmF2X2Rlc2t0b3AgIiByb2xlPSJiYW5uZXIiPgogPGRpdiBjbGFzcz0idG9wbmF2X2Rlc2t0b3Bfd3JhcHBlciI+CgogICA8YSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbG9nbyIgaHJlZj0iLy92aW1lby5jb20iIGFsdD0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiB0aXRsZT0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiBhcmlhLWxhYmVsPSJHbyB0byBWaW1lbyBob21lIHBhZ2UiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnZpbWVvX2hvbWUiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2hvbWVfY2xpY2siPgogIDxzdmcgYWx0PSJWaW1lbyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI0MCI+PHBhdGggZD0iTTIyLjQ0OCAxNC41NzVjLS4xMDQgMi4xNy0xLjYxOCA1LjE0Ni00LjU0NCA4LjkxMi0zLjAzIDMuOTQyLTUuNTkgNS45MTItNy42ODYgNS45MTItMS4yOTcgMC0yLjM5Ny0xLjIwNC0zLjMtMy42LS42LTIuMi0xLjIwMi00LjM5OC0xLjc5NC02LjU5OC0uNjY0LTIuMzk2LTEuMzgtMy42LTIuMTQ3LTMuNi0uMTY2IDAtLjc0Ny4zNTQtMS43NTMgMS4wNWwtMS4wNDgtMS4zNWMxLjEtLjk2NSAyLjE5LTEuOTMgMy4yNTctMi45MDUgMS40NjMtMS4yNjUgMi41NzMtMS45NCAzLjMtMi4wMDIgMS43MzItLjE2NiAyLjggMS4wMTcgMy4yMDUgMy41NTguNDM1IDIuNzQuNzM2IDQuNDQuOTAyIDUuMTE1LjQ5OCAyLjI3IDEuMDQ4IDMuNDAyIDEuNjUgMy40MDIuNDY2IDAgMS4xNzItLjczNyAyLjEwNS0yLjIxLjkzNC0xLjQ3MyAxLjQzMi0yLjU5MyAxLjUwNC0zLjM3LjEzMy0xLjI3Ny0uMzY1LTEuOTEtMS41MDYtMS45MS0uNTMgMC0xLjA4LjEyNS0xLjY1LjM2NCAxLjEtMy41OSAzLjE4Ni01LjMzMyA2LjI3Ny01LjIzIDIuMjczLjA3MyAzLjM1IDEuNTU2IDMuMjI3IDQuNDZtMTMuNzU1IDcuMDM0Yy0uOTMzIDEuNzY0LTIuMjIgMy4zNy0zLjg2IDQuODAzLTIuMjQgMS45My00LjQ3IDIuOTA1LTYuNyAyLjkwNS0xLjAzNy4wMDItMS44MjYtLjMzLTIuMzc2LS45OTQtLjU1LS42NjMtLjgxLTEuNTM1LS43NzctMi42MDMuMDMtMS4xLjM3Mi0yLjggMS4wMjUtNS4xMDQuNjU0LTIuMzAzLjk3Ni0zLjUzNy45NzYtMy43MDMgMC0uODYtLjMtMS4yOTctLjkwMi0xLjI5Ny0uMTk4IDAtLjc3LjM1My0xLjcwMiAxLjA0OGwtMS4xNTItMS4zNWMxLjA3LS45NjIgMi4xMzctMS45MjcgMy4yMDYtMi45MDIgMS40My0xLjI2NiAyLjUtMS45NCAzLjIwNS0yLjAwMiAxLjEtLjEwMyAxLjkxLjIzIDIuNDI4Ljk3Ni41MTguNzQ3LjcwNSAxLjcyMi41OCAyLjkxNS0uNDM1IDIuMDM0LS45MDIgNC42MDctMS40IDcuNzMtLjAzIDEuNDMuNDg4IDIuMTQ2IDEuNTU2IDIuMTQ2LjQ2NyAwIDEuMjk3LS40OTggMi41LTEuNDgzLjk5Ni0uODIgMS44MTUtMS41OTggMi40NS0yLjMyNGwuOTQyIDEuMjQ0bS00LjM1Ny0xNy44Yy0uMDMuODMtLjQ0NiAxLjYyOC0xLjI1NSAyLjM5NS0uOS44Ni0xLjk3IDEuMjk2LTMuMjA0IDEuMjk2LTEuOSAwLTIuODIyLS44My0yLjc1LTIuNDkuMDMyLS44Ni41NC0xLjY5IDEuNTI2LTIuNDkuOTg1LS43OTcgMi4wNzQtMS4xOSAzLjI3OC0xLjE5LjcwNSAwIDEuMjg2LjI3IDEuNzUzLjgyLjQ2Ny41NC42ODQgMS4xLjY1MyAxLjY2bTM1LjYxMiAxNy44Yy0uOTMzIDEuNzYzLTIuMjIgMy4zNy0zLjg2IDQuODAyLTIuMjQgMS45My00LjQ3IDIuOTA0LTYuNyAyLjkwNC0yLjE2OC4wMDItMy4yMTYtMS4yMDItMy4xNTMtMy41OTguMDMtMS4wNy4yMzgtMi4zNTUuNjIyLTMuODUuMzg0LTEuNTAzLjU5LTIuNjY1LjYyMy0zLjUwNS4wMy0xLjI2NS0uMzUzLTEuODk4LTEuMTUyLTEuODk4LS44NyAwLTEuOTEgMS4wMzYtMy4xMTIgMy4xLTEuMjc2IDIuMTY4LTEuOTYgNC4yNzQtMi4wNjQgNi4zMDgtLjA3MyAxLjQzLjA3MiAyLjU0LjQyNSAzLjI5OC0yLjMyNC4wNjQtMy45NjMtLjMyLTQuODg2LTEuMTUtLjgzLS43MzctMS4yMTItMS45NS0xLjE1LTMuNjUyLjAzLTEuMDY4LjE5OC0yLjEzNy40ODgtMy4yMDUuMjktMS4wNy40NTctMi4wMjMuNDg4LTIuODUzLjA2Mi0xLjIzNC0uMzg0LTEuODU3LTEuMzUtMS44NTctLjg0IDAtMS43NC45NTUtMi43MDYgMi44NTMtLjk2NiAxLjktMS41MDUgMy44OS0xLjYxIDUuOTU2LS4wNiAxLjg2Ny4wNTMgMy4xNzQuMzY0IDMuOS0yLjI5My4wNjItMy45Mi0uNDE1LTQuODc2LTEuNDUyLS43OTgtLjg2LTEuMTYtMi4xOC0xLjEtMy45NDIuMDMyLS44Ni4xODgtMi4wNzUuNDU3LTMuNjIuMjgtMS41NDYuNDI1LTIuNzUuNDU3LTMuNjIuMDYyLS42MDMtLjA4My0uOTAzLS40NDYtLjkwMy0uMTk3IDAtLjc2OC4zNC0xLjcwMiAxLjAxNWwtMS4yMDMtMS4zNDhjLjE2OC0uMTM1IDEuMjE2LTEuMSAzLjE1Ni0yLjkwNSAxLjQtMS4yOTcgMi4zNTQtMS45NyAyLjg1Mi0yLjAwMi44NzItLjA3MyAxLjU2Ny4yOSAyLjEwNiAxLjA4LjUzLjc4Ny44IDEuNjkuOCAyLjcyNyAwIC4zMzItLjAzMi42NTQtLjEwNS45NTQuNDk3LS43NjYgMS4wOC0xLjQzIDEuNzUyLTIgMS41MzctMS4zNCAzLjI2LTIuMDg2IDUuMTU3LTIuMjUyIDEuNjQtLjEzNSAyLjguMjUgMy41MDUgMS4xNTIuNTcuNzM2LjgzIDEuNzg0LjggMy4xNTMuMjM3LS4xOTguNDg2LS40MTYuNzQ2LS42NTQuNzY3LS45MDMgMS41MTQtMS42MiAyLjI1LTIuMTQ4IDEuMjM1LS45MDIgMi41Mi0xLjQgMy44Ni0xLjUwNCAxLjU5Ny0uMTM1IDIuNzUuMjUgMy40NTQgMS4xNTIuNjAyLjcyNi44NyAxLjc3NC44IDMuMTQzLS4wMzIuOTMzLS4yNiAyLjI4LS42NzUgNC4wNjUtLjQxNiAxLjc3My0uNjI0IDIuOC0uNjI0IDMuMDctLjAzLjY5NS4wMyAxLjE4Mi4xOTcgMS40NDIuMTY2LjI3LjU3LjM5NCAxLjIwMy4zOTQuNDY3IDAgMS4yOTctLjQ5NyAyLjUtMS40ODIuOTk2LS44MiAxLjgxNi0xLjU5OCAyLjQ1LTIuMzI0bC45NjMgMS4yNTRtMTguNzY1LS4wNTJjLS45NjUgMS41OTgtMi44NzQgMy4xOTUtNS43MDYgNC43OTMtMy41MzggMi4wMzItNy4xMjcgMy4wNS0xMC43NTggMy4wNS0yLjcwNiAwLTQuNjM2LS45MDQtNS44MDgtMi43LS44My0xLjIzMy0xLjIzNC0yLjY5Ni0xLjIwMy00LjQwNy4wMy0yLjY5OCAxLjIzNC01LjI3IDMuNi03LjcxIDIuNjAzLTIuNjY1IDUuNjc0LTQuMDAzIDkuMjEtNC4wMDMgMy4yNyAwIDUgMS4zMjggNS4yMDggMy45OTQuMTM1IDEuNzAyLS43OTggMy40NDUtMi44IDUuMjQtMi4xMzcgMS45Ni00LjgyNCAzLjIxNS04LjA2IDMuNzQ0LjYuODMgMS41MDQgMS4yNDUgMi43MDcgMS4yNDUgMi4zOTYgMCA1LjAyLS42MTMgNy44NjMtMS44MzcgMi4wMzMtLjg2IDMuNjMtMS43NTMgNC44MDMtMi42NzZsLjk0NSAxLjI2NW0tMTEuMzYtNS4yMjhjLjAzMi0uODkyLS4zMy0xLjM1LTEuMS0xLjM1LS45OTQgMC0yLjAxLjY4Ni0zLjA0OCAyLjA2Ni0xLjAzOCAxLjM4LTEuNTY3IDIuNjk3LTEuNTk4IDMuOTYyLS4wMiAwLS4wMi4yMTggMCAuNjQzIDEuNjMtLjYgMy4wNS0xLjUxNCA0LjI0Mi0yLjczOC45NjYtMS4wNTggMS40NjMtMS45MiAxLjUwNS0yLjU4M20yNC45NDYgMS44NjhjLS4xMzUgMy4wNzItMS4yNjUgNS43MTctMy40MDIgNy45NDctMi4xMzUgMi4yMy00Ljc5IDMuMzUtNy45NTUgMy4zNS0yLjYzNSAwLTQuNjM3LS44NS02LjAwNi0yLjU1LS45OTctMS4yNjctMS41NTctMi44NTQtMS42NS00Ljc1Mi0uMTY2LTIuODYzLjg2LTUuNDk4IDMuMS03Ljg5NCAyLjQwOC0yLjY2NSA1LjQyNy0zLjk5MyA5LjA1Ny0zLjk5MyAyLjMzNCAwIDQuMDk4Ljc4OCA1LjMgMi4zNDQgMS4xMzIgMS40NDMgMS42NSAzLjI5IDEuNTU3IDUuNTVtLTUuNjY0LS4xODVjLjAzLS45MDMtLjA5NC0xLjczMy0uMzc0LTIuNDgtLjI4LS43NDctLjY5NS0xLjEzLTEuMjI0LTEuMTMtMS43MDIgMC0zLjEwMi45MjMtNC4yMDIgMi43Ni0uOTMzIDEuNTAzLTEuNDMgMy4xMS0xLjUwNCA0LjgxMi0uMDMuODQuMTE0IDEuNTc3LjQ0NiAyLjIxLjM2NC43MzYuODgyIDEuMSAxLjU1NiAxLjEgMS41MDUgMCAyLjc5LS44ODMgMy44Ni0yLjY1Ni44OTItMS40NzIgMS4zOC0zLjAwOCAxLjQ0LTQuNjE1aC4wMDJ6IiBmaWxsPSIjMTEyMjMzIi8+PC9zdmc+CiAgPC9hPgogCiAgIDxuYXYgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik1haW4gbWVudSI+CiA8dWwgY2xhc3M9InRvcG5hdl9tZW51X2Rlc2t0b3BfbWFpbiIgcm9sZT0ibWVudWJhciI+CgogIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0iam9pbiI+CiA8YSBjbGFzcz0idG9wbmF2X21lbnVfam9pbiBqcy10b3BuYXZfbWVudV9hdXRoIiBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO3ZpbWVvLk1vZGFsLmNyZWF0ZSh7c2l6ZToneHNtYWxsJyxjb250ZW50Oicvam9pbj9tb2RhbD1uZXcnfSkiIGRhdGEtZ2EtZXZlbnQtY2xpY2s9InRvcF9uYXZ8am9pbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6am9pbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfam9pbl9jbGljayIgaHJlZj0iLy92aW1lby5jb20vam9pbiIgdGl0bGU9IkJlY29tZSBhIFZpbWVvIG1lbWJlciIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2pvaW4iPgogSm9pbiA8L2E+CgogICA8L2xpPgogCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJsb2dpbiI+CiA8YSBjbGFzcz0ianMtdG9wbmF2X21lbnVfYXV0aCIgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTt2aW1lby5TZXNzaW9uLmNyZWF0ZSgncmVnJywgbnVsbCwgdHJ1ZSk7IiBkYXRhLWdhLWV2ZW50LWNsaWNrPSJ0b3BfbmF2fGxvZ2luIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpsb2dpbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfbG9naW5fY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2xvZ19pbiIgdGl0bGU9IkxvZyBpbiB0byB5b3VyIGFjY291bnQiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9sb2dpbiI+CiBMb2cgaW4gPC9hPgoKICAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0iY3JlYXRlIj4KIDxhIGNsYXNzPSJqcy10b3BuYXYtY3JlYXRlIHRvcG5hdl9oYXNfZHJvcGRvd24gdG9wbmF2X2ljb25fY2hldnJvbl9hIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDptYW5hZ2VfdmlkZW9zfGtleXdvcmQ6aG9zdF92aWRlb3MiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9jbGljayIgaHJlZj0iLy92aW1lby5jb20vY3JlYXRlIiB0aXRsZT0iIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfY3JlYXRlIj4KIEhvc3QgdmlkZW9zIDwvYT4KCiAgIDx1bCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfY3JlYXRlIj4KICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOmNvbXBhcmVfcGxhbnMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9tZW1iZXJzaGlwX29wdGlvbnNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3VwZ3JhZGUiIHRpdGxlPSJVcGdyYWRlIG9yIGNvbXBhcmUgb3VyIHBsYW5zIj5Db21wYXJlIHBsYW5zPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDpwcm9mZXNzaW9uYWxzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9wcm9mZXNzaW9uYWxzIiB0aXRsZT0iR2V0IHByb2Zlc3Npb25hbCB2aWRlbyBob3N0aW5nIHRvb2xzIj5Qcm9mZXNzaW9uYWxzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDpidXNpbmVzc2VzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9idXNpbmVzcyIgdGl0bGU9IkdldCBwb3dlcmZ1bCB2aWRlbyBtYXJrZXRpbmcgdG9vbHMiPkJ1c2luZXNzZXM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOnZpZGVvX2xvdmVycyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vZXZlcnlvbmUiIHRpdGxlPSJVcGxvYWQgYW5kIHNoYXJlIHlvdXIgdmlkZW9zIj5WaWRlbyBsb3ZlcnM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOnZpZGVvX3NjaG9vbCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX3ZpZGVvX3NjaG9vbF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vdmlkZW9zY2hvb2wiIHRpdGxlPSJMZWFybiBob3cgdG8gbWFrZSBiZXR0ZXIgdmlkZW9zIj5WaWRlbyBTY2hvb2w8L2E+CiA8L2xpPgogICA8L3VsPgogIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9IndhdGNoIj4KIDxhIGNsYXNzPSJ0b3BuYXZfaGFzX2Ryb3Bkb3duIHRvcG5hdl9pY29uX2NoZXZyb25fYSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDp3YXRjaCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3dhdGNoIiB0aXRsZT0iIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfd2F0Y2giPgogV2F0Y2ggPC9hPgoKICAgPHVsIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl93YXRjaCI+CiAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpzdGFmZl9waWNrcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfc3RhZmZfcGlja3NfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NoYW5uZWxzL3N0YWZmcGlja3MiIHRpdGxlPSJUaGUgYmVzdCB2aWRlb3Mgb24gVmltZW8sIGN1cmF0ZWQgZGFpbHkgYnkgb3VyIHRlYW0iPlN0YWZmIFBpY2tzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpjYXRlZ29yaWVzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9jYXRlZ29yaWVzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jYXRlZ29yaWVzIiB0aXRsZT0iQnJvd3NlIHZpZGVvcyBieSBpbnRlcmVzdCwgZ2VucmUsIGFuZCBtb3JlIj5DYXRlZ29yaWVzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpjaGFubmVscyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2hhbm5lbHNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NoYW5uZWxzIiB0aXRsZT0iVmlldyB2aWRlbyBwbGF5bGlzdHMgY3JlYXRlZCBhbmQgY3VyYXRlZCBieSBvdGhlciBtZW1iZXJzIj5DaGFubmVsczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Z3JvdXBzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9ncm91cHNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2dyb3VwcyIgdGl0bGU9IldhdGNoIGFuZCBkaXNjdXNzIHZpZGVvcyB3aXRoIG90aGVycyI+R3JvdXBzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDphcHAiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2FwcHNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2V2ZXJ5d2hlcmUiIHRpdGxlPSJXYXRjaCBWaW1lbyB2aWRlb3Mgb24gVFZzLCBwaG9uZXMsIHRhYmxldHMsIGFuZCBtb3JlIj5BcHBzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDptb3JlIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9tb3JlX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS93YXRjaCIgdGl0bGU9IkRpc2NvdmVyIG1vcmUgd2F5cyB0byB3YXRjaCBvbiBWaW1lbyI+TW9yZeKApjwvYT4KIDwvbGk+CiAgIDwvdWw+CiAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0ib25kZW1hbmQiPgogPGEgY2xhc3M9InRvcG5hdl9oYXNfZHJvcGRvd24gdG9wbmF2X2lzX29uZGVtYW5kIHRvcG5hdl9pY29uX2NoZXZyb25fYSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6b25fZGVtYW5kIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQiIHRpdGxlPSJXYXRjaCBtb3ZpZXMsIHNlcmllcywgYW5kIG1vcmUiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9vbmRlbWFuZCI+CiBPbiBEZW1hbmQgPC9hPgoKICAgPHVsIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl9vbmRlbWFuZCI+CiAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6d2hhdHNfbmV3IiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF93aGF0c19uZXdfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kIiB0aXRsZT0iU2VlIG5ldyBhbmQgbm90ZXdvcnRoeSB0aXRsZXMgYWRkZWQgdG8gT24gRGVtYW5kIj5XaGF04oCZcyBuZXc8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDpkaXNjb3ZlciIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfZGlzY292ZXJfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL2Rpc2NvdmVyIiB0aXRsZT0iRGlzY292ZXIgdGl0bGVzIG91ciB0ZWFtIHJlY29tbWVuZHMiPkRpc2NvdmVyPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6Z2VucmVzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9nZW5yZXNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL2Jyb3dzZSIgdGl0bGU9IkJyb3dzZSB0aXRsZXMgYnkgZ2VucmUiPkdlbnJlczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOnR2X3NlcmllcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfdHZfc2VyaWVzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9icm93c2UvdHYrc2VyaWVzIiB0aXRsZT0iQnJvd3NlIHNlcmllcyBhbmQgVFYgc2hvd3MiPlRWICsgU2VyaWVzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6c3RhcnRfc2VsbGluZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfc2VsbF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQvc3RhcnRzZWxsaW5nIiB0aXRsZT0iU2VsbCBkaXJlY3RseSB0byB5b3VyIGZhbnMgd2l0aCBWaW1lbyBPbiBEZW1hbmQiPlN0YXJ0IHNlbGxpbmc8L2E+CiA8L2xpPgogICA8L3VsPgogIDwvbGk+CiAKIDwvdWw+CiA8L25hdj48IS0tIC8udG9wbmF2X2Rlc2t0b3BfbWVudSAtLT4KIAogICA8ZGl2IGNsYXNzPSJ0b3BuYXZfbWVudV9yaWdodCI+CgogICA8Zm9ybSBjbGFzcz0idG9wbmF2X21lbnVfc2VhcmNoIiBhY3Rpb249Ii8vdmltZW8uY29tL3NlYXJjaCIgbWV0aG9kPSJnZXQiIHJvbGU9InNlYXJjaCIgZGF0YS1kcy1wcm90ZWN0aW9uPgogPGlucHV0IGNsYXNzPSJ0b3BuYXZfbWVudV9zZWFyY2hfaW5wdXQganMtdG9wbmF2X21lbnVfc2VhcmNoX2lucHV0IGpzLXNlYXJjaF9hdXRvY29tcGxldGUiICB0eXBlPSJ0ZXh0IiBuYW1lPSJxIiB0aXRsZT0iU2VhcmNoIHZpZGVvcywgcGVvcGxlLCBhbmQgbW9yZSIgdmFsdWU9IiIgYXJpYS1sYWJlbD0iU2VhcmNoIHZpZGVvcywgcGVvcGxlLCBhbmQgbW9yZSIgcGxhY2Vob2xkZXI9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIGF1dG9jb21wbGV0ZT0ib2ZmIj48YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbWVudV9zZWFyY2hfc3VibWl0IHRvcG5hdl9pY29uX3NlYXJjaF9iIiB0eXBlPSJzdWJtaXQiIGFyaWEtbGFiZWw9IlNlYXJjaCI+PC9idXR0b24+CiA8L2Zvcm0+CiAKICAKICAKICAgPGEgY2xhc3M9InRvcG5hdl9kZXNrdG9wX3VwbG9hZCB0b3BuYXZfaWNvbl91cGxvYWRfYiIgaHJlZj0iL3VwbG9hZCIgdGl0bGU9IlVwbG9hZCB5b3VyIHZpZGVvcyIgcm9sZT0iYnV0dG9uIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbXBvbmVudDp0b3BfbmF2fGtleXdvcmQ6dXBsb2FkIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl91cGxvYWRfY2xpY2siPjxzcGFuPlVwbG9hZDwvc3Bhbj48L2E+CiAgPC9kaXY+PCEtLSAvLnRvcG5hdl9tZW51X3JpZ2h0IC0tPgogIDwvZGl2PjwhLS0gLy50b3BuYXZfZGVza3RvcF93cmFwcGVyIC0tPgo8L2Rpdj4KCiA8bmF2IGlkPSJ0b3BuYXZfbW9iaWxlIiBjbGFzcz0idG9wbmF2X21vYmlsZSAiIHJvbGU9ImJhbm5lciI+CgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9iYXIiPgogIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9sZWZ0IHRvcG5hdl9tb2JpbGVfaGVhZGVyX2xvZ28ganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfbG9nbyB0b3BuYXZfaWNvbl9tb2JpbGVfdmxvZ29fYiI+CiAgPC9idXR0b24+CiA8YSBocmVmPSIvL3ZpbWVvLmNvbS9zZWFyY2giIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfcmlnaHQgdG9wbmF2X21vYmlsZV9oZWFkZXJfc2VhcmNoIHRvcG5hdl9pY29uX21vYmlsZV9zZWFyY2hfYiI+IDwvYT4KIDxzcGFuIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2hlYWRlcl90aXRsZSI+PC9zcGFuPgogPC9kaXY+CgogIDxzZWN0aW9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnUganMtdG9wbmF2X21vYmlsZV9tZW51X21haW4iPgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9iYXIiPgogPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX2xlZnQganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfY2xvc2UgdG9wbmF2X2ljb25fbW9iaWxlX3hfYiI+IDwvYnV0dG9uPgogPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX3JpZ2h0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbmdzIHRvcG5hdl9pY29uX21vYmlsZV9nZWFyX2IiPiA8L2J1dHRvbj4KIDwvZGl2PgoKIDx1bD4KICAgPGxpPgogPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfY2hhbm5lbF9iICIgaHJlZj0iLy92aW1lby5jb20vIj4KIFN0YWZmIFBpY2tzIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYWN0aW9uPSJsYXN0X3BhZ2UiIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX2F2YXRhcl9iICIgaHJlZj0iL2xvZ19pbiI+CiA8c3BhbiBjbGFzcz0ibWVudV9hdXRoIj5Kb2luIG9yIGxvZyBpbjwvc3Bhbj4gPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfc3Rhcl9iIiBocmVmPSIvL3ZpbWVvLmNvbS93YXRjaCI+CiBXYXRjaCA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBvbmNsaWNrPSJ2aW1lby5tb2JpbGUuZGVza3RvcF9zaGFyZWQuX3VwbG9hZCh0aGlzKTsgcmV0dXJuIGZhbHNlOyIgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfdXBsb2FkX2IiIGhyZWY9Ii8vdmltZW8uY29tL3VwbG9hZCI+CiBVcGxvYWQgPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfdm9kX2IgIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZCI+CiBPbiBEZW1hbmQgPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfZm9yZ290X2IgIiBocmVmPSJodHRwczovL2hlbHAudmltZW8uY29tL2hjL2VuLXVzIj4KIEhlbHAgPC9hPgogPC9saT4KICA8L3VsPgogPC9zZWN0aW9uPgoKICA8c2VjdGlvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51IHRvcG5hdl9tb2JpbGVfbWVudV9zZXR0aW5ncyBqcy10b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MiPgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9iYXIiPgogPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX2xlZnQganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfc2V0dGluc19jbG9zZSB0b3BuYXZfaWNvbl9tb2JpbGVfYXJyb3dsZWZ0X2IiPiA8L2J1dHRvbj4KIDxzcGFuIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2hlYWRlcl90aXRsZSI+TW9yZSBzdHVmZjwvc3Bhbj4KIDwvZGl2PgoKIDx1bD4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS90ZXJtcyI+CiBUZXJtcyBvZiBTZXJ2aWNlIDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS9wcml2YWN5Ij4KIFByaXZhY3kgUG9saWN5IDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS9kbWNhIj4KIENvcHlyaWdodCA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vY29va2llX3BvbGljeSI+CiBDb29raWVzIDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249ImRlc2t0b3AiIG9uY2xpY2s9InZpbWVvLm1vYmlsZS5kZXNrdG9wX3NoYXJlZC5fczJkcygpOyByZXR1cm4gZmFsc2UiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiBEZXNrdG9wIHNpdGUgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBsYW5ndWFnZSBocmVmPSIjIj4KIExhbmd1YWdlIDwvYT4KICAgPHNlbGVjdCBvbmNoYW5nZT0idmltZW8ubW9iaWxlLmRlc2t0b3Bfc2hhcmVkLl9zMmwodGhpcykiIHRpdGxlPSJDaG9vc2UgYSBkaWZmZXJlbnQgbGFuZ3VhZ2UiIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3NfbGFuZ3VhZ2UiPgogICA8b3B0aW9uIGNsYXNzPSJzZWxlY3RlZCIgc2VsZWN0ZWQgdmFsdWU9ImVuIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIEVuZ2xpc2ggPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iZXMiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRXNwYcOxb2wgPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iZGUtREUiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRGV1dHNjaCA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJmci1GUiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBGcmFuw6dhaXMgPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iamEtSlAiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgog5pel5pys6KqeIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9InB0LUJSIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIFBvcnR1Z3XDqnMgPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0ia28tS1IiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgog7ZWc6rWt7Ja0IDwvb3B0aW9uPgogIDwvc2VsZWN0PgogIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vZmFxIj4KIEZBUSA8L2E+CiAgIDwvbGk+CiAgPC91bD4KCiA8ZGl2IGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnVfY29weXJpZ2h0Ij5UTSArIMKpIDIwMTcgVmltZW8sIEluYy48L2Rpdj4KIDwvc2VjdGlvbj4KPC9uYXY+Cgo8c2NyaXB0PgohZnVuY3Rpb24oYSxiKXthLnZpbWVvPWEudmltZW98fHt9LHZpbWVvLm1vYmlsZT12aW1lby5tb2JpbGV8fHt9LFZpbWVvPXZpbWVvLm1vYmlsZXx8e30sVmltZW8uZGVza3RvcF9zaGFyZWQ9VmltZW8uZGVza3RvcF9zaGFyZWR8fHt9O3ZhciBjPWIuZ2V0RWxlbWVudEJ5SWQoInRvcG5hdl9kZXNrdG9wIiksZD0ib250b3VjaHN0YXJ0ImluIGE/InRvdWNoc3RhcnQiOmEuUG9pbnRlckV2ZW50PyJwb2ludGVyZG93biI6YS5NU1BvaW50ZXJFdmVudD8iTVNQb2ludGVyRG93biI6ImNsaWNrIjsiY2xpY2siIT09ZCYmYy5hZGRFdmVudExpc3RlbmVyKGQsZnVuY3Rpb24oYSl7dmFyIGI9ImltZyI9PT1hLnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCk/YS50YXJnZXQucGFyZW50Tm9kZTphLnRhcmdldDtiLmNsYXNzTGlzdC5jb250YWlucygidG9wbmF2X2hhc19kcm9wZG93biIpJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMSksYy5hZGRFdmVudExpc3RlbmVyKGQsZnVuY3Rpb24oYyl7Yy50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy10b3BuYXZfbWVudV9hdXRoIikmJihiLmNvb2tpZT0ibGFzdF9wYWdlPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEubG9jYXRpb24ucGF0aG5hbWUpKyI7cGF0aD0nLyc7bWF4LWFnZT0xODAwOyIpfSwhMSksVmltZW8uZGVza3RvcF9zaGFyZWQuX3VwbG9hZD1mdW5jdGlvbihjKXtpZigvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7dmFyIGYsZyxkPSJ2aW1lbzovL2FwcC52aW1lby5jb20vdXBsb2FkP3JlZj1tb2JpbGV3ZWIiLGU9Ii91cGxvYWQiO3JldHVybiBmPWZ1bmN0aW9uKCl7Yi53ZWJraXRIaWRkZW58fChhLmxvY2F0aW9uPWUpfSxnPWZ1bmN0aW9uKCl7YS5sb2NhdGlvbj1kLHNldFRpbWVvdXQoZiwyNSl9LGcoKSwhMX1hLmxvY2F0aW9uPWMuaHJlZn0sVmltZW8uZGVza3RvcF9zaGFyZWQuX3MyZHM9ZnVuY3Rpb24oKXtiLmNvb2tpZT0ib3B0X291dF9tb2JpbGU9MTtleHBpcmVzPUZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UO2RvbWFpbj0iK3ZpbWVvLmRvbWFpbixhLmxvY2F0aW9uLnJlbG9hZCgpfSxWaW1lby5kZXNrdG9wX3NoYXJlZC5fczJsPWZ1bmN0aW9uKGIpe3ZhciBjPWIudmFsdWUsZD1uZXcgWE1MSHR0cFJlcXVlc3Q7ZC5vcGVuKCJQT1NUIiwiL3NldHRpbmdzL2xvY2FsZSIpLGQuc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0IiksZC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSxkLnNlbmQoImxvY2FsZT0iK2MrIiZ0b2tlbj0iK3ZpbWVvLnhzcmZ0KSxkLm9ubG9hZD1mdW5jdGlvbigpezIwMD09PWQuc3RhdHVzJiZhLmxvY2F0aW9uLnJlbG9hZCgpfX07dmFyIGU9ImNsaWNrIixmPSJibG9jayIsZz0ibm9uZSIsaD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKGUsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCk7dmFyIGM9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9tZW51X21haW4iKTtjLnN0eWxlLmRpc3BsYXk9Zjt2YXIgZD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9jbG9zZSIpO2QuYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpLGMuc3R5bGUuZGlzcGxheT1nfSk7dmFyIGg9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzIiksaT1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5ncyIpO2kuYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpLGguc3R5bGUuZGlzcGxheT1mLGMuc3R5bGUuZGlzcGxheT1nO3ZhciBkPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbnNfY2xvc2UiKTtkLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxoLnN0eWxlLmRpc3BsYXk9ZyxjLnN0eWxlLmRpc3BsYXk9Zn0pfSl9LCExKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZihhKXt2YXIgYj1uZXcgWE1MSHR0cFJlcXVlc3Q7Yi5vcGVuKCJQT1NUIiwiL3NldHRpbmdzL25hdiIpLGIuc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0IiksYi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSxiLnNlbmQoIm1lc3NhZ2Vfc3RhdGU9IithKyImdG9rZW49Iit2aW1lby54c3JmdCksYi5vbmxvYWQ9ZnVuY3Rpb24oKXt9fXZhciBhPWIuZ2V0RWxlbWVudEJ5SWQoInRvcG5hdl9tZW51X2F2YXRhciIpO2lmKGEpe3ZhciBjPWEucXVlcnlTZWxlY3RvcigiLnRvcG5hdl9tZW51X2F2YXRhcl9idWJibGUiKSxlPShhLnF1ZXJ5U2VsZWN0b3IoIiN0b3BuYXZfdXNlcl9kcm9wZG93biIpLCExKTtjJiZjLmNsYXNzTGlzdC5hZGQoIm9uIiksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJvbiIpLGYoMSkpfSwhMSl9fSwxZTMpfSh3aW5kb3csZG9jdW1lbnQpOwo8L3NjcmlwdD4KCiA8ZGl2IGNsYXNzPSJ3cmFwX2NvbnRlbnQiPgogCgoKCjxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9jb250YWluZXIiPgogPGRpdiBjbGFzcz0iZXhjZXB0aW9uX3NlY3Rpb24gZXhjZXB0aW9uX3NlY3Rpb24tLWluZm8iPgogPGRpdiBjbGFzcz0iZXhjZXB0aW9uX3NocnVnX28iPjwvZGl2PgogPGgxIGNsYXNzPSJleGNlcHRpb25fdGl0bGUgaXJpc19oZWFkZXIiPlNvcnJ5LCB3ZSBjb3VsZG7igJl0IGZpbmQgdGhhdCBwYWdlPC9oMT4KCiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fY29udGVudCI+CiA8cCBjbGFzcz0iZXhjZXB0aW9uX21lc3NhZ2UiPgogIDwvcD4KCiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uLS11cHNlbGwiPgogPGRpdiBjbGFzcz0iaXJpc19ub3RpZmljYXRpb24tLXVwc2VsbC1pY29uIj4KIDxzcGFuIGNsYXNzPSJpcmlzX2ljIGlzLS0xNiI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTcgNGgydjJIN1Y0em0wIDNoMnY1SDdWN3oiLz48L3N2Zz48L3NwYW4+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJpcmlzX25vdGlmaWNhdGlvbi1oZWFkZXIiPgogPHN0cm9uZz5SZWFzb25zIHlvdSBtaWdodCBiZSBzZWVpbmcgdGhpcyBwYWdlPC9zdHJvbmc+CiA8L2Rpdj4KCiA8dWwgY2xhc3M9ImlyaXNfbm90aWZpY2F0aW9uLWxpc3QiPgogIDxsaT5JdCBleGlzdHMsIGJ1dCB5b3UgZG9u4oCZdCBoYXZlIHBlcm1pc3Npb24gdG8gc2VlIGl0LCBvciB5b3UgbmVlZCB0byA8YSBvbmNsaWNrPSJ2aW1lby5TZXNzaW9uLmNyZWF0ZSgpIj5sb2cgaW48L2E+LjwvbGk+CiAgPGxpPk5vdGhpbmcgaGFzIGV2ZXIgZXhpc3RlZCBoZXJlLiBTcG9va3kuPC9saT4KIDxsaT5Tb21ldGhpbmcgb25jZSBsaXZlZCBoZXJlLCBidXQgaGFzIGJlZW4gZGVsZXRlZC48L2xpPgogPC91bD4KPC9kaXY+CgogIDxmb3JtIGNsYXNzPSJleGNlcHRpb25fc2VhcmNoIiBhY3Rpb249Ii9zZWFyY2giIG1ldGhvZD0iZ2V0Ij4KIDxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9zZWFyY2gtaW5wdXQtd3JhcHBlciI+CiA8aW5wdXQgY2xhc3M9ImV4Y2VwdGlvbl9zZWFyY2gtaW5wdXQgaXJpc19pbnB1dCBpcmlzX2lucHV0LS1zZWFyY2gganMtc2VhcmNoX2F1dG9jb21wbGV0ZSIgdHlwZT0idGV4dCIgbmFtZT0icSIgcGxhY2Vob2xkZXI9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgogPC9kaXY+CiA8YnV0dG9uIGNsYXNzPSJleGNlcHRpb25fc2VhcmNoLWJ1dHRvbiBpcmlzX2J0biBpcmlzX2J0bi0tcHJpbWFyeSI+CiA8c3BhbiBjbGFzcz0iaXJpc19idG4tY29udGVudCI+U2VhcmNoPC9zcGFuPgogPC9idXR0b24+CiA8L2Zvcm0+CiAgPC9kaXY+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fYXV4aWxpYXJ5Ij48L2Rpdj4KPC9kaXY+CgogPC9kaXY+CgogIAo8Zm9vdGVyIGNsYXNzPSJmb290ZXJfdjIgZm9vdGVyX3YyLS1yZXNwb25zaXZlIj4KICAgIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX3NpdGVtYXAiPgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19saW5rcyI+CgogPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fbGluayBmb290ZXJfdjJfYWNjb3JkaW9uIj4KIDxpbnB1dCBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2siIHR5cGU9ImNoZWNrYm94Ij4KIDxoNCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlciI+CiA8c3BhbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlci10ZXh0Ij5WaW1lbzwvc3Bhbj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiA8c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA4Ij48cGF0aCBkPSJNNy43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNCA0LjU4NiAxLjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMC0uMzkuMzktLjM5IDEuMDI0IDAgMS40MTRsMyAzYy4zOS4zOSAxLjAyNC4zOSAxLjQxNCAwbDMtM2MuMzktLjM5LjM5LTEuMDI0IDAtMS40MTR6Ii8+PC9zdmc+CiA8L2Rpdj4KIDwvaDQ+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvYWJvdXQiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19hYm91dF9jbGljayI+CiBBYm91dCBWaW1lbyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvYmxvZyIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpbWVvX2Jsb2dfY2xpY2siPgogVmltZW8gQmxvZyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvaGVscC9ndWlkZWxpbmVzIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmltZW9fZ3VpZGVsaW5lc19jbGljayI+CiBWaW1lbyBHdWlkZWxpbmVzIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLnZpbWVvLmNvbSIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2RldmVsb3BlcnNfY2xpY2siPgogRGV2ZWxvcGVycyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvam9icyI+CiBKb2JzIDwvYT4KIDwvbGk+CiA8L3VsPgogPC9zZWN0aW9uPgoKIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiA8aW5wdXQgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX2NoZWNrIiB0eXBlPSJjaGVja2JveCI+CiA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXIiPgogPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXItdGV4dCI+SGVscDwvc3Bhbj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiA8c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA4Ij48cGF0aCBkPSJNNy43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNCA0LjU4NiAxLjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMC0uMzkuMzktLjM5IDEuMDI0IDAgMS40MTRsMyAzYy4zOS4zOSAxLjAyNC4zOSAxLjQxNCAwbDMtM2MuMzktLjM5LjM5LTEuMDI0IDAtMS40MTR6Ii8+PC9zdmc+CiA8L2Rpdj4KIDwvaDQ+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvaGVscCIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2hlbHBfY2VudGVyX2NsaWNrIj4KIEhlbHAgQ2VudGVyIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii92aWRlb3NjaG9vbCIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpZGVvX3NjaG9vbF9jbGljayI+CiBWaWRlbyBTY2hvb2wgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL2hlbHAvZmFxIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZmFxX2NsaWNrIj4KIEZBUSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvZm9ydW1zIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZm9ydW1zX2NsaWNrIj4KIEZvcnVtcyA8L2E+CiA8L2xpPgogPC91bD4KIDwvc2VjdGlvbj4KCiA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rIGZvb3Rlcl92Ml9hY2NvcmRpb24iPgogPGlucHV0IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19jaGVjayIgdHlwZT0iY2hlY2tib3giPgogPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPk1vcmU8L3NwYW4+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogPHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDggOCI+PHBhdGggZD0iTTcuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwTDQgNC41ODYgMS43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDAtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgM2MuMzkuMzkgMS4wMjQuMzkgMS40MTQgMGwzLTNjLjM5LS4zOS4zOS0xLjAyNCAwLTEuNDE0eiIvPjwvc3ZnPgogPC9kaXY+CiA8L2g0PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstbGlzdCBmb290ZXJfdjJfYWNjb3JkaW9uX19tZW51Ij4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL29uZGVtYW5kIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfb25fZGVtYW5kX2NsaWNrIj4KIE9uIERlbWFuZCA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvZXZlcnl3aGVyZSIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2V2ZXJ5d2hlcmVfY2xpY2siPgogRXZlcnl3aGVyZSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvdXBsb2FkIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdXBsb2FkX2NsaWNrIj4KIFVwbG9hZCA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvc2l0ZV9tYXAiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19zaXRlX21hcF9jbGljayI+CiBTaXRlIE1hcCA8L2E+CiA8L2xpPgogPC91bD4KIDwvc2VjdGlvbj4KCiA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rIGZvb3Rlcl92Ml9hY2NvcmRpb24iPgogPGlucHV0IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19jaGVjayIgdHlwZT0iY2hlY2tib3giPgogPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPlVwZ3JhZGU8L3NwYW4+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogPHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDggOCI+PHBhdGggZD0iTTcuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwTDQgNC41ODYgMS43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDAtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgM2MuMzkuMzkgMS4wMjQuMzkgMS40MTQgMGwzLTNjLjM5LS4zOS4zOS0xLjAyNCAwLTEuNDE0eiIvPjwvc3ZnPgogPC9kaXY+CiA8L2g0PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstbGlzdCBmb290ZXJfdjJfYWNjb3JkaW9uX19tZW51Ij4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL3BsdXM/dj1mb290ZXIiPgogVmltZW8gUGx1cyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvcHJvP3Y9Zm9vdGVyIj4KIFZpbWVvIFBSTyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvYnVzaW5lc3MiPgogVmltZW8gQnVzaW5lc3MgPC9hPgogPC9saT4KIDwvdWw+CiA8L3NlY3Rpb24+CiA8L2Rpdj4KCiAgIDxhc2lkZSBpZD0iZm9vdGVyX3RpcCIgY2xhc3M9ImZvb3Rlcl92Ml9fdGlwIiBhcmlhLWxpdmU9InBvbGl0ZSI+CiA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fdGlwLWhlYWRlciI+RGlkIHlvdSBrbm93PzwvaDQ+CiA8cCBjbGFzcz0iYWN0aXZlIGZvb3Rlcl92Ml9fdGlwLWNvbnRlbnQiPlRoZSBMZWdlbmQgb2YgdGhlIFR1cnRsZW5lY2s6IFdhdGNoIG91ciA8YSBocmVmPSJodHRwczovL3ZpbWVvLmNvbS9ibG9nL3Bvc3Q6NjIzIj5MZWFybmluZyBWaW1lbyB2aWRlbyBzZXJpZXM8L2E+IGZvciB0aXBzIGFuZCB3ZWlyZCBhZHZpY2UgZnJvbSBvdXIgQ29tbXVuaXR5IFRlYW0uPC9wPgogPC9hc2lkZT4KIDwvc2VjdGlvbj4KIAogIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2F1eGlsaWFyeSAiPgoKIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwiPgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19hdXhpbGlhcnktY29udGVudCI+CiA8cD5UTSArICZjb3B5OyAyMDE3IFZpbWVvLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPgogPC9kaXY+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdCI+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9Ii90ZXJtcyIgdGl0bGU9IlRlcm1zICZhbXA7IENvbmRpdGlvbnMiPgogVGVybXMgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iL3ByaXZhY3kiIHRpdGxlPSJQcml2YWN5IFBvbGljeSI+CiBQcml2YWN5IDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9Ii9kbWNhIiB0aXRsZT0iQ29weXJpZ2h0IEluZm9ybWF0aW9uIj4KIENvcHlyaWdodCA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvY29va2llX3BvbGljeSIgdGl0bGU9IkxlYXJuIG1vcmUgYWJvdXQgaG93IFZpbWVvIHVzZXMgY29va2llcyI+CiBDb29raWVzIDwvYT4KIDwvbGk+CiA8L3VsPgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19hdXhpbGlhcnktY29udGVudCBmb290ZXJfdjJfX3dpdGhsb3ZlIj4KIE1hZGUgd2l0aCA8YSBocmVmPSJodHRwczovL3ZpbWVvLmNvbS9sb3ZlIj48c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiBmb290ZXJfdjJfX2xvdmVoZWFydCBmb290ZXJfdjJfX2F1eGlsaWFyeS1pY29uIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+PHBhdGggZD0iTTkgMkM3LjMxMiAyIDYgMy41IDYgMy41UzQuNjg3IDIgMyAyQzEuMzEyIDIgMCAzLjMxMiAwIDVjMCAzLjE4OCAzLjc1IDMuMDEyIDYgNiAyLjI1LTIuOTg4IDYtMi44MTIgNi02IDAtMS42ODgtMS4zMTMtMy0zLTN6Ii8+PC9zdmc+PC9hPiBpbiBOWUMuIDwvZGl2PgogPC9kaXY+CgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19maWx0ZXJzIGZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQiPgogPHNwYW4gY2xhc3M9Imxhbmd1YWdlIj4KIExhbmd1YWdlOgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iI2xhbmd1YWdlIiBvbmNsaWNrPSJ2aW1lby5Nb2RhbC5jcmVhdGUoe2NvbnRlbnQ6ICcvc2V0dGluZ3MvbG9jYWxlJywgc2l6ZTogJ3NtYWxsJ30pOyByZXR1cm4gZmFsc2U7IiB0aXRsZT0iQ2hvb3NlIGEgZGlmZmVyZW50IGxhbmd1YWdlIj5FbmdsaXNoPC9hPgogPC9zcGFuPgoKICA8c3BhbiBjbGFzcz0iZm9vdGVyX3YyX19maWx0ZXIiPk1hdHVyZSBjb250ZW50IGZpbHRlcjogPC9zcGFuPjxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQgZm9vdGVyX3YyX19maWx0ZXJzX19sYW5nIGNvbnRlbnRmaWx0ZXIganMtZm9vdGVyX2NvbnRlbnRmaWx0ZXJfbGluayIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBvbmNsaWNrPSJ2aW1lby5Nb2RhbC5jcmVhdGUoe2NvbnRlbnQ6ICcvc2V0dGluZ3MvY29udGVudHJhdGluZyd9KSIgdGl0bGU9IkNoYW5nZSB5b3VyIG1hdHVyZSBjb250ZW50IGZpbHRlciI+Tm9uZTwvYT4KICA8L2Rpdj4KCjwvc2VjdGlvbj4KPC9mb290ZXI+CiAKIDwvZGl2PgoKIAogCiAKIAo8c2NyaXB0PgogdmFyIF9fZmEgPSBfX2ZhIHx8IFtdOwogX19mYS5wdXNoKFsndHJhY2tQYWdldmlldyddKTsKCiAgLy8gQW5hbHl0aWNzIFNldHVwCiB2YXIgX2d0bSA9IF9ndG0gfHwgW10sCiBfaW5pdGlhbF9ndG1fc3RhdGUgPSB7ImV4Y2VwdGlvbl9odHRwX2NvZGUiOiJIVFRQXC8xLjEgNDA0IE5vdCBGb3VuZCIsImxhbmd1YWdlIjoiZW4iLCJ1c2VyX3N0YXR1cyI6ImxvZ2dlZF9vdXQiLCJ1c2VyX3R5cGUiOiJub25lIiwiZ2FfdW5pdmVyc2FsX2lkIjoiVUEtNzY2NDEtOCIsImNvbXNjb3JlX3NpdGVfaWQiOjEwMzQ4Mjg5fTsKCiBfaW5pdGlhbF9ndG1fc3RhdGVbJ3Z1aWQnXSA9IGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oPzooPzpefC4qO1xzKil2dWlkXHMqXD1ccyooW147XSopLiokKXxeLiokLywgIiQxIik7CiBfaW5pdGlhbF9ndG1fc3RhdGVbJ2d0bS5zdGFydCddID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiBfaW5pdGlhbF9ndG1fc3RhdGVbJ2V2ZW50J10gPSAnZ3RtLmpzJzsKIF9ndG0ucHVzaChfaW5pdGlhbF9ndG1fc3RhdGUpOwogCiAvKioKICogSWYgdGhlIGN1cnJlbnQgcmVxdWVzdCB3YXMgYnVja2V0ZWQgaW4gYW4gQUJMaW5jb2xuIGV4cGVyaW1lbnQsCiAqIHNlbmQgdGhlIHNlbGVjdGVkIHRyZWF0bWVudCBiYWNrIGZyb20gdGhlIGNsaWVudCwgdG8gZmlsdGVyIGFiIHRlc3QKICogZGF0YSBkb3duIHRvIG5vbi1yb2JvdCB1c2VycyB0aGF0IHJ1biBKYXZhU2NyaXB0LgogKi8KIGlmICgiQUJMaW5jb2xuIiBpbiB3aW5kb3cpIHsKIChmdW5jdGlvbiAoKSB7CiAgIH0pKCk7CiB9CgogIHZhciBfZXh0ZW5kID0gZnVuY3Rpb24oKXtmb3IodmFyIHI9YXJndW1lbnRzWzBdLG49MSxlPWFyZ3VtZW50cy5sZW5ndGg7ZT5uO24rKyl7dmFyIHQ9YXJndW1lbnRzW25dO2Zvcih2YXIgYSBpbiB0KXQuaGFzT3duUHJvcGVydHkoYSkmJihyW2FdPXRbYV0pfXJldHVybiByfTsKCiAgdmFyIENTU19ESVIgPSAnaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC8nLAogSlNfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0LycsCiBJTUFHRV9ESVIgPSAnaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9pbWFnZXNfdjYvJywKIFNWR19ESVIgPSAnaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdmcvJywKICBCVUlMRF9IQVNIID0gJzcyNDU0JzsKCiAgdmFyIHZpbWVvID0gX2V4dGVuZCgod2luZG93LnZpbWVvIHx8IHt9KSwgeyJhcHBfdmVyc2lvbiI6InY2IiwiZG9tYWluIjoidmltZW8uY29tIiwidXJsIjoidmltZW8uY29tIiwiY3VyX3VzZXIiOmZhbHNlLCJpc19tb2JpbGUiOmZhbHNlfSk7CiB2aW1lby5jb25maWcgPSBfZXh0ZW5kKCh2aW1lby5jb25maWcgfHwge30pLCB7ImxvY2FsZSI6ImVuIn0pOwoKICB2YXIgbG9jYWxlQ29uZmlnID0gewogbGFuZzogJ2VuJywKICdEYXRlJzogewogbW9udGhzOiBbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sCiBtb250aHNfYWJicjogWyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwKIGRheXM6IFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSwKIGRheXNfYWJicjogWyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwKCiAvLyBDdWx0dXJlJ3MgZGF0ZSBvcmRlcjogTU0vREQvWVlZWQogZGF0ZU9yZGVyOiBbJ2RhdGUnLCAnbW9udGgnLCAneWVhciddLAogc2hvcnREYXRlOiAnJWQvJW0vJVknLAogc2hvcnRUaW1lOiAnJUk6JU0lcCcsCiBBTTogJ0FNJywKIFBNOiAnUE0nLAogZmlyc3REYXlPZldlZWs6IDAsCgogLy8gRGF0ZS5FeHRyYXMKIG9yZGluYWw6IGZ1bmN0aW9uKGRheU9mTW9udGgpewogcmV0dXJuIGRheU9mTW9udGg7CiB9CiB9LAogJ0RhdGVQaWNrZXInOiB7CiBzZWxlY3RfYV90aW1lOiAiU2VsZWN0IGEgdGltZSIsCiB1c2VfbW91c2Vfd2hlZWw6ICJVc2UgdGhlIG1vdXNlIHdoZWVsIHRvIHF1aWNrbHkgY2hhbmdlIHZhbHVlIiwKIHRpbWVfY29uZmlybV9idXR0b246ICJPSyIsCiBhcHBseV9yYW5nZTogIkFwcGx5IiwKIGNhbmNlbDogIkNhbmNlbCIsCiB3ZWVrOiAiV2siIH0sCiAgJ051bWJlcic6IHsKIGRlY2ltYWw6ICcuJywKIGdyb3VwOiAnLCcsCiBjdXJyZW5jeTogewogcHJlZml4OiAnJCcKIH0KIH0sCiAnRm9ybVZhbGlkYXRvcic6IHsicmVxdWlyZWQiOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIsInJlcXVpcmVkQ2hrIjoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifSB9OwoKIHZhciBmdWxsTG9jYWxlID0gJyc7CgogCiAgdmFyIENvcHkgPSB7dHJhbnNsYXRlOmZ1bmN0aW9uKHQsaSx1KXt2YXIgZT0nb2JqZWN0JyE9dHlwZW9mIHRoaXMuZGljdFt0XT90aGlzLmRpY3RbdF06aT90aGlzLmRpY3RbdF0ucGx1cmFsOnRoaXMuZGljdFt0XS5zaW5ndWxhcjtyZXR1cm4nb2JqZWN0Jz09dHlwZW9mIHUmJihlPXRoaXMuc3Vic3RpdHV0ZShlLHUpKSxlfSxzdWJzdGl0dXRlOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIHZvaWQgMCE9PXQuc3Vic3RpdHV0ZT90LnN1YnN0aXR1dGUoaSk6dC5yZXBsYWNlKC9cXD9ceyhbXnt9XSspXH0vZyxmdW5jdGlvbih0LHUpe3JldHVybidcXCc9PXQuY2hhckF0KDApP3Quc2xpY2UoMSk6bnVsbCE9aVt1XT9pW3VdOicnfSl9LGRpY3Q6e319OwogQ29weS5kaWN0ID0geyJkaWRfeW91X21lYW5fZW1haWwiOiJEaWQgeW91IG1lYW4gPGVtPntTVUdHRVNUfTxcL2VtPj8iLCJlbWFpbF9wYXNzd29yZF9taXNtYXRjaCI6IkVtYWlsIGFuZCBwYXNzd29yZCBkbyBub3QgbWF0Y2giLCJqdXN0X25vdyI6Imp1c3Qgbm93Iiwic2Vjb25kc19hZ28iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IHNlY29uZCBhZ28iLCJwbHVyYWwiOiJ7Q09VTlR9IHNlY29uZHMgYWdvIn0sIm1pbnV0ZXNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBtaW51dGUgYWdvIiwicGx1cmFsIjoie0NPVU5UfSBtaW51dGVzIGFnbyJ9LCJob3Vyc19hZ28iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IGhvdXIgYWdvIiwicGx1cmFsIjoie0NPVU5UfSBob3VycyBhZ28ifSwib3Blbl9jb21tZW50X2JveCI6IkFkZCBuZXcgY29tbWVudCBpbnN0ZWFkICZyYXF1bzsiLCJ1cmxfdW5hdmFpbGFibGUiOiJTb3JyeSwgdGhpcyB1cmwgaXMgdW5hdmFpbGFibGUuIiwidW5zYXZlZF9jaGFuZ2VzX2dlbmVyaWMiOiJZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMsIGFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBsZWF2ZT8iLCJhZGQiOiJBZGQiLCJyZW1vdmUiOiJSZW1vdmUiLCJzZWxlY3QiOiJTZWxlY3QiLCJub19mb2xsb3dlcnNfZm9yX2xldHRlciI6IllvdSBkb24mcnNxdW87dCBmb2xsb3cgYW55b25lIHRoYXQgYmVnaW4gd2l0aCB0aGUgbGV0dGVyICZsZHF1bzt7UEFHRV9MRVRURVJ9JnJkcXVvOyIsInNoYXJlX2xpbWl0X3JlYWNoZWQiOiJZb3UgaGF2ZSByZWFjaGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byBzaGFyZSB3aXRoLiIsImF0X2xlYXN0X29uZSI6IlRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIHVzZXIuIiwiYXZhaWxhYmxlIjoiQXZhaWxhYmxlIiwidW5hdmFpbGFibGUiOiJVbmF2YWlsYWJsZSIsImJyb3dzZV9lcnJvcl9nZW5lcmljIjoiU29ycnksIHRoZXJlIHdhcyBhbiBlcnJvciIsImJyb3dzZV9lcnJvcl9ub192aWRlb3MiOiJTb3JyeSwgbm8gdmlkZW9zIGZvdW5kIiwiZm9sbG93IjoiRm9sbG93IiwiZm9sbG93aW5nIjoiRm9sbG93aW5nIiwidW5mb2xsb3ciOiJVbmZvbGxvdyIsInVuZm9sbG93aW5nIjoiVW5mb2xsb3dpbmciLCJjb3VudF9jb21tZW50cyI6eyJzaW5ndWxhciI6IntDT1VOVH0gY29tbWVudCIsInBsdXJhbCI6IntDT1VOVH0gY29tbWVudHMifSwiZmlyc3RfY29tbWVudCI6IkJlIHRoZSBmaXJzdCB0byBjb21tZW50XHUyMDI2Iiwibm9fY29tbWVudHNfZm9yX3lvdSI6IkZvcmJpZGRlbi4gWW91IGNhbm5vdCBwb3N0IGNvbW1lbnRzIG9uIHRoaXMgcGFnZS4iLCJvb3BzIjoiT29wcyEiLCJwbGF5ZXJfdHJ5X2FnYWluIjoiVGhhdCB3YXNuJ3Qgc3VwcG9zZWQgdG8gaGFwcGVuLiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1pbnV0ZXMuIiwiZHVyYXRpb25faW5wdXRfbWluX2R1cmF0aW9uIjoiVGhlIGR1cmF0aW9uIGNhbm5vdCBiZSBsZXNzIHRoYW4ge01JTl9EVVJBVElPTn0uIiwiZHVyYXRpb25faW5wdXRfbWF4X2R1cmF0aW9uIjoiVGhlIGR1cmF0aW9uIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4ge01BWF9EVVJBVElPTn0uIiwiZHVyYXRpb25faW5wdXRfaW52YWxpZF9jaGFyYWN0ZXJzIjoiMC05IGFuZCA6IGFyZSB0aGUgb25seSBhY2NlcHRhYmxlIGlucHV0cy4iLCJjbG9zZSI6IkNsb3NlIiwiZXhwYW5kIjoiRXhwYW5kIiwibG9hZGluZyI6IkxvYWRpbmcuLi4iLCJ0b3AiOiJ0b3AiLCJhZHZhbmNlZF9zZWFyY2giOiJBZHZhbmNlZCBTZWFyY2giLCJub19zdWdnZXN0aW9ucyI6Ik5vIHN1Z2dlc3Rpb25zIiwicmVjZW50X3NlYXJjaGVzIjoiUmVjZW50IFNlYXJjaGVzIiwic2VhcmNoX2FsbCI6IlNlYXJjaCBBbGwgb2YgVmltZW8iLCJlbWFpbF9hbmRfcGFzc3dvcmQiOiJQbGVhc2UgZW50ZXIgeW91ciBlbWFpbCBhbmQgcGFzc3dvcmQiLCJlbWFpbF9hZGRyZXNzIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyIsIm5hbWVfZW1haWxfYW5kX3Bhc3N3b3JkIjoiUGxlYXNlIGVudGVyIHlvdXIgbmFtZSwgZW1haWwsIGFuZCBwYXNzd29yZCIsIkFjdGl2aXR5IjoiQWN0aXZpdHkiLCJGb2xsb3ciOiJGb2xsb3ciLCJGb2xsb3dpbmciOiJGb2xsb3dpbmciLCJMb2FkaW5nIjoiTG9hZGluZyIsIk5vIGFjdGl2aXR5IGluIHRoZSBwYXN0IDMwIGRheXMiOiJObyBhY3Rpdml0eSBpbiB0aGUgcGFzdCAzMCBkYXlzIiwiU2VlIGFsbCI6IlNlZSBhbGwiLCJVbmZvbGxvdyI6IlVuZm9sbG93IiwiVmlldyBtZXNzYWdlIjoiVmlldyBtZXNzYWdlIiwiV2UnbGwgYWxlcnQgeW91IG9uY2Ugc29tZXRoaW5nIGNvb2wgaGFwcGVucy4iOiJXZSdsbCBhbGVydCB5b3Ugb25jZSBzb21ldGhpbmcgY29vbCBoYXBwZW5zLiJ9Owo8L3NjcmlwdD4KCgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L3JlYWN0X3Byb2RfY29tYmluZWQubWluLmpzP2I2ZWU3YTRlIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9leGNlcHRpb25fY29tYmluZWQubWluLmpzPzBjN2FhZTg0Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9hY3Rpdml0eV90b3BuYXZfY29tYmluZWQubWluLmpzPzUzOWI2YzgzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9tb2R1bGVzL2dsb2JhbC9hYmxpbmNvbG4vaG9zdF92aWRlb3MubWluLmpzPzY1ZGM0NTFhIj48L3NjcmlwdD4KCiA8c2NyaXB0IGFzeW5jIHNyYz0iLy93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPUdUTS1SQktLJmw9X2d0bSI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gb25WaW1lb0RvbVJlYWR5KGUpIHsKICAgCiAoZnVuY3Rpb24oKSB7CiBpZiAodHlwZW9mIHZpbWVvICE9PSAndW5kZWZpbmVkJyAmJiB2aW1lby5jdXJfdXNlcikgewogdmltZW8uY29uZmlnLmFwaSA9IHt9OwogdmltZW8uY29uZmlnLmFwaS51cmwgPSAnYXBpLnZpbWVvLmNvbSc7CiB2aW1lby5jb25maWcuYXBpLmp3dCA9ICAnZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSVV6STFOaUo5LmV5SjBJam94T1RRNU16TTJPVEVzSW1WNGNDSTZNVFE1TURjek5EZzNNMzAuTnhXWG1Va3dYQTlRdjAtMVpRRnhUakVKOXVlaGI0anpnVWg0aFU2RzdGNCc7CiB2aW1lby5jb25maWcuYXBpLnZlcnNpb24gPSAnMy4zJzsKIH0KIH0oKSk7Cgogd2luZG93LnZpbWVvID0gd2luZG93LnZpbWVvIHx8IHt9Owogd2luZG93LnZpbWVvLmV4Y2VwdGlvbl9kYXRhID0geyJ0aXRsZSI6IlNvcnJ5LCB3ZSBjb3VsZG5cdTIwMTl0IGZpbmQgdGhhdCBwYWdlIiwibWVzc2FnZSI6IiIsIm5vdGlmaWNhdGlvbiI6IjxkaXYgY2xhc3M9XCJleGNlcHRpb25fbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uLS11cHNlbGxcIj5cbiA8ZGl2IGNsYXNzPVwiaXJpc19ub3RpZmljYXRpb24tLXVwc2VsbC1pY29uXCI+XG4gPHNwYW4gY2xhc3M9XCJpcmlzX2ljIGlzLS0xNlwiPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek03IDRoMnYySDdWNHptMCAzaDJ2NUg3Vjd6XCJcLz48XC9zdmc+PFwvc3Bhbj5cbiA8XC9kaXY+XG5cbiA8ZGl2IGNsYXNzPVwiaXJpc19ub3RpZmljYXRpb24taGVhZGVyXCI+XG4gPHN0cm9uZz5SZWFzb25zIHlvdSBtaWdodCBiZSBzZWVpbmcgdGhpcyBwYWdlPFwvc3Ryb25nPlxuIDxcL2Rpdj5cblxuIDx1bCBjbGFzcz1cImlyaXNfbm90aWZpY2F0aW9uLWxpc3RcIj5cbiAgPGxpPkl0IGV4aXN0cywgYnV0IHlvdSBkb25cdTIwMTl0IGhhdmUgcGVybWlzc2lvbiB0byBzZWUgaXQsIG9yIHlvdSBuZWVkIHRvIDxhIG9uY2xpY2s9XCJ2aW1lby5TZXNzaW9uLmNyZWF0ZSgpXCI+bG9nIGluPFwvYT4uPFwvbGk+XG4gIDxsaT5Ob3RoaW5nIGhhcyBldmVyIGV4aXN0ZWQgaGVyZS4gU3Bvb2t5LjxcL2xpPlxuIDxsaT5Tb21ldGhpbmcgb25jZSBsaXZlZCBoZXJlLCBidXQgaGFzIGJlZW4gZGVsZXRlZC48XC9saT5cbiA8XC91bD5cbjxcL2Rpdj5cbiIsInNlYXJjaCI6dHJ1ZSwidmlkZW9zIjpbeyJzZXR0aW5ncyI6eyJ0aXRsZSI6eyJ0ZXh0IjoiRGlzY292ZXIgdmlkZW9zIGZyb20gdGhlIHdvcmxkXHUyMDE5cyBiZXN0IGNyZWF0b3JzIiwic2hvcnRfdGV4dCI6IkRpc2NvdmVyIGFtYXppbmcgdmlkZW9zIn0sInZpZGVvcyI6W3siY2xpcF9pZCI6MjEwMjExODAwLCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1OTkzMzIzXzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1OTkzMzIzXzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1OTkzMzIzXzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTk5MzMyM18zMTIweDE3NTYuanBnIiwiYWx0IjoiTU9USEVSIC0gbW90aGVyIn0sInVwbG9hZGVkX29uIjoiMTQgaG91cnMgYWdvIiwiZHVyYXRpb24iOnsicmF3IjoxODYsImZvcm1hdHRlZCI6IjAzOjA2In0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3IjoxNCwiZm9ybWF0dGVkIjoiMTQifSwidG90YWxfbGlrZXMiOnsicmF3IjoxNTgsImZvcm1hdHRlZCI6IjE1OCJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjAsImZvcm1hdHRlZCI6IjAifX0sInRpdGxlIjoiTU9USEVSIiwidXJsIjoiXC8yMTAyMTE4MDAiLCJ1c2VyIjp7ImlkIjoyMjY1MjE5LCJuYW1lIjoiTW9yZ2FuIEpvdXF1YW5kIiwidXJsIjoiXC9tb3JnYW5qb3VxdWFuZCIsImFjY291bnRfdHlwZSI6InBsdXMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY0Mzg1NzJfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY0Mzg1NzJfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY0Mzg1NzJfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY0Mzg1NzJfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7ImNsaXBfaWQiOjIwNzc2MzI1MywiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMjk0MDQ4N18zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMjk0MDQ4N183ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMjk0MDQ4N18xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjI5NDA0ODdfMzEyMHgxNzU2LmpwZyIsImFsdCI6IlRoZSBCaXJ0aCBPZiBBIER1Z291dCBDYW5vZSBieSBOb3J0aG1lbiAtIHdvb2QgY2FydmluZyJ9LCJ1cGxvYWRlZF9vbiI6IjIgd2Vla3MgYWdvIiwiZHVyYXRpb24iOnsicmF3IjoxMTI0LCJmb3JtYXR0ZWQiOiIxODo0NCJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6MTQsImZvcm1hdHRlZCI6IjE0In0sInRvdGFsX2xpa2VzIjp7InJhdyI6MjA0LCJmb3JtYXR0ZWQiOiIyMDQifSwidG90YWxfcGxheXMiOnsicmF3IjozNTg2LCJmb3JtYXR0ZWQiOiIzNTg2In19LCJ0aXRsZSI6IlRoZSBCaXJ0aCBPZiBBIER1Z291dCBDYW5vZSBieSBOb3J0aG1lbiIsInVybCI6IlwvMjA3NzYzMjUzIiwidXNlciI6eyJpZCI6MTA1NjU2MDUsIm5hbWUiOiJOb3J0aG1lbiIsInVybCI6Ilwvbm9ydGhtZW4iLCJhY2NvdW50X3R5cGUiOiJwcm8iLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3MjA1ODhfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3MjA1ODhfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3MjA1ODhfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3MjA1ODhfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7ImNsaXBfaWQiOjIwNDc3NjYzNiwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYxOTM2ODk2M18zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYxOTM2ODk2M183ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYxOTM2ODk2M18xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MTkzNjg5NjNfMzEyMHgxNzU2LmpwZyIsImFsdCI6Ik5hY2h0aGV4ZW4gLSBOaWdodCBXaXRjaGVzIn0sInVwbG9hZGVkX29uIjoiMSBtb250aCBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjQ5MiwiZm9ybWF0dGVkIjoiMDg6MTIifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjExLCJmb3JtYXR0ZWQiOiIxMSJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjIyMCwiZm9ybWF0dGVkIjoiMjIwIn0sInRvdGFsX3BsYXlzIjp7InJhdyI6NjgwMywiZm9ybWF0dGVkIjoiNjgwMyJ9fSwidGl0bGUiOiJOYWNodGhleGVuIiwidXJsIjoiXC8yMDQ3NzY2MzYiLCJ1c2VyIjp7ImlkIjozMTk0MzI0LCJuYW1lIjoiVGhlIEFuaW1hdGlvbiBXb3Jrc2hvcCIsInVybCI6IlwvdGhlYW5pbWF0aW9ud29ya3Nob3AiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NjUzNTIzXzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NjUzNTIzXzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NjUzNTIzXzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NjUzNTIzXzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJjbGlwX2lkIjoxNzE3NDYzODEsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC81NzcyOTIyMDFfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC81NzcyOTIyMDFfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC81NzcyOTIyMDFfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNTc3MjkyMjAxXzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJCYXlhIC0gR2F0ZSAyMTIgXC8gR2ltbWUgVGhhdCBEaXZlIC0gaXNhd2pvaG5maXJzdCJ9LCJ1cGxvYWRlZF9vbiI6IjkgbW9udGhzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6MzYxLCJmb3JtYXR0ZWQiOiIwNjowMSJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6MTksImZvcm1hdHRlZCI6IjE5In0sInRvdGFsX2xpa2VzIjp7InJhdyI6NTMyLCJmb3JtYXR0ZWQiOiI1MzIifSwidG90YWxfcGxheXMiOnsicmF3Ijo2MjE5LCJmb3JtYXR0ZWQiOiI2MjE5In19LCJ0aXRsZSI6IkJheWEgLSBHYXRlIDIxMiBcLyBHaW1tZSBUaGF0IERpdmUiLCJ1cmwiOiJcLzE3MTc0NjM4MSIsInVzZXIiOnsiaWQiOjMzMzg3MDcsIm5hbWUiOiJKb2huIENocmlzdGlhbiBGZXJuZXIgQXBhbG5lcyIsInVybCI6IlwvaXNhd2pvaG5maXJzdCIsImFjY291bnRfdHlwZSI6InBsdXMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzc5MDU0OV8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83NzkwNTQ5XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzc3OTA1NDlfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzc5MDU0OV8xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9XX19LHsic2V0dGluZ3MiOnsidGl0bGUiOnsidGV4dCI6IlB1cmNoYXNlIGhpZ2gtcXVhbGl0eSBmaWxtcyBhbmQgc2VyaWVzIiwic2hvcnRfdGV4dCI6IlB1cmNoYXNlIGZpbG1zIGFuZCBzZXJpZXMifSwidmlkZW9zIjpbeyJ2b2RfaWQiOjEwMzcwMSwidHJhaWxlcl9pZCI6MTc2OTU0MzcyLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDY2Nzc4XzM5MHgyMTkuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDY2Nzc4Xzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDY2Nzc4XzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQ2Njc3OF8zMTIweDE3NTYuanBnIiwiYWx0IjoiQ29tZSBEb3duIE1vbGx5IC0gdHJpYmVjYSBmaWxtIGZlc3RpdmFsIn0sInVwbG9hZGVkX29uIjoiNCBkYXlzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6NDgzNywiZm9ybWF0dGVkIjoiMDE6MjA6MzcifSwidGl0bGUiOiJDb21lIERvd24gTW9sbHkiLCJ1cmwiOiJcL29uZGVtYW5kXC9jb21lZG93bm1vbGx5IiwidXNlciI6eyJpZCI6MTIyOTM1MCwibmFtZSI6IkZhY3RvcnkgMjUiLCJ1cmwiOiJcL2ZhY3RvcnkyNSIsImFjY291bnRfdHlwZSI6InBybyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV8xMjh4MTI4LmpwZyJ9fSwicHJpY2UiOiIkNC4yNSIsImF1dG9wbGF5IjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJ2b2RfaWQiOjEwMzczNCwidHJhaWxlcl9pZCI6MjA1NDIyNzA1LCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDI0MjQzXzM5MHgyMTkuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDI0MjQzXzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDI0MjQzXzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQyNDI0M18zMTIweDE3NTYuanBnIiwiYWx0IjoiQmxvb21pbiBNdWQgU2h1ZmZsZSAtIEphbWVzIFJhbnNvbmUifSwidXBsb2FkZWRfb24iOiI0IGRheXMgYWdvIiwiZHVyYXRpb24iOnsicmF3Ijo0NTEwLCJmb3JtYXR0ZWQiOiIwMToxNToxMCJ9LCJ0aXRsZSI6IkJsb29taW4gTXVkIFNodWZmbGUiLCJ1cmwiOiJcL29uZGVtYW5kXC9ibG9vbWlubXVkc2h1ZmZsZSIsInVzZXIiOnsiaWQiOjEyMjkzNTAsIm5hbWUiOiJGYWN0b3J5IDI1IiwidXJsIjoiXC9mYWN0b3J5MjUiLCJhY2NvdW50X3R5cGUiOiJwcm8iLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfMTI4eDEyOC5qcGcifX0sInByaWNlIjoiJDQuMjUiLCJhdXRvcGxheSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsidm9kX2lkIjoxMDM3NDcsInRyYWlsZXJfaWQiOjIwNzY4NjE0NCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQzMzI5NF8zOTB4MjE5LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQzMzI5NF83ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQzMzI5NF8xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MzMyOTRfMzEyMHgxNzU2LmpwZyIsImFsdCI6IlRoZXkgTG9vayBMaWtlIFBlb3BsZSAtIHBlb3BsZSJ9LCJ1cGxvYWRlZF9vbiI6IjQgZGF5cyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjQ3NzEsImZvcm1hdHRlZCI6IjAxOjE5OjMxIn0sInRpdGxlIjoiVGhleSBMb29rIExpa2UgUGVvcGxlIiwidXJsIjoiXC9vbmRlbWFuZFwvdGhleWxvb2tsaWtlcGVvcGxlIiwidXNlciI6eyJpZCI6NDU5NTA2MiwibmFtZSI6IkdyYXZpdGFzIFZlbnR1cmVzIiwidXJsIjoiXC9ncmF2aXRhc3ZlbnR1cmVzIiwiYWNjb3VudF90eXBlIjoiYnVzaW5lc3MiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzExMzE2N18xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83MTEzMTY3XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzcxMTMxNjdfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzExMzE2N18xMjh4MTI4LmpwZyJ9fSwicHJpY2UiOiIkMy45OSIsImF1dG9wbGF5IjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJ2b2RfaWQiOjEwMjk1MiwidHJhaWxlcl9pZCI6MjA3ODczNDM5LCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92b2RfcGFnZV90aHVtYm5haWxcLzI0ODc4XzM5MHgyMTkiLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZvZF9wYWdlX3RodW1ibmFpbFwvMjQ4NzhfNzgweDQzOSIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdm9kX3BhZ2VfdGh1bWJuYWlsXC8yNDg3OF8xNTYweDg3OCIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdm9kX3BhZ2VfdGh1bWJuYWlsXC8yNDg3OF8zMTIweDE3NTUiLCJhbHQiOiJNRU1PUlkifSwidXBsb2FkZWRfb24iOiI1IGRheXMgYWdvIiwiZHVyYXRpb24iOnsicmF3Ijo1MzY3LCJmb3JtYXR0ZWQiOiIwMToyOToyNyJ9LCJ0aXRsZSI6Ik1FTU9SWSBwcmVzZW50czogUHJvZ3JhbSBOby4gMiIsInVybCI6Ilwvb25kZW1hbmRcL3Byb2dyYW0yIiwidXNlciI6eyJpZCI6MzA0MzM1NDAsIm5hbWUiOiJNRU1PUlkiLCJ1cmwiOiJcL21lbW9yeWlzIiwiYWNjb3VudF90eXBlIjoicHJvIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE1NTg1NzQzXzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE1NTg1NzQzXzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE1NTg1NzQzXzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE1NTg1NzQzXzEyOHgxMjguanBnIn19LCJwcmljZSI6IiQ4Ljk5IiwiYXV0b3BsYXkiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfV19fSx7InNldHRpbmdzIjp7InRpdGxlIjp7InRleHQiOiJXYXRjaCBodW1hbi1jdXJhdGVkIFN0YWZmIFBpY2tzIiwic2hvcnRfdGV4dCI6IldhdGNoIFN0YWZmIFBpY2tzIn0sInZpZGVvcyI6W3siY2xpcF9pZCI6MjA5MjU3NTY0LCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1Nzc4MjQ3XzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1Nzc4MjQ3Xzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1Nzc4MjQ3XzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTc3ODI0N18zMTIweDE3NTYuanBnIiwiYWx0IjoiRWx1dml1bSAtIFJlZ2VuZXJhdGl2ZSBCZWluZyAoT2ZmaWNpYWwgVmlkZW8pIC0gRWx1dml1bSJ9LCJ1cGxvYWRlZF9vbiI6IjEgd2VlayBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjQ0MSwiZm9ybWF0dGVkIjoiMDc6MjEifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjcsImZvcm1hdHRlZCI6IjcifSwidG90YWxfbGlrZXMiOnsicmF3IjoxNDYsImZvcm1hdHRlZCI6IjE0NiJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjI5ODMsImZvcm1hdHRlZCI6IjI5ODMifX0sInRpdGxlIjoiRWx1dml1bSAtIFJlZ2VuZXJhdGl2ZSBCZWluZyAoT2ZmaWNpYWwgVmlkZW8pIiwidXJsIjoiXC8yMDkyNTc1NjQiLCJ1c2VyIjp7ImlkIjoxMjg4MTAwOCwibmFtZSI6IlN0YXMgU2FudGltb3YiLCJ1cmwiOiJcL3NhbnRpbW92IiwiYWNjb3VudF90eXBlIjoicGx1cyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC84ODQ5MTQ5XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzg4NDkxNDlfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvODg0OTE0OV82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC84ODQ5MTQ5XzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJjbGlwX2lkIjoyMDk2OTQzMDAsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjUzMDM3NjZfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjUzMDM3NjZfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjUzMDM3NjZfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1MzAzNzY2XzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJCdWxsZG96ZXIgLSBub3duZXNzIn0sInVwbG9hZGVkX29uIjoiNCBkYXlzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6MjY2LCJmb3JtYXR0ZWQiOiIwNDoyNiJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6MzQsImZvcm1hdHRlZCI6IjM0In0sInRvdGFsX2xpa2VzIjp7InJhdyI6MjYyLCJmb3JtYXR0ZWQiOiIyNjIifSwidG90YWxfcGxheXMiOnsicmF3Ijo1OTk3LCJmb3JtYXR0ZWQiOiI1OTk3In19LCJ0aXRsZSI6IkJ1bGxkb3plciIsInVybCI6IlwvMjA5Njk0MzAwIiwidXNlciI6eyJpZCI6MTA5OTA4MiwibmFtZSI6Ikl0c2JvbmdvYm95IiwidXJsIjoiXC9pdHNib25nb2JveSIsImFjY291bnRfdHlwZSI6InBsdXMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTYxODUwMTdfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTYxODUwMTdfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTYxODUwMTdfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTYxODUwMTdfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7ImNsaXBfaWQiOjIwODQ2NDk2NiwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMzc4OTkzN18zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMzc4OTkzN183ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMzc4OTkzN18xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjM3ODk5MzdfMzEyMHgxNzU2LmpwZyIsImFsdCI6IlRvbSBNY0NhcnRlbiJ9LCJ1cGxvYWRlZF9vbiI6IjIgd2Vla3MgYWdvIiwiZHVyYXRpb24iOnsicmF3IjoyMzgsImZvcm1hdHRlZCI6IjAzOjU4In0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3Ijo0MCwiZm9ybWF0dGVkIjoiNDAifSwidG90YWxfbGlrZXMiOnsicmF3IjoyMDUxLCJmb3JtYXR0ZWQiOiIyMDUxIn0sInRvdGFsX3BsYXlzIjp7InJhdyI6MTMyMzM4LCJmb3JtYXR0ZWQiOiIxMzJLIn19LCJ0aXRsZSI6IlNwYWNlIFNleCBpcyBTZXJpb3VzIEJ1c2luZXNzIiwidXJsIjoiXC8yMDg0NjQ5NjYiLCJ1c2VyIjp7ImlkIjoyNDcxMDk0LCJuYW1lIjoiVG9tIE1jQ2FydGVuIiwidXJsIjoiXC9tY2NhcnRlbiIsImFjY291bnRfdHlwZSI6ImJhc2ljIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3Nzg3Njg1XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3Nzg3Njg1XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3Nzg3Njg1XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3Nzg3Njg1XzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJjbGlwX2lkIjoyMDc1MzUzMDIsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjQ0NzY2NjJfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjQ0NzY2NjJfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjQ0NzY2NjJfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI0NDc2NjYyXzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJCeSBUaGUgTmFtZSBvZiBCb3N0b24gLSBhbmltYXRpb24ifSwidXBsb2FkZWRfb24iOiIyIHdlZWtzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6MTQ0LCJmb3JtYXR0ZWQiOiIwMjoyNCJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6MTYsImZvcm1hdHRlZCI6IjE2In0sInRvdGFsX2xpa2VzIjp7InJhdyI6NTc3LCJmb3JtYXR0ZWQiOiI1NzcifSwidG90YWxfcGxheXMiOnsicmF3IjoxMTM5OTAsImZvcm1hdHRlZCI6IjExNEsifX0sInRpdGxlIjoiQnkgVGhlIE5hbWUgb2YgQm9zdG9uIiwidXJsIjoiXC8yMDc1MzUzMDIiLCJ1c2VyIjp7ImlkIjo5MzA3OTIzLCJuYW1lIjoiR3JhbnQgS29sdG9uIiwidXJsIjoiXC9ncmFudGtvbHRvbiIsImFjY291bnRfdHlwZSI6InBsdXMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTAxNTE3MTJfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTAxNTE3MTJfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTAxNTE3MTJfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTAxNTE3MTJfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfV19fV0sImFkX2NvbmZpZyI6eyJuZXR3b3JrX2lkIjoiNTQ1NDk1NDQiLCJ1bml0X25hbWUiOiJlcnJvcnBhZ2UiLCJzaXplcyI6WzMwMCwyNTBdfSwid2F0Y2hfbGF0ZXJfY2xpcF9pZHMiOltdfTsKCiBuZXcgd2luZG93LkV4Y2VwdGlvbigpOwogIAogCiAgfQoKICAkKGRvY3VtZW50KS5yZWFkeShvblZpbWVvRG9tUmVhZHkpOwogIDwvc2NyaXB0PgoKCiA8L2JvZHk+CjwvaHRtbD4K
126
- http_version:
127
- recorded_at: Mon, 27 Mar 2017 21:01:13 GMT
128
- recorded_with: VCR 3.0.3
@@ -1,128 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: head
5
- uri: https://vimeo.com/0812455
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - VideoInfo/2.7
12
- Accept:
13
- - "*/*"
14
- response:
15
- status:
16
- code: 404
17
- message: Not Found
18
- headers:
19
- Server:
20
- - nginx
21
- Content-Type:
22
- - text/html; charset=UTF-8
23
- Expires:
24
- - Mon, 27 Mar 2017 09:01:07 GMT
25
- X-Frame-Options:
26
- - sameorigin
27
- Via:
28
- - 1.1 varnish
29
- - 1.1 varnish
30
- - 1.1 varnish
31
- Cache-Control:
32
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
33
- X-Varnish-Cache:
34
- - '0'
35
- X-Vserver:
36
- - dfvimeowebproxy3
37
- Fastly-Debug-Digest:
38
- - 5c8cad581c94a8a0faf793c8c4898a0848cc94c3ce18c6c8e7834c3408b6d12c
39
- Content-Length:
40
- - '57842'
41
- Accept-Ranges:
42
- - bytes
43
- Date:
44
- - Mon, 27 Mar 2017 21:01:08 GMT
45
- Age:
46
- - '0'
47
- Connection:
48
- - keep-alive
49
- X-Served-By:
50
- - cache-iad2126-IAD, cache-lax8637-LAX
51
- X-Cache:
52
- - MISS, MISS
53
- X-Cache-Hits:
54
- - 0, 0
55
- X-Timer:
56
- - S1490648467.834692,VS0,VE443
57
- Vary:
58
- - Accept-Encoding
59
- body:
60
- encoding: UTF-8
61
- string: ''
62
- http_version:
63
- recorded_at: Mon, 27 Mar 2017 21:01:08 GMT
64
- - request:
65
- method: get
66
- uri: https://vimeo.com/0812455
67
- body:
68
- encoding: US-ASCII
69
- string: ''
70
- headers:
71
- Accept-Encoding:
72
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
- Accept:
74
- - "*/*"
75
- User-Agent:
76
- - Ruby
77
- response:
78
- status:
79
- code: 404
80
- message: Not Found
81
- headers:
82
- Server:
83
- - nginx
84
- Content-Type:
85
- - text/html; charset=UTF-8
86
- Expires:
87
- - Mon, 27 Mar 2017 09:01:08 GMT
88
- X-Frame-Options:
89
- - sameorigin
90
- Via:
91
- - 1.1 varnish
92
- - 1.1 varnish
93
- - 1.1 varnish
94
- Cache-Control:
95
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
96
- X-Varnish-Cache:
97
- - '0'
98
- X-Vserver:
99
- - dfvimeowebproxy3
100
- Fastly-Debug-Digest:
101
- - 5c8cad581c94a8a0faf793c8c4898a0848cc94c3ce18c6c8e7834c3408b6d12c
102
- Content-Length:
103
- - '15263'
104
- Accept-Ranges:
105
- - bytes
106
- Date:
107
- - Mon, 27 Mar 2017 21:01:08 GMT
108
- Age:
109
- - '0'
110
- Connection:
111
- - keep-alive
112
- X-Served-By:
113
- - cache-iad2130-IAD, cache-lax8647-LAX
114
- X-Cache:
115
- - MISS, MISS
116
- X-Cache-Hits:
117
- - 0, 0
118
- X-Timer:
119
- - S1490648468.309323,VS0,VE401
120
- Vary:
121
- - Accept-Encoding
122
- body:
123
- encoding: ASCII-8BIT
124
- string: !binary |-
125
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgoKCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vIj4KIAo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vcGxheWVyLnZpbWVvLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9pLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9mLnZpbWVvY2RuLmNvbSI+CjxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjE5ODg0MDI4OTYzIj4KCgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJTb3JyeSwgd2UgY291bGRuJnJzcXVvO3QgZmluZCB0aGF0IHBhZ2UiPgogIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCI+CgoKCgoKIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgaHJlZj0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL21haW4tdG91Y2hfMTgwIj4KCjxsaW5rIHJlbD0ibWFzay1pY29uIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N2Zy9sZWdhY3lfdmlld19zdXBwb3J0L2lyaXNfaWNvbl92XzY0LnN2ZyIgY29sb3I9IiMxNzI3MmUiPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2L2Zhdmljb24uaWNvIiBkYXRhLXBsYXk9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9wbGF5XzMyIiBkYXRhLXBhdXNlPSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vcGF1c2VfMzIiPgoKPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9tYWluLXRvdWNoXzE0NCI+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMDBhZGVmIj4KCjxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiBocmVmPSIvc2VhcmNoL29wZW5zZWFyY2gueG1sIiB0aXRsZT0iVmltZW8gc2VhcmNoIj4KPGxpbmsgcmVsPSJsb2dvIiB0eXBlPSJpbWFnZS9zdmciIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vbG9nby5zdmciPgogPHRpdGxlPlZpbWVVaE9oPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC9nbG9iYWwvaWNvbl9mb250cy5taW4uY3NzP0RFViI+CgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N0eWxlcy9jc3Nfb3B0L2V4Y2VwdGlvbl9jb21iaW5lZC5taW4uY3NzPzcwMmFiZWMxIj4KCgoKIDxzY3JpcHQ+CiAgCiAgdmFyIHBsYXllckFzc2V0VXJscyA9IHsianMiOiJodHRwczpcL1wvZi52aW1lb2Nkbi5jb21cL3BcLzIuNTMuMTBcL2pzXC9wbGF5ZXIuanMiLCJtb29nIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC9mbGFzaFwvbW9vZ2Fsb29wXC82LjQuNVwvbW9vZ2Fsb29wLnN3ZiIsImNocm9tZWxlc3NfY3NzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9jc3NcL2Nocm9tZWxlc3MuY3NzIiwiY2hyb21lbGVzc19qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvanNcL2Nocm9tZWxlc3MuanMiLCJtb29nX2pzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9qc1wvbW9vZ2Fsb29wLmpzIiwiY3NzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9jc3NcL3BsYXllci5jc3MiLCJwbGF5ZXJfdXJsIjoicGxheWVyLnZpbWVvLmNvbSJ9OwoKICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogIHdpbmRvdyA9IF9leHRlbmQod2luZG93LCB7InZpbWVvX2VzaSI6eyJjb25maWciOnsiYXV0b2NvbXBsZXRlX2VuYWJsZWQiOnRydWV9fSwiZ2xvYmFsX25vdGlmaWNhdGlvbnMiOltdfSk7Cjwvc2NyaXB0PgoKIDxzdHlsZSBpZD0iZXNpX3JpYmJvbiI+CiAuZXNpX3JpYmJvbiB7CiBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjUwMCUyMiUzRSUzQ3JlY3QlMjB4JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyOGExZDglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM0JTIyJTIwd2lkdGglM0QlMjI1NSUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyMzI0OGJjNyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyODklMjIlMjB3aWR0aCUzRCUyMjMlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMxZTM5NTUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjkyJTIyJTIwd2lkdGglM0QlMjIxNTclMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyZjUxMzIlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI0OSUyMiUyMHdpZHRoJTNEJTIyMzAlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM0MTY4MjglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI3OSUyMiUyMHdpZHRoJTNEJTIyNTQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM3ZWFhMjklMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjMzMyUyMiUyMHdpZHRoJTNEJTIyMTElMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNkY2JkNDIlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM0NCUyMiUyMHdpZHRoJTNEJTIyNCUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2RjYWQyNyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyMzQ4JTIyJTIwd2lkdGglM0QlMjIyMyUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2UzOWEyMyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyMzcxJTIyJTIwd2lkdGglM0QlMjIzNSUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2NjNTU0YyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNDA2JTIyJTIwd2lkdGglM0QlMjIxOCUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2NhNDczZiUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNDI0JTIyJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzYTcyODM0JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0MzAlMjIlMjB3aWR0aCUzRCUyMjQ2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNzM1Njc1JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0NzYlMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNjUzZTY2JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0ODglMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzM2IzMTViJTIyJTJGJTNFJTNDJTJGc3ZnJTNFJTBBKSB0b3AgbGVmdC81MDBweCAxMDAlIHJlcGVhdC14ICFpbXBvcnRhbnQ7CiB9CiA8L3N0eWxlPgogCiA8c2NyaXB0PgogdmFyIGFibGluY29sbl9jb25maWcgPSBhYmxpbmNvbG5fY29uZmlnIHx8IHt9OwogYWJsaW5jb2xuX2NvbmZpZy50ZXN0cyA9IHsiREZQQWRDb2hvcnRzIjp7ImlkIjo2OSwibmFtZSI6IkRGUEFkQ29ob3J0cyIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6bnVsbCwiZXhwZXJpbWVudHMiOltdfSwiRXhwbG9yZSI6eyJpZCI6NjQsIm5hbWUiOiJFeHBsb3JlIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W119LCJUb3BOYXZBQiI6eyJpZCI6NjcsIm5hbWUiOiJUb3BOYXZBQiIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvIiwiZXhwZXJpbWVudHMiOltdfSwiVG9wTmF2Q29weVRlc3QiOnsiaWQiOjc3LCJuYW1lIjoiVG9wTmF2Q29weVRlc3QiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcL2Fib3V0IiwiZXhwZXJpbWVudHMiOltdfSwiVG9wTmF2Lkhvc3RWaWRlb3NMaW5rIjp7ImlkIjoxMDMsIm5hbWUiOiJUb3BOYXYuSG9zdFZpZGVvc0xpbmsiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOm51bGwsImV4cGVyaW1lbnRzIjpbXX19OwogPC9zY3JpcHQ+CgoKIAogPHNjcmlwdD4KIHZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge30sCiBncHRhZHNsb3RzID0gW10sCiBsYW5ndWFnZSwKIGhhc191cGxvYWRlZCwKIGNvaG9ydDsKIGdvb2dsZXRhZy5jbWQgPSBnb29nbGV0YWcuY21kIHx8IFtdOwoKIChmdW5jdGlvbigpIHsKIHZhciBnYWRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksCiB1c2VTU0wgPSAnaHR0cHM6JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCwKIG5vZGU7CiBnYWRzLmFzeW5jID0gdHJ1ZTsKIGdhZHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogZ2Fkcy5zcmMgPSAodXNlU1NMID8gJ2h0dHBzOicgOiAnaHR0cDonKSArICcvL3d3dy5nb29nbGV0YWdzZXJ2aWNlcy5jb20vdGFnL2pzL2dwdC5qcyc7CiBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYWRzLCBub2RlKTsKIH0pKCk7CgogZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewogCiAgbGFuZ3VhZ2UgPSBkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopbGFuZ3VhZ2VccypcPVxzKihbXjtdKikuKiQpfF4uKiQvLCAiJDEiKTsKIGhhc191cGxvYWRlZCA9IChkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopaGFzX3VwbG9hZGVkXHMqXD1ccyooW147XSopLiokKXxeLiokLywgIiQxIikpID8gJ1knIDogJ04nOwogCiBjb2hvcnQgPSAod2luZG93LkFCTGluY29sbikgPyB3aW5kb3cuQUJMaW5jb2xuLmdldFRlc3QoJ0RGUEFkQ29ob3J0cycpLmdldCgnY29ob3J0JywgJ0EnKSA6ICdBJzsKCiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdsYW5ndWFnZScsIFtsYW5ndWFnZV0pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnaXNfdXBsb2FkZXInLCBbaGFzX3VwbG9hZGVkXSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnQnLCBbY29ob3J0XSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnRfYScsIFsoY29ob3J0ID09PSAnQScpID8gJ1knIDogJ04nXSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnRfYicsIFsoY29ob3J0ID09PSAnQicpID8gJ1knIDogJ04nXSk7CgogIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ3NlYycsIFsnZmFsc2UnXSk7CgogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnbG9nZ2VkX2luJywgWydmYWxzZSddKTsKCiAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygncnB2JywgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDApKzEpLnRvU3RyaW5nKCkpOwoKIGdvb2dsZXRhZy5wdWJhZHMoKS5lbmFibGVBc3luY1JlbmRlcmluZygpOwogZ29vZ2xldGFnLmVuYWJsZVNlcnZpY2VzKCk7CiB9KTsKIDwvc2NyaXB0PgoKPHNjcmlwdD4KIWZ1bmN0aW9uKCl7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OmV4cG9ydHMscj1bXTtpZihlLnBlcmZvcm1hbmNlfHwoZS5wZXJmb3JtYW5jZT17fSksZS5wZXJmb3JtYW5jZS5ub3d8fChlLnBlcmZvcm1hbmNlLm5vdz1wZXJmb3JtYW5jZS5ub3d8fHBlcmZvcm1hbmNlLndlYmtpdE5vd3x8cGVyZm9ybWFuY2UubXNOb3d8fHBlcmZvcm1hbmNlLm1vek5vdyksIWUucGVyZm9ybWFuY2Uubm93KXt2YXIgbj1EYXRlLm5vdz9EYXRlLm5vdygpOituZXcgRGF0ZTtwZXJmb3JtYW5jZS50aW1pbmcmJnBlcmZvcm1hbmNlLnRpbWluZyYmKG49cGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCksZS5wZXJmb3JtYW5jZS5ub3c9ZnVuY3Rpb24oKXt2YXIgZT1EYXRlLm5vdz9EYXRlLm5vdygpOituZXcgRGF0ZTtyZXR1cm4gZS1ufX1lLnBlcmZvcm1hbmNlLm1hcmt8fChlLnBlcmZvcm1hbmNlLm1hcms9ZS5wZXJmb3JtYW5jZS53ZWJraXRNYXJrP2UucGVyZm9ybWFuY2Uud2Via2l0TWFyazpmdW5jdGlvbihuKXtyLmZvckVhY2goZnVuY3Rpb24oZSxyLGEpe2UubmFtZT09PW4mJmEuc3BsaWNlKHIsMSl9KSxyLnB1c2goe25hbWU6bixlbnRyeVR5cGU6Im1hcmsiLHN0YXJ0VGltZTplLnBlcmZvcm1hbmNlLm5vdygpLGR1cmF0aW9uOjB9KX0pLGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZXx8KGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZT1lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGU/ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlUeXBlOmZ1bmN0aW9uKGUpe3ZhciBuPWZ1bmN0aW9uKHIpe3JldHVybiByLmVudHJ5VHlwZT09PWV9O3JldHVybi0xIT09WyJtYXJrIiwibWVhc3VyZSJdLmluZGV4T2YoZSk/ci5maWx0ZXIobik6dm9pZCAwfSksZS5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lfHwoZS5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lPWUucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZT9lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiByLm5hbWU9PT1lfSl9KSxlLnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXN8fChlLnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXM9ZS5wZXJmb3JtYW5jZS53ZWJraXRDbGVhck1lYXN1cmVzP2UucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNZWFzdXJlczpmdW5jdGlvbigpe3IuZm9yRWFjaChmdW5jdGlvbihlLHIsbil7Im1lYXN1cmUiPT09ZS5lbnRyeVR5cGUmJm4uc3BsaWNlKHIsMSl9KSxyPVtdfSksZS5wZXJmb3JtYW5jZS5jbGVhck1hcmtzfHwoZS5wZXJmb3JtYW5jZS5jbGVhck1hcmtzPWUucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNYXJrcz9lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWFya3M6ZnVuY3Rpb24oKXtyLmZvckVhY2goZnVuY3Rpb24oZSxyLG4peyJtYXJrIj09PWUuZW50cnlUeXBlJiZuLnNwbGljZShyLDEpfSkscj1bXX0pLGUucGVyZm9ybWFuY2UubWVhc3VyZXx8KGUucGVyZm9ybWFuY2UubWVhc3VyZT1lLnBlcmZvcm1hbmNlLndlYmtpdE1lYXN1cmU/ZS5wZXJmb3JtYW5jZS53ZWJraXRNZWFzdXJlOmZ1bmN0aW9uKGUsbixhKXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHIubmFtZT09PWUmJiJtYXJrIj09PXIuZW50cnlUeXBlfX0sbz1yLmZpbHRlcih0KG4pKVswXSxtPXIuZmlsdGVyKHQoYSkpWzBdLGk9bS5zdGFydFRpbWUtby5zdGFydFRpbWU7ci5wdXNoKHtuYW1lOmUsZW50cnlUeXBlOiJtZWFzdXJlIixzdGFydFRpbWU6by5zdGFydFRpbWUsZHVyYXRpb246aX0pfSl9KCksd2luZG93Lm1hcmtVc2VyVGltZT1mdW5jdGlvbihlKXt2YXIgcj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGUsMCl9O3IoZnVuY3Rpb24oKXt3aW5kb3cucGVyZm9ybWFuY2UubWFyayhlKSx3aW5kb3cuY29uc29sZSYmY29uc29sZS50aW1lU3RhbXAmJmNvbnNvbGUudGltZVN0YW1wKGUpfSl9OwoKKGZ1bmN0aW9uKCkgewogd2luZG93Lm1hcmtVc2VyVGltZSA9IGZ1bmN0aW9uKGxhYmVsKSB7CiB3aW5kb3cuX2d0bSA9IHdpbmRvdy5fZ3RtIHx8IFtdOwoKIC8vIEV4aXQgZWFybHkgaWYgdGhlIGJyb3dzZXIgY2FuJ3QgaGFuZGxlIG5ldyB0aGluZ3MKIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBwZXJmb3JtYW5jZS5tYXJrICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBwZXJmb3JtYW5jZS5jbGVhck1hcmtzICE9PSAnZnVuY3Rpb24nKSB7CiByZXR1cm47CiB9CgogdmFyIHVpZCA9IHBhcnNlSW50KE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zcGxpdCgnMC4nKVsxXSkgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKIG1hcmtfbmFtZSA9IGxhYmVsICsgJ18nICsgdWlkLAogcGFydHMgPSBsYWJlbC5zcGxpdCgnfCcpLAogY2F0ZWdvcnkgPSBwYXJ0c1swXSwKIHZhcmlhYmxlID0gcGFydHNbMV0sCiBsYWJlbCA9IHBhcnRzWzJdLAogbWFya190aW1lLAogbWFya19lbnRyaWVzOwoKIHBlcmZvcm1hbmNlLm1hcmsobWFya19uYW1lKTsKIG1hcmtfZW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUobWFya19uYW1lKTsKCiBpZiAobWFya19lbnRyaWVzLmxlbmd0aCkgewogbWFya190aW1lID0gbWFya19lbnRyaWVzWzBdLnN0YXJ0VGltZTsKIHdpbmRvdy5fZ3RtLnB1c2goewogJ2V2ZW50JzogJ3BlcmZvcm1hbmNlX3RpbWluZycsCiAncGVyZm9ybWFuY2VfdGltaW5nLmNhdGVnb3J5JzogY2F0ZWdvcnksCiAncGVyZm9ybWFuY2VfdGltaW5nLnZhcmlhYmxlJzogdmFyaWFibGUsCiAncGVyZm9ybWFuY2VfdGltaW5nLnRpbWUnOiBtYXJrX3RpbWUgLyAxMDAwLAogJ3BlcmZvcm1hbmNlX3RpbWluZy5sYWJlbCc6IGxhYmVsCiB9KTsKIH0KIH07Cn0oKSk7Cjwvc2NyaXB0PgoKIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9hYmxpbmNvbG5fY29tYmluZWQubWluLmpzPzQ2NDIzMGYwIj48L3NjcmlwdD4KCgoKIDwvaGVhZD4KIDxib2R5IGNsYXNzPSJvbnNpdGUgIj4KIDxkaXYgaWQ9IndyYXAiIGNsYXNzPSJvdXRlcl93cmFwIj4KIAogPGRpdiBjbGFzcz0iYm9keV9yaWJib24gZXNpX3JpYmJvbiI+PC9kaXY+CgogCiAKPHNjcmlwdD4KIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKPC9zY3JpcHQ+CjxkaXYgaWQ9InRvcG5hdl9kZXNrdG9wIiBjbGFzcz0idG9wbmF2X2Rlc2t0b3AgIiByb2xlPSJiYW5uZXIiPgogPGRpdiBjbGFzcz0idG9wbmF2X2Rlc2t0b3Bfd3JhcHBlciI+CgogICA8YSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbG9nbyIgaHJlZj0iLy92aW1lby5jb20iIGFsdD0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiB0aXRsZT0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiBhcmlhLWxhYmVsPSJHbyB0byBWaW1lbyBob21lIHBhZ2UiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnZpbWVvX2hvbWUiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2hvbWVfY2xpY2siPgogIDxzdmcgYWx0PSJWaW1lbyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI0MCI+PHBhdGggZD0iTTIyLjQ0OCAxNC41NzVjLS4xMDQgMi4xNy0xLjYxOCA1LjE0Ni00LjU0NCA4LjkxMi0zLjAzIDMuOTQyLTUuNTkgNS45MTItNy42ODYgNS45MTItMS4yOTcgMC0yLjM5Ny0xLjIwNC0zLjMtMy42LS42LTIuMi0xLjIwMi00LjM5OC0xLjc5NC02LjU5OC0uNjY0LTIuMzk2LTEuMzgtMy42LTIuMTQ3LTMuNi0uMTY2IDAtLjc0Ny4zNTQtMS43NTMgMS4wNWwtMS4wNDgtMS4zNWMxLjEtLjk2NSAyLjE5LTEuOTMgMy4yNTctMi45MDUgMS40NjMtMS4yNjUgMi41NzMtMS45NCAzLjMtMi4wMDIgMS43MzItLjE2NiAyLjggMS4wMTcgMy4yMDUgMy41NTguNDM1IDIuNzQuNzM2IDQuNDQuOTAyIDUuMTE1LjQ5OCAyLjI3IDEuMDQ4IDMuNDAyIDEuNjUgMy40MDIuNDY2IDAgMS4xNzItLjczNyAyLjEwNS0yLjIxLjkzNC0xLjQ3MyAxLjQzMi0yLjU5MyAxLjUwNC0zLjM3LjEzMy0xLjI3Ny0uMzY1LTEuOTEtMS41MDYtMS45MS0uNTMgMC0xLjA4LjEyNS0xLjY1LjM2NCAxLjEtMy41OSAzLjE4Ni01LjMzMyA2LjI3Ny01LjIzIDIuMjczLjA3MyAzLjM1IDEuNTU2IDMuMjI3IDQuNDZtMTMuNzU1IDcuMDM0Yy0uOTMzIDEuNzY0LTIuMjIgMy4zNy0zLjg2IDQuODAzLTIuMjQgMS45My00LjQ3IDIuOTA1LTYuNyAyLjkwNS0xLjAzNy4wMDItMS44MjYtLjMzLTIuMzc2LS45OTQtLjU1LS42NjMtLjgxLTEuNTM1LS43NzctMi42MDMuMDMtMS4xLjM3Mi0yLjggMS4wMjUtNS4xMDQuNjU0LTIuMzAzLjk3Ni0zLjUzNy45NzYtMy43MDMgMC0uODYtLjMtMS4yOTctLjkwMi0xLjI5Ny0uMTk4IDAtLjc3LjM1My0xLjcwMiAxLjA0OGwtMS4xNTItMS4zNWMxLjA3LS45NjIgMi4xMzctMS45MjcgMy4yMDYtMi45MDIgMS40My0xLjI2NiAyLjUtMS45NCAzLjIwNS0yLjAwMiAxLjEtLjEwMyAxLjkxLjIzIDIuNDI4Ljk3Ni41MTguNzQ3LjcwNSAxLjcyMi41OCAyLjkxNS0uNDM1IDIuMDM0LS45MDIgNC42MDctMS40IDcuNzMtLjAzIDEuNDMuNDg4IDIuMTQ2IDEuNTU2IDIuMTQ2LjQ2NyAwIDEuMjk3LS40OTggMi41LTEuNDgzLjk5Ni0uODIgMS44MTUtMS41OTggMi40NS0yLjMyNGwuOTQyIDEuMjQ0bS00LjM1Ny0xNy44Yy0uMDMuODMtLjQ0NiAxLjYyOC0xLjI1NSAyLjM5NS0uOS44Ni0xLjk3IDEuMjk2LTMuMjA0IDEuMjk2LTEuOSAwLTIuODIyLS44My0yLjc1LTIuNDkuMDMyLS44Ni41NC0xLjY5IDEuNTI2LTIuNDkuOTg1LS43OTcgMi4wNzQtMS4xOSAzLjI3OC0xLjE5LjcwNSAwIDEuMjg2LjI3IDEuNzUzLjgyLjQ2Ny41NC42ODQgMS4xLjY1MyAxLjY2bTM1LjYxMiAxNy44Yy0uOTMzIDEuNzYzLTIuMjIgMy4zNy0zLjg2IDQuODAyLTIuMjQgMS45My00LjQ3IDIuOTA0LTYuNyAyLjkwNC0yLjE2OC4wMDItMy4yMTYtMS4yMDItMy4xNTMtMy41OTguMDMtMS4wNy4yMzgtMi4zNTUuNjIyLTMuODUuMzg0LTEuNTAzLjU5LTIuNjY1LjYyMy0zLjUwNS4wMy0xLjI2NS0uMzUzLTEuODk4LTEuMTUyLTEuODk4LS44NyAwLTEuOTEgMS4wMzYtMy4xMTIgMy4xLTEuMjc2IDIuMTY4LTEuOTYgNC4yNzQtMi4wNjQgNi4zMDgtLjA3MyAxLjQzLjA3MiAyLjU0LjQyNSAzLjI5OC0yLjMyNC4wNjQtMy45NjMtLjMyLTQuODg2LTEuMTUtLjgzLS43MzctMS4yMTItMS45NS0xLjE1LTMuNjUyLjAzLTEuMDY4LjE5OC0yLjEzNy40ODgtMy4yMDUuMjktMS4wNy40NTctMi4wMjMuNDg4LTIuODUzLjA2Mi0xLjIzNC0uMzg0LTEuODU3LTEuMzUtMS44NTctLjg0IDAtMS43NC45NTUtMi43MDYgMi44NTMtLjk2NiAxLjktMS41MDUgMy44OS0xLjYxIDUuOTU2LS4wNiAxLjg2Ny4wNTMgMy4xNzQuMzY0IDMuOS0yLjI5My4wNjItMy45Mi0uNDE1LTQuODc2LTEuNDUyLS43OTgtLjg2LTEuMTYtMi4xOC0xLjEtMy45NDIuMDMyLS44Ni4xODgtMi4wNzUuNDU3LTMuNjIuMjgtMS41NDYuNDI1LTIuNzUuNDU3LTMuNjIuMDYyLS42MDMtLjA4My0uOTAzLS40NDYtLjkwMy0uMTk3IDAtLjc2OC4zNC0xLjcwMiAxLjAxNWwtMS4yMDMtMS4zNDhjLjE2OC0uMTM1IDEuMjE2LTEuMSAzLjE1Ni0yLjkwNSAxLjQtMS4yOTcgMi4zNTQtMS45NyAyLjg1Mi0yLjAwMi44NzItLjA3MyAxLjU2Ny4yOSAyLjEwNiAxLjA4LjUzLjc4Ny44IDEuNjkuOCAyLjcyNyAwIC4zMzItLjAzMi42NTQtLjEwNS45NTQuNDk3LS43NjYgMS4wOC0xLjQzIDEuNzUyLTIgMS41MzctMS4zNCAzLjI2LTIuMDg2IDUuMTU3LTIuMjUyIDEuNjQtLjEzNSAyLjguMjUgMy41MDUgMS4xNTIuNTcuNzM2LjgzIDEuNzg0LjggMy4xNTMuMjM3LS4xOTguNDg2LS40MTYuNzQ2LS42NTQuNzY3LS45MDMgMS41MTQtMS42MiAyLjI1LTIuMTQ4IDEuMjM1LS45MDIgMi41Mi0xLjQgMy44Ni0xLjUwNCAxLjU5Ny0uMTM1IDIuNzUuMjUgMy40NTQgMS4xNTIuNjAyLjcyNi44NyAxLjc3NC44IDMuMTQzLS4wMzIuOTMzLS4yNiAyLjI4LS42NzUgNC4wNjUtLjQxNiAxLjc3My0uNjI0IDIuOC0uNjI0IDMuMDctLjAzLjY5NS4wMyAxLjE4Mi4xOTcgMS40NDIuMTY2LjI3LjU3LjM5NCAxLjIwMy4zOTQuNDY3IDAgMS4yOTctLjQ5NyAyLjUtMS40ODIuOTk2LS44MiAxLjgxNi0xLjU5OCAyLjQ1LTIuMzI0bC45NjMgMS4yNTRtMTguNzY1LS4wNTJjLS45NjUgMS41OTgtMi44NzQgMy4xOTUtNS43MDYgNC43OTMtMy41MzggMi4wMzItNy4xMjcgMy4wNS0xMC43NTggMy4wNS0yLjcwNiAwLTQuNjM2LS45MDQtNS44MDgtMi43LS44My0xLjIzMy0xLjIzNC0yLjY5Ni0xLjIwMy00LjQwNy4wMy0yLjY5OCAxLjIzNC01LjI3IDMuNi03LjcxIDIuNjAzLTIuNjY1IDUuNjc0LTQuMDAzIDkuMjEtNC4wMDMgMy4yNyAwIDUgMS4zMjggNS4yMDggMy45OTQuMTM1IDEuNzAyLS43OTggMy40NDUtMi44IDUuMjQtMi4xMzcgMS45Ni00LjgyNCAzLjIxNS04LjA2IDMuNzQ0LjYuODMgMS41MDQgMS4yNDUgMi43MDcgMS4yNDUgMi4zOTYgMCA1LjAyLS42MTMgNy44NjMtMS44MzcgMi4wMzMtLjg2IDMuNjMtMS43NTMgNC44MDMtMi42NzZsLjk0NSAxLjI2NW0tMTEuMzYtNS4yMjhjLjAzMi0uODkyLS4zMy0xLjM1LTEuMS0xLjM1LS45OTQgMC0yLjAxLjY4Ni0zLjA0OCAyLjA2Ni0xLjAzOCAxLjM4LTEuNTY3IDIuNjk3LTEuNTk4IDMuOTYyLS4wMiAwLS4wMi4yMTggMCAuNjQzIDEuNjMtLjYgMy4wNS0xLjUxNCA0LjI0Mi0yLjczOC45NjYtMS4wNTggMS40NjMtMS45MiAxLjUwNS0yLjU4M20yNC45NDYgMS44NjhjLS4xMzUgMy4wNzItMS4yNjUgNS43MTctMy40MDIgNy45NDctMi4xMzUgMi4yMy00Ljc5IDMuMzUtNy45NTUgMy4zNS0yLjYzNSAwLTQuNjM3LS44NS02LjAwNi0yLjU1LS45OTctMS4yNjctMS41NTctMi44NTQtMS42NS00Ljc1Mi0uMTY2LTIuODYzLjg2LTUuNDk4IDMuMS03Ljg5NCAyLjQwOC0yLjY2NSA1LjQyNy0zLjk5MyA5LjA1Ny0zLjk5MyAyLjMzNCAwIDQuMDk4Ljc4OCA1LjMgMi4zNDQgMS4xMzIgMS40NDMgMS42NSAzLjI5IDEuNTU3IDUuNTVtLTUuNjY0LS4xODVjLjAzLS45MDMtLjA5NC0xLjczMy0uMzc0LTIuNDgtLjI4LS43NDctLjY5NS0xLjEzLTEuMjI0LTEuMTMtMS43MDIgMC0zLjEwMi45MjMtNC4yMDIgMi43Ni0uOTMzIDEuNTAzLTEuNDMgMy4xMS0xLjUwNCA0LjgxMi0uMDMuODQuMTE0IDEuNTc3LjQ0NiAyLjIxLjM2NC43MzYuODgyIDEuMSAxLjU1NiAxLjEgMS41MDUgMCAyLjc5LS44ODMgMy44Ni0yLjY1Ni44OTItMS40NzIgMS4zOC0zLjAwOCAxLjQ0LTQuNjE1aC4wMDJ6IiBmaWxsPSIjMTEyMjMzIi8+PC9zdmc+CiAgPC9hPgogCiAgIDxuYXYgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik1haW4gbWVudSI+CiA8dWwgY2xhc3M9InRvcG5hdl9tZW51X2Rlc2t0b3BfbWFpbiIgcm9sZT0ibWVudWJhciI+CgogIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0iam9pbiI+CiA8YSBjbGFzcz0idG9wbmF2X21lbnVfam9pbiBqcy10b3BuYXZfbWVudV9hdXRoIiBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO3ZpbWVvLk1vZGFsLmNyZWF0ZSh7c2l6ZToneHNtYWxsJyxjb250ZW50Oicvam9pbj9tb2RhbD1uZXcnfSkiIGRhdGEtZ2EtZXZlbnQtY2xpY2s9InRvcF9uYXZ8am9pbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6am9pbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfam9pbl9jbGljayIgaHJlZj0iLy92aW1lby5jb20vam9pbiIgdGl0bGU9IkJlY29tZSBhIFZpbWVvIG1lbWJlciIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2pvaW4iPgogSm9pbiA8L2E+CgogICA8L2xpPgogCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJsb2dpbiI+CiA8YSBjbGFzcz0ianMtdG9wbmF2X21lbnVfYXV0aCIgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTt2aW1lby5TZXNzaW9uLmNyZWF0ZSgncmVnJywgbnVsbCwgdHJ1ZSk7IiBkYXRhLWdhLWV2ZW50LWNsaWNrPSJ0b3BfbmF2fGxvZ2luIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpsb2dpbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfbG9naW5fY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2xvZ19pbiIgdGl0bGU9IkxvZyBpbiB0byB5b3VyIGFjY291bnQiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9sb2dpbiI+CiBMb2cgaW4gPC9hPgoKICAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0iY3JlYXRlIj4KIDxhIGNsYXNzPSJqcy10b3BuYXYtY3JlYXRlIHRvcG5hdl9oYXNfZHJvcGRvd24gdG9wbmF2X2ljb25fY2hldnJvbl9hIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDptYW5hZ2VfdmlkZW9zfGtleXdvcmQ6aG9zdF92aWRlb3MiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9jbGljayIgaHJlZj0iLy92aW1lby5jb20vY3JlYXRlIiB0aXRsZT0iIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfY3JlYXRlIj4KIEhvc3QgdmlkZW9zIDwvYT4KCiAgIDx1bCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfY3JlYXRlIj4KICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOmNvbXBhcmVfcGxhbnMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9tZW1iZXJzaGlwX29wdGlvbnNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3VwZ3JhZGUiIHRpdGxlPSJVcGdyYWRlIG9yIGNvbXBhcmUgb3VyIHBsYW5zIj5Db21wYXJlIHBsYW5zPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDpwcm9mZXNzaW9uYWxzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9wcm9mZXNzaW9uYWxzIiB0aXRsZT0iR2V0IHByb2Zlc3Npb25hbCB2aWRlbyBob3N0aW5nIHRvb2xzIj5Qcm9mZXNzaW9uYWxzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDpidXNpbmVzc2VzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9idXNpbmVzcyIgdGl0bGU9IkdldCBwb3dlcmZ1bCB2aWRlbyBtYXJrZXRpbmcgdG9vbHMiPkJ1c2luZXNzZXM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOnZpZGVvX2xvdmVycyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vZXZlcnlvbmUiIHRpdGxlPSJVcGxvYWQgYW5kIHNoYXJlIHlvdXIgdmlkZW9zIj5WaWRlbyBsb3ZlcnM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOnZpZGVvX3NjaG9vbCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX3ZpZGVvX3NjaG9vbF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vdmlkZW9zY2hvb2wiIHRpdGxlPSJMZWFybiBob3cgdG8gbWFrZSBiZXR0ZXIgdmlkZW9zIj5WaWRlbyBTY2hvb2w8L2E+CiA8L2xpPgogICA8L3VsPgogIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9IndhdGNoIj4KIDxhIGNsYXNzPSJ0b3BuYXZfaGFzX2Ryb3Bkb3duIHRvcG5hdl9pY29uX2NoZXZyb25fYSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDp3YXRjaCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3dhdGNoIiB0aXRsZT0iIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfd2F0Y2giPgogV2F0Y2ggPC9hPgoKICAgPHVsIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl93YXRjaCI+CiAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpzdGFmZl9waWNrcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfc3RhZmZfcGlja3NfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NoYW5uZWxzL3N0YWZmcGlja3MiIHRpdGxlPSJUaGUgYmVzdCB2aWRlb3Mgb24gVmltZW8sIGN1cmF0ZWQgZGFpbHkgYnkgb3VyIHRlYW0iPlN0YWZmIFBpY2tzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpjYXRlZ29yaWVzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9jYXRlZ29yaWVzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jYXRlZ29yaWVzIiB0aXRsZT0iQnJvd3NlIHZpZGVvcyBieSBpbnRlcmVzdCwgZ2VucmUsIGFuZCBtb3JlIj5DYXRlZ29yaWVzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpjaGFubmVscyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2hhbm5lbHNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NoYW5uZWxzIiB0aXRsZT0iVmlldyB2aWRlbyBwbGF5bGlzdHMgY3JlYXRlZCBhbmQgY3VyYXRlZCBieSBvdGhlciBtZW1iZXJzIj5DaGFubmVsczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Z3JvdXBzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9ncm91cHNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2dyb3VwcyIgdGl0bGU9IldhdGNoIGFuZCBkaXNjdXNzIHZpZGVvcyB3aXRoIG90aGVycyI+R3JvdXBzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDphcHAiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2FwcHNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2V2ZXJ5d2hlcmUiIHRpdGxlPSJXYXRjaCBWaW1lbyB2aWRlb3Mgb24gVFZzLCBwaG9uZXMsIHRhYmxldHMsIGFuZCBtb3JlIj5BcHBzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDptb3JlIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9tb3JlX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS93YXRjaCIgdGl0bGU9IkRpc2NvdmVyIG1vcmUgd2F5cyB0byB3YXRjaCBvbiBWaW1lbyI+TW9yZeKApjwvYT4KIDwvbGk+CiAgIDwvdWw+CiAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0ib25kZW1hbmQiPgogPGEgY2xhc3M9InRvcG5hdl9oYXNfZHJvcGRvd24gdG9wbmF2X2lzX29uZGVtYW5kIHRvcG5hdl9pY29uX2NoZXZyb25fYSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6b25fZGVtYW5kIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQiIHRpdGxlPSJXYXRjaCBtb3ZpZXMsIHNlcmllcywgYW5kIG1vcmUiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9vbmRlbWFuZCI+CiBPbiBEZW1hbmQgPC9hPgoKICAgPHVsIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl9vbmRlbWFuZCI+CiAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6d2hhdHNfbmV3IiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF93aGF0c19uZXdfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kIiB0aXRsZT0iU2VlIG5ldyBhbmQgbm90ZXdvcnRoeSB0aXRsZXMgYWRkZWQgdG8gT24gRGVtYW5kIj5XaGF04oCZcyBuZXc8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDpkaXNjb3ZlciIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfZGlzY292ZXJfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL2Rpc2NvdmVyIiB0aXRsZT0iRGlzY292ZXIgdGl0bGVzIG91ciB0ZWFtIHJlY29tbWVuZHMiPkRpc2NvdmVyPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6Z2VucmVzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9nZW5yZXNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL2Jyb3dzZSIgdGl0bGU9IkJyb3dzZSB0aXRsZXMgYnkgZ2VucmUiPkdlbnJlczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOnR2X3NlcmllcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfdHZfc2VyaWVzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9icm93c2UvdHYrc2VyaWVzIiB0aXRsZT0iQnJvd3NlIHNlcmllcyBhbmQgVFYgc2hvd3MiPlRWICsgU2VyaWVzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6c3RhcnRfc2VsbGluZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfc2VsbF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQvc3RhcnRzZWxsaW5nIiB0aXRsZT0iU2VsbCBkaXJlY3RseSB0byB5b3VyIGZhbnMgd2l0aCBWaW1lbyBPbiBEZW1hbmQiPlN0YXJ0IHNlbGxpbmc8L2E+CiA8L2xpPgogICA8L3VsPgogIDwvbGk+CiAKIDwvdWw+CiA8L25hdj48IS0tIC8udG9wbmF2X2Rlc2t0b3BfbWVudSAtLT4KIAogICA8ZGl2IGNsYXNzPSJ0b3BuYXZfbWVudV9yaWdodCI+CgogICA8Zm9ybSBjbGFzcz0idG9wbmF2X21lbnVfc2VhcmNoIiBhY3Rpb249Ii8vdmltZW8uY29tL3NlYXJjaCIgbWV0aG9kPSJnZXQiIHJvbGU9InNlYXJjaCIgZGF0YS1kcy1wcm90ZWN0aW9uPgogPGlucHV0IGNsYXNzPSJ0b3BuYXZfbWVudV9zZWFyY2hfaW5wdXQganMtdG9wbmF2X21lbnVfc2VhcmNoX2lucHV0IGpzLXNlYXJjaF9hdXRvY29tcGxldGUiICB0eXBlPSJ0ZXh0IiBuYW1lPSJxIiB0aXRsZT0iU2VhcmNoIHZpZGVvcywgcGVvcGxlLCBhbmQgbW9yZSIgdmFsdWU9IiIgYXJpYS1sYWJlbD0iU2VhcmNoIHZpZGVvcywgcGVvcGxlLCBhbmQgbW9yZSIgcGxhY2Vob2xkZXI9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIGF1dG9jb21wbGV0ZT0ib2ZmIj48YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbWVudV9zZWFyY2hfc3VibWl0IHRvcG5hdl9pY29uX3NlYXJjaF9iIiB0eXBlPSJzdWJtaXQiIGFyaWEtbGFiZWw9IlNlYXJjaCI+PC9idXR0b24+CiA8L2Zvcm0+CiAKICAKICAKICAgPGEgY2xhc3M9InRvcG5hdl9kZXNrdG9wX3VwbG9hZCB0b3BuYXZfaWNvbl91cGxvYWRfYiIgaHJlZj0iL3VwbG9hZCIgdGl0bGU9IlVwbG9hZCB5b3VyIHZpZGVvcyIgcm9sZT0iYnV0dG9uIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbXBvbmVudDp0b3BfbmF2fGtleXdvcmQ6dXBsb2FkIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl91cGxvYWRfY2xpY2siPjxzcGFuPlVwbG9hZDwvc3Bhbj48L2E+CiAgPC9kaXY+PCEtLSAvLnRvcG5hdl9tZW51X3JpZ2h0IC0tPgogIDwvZGl2PjwhLS0gLy50b3BuYXZfZGVza3RvcF93cmFwcGVyIC0tPgo8L2Rpdj4KCiA8bmF2IGlkPSJ0b3BuYXZfbW9iaWxlIiBjbGFzcz0idG9wbmF2X21vYmlsZSAiIHJvbGU9ImJhbm5lciI+CgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9iYXIiPgogIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9sZWZ0IHRvcG5hdl9tb2JpbGVfaGVhZGVyX2xvZ28ganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfbG9nbyB0b3BuYXZfaWNvbl9tb2JpbGVfdmxvZ29fYiI+CiAgPC9idXR0b24+CiA8YSBocmVmPSIvL3ZpbWVvLmNvbS9zZWFyY2giIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfcmlnaHQgdG9wbmF2X21vYmlsZV9oZWFkZXJfc2VhcmNoIHRvcG5hdl9pY29uX21vYmlsZV9zZWFyY2hfYiI+IDwvYT4KIDxzcGFuIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2hlYWRlcl90aXRsZSI+PC9zcGFuPgogPC9kaXY+CgogIDxzZWN0aW9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnUganMtdG9wbmF2X21vYmlsZV9tZW51X21haW4iPgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9iYXIiPgogPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX2xlZnQganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfY2xvc2UgdG9wbmF2X2ljb25fbW9iaWxlX3hfYiI+IDwvYnV0dG9uPgogPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX3JpZ2h0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbmdzIHRvcG5hdl9pY29uX21vYmlsZV9nZWFyX2IiPiA8L2J1dHRvbj4KIDwvZGl2PgoKIDx1bD4KICAgPGxpPgogPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfY2hhbm5lbF9iICIgaHJlZj0iLy92aW1lby5jb20vIj4KIFN0YWZmIFBpY2tzIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYWN0aW9uPSJsYXN0X3BhZ2UiIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX2F2YXRhcl9iICIgaHJlZj0iL2xvZ19pbiI+CiA8c3BhbiBjbGFzcz0ibWVudV9hdXRoIj5Kb2luIG9yIGxvZyBpbjwvc3Bhbj4gPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfc3Rhcl9iIiBocmVmPSIvL3ZpbWVvLmNvbS93YXRjaCI+CiBXYXRjaCA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBvbmNsaWNrPSJ2aW1lby5tb2JpbGUuZGVza3RvcF9zaGFyZWQuX3VwbG9hZCh0aGlzKTsgcmV0dXJuIGZhbHNlOyIgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfdXBsb2FkX2IiIGhyZWY9Ii8vdmltZW8uY29tL3VwbG9hZCI+CiBVcGxvYWQgPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfdm9kX2IgIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZCI+CiBPbiBEZW1hbmQgPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfZm9yZ290X2IgIiBocmVmPSJodHRwczovL2hlbHAudmltZW8uY29tL2hjL2VuLXVzIj4KIEhlbHAgPC9hPgogPC9saT4KICA8L3VsPgogPC9zZWN0aW9uPgoKICA8c2VjdGlvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51IHRvcG5hdl9tb2JpbGVfbWVudV9zZXR0aW5ncyBqcy10b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MiPgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9iYXIiPgogPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX2xlZnQganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfc2V0dGluc19jbG9zZSB0b3BuYXZfaWNvbl9tb2JpbGVfYXJyb3dsZWZ0X2IiPiA8L2J1dHRvbj4KIDxzcGFuIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2hlYWRlcl90aXRsZSI+TW9yZSBzdHVmZjwvc3Bhbj4KIDwvZGl2PgoKIDx1bD4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS90ZXJtcyI+CiBUZXJtcyBvZiBTZXJ2aWNlIDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS9wcml2YWN5Ij4KIFByaXZhY3kgUG9saWN5IDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS9kbWNhIj4KIENvcHlyaWdodCA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vY29va2llX3BvbGljeSI+CiBDb29raWVzIDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249ImRlc2t0b3AiIG9uY2xpY2s9InZpbWVvLm1vYmlsZS5kZXNrdG9wX3NoYXJlZC5fczJkcygpOyByZXR1cm4gZmFsc2UiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiBEZXNrdG9wIHNpdGUgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBsYW5ndWFnZSBocmVmPSIjIj4KIExhbmd1YWdlIDwvYT4KICAgPHNlbGVjdCBvbmNoYW5nZT0idmltZW8ubW9iaWxlLmRlc2t0b3Bfc2hhcmVkLl9zMmwodGhpcykiIHRpdGxlPSJDaG9vc2UgYSBkaWZmZXJlbnQgbGFuZ3VhZ2UiIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3NfbGFuZ3VhZ2UiPgogICA8b3B0aW9uIGNsYXNzPSJzZWxlY3RlZCIgc2VsZWN0ZWQgdmFsdWU9ImVuIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIEVuZ2xpc2ggPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iZXMiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRXNwYcOxb2wgPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iZGUtREUiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRGV1dHNjaCA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJmci1GUiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBGcmFuw6dhaXMgPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iamEtSlAiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgog5pel5pys6KqeIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9InB0LUJSIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIFBvcnR1Z3XDqnMgPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0ia28tS1IiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgog7ZWc6rWt7Ja0IDwvb3B0aW9uPgogIDwvc2VsZWN0PgogIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vZmFxIj4KIEZBUSA8L2E+CiAgIDwvbGk+CiAgPC91bD4KCiA8ZGl2IGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnVfY29weXJpZ2h0Ij5UTSArIMKpIDIwMTcgVmltZW8sIEluYy48L2Rpdj4KIDwvc2VjdGlvbj4KPC9uYXY+Cgo8c2NyaXB0PgohZnVuY3Rpb24oYSxiKXthLnZpbWVvPWEudmltZW98fHt9LHZpbWVvLm1vYmlsZT12aW1lby5tb2JpbGV8fHt9LFZpbWVvPXZpbWVvLm1vYmlsZXx8e30sVmltZW8uZGVza3RvcF9zaGFyZWQ9VmltZW8uZGVza3RvcF9zaGFyZWR8fHt9O3ZhciBjPWIuZ2V0RWxlbWVudEJ5SWQoInRvcG5hdl9kZXNrdG9wIiksZD0ib250b3VjaHN0YXJ0ImluIGE/InRvdWNoc3RhcnQiOmEuUG9pbnRlckV2ZW50PyJwb2ludGVyZG93biI6YS5NU1BvaW50ZXJFdmVudD8iTVNQb2ludGVyRG93biI6ImNsaWNrIjsiY2xpY2siIT09ZCYmYy5hZGRFdmVudExpc3RlbmVyKGQsZnVuY3Rpb24oYSl7dmFyIGI9ImltZyI9PT1hLnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCk/YS50YXJnZXQucGFyZW50Tm9kZTphLnRhcmdldDtiLmNsYXNzTGlzdC5jb250YWlucygidG9wbmF2X2hhc19kcm9wZG93biIpJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMSksYy5hZGRFdmVudExpc3RlbmVyKGQsZnVuY3Rpb24oYyl7Yy50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy10b3BuYXZfbWVudV9hdXRoIikmJihiLmNvb2tpZT0ibGFzdF9wYWdlPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEubG9jYXRpb24ucGF0aG5hbWUpKyI7cGF0aD0nLyc7bWF4LWFnZT0xODAwOyIpfSwhMSksVmltZW8uZGVza3RvcF9zaGFyZWQuX3VwbG9hZD1mdW5jdGlvbihjKXtpZigvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7dmFyIGYsZyxkPSJ2aW1lbzovL2FwcC52aW1lby5jb20vdXBsb2FkP3JlZj1tb2JpbGV3ZWIiLGU9Ii91cGxvYWQiO3JldHVybiBmPWZ1bmN0aW9uKCl7Yi53ZWJraXRIaWRkZW58fChhLmxvY2F0aW9uPWUpfSxnPWZ1bmN0aW9uKCl7YS5sb2NhdGlvbj1kLHNldFRpbWVvdXQoZiwyNSl9LGcoKSwhMX1hLmxvY2F0aW9uPWMuaHJlZn0sVmltZW8uZGVza3RvcF9zaGFyZWQuX3MyZHM9ZnVuY3Rpb24oKXtiLmNvb2tpZT0ib3B0X291dF9tb2JpbGU9MTtleHBpcmVzPUZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UO2RvbWFpbj0iK3ZpbWVvLmRvbWFpbixhLmxvY2F0aW9uLnJlbG9hZCgpfSxWaW1lby5kZXNrdG9wX3NoYXJlZC5fczJsPWZ1bmN0aW9uKGIpe3ZhciBjPWIudmFsdWUsZD1uZXcgWE1MSHR0cFJlcXVlc3Q7ZC5vcGVuKCJQT1NUIiwiL3NldHRpbmdzL2xvY2FsZSIpLGQuc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0IiksZC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSxkLnNlbmQoImxvY2FsZT0iK2MrIiZ0b2tlbj0iK3ZpbWVvLnhzcmZ0KSxkLm9ubG9hZD1mdW5jdGlvbigpezIwMD09PWQuc3RhdHVzJiZhLmxvY2F0aW9uLnJlbG9hZCgpfX07dmFyIGU9ImNsaWNrIixmPSJibG9jayIsZz0ibm9uZSIsaD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKGUsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCk7dmFyIGM9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9tZW51X21haW4iKTtjLnN0eWxlLmRpc3BsYXk9Zjt2YXIgZD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9jbG9zZSIpO2QuYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpLGMuc3R5bGUuZGlzcGxheT1nfSk7dmFyIGg9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzIiksaT1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5ncyIpO2kuYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpLGguc3R5bGUuZGlzcGxheT1mLGMuc3R5bGUuZGlzcGxheT1nO3ZhciBkPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbnNfY2xvc2UiKTtkLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxoLnN0eWxlLmRpc3BsYXk9ZyxjLnN0eWxlLmRpc3BsYXk9Zn0pfSl9LCExKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZihhKXt2YXIgYj1uZXcgWE1MSHR0cFJlcXVlc3Q7Yi5vcGVuKCJQT1NUIiwiL3NldHRpbmdzL25hdiIpLGIuc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0IiksYi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSxiLnNlbmQoIm1lc3NhZ2Vfc3RhdGU9IithKyImdG9rZW49Iit2aW1lby54c3JmdCksYi5vbmxvYWQ9ZnVuY3Rpb24oKXt9fXZhciBhPWIuZ2V0RWxlbWVudEJ5SWQoInRvcG5hdl9tZW51X2F2YXRhciIpO2lmKGEpe3ZhciBjPWEucXVlcnlTZWxlY3RvcigiLnRvcG5hdl9tZW51X2F2YXRhcl9idWJibGUiKSxlPShhLnF1ZXJ5U2VsZWN0b3IoIiN0b3BuYXZfdXNlcl9kcm9wZG93biIpLCExKTtjJiZjLmNsYXNzTGlzdC5hZGQoIm9uIiksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJvbiIpLGYoMSkpfSwhMSl9fSwxZTMpfSh3aW5kb3csZG9jdW1lbnQpOwo8L3NjcmlwdD4KCiA8ZGl2IGNsYXNzPSJ3cmFwX2NvbnRlbnQiPgogCgoKCjxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9jb250YWluZXIiPgogPGRpdiBjbGFzcz0iZXhjZXB0aW9uX3NlY3Rpb24gZXhjZXB0aW9uX3NlY3Rpb24tLWluZm8iPgogPGRpdiBjbGFzcz0iZXhjZXB0aW9uX3NocnVnX28iPjwvZGl2PgogPGgxIGNsYXNzPSJleGNlcHRpb25fdGl0bGUgaXJpc19oZWFkZXIiPlNvcnJ5LCB3ZSBjb3VsZG7igJl0IGZpbmQgdGhhdCBwYWdlPC9oMT4KCiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fY29udGVudCI+CiA8cCBjbGFzcz0iZXhjZXB0aW9uX21lc3NhZ2UiPgogIDwvcD4KCiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uLS11cHNlbGwiPgogPGRpdiBjbGFzcz0iaXJpc19ub3RpZmljYXRpb24tLXVwc2VsbC1pY29uIj4KIDxzcGFuIGNsYXNzPSJpcmlzX2ljIGlzLS0xNiI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTcgNGgydjJIN1Y0em0wIDNoMnY1SDdWN3oiLz48L3N2Zz48L3NwYW4+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJpcmlzX25vdGlmaWNhdGlvbi1oZWFkZXIiPgogPHN0cm9uZz5SZWFzb25zIHlvdSBtaWdodCBiZSBzZWVpbmcgdGhpcyBwYWdlPC9zdHJvbmc+CiA8L2Rpdj4KCiA8dWwgY2xhc3M9ImlyaXNfbm90aWZpY2F0aW9uLWxpc3QiPgogIDxsaT5JdCBleGlzdHMsIGJ1dCB5b3UgZG9u4oCZdCBoYXZlIHBlcm1pc3Npb24gdG8gc2VlIGl0LCBvciB5b3UgbmVlZCB0byA8YSBvbmNsaWNrPSJ2aW1lby5TZXNzaW9uLmNyZWF0ZSgpIj5sb2cgaW48L2E+LjwvbGk+CiAgPGxpPk5vdGhpbmcgaGFzIGV2ZXIgZXhpc3RlZCBoZXJlLiBTcG9va3kuPC9saT4KIDxsaT5Tb21ldGhpbmcgb25jZSBsaXZlZCBoZXJlLCBidXQgaGFzIGJlZW4gZGVsZXRlZC48L2xpPgogPC91bD4KPC9kaXY+CgogIDxmb3JtIGNsYXNzPSJleGNlcHRpb25fc2VhcmNoIiBhY3Rpb249Ii9zZWFyY2giIG1ldGhvZD0iZ2V0Ij4KIDxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9zZWFyY2gtaW5wdXQtd3JhcHBlciI+CiA8aW5wdXQgY2xhc3M9ImV4Y2VwdGlvbl9zZWFyY2gtaW5wdXQgaXJpc19pbnB1dCBpcmlzX2lucHV0LS1zZWFyY2gganMtc2VhcmNoX2F1dG9jb21wbGV0ZSIgdHlwZT0idGV4dCIgbmFtZT0icSIgcGxhY2Vob2xkZXI9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgogPC9kaXY+CiA8YnV0dG9uIGNsYXNzPSJleGNlcHRpb25fc2VhcmNoLWJ1dHRvbiBpcmlzX2J0biBpcmlzX2J0bi0tcHJpbWFyeSI+CiA8c3BhbiBjbGFzcz0iaXJpc19idG4tY29udGVudCI+U2VhcmNoPC9zcGFuPgogPC9idXR0b24+CiA8L2Zvcm0+CiAgPC9kaXY+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fYXV4aWxpYXJ5Ij48L2Rpdj4KPC9kaXY+CgogPC9kaXY+CgogIAo8Zm9vdGVyIGNsYXNzPSJmb290ZXJfdjIgZm9vdGVyX3YyLS1yZXNwb25zaXZlIj4KICAgIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX3NpdGVtYXAiPgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19saW5rcyI+CgogPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fbGluayBmb290ZXJfdjJfYWNjb3JkaW9uIj4KIDxpbnB1dCBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2siIHR5cGU9ImNoZWNrYm94Ij4KIDxoNCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlciI+CiA8c3BhbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlci10ZXh0Ij5WaW1lbzwvc3Bhbj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiA8c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA4Ij48cGF0aCBkPSJNNy43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNCA0LjU4NiAxLjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMC0uMzkuMzktLjM5IDEuMDI0IDAgMS40MTRsMyAzYy4zOS4zOSAxLjAyNC4zOSAxLjQxNCAwbDMtM2MuMzktLjM5LjM5LTEuMDI0IDAtMS40MTR6Ii8+PC9zdmc+CiA8L2Rpdj4KIDwvaDQ+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvYWJvdXQiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19hYm91dF9jbGljayI+CiBBYm91dCBWaW1lbyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvYmxvZyIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpbWVvX2Jsb2dfY2xpY2siPgogVmltZW8gQmxvZyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvaGVscC9ndWlkZWxpbmVzIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmltZW9fZ3VpZGVsaW5lc19jbGljayI+CiBWaW1lbyBHdWlkZWxpbmVzIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLnZpbWVvLmNvbSIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2RldmVsb3BlcnNfY2xpY2siPgogRGV2ZWxvcGVycyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvam9icyI+CiBKb2JzIDwvYT4KIDwvbGk+CiA8L3VsPgogPC9zZWN0aW9uPgoKIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiA8aW5wdXQgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX2NoZWNrIiB0eXBlPSJjaGVja2JveCI+CiA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXIiPgogPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXItdGV4dCI+SGVscDwvc3Bhbj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiA8c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA4Ij48cGF0aCBkPSJNNy43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNCA0LjU4NiAxLjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMC0uMzkuMzktLjM5IDEuMDI0IDAgMS40MTRsMyAzYy4zOS4zOSAxLjAyNC4zOSAxLjQxNCAwbDMtM2MuMzktLjM5LjM5LTEuMDI0IDAtMS40MTR6Ii8+PC9zdmc+CiA8L2Rpdj4KIDwvaDQ+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvaGVscCIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2hlbHBfY2VudGVyX2NsaWNrIj4KIEhlbHAgQ2VudGVyIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii92aWRlb3NjaG9vbCIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpZGVvX3NjaG9vbF9jbGljayI+CiBWaWRlbyBTY2hvb2wgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL2hlbHAvZmFxIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZmFxX2NsaWNrIj4KIEZBUSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvZm9ydW1zIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZm9ydW1zX2NsaWNrIj4KIEZvcnVtcyA8L2E+CiA8L2xpPgogPC91bD4KIDwvc2VjdGlvbj4KCiA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rIGZvb3Rlcl92Ml9hY2NvcmRpb24iPgogPGlucHV0IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19jaGVjayIgdHlwZT0iY2hlY2tib3giPgogPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPk1vcmU8L3NwYW4+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogPHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDggOCI+PHBhdGggZD0iTTcuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwTDQgNC41ODYgMS43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDAtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgM2MuMzkuMzkgMS4wMjQuMzkgMS40MTQgMGwzLTNjLjM5LS4zOS4zOS0xLjAyNCAwLTEuNDE0eiIvPjwvc3ZnPgogPC9kaXY+CiA8L2g0PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstbGlzdCBmb290ZXJfdjJfYWNjb3JkaW9uX19tZW51Ij4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL29uZGVtYW5kIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfb25fZGVtYW5kX2NsaWNrIj4KIE9uIERlbWFuZCA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvZXZlcnl3aGVyZSIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2V2ZXJ5d2hlcmVfY2xpY2siPgogRXZlcnl3aGVyZSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvdXBsb2FkIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdXBsb2FkX2NsaWNrIj4KIFVwbG9hZCA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvc2l0ZV9tYXAiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19zaXRlX21hcF9jbGljayI+CiBTaXRlIE1hcCA8L2E+CiA8L2xpPgogPC91bD4KIDwvc2VjdGlvbj4KCiA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rIGZvb3Rlcl92Ml9hY2NvcmRpb24iPgogPGlucHV0IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19jaGVjayIgdHlwZT0iY2hlY2tib3giPgogPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPlVwZ3JhZGU8L3NwYW4+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogPHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDggOCI+PHBhdGggZD0iTTcuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwTDQgNC41ODYgMS43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDAtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgM2MuMzkuMzkgMS4wMjQuMzkgMS40MTQgMGwzLTNjLjM5LS4zOS4zOS0xLjAyNCAwLTEuNDE0eiIvPjwvc3ZnPgogPC9kaXY+CiA8L2g0PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstbGlzdCBmb290ZXJfdjJfYWNjb3JkaW9uX19tZW51Ij4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL3BsdXM/dj1mb290ZXIiPgogVmltZW8gUGx1cyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvcHJvP3Y9Zm9vdGVyIj4KIFZpbWVvIFBSTyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvYnVzaW5lc3MiPgogVmltZW8gQnVzaW5lc3MgPC9hPgogPC9saT4KIDwvdWw+CiA8L3NlY3Rpb24+CiA8L2Rpdj4KCiAgIDxhc2lkZSBpZD0iZm9vdGVyX3RpcCIgY2xhc3M9ImZvb3Rlcl92Ml9fdGlwIiBhcmlhLWxpdmU9InBvbGl0ZSI+CiA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fdGlwLWhlYWRlciI+RGlkIHlvdSBrbm93PzwvaDQ+CiA8cCBjbGFzcz0iYWN0aXZlIGZvb3Rlcl92Ml9fdGlwLWNvbnRlbnQiPkdldCBvdXQgb2Ygc3RpY2t5IHNpdHVhdGlvbnMgYnkgdXNpbmcgPGEgaHJlZj0iL3ZpZGVvc2Nob29sL2xlc3Nvbi8xOTkvZ2FmZi10YXBlLWtpbmctb2YtdGFwZXMiPmdhZmYgdGFwZTwvYT4gdG8sIHVtLCBnZXQgaW50byBzdGlja3kgc2l0dWF0aW9ucy48L3A+CiA8L2FzaWRlPgogPC9zZWN0aW9uPgogCiAgPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5ICI+CgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbCI+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2F1eGlsaWFyeS1jb250ZW50Ij4KIDxwPlRNICsgJmNvcHk7IDIwMTcgVmltZW8sIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CiA8L2Rpdj4KIDx1bCBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0Ij4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iL3Rlcm1zIiB0aXRsZT0iVGVybXMgJmFtcDsgQ29uZGl0aW9ucyI+CiBUZXJtcyA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvcHJpdmFjeSIgdGl0bGU9IlByaXZhY3kgUG9saWN5Ij4KIFByaXZhY3kgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iL2RtY2EiIHRpdGxlPSJDb3B5cmlnaHQgSW5mb3JtYXRpb24iPgogQ29weXJpZ2h0IDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9Ii9jb29raWVfcG9saWN5IiB0aXRsZT0iTGVhcm4gbW9yZSBhYm91dCBob3cgVmltZW8gdXNlcyBjb29raWVzIj4KIENvb2tpZXMgPC9hPgogPC9saT4KIDwvdWw+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2F1eGlsaWFyeS1jb250ZW50IGZvb3Rlcl92Ml9fd2l0aGxvdmUiPgogTWFkZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL2xvdmUiPjxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIGZvb3Rlcl92Ml9fbG92ZWhlYXJ0IGZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWljb24iIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDEyIj48cGF0aCBkPSJNOSAyQzcuMzEyIDIgNiAzLjUgNiAzLjVTNC42ODcgMiAzIDJDMS4zMTIgMiAwIDMuMzEyIDAgNWMwIDMuMTg4IDMuNzUgMy4wMTIgNiA2IDIuMjUtMi45ODggNi0yLjgxMiA2LTYgMC0xLjY4OC0xLjMxMy0zLTMtM3oiLz48L3N2Zz48L2E+IGluIE5ZQy4gPC9kaXY+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2ZpbHRlcnMgZm9vdGVyX3YyX19hdXhpbGlhcnktY29udGVudCI+CiA8c3BhbiBjbGFzcz0ibGFuZ3VhZ2UiPgogTGFuZ3VhZ2U6CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIjbGFuZ3VhZ2UiIG9uY2xpY2s9InZpbWVvLk1vZGFsLmNyZWF0ZSh7Y29udGVudDogJy9zZXR0aW5ncy9sb2NhbGUnLCBzaXplOiAnc21hbGwnfSk7IHJldHVybiBmYWxzZTsiIHRpdGxlPSJDaG9vc2UgYSBkaWZmZXJlbnQgbGFuZ3VhZ2UiPkVuZ2xpc2g8L2E+CiA8L3NwYW4+CgogIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2ZpbHRlciI+TWF0dXJlIGNvbnRlbnQgZmlsdGVyOiA8L3NwYW4+PGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCBmb290ZXJfdjJfX2ZpbHRlcnNfX2xhbmcgY29udGVudGZpbHRlciBqcy1mb290ZXJfY29udGVudGZpbHRlcl9saW5rIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIG9uY2xpY2s9InZpbWVvLk1vZGFsLmNyZWF0ZSh7Y29udGVudDogJy9zZXR0aW5ncy9jb250ZW50cmF0aW5nJ30pIiB0aXRsZT0iQ2hhbmdlIHlvdXIgbWF0dXJlIGNvbnRlbnQgZmlsdGVyIj5Ob25lPC9hPgogIDwvZGl2PgoKPC9zZWN0aW9uPgo8L2Zvb3Rlcj4KIAogPC9kaXY+CgogCiAKIAogCjxzY3JpcHQ+CiB2YXIgX19mYSA9IF9fZmEgfHwgW107CiBfX2ZhLnB1c2goWyd0cmFja1BhZ2V2aWV3J10pOwoKICAvLyBBbmFseXRpY3MgU2V0dXAKIHZhciBfZ3RtID0gX2d0bSB8fCBbXSwKIF9pbml0aWFsX2d0bV9zdGF0ZSA9IHsiZXhjZXB0aW9uX2h0dHBfY29kZSI6IkhUVFBcLzEuMSA0MDQgTm90IEZvdW5kIiwibGFuZ3VhZ2UiOiJlbiIsInVzZXJfc3RhdHVzIjoibG9nZ2VkX291dCIsInVzZXJfdHlwZSI6Im5vbmUiLCJnYV91bml2ZXJzYWxfaWQiOiJVQS03NjY0MS04IiwiY29tc2NvcmVfc2l0ZV9pZCI6MTAzNDgyODl9OwoKIF9pbml0aWFsX2d0bV9zdGF0ZVsndnVpZCddID0gZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLyg/Oig/Ol58Lio7XHMqKXZ1aWRccypcPVxzKihbXjtdKikuKiQpfF4uKiQvLCAiJDEiKTsKIF9pbml0aWFsX2d0bV9zdGF0ZVsnZ3RtLnN0YXJ0J10gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKIF9pbml0aWFsX2d0bV9zdGF0ZVsnZXZlbnQnXSA9ICdndG0uanMnOwogX2d0bS5wdXNoKF9pbml0aWFsX2d0bV9zdGF0ZSk7CiAKIC8qKgogKiBJZiB0aGUgY3VycmVudCByZXF1ZXN0IHdhcyBidWNrZXRlZCBpbiBhbiBBQkxpbmNvbG4gZXhwZXJpbWVudCwKICogc2VuZCB0aGUgc2VsZWN0ZWQgdHJlYXRtZW50IGJhY2sgZnJvbSB0aGUgY2xpZW50LCB0byBmaWx0ZXIgYWIgdGVzdAogKiBkYXRhIGRvd24gdG8gbm9uLXJvYm90IHVzZXJzIHRoYXQgcnVuIEphdmFTY3JpcHQuCiAqLwogaWYgKCJBQkxpbmNvbG4iIGluIHdpbmRvdykgewogKGZ1bmN0aW9uICgpIHsKICAgfSkoKTsKIH0KCiAgdmFyIF9leHRlbmQgPSBmdW5jdGlvbigpe2Zvcih2YXIgcj1hcmd1bWVudHNbMF0sbj0xLGU9YXJndW1lbnRzLmxlbmd0aDtlPm47bisrKXt2YXIgdD1hcmd1bWVudHNbbl07Zm9yKHZhciBhIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShhKSYmKHJbYV09dFthXSl9cmV0dXJuIHJ9OwoKICB2YXIgQ1NTX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL3N0eWxlcy9jc3Nfb3B0LycsCiBKU19ESVIgPSAnaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvJywKIElNQUdFX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL2ltYWdlc192Ni8nLAogU1ZHX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL3N2Zy8nLAogIEJVSUxEX0hBU0ggPSAnNzI0NTQnOwoKICB2YXIgdmltZW8gPSBfZXh0ZW5kKCh3aW5kb3cudmltZW8gfHwge30pLCB7ImFwcF92ZXJzaW9uIjoidjYiLCJkb21haW4iOiJ2aW1lby5jb20iLCJ1cmwiOiJ2aW1lby5jb20iLCJjdXJfdXNlciI6ZmFsc2UsImlzX21vYmlsZSI6ZmFsc2V9KTsKIHZpbWVvLmNvbmZpZyA9IF9leHRlbmQoKHZpbWVvLmNvbmZpZyB8fCB7fSksIHsibG9jYWxlIjoiZW4ifSk7CgogIHZhciBsb2NhbGVDb25maWcgPSB7CiBsYW5nOiAnZW4nLAogJ0RhdGUnOiB7CiBtb250aHM6IFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSwKIG1vbnRoc19hYmJyOiBbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLAogZGF5czogWyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLAogZGF5c19hYmJyOiBbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLAoKIC8vIEN1bHR1cmUncyBkYXRlIG9yZGVyOiBNTS9ERC9ZWVlZCiBkYXRlT3JkZXI6IFsnZGF0ZScsICdtb250aCcsICd5ZWFyJ10sCiBzaG9ydERhdGU6ICclZC8lbS8lWScsCiBzaG9ydFRpbWU6ICclSTolTSVwJywKIEFNOiAnQU0nLAogUE06ICdQTScsCiBmaXJzdERheU9mV2VlazogMCwKCiAvLyBEYXRlLkV4dHJhcwogb3JkaW5hbDogZnVuY3Rpb24oZGF5T2ZNb250aCl7CiByZXR1cm4gZGF5T2ZNb250aDsKIH0KIH0sCiAnRGF0ZVBpY2tlcic6IHsKIHNlbGVjdF9hX3RpbWU6ICJTZWxlY3QgYSB0aW1lIiwKIHVzZV9tb3VzZV93aGVlbDogIlVzZSB0aGUgbW91c2Ugd2hlZWwgdG8gcXVpY2tseSBjaGFuZ2UgdmFsdWUiLAogdGltZV9jb25maXJtX2J1dHRvbjogIk9LIiwKIGFwcGx5X3JhbmdlOiAiQXBwbHkiLAogY2FuY2VsOiAiQ2FuY2VsIiwKIHdlZWs6ICJXayIgfSwKICAnTnVtYmVyJzogewogZGVjaW1hbDogJy4nLAogZ3JvdXA6ICcsJywKIGN1cnJlbmN5OiB7CiBwcmVmaXg6ICckJwogfQogfSwKICdGb3JtVmFsaWRhdG9yJzogeyJyZXF1aXJlZCI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIiwicmVxdWlyZWRDaGsiOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9IH07CgogdmFyIGZ1bGxMb2NhbGUgPSAnJzsKCiAKICB2YXIgQ29weSA9IHt0cmFuc2xhdGU6ZnVuY3Rpb24odCxpLHUpe3ZhciBlPSdvYmplY3QnIT10eXBlb2YgdGhpcy5kaWN0W3RdP3RoaXMuZGljdFt0XTppP3RoaXMuZGljdFt0XS5wbHVyYWw6dGhpcy5kaWN0W3RdLnNpbmd1bGFyO3JldHVybidvYmplY3QnPT10eXBlb2YgdSYmKGU9dGhpcy5zdWJzdGl0dXRlKGUsdSkpLGV9LHN1YnN0aXR1dGU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gdm9pZCAwIT09dC5zdWJzdGl0dXRlP3Quc3Vic3RpdHV0ZShpKTp0LnJlcGxhY2UoL1xcP1x7KFtee31dKylcfS9nLGZ1bmN0aW9uKHQsdSl7cmV0dXJuJ1xcJz09dC5jaGFyQXQoMCk/dC5zbGljZSgxKTpudWxsIT1pW3VdP2lbdV06Jyd9KX0sZGljdDp7fX07CiBDb3B5LmRpY3QgPSB7ImRpZF95b3VfbWVhbl9lbWFpbCI6IkRpZCB5b3UgbWVhbiA8ZW0+e1NVR0dFU1R9PFwvZW0+PyIsImVtYWlsX3Bhc3N3b3JkX21pc21hdGNoIjoiRW1haWwgYW5kIHBhc3N3b3JkIGRvIG5vdCBtYXRjaCIsImp1c3Rfbm93IjoianVzdCBub3ciLCJzZWNvbmRzX2FnbyI6eyJzaW5ndWxhciI6IntDT1VOVH0gc2Vjb25kIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gc2Vjb25kcyBhZ28ifSwibWludXRlc19hZ28iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IG1pbnV0ZSBhZ28iLCJwbHVyYWwiOiJ7Q09VTlR9IG1pbnV0ZXMgYWdvIn0sImhvdXJzX2FnbyI6eyJzaW5ndWxhciI6IntDT1VOVH0gaG91ciBhZ28iLCJwbHVyYWwiOiJ7Q09VTlR9IGhvdXJzIGFnbyJ9LCJvcGVuX2NvbW1lbnRfYm94IjoiQWRkIG5ldyBjb21tZW50IGluc3RlYWQgJnJhcXVvOyIsInVybF91bmF2YWlsYWJsZSI6IlNvcnJ5LCB0aGlzIHVybCBpcyB1bmF2YWlsYWJsZS4iLCJ1bnNhdmVkX2NoYW5nZXNfZ2VuZXJpYyI6IllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcywgYXJlIHlvdSBzdXJlIHlvdSB3aXNoIHRvIGxlYXZlPyIsImFkZCI6IkFkZCIsInJlbW92ZSI6IlJlbW92ZSIsInNlbGVjdCI6IlNlbGVjdCIsIm5vX2ZvbGxvd2Vyc19mb3JfbGV0dGVyIjoiWW91IGRvbiZyc3F1bzt0IGZvbGxvdyBhbnlvbmUgdGhhdCBiZWdpbiB3aXRoIHRoZSBsZXR0ZXIgJmxkcXVvO3tQQUdFX0xFVFRFUn0mcmRxdW87Iiwic2hhcmVfbGltaXRfcmVhY2hlZCI6IllvdSBoYXZlIHJlYWNoZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzIHRvIHNoYXJlIHdpdGguIiwiYXRfbGVhc3Rfb25lIjoiVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgdXNlci4iLCJhdmFpbGFibGUiOiJBdmFpbGFibGUiLCJ1bmF2YWlsYWJsZSI6IlVuYXZhaWxhYmxlIiwiYnJvd3NlX2Vycm9yX2dlbmVyaWMiOiJTb3JyeSwgdGhlcmUgd2FzIGFuIGVycm9yIiwiYnJvd3NlX2Vycm9yX25vX3ZpZGVvcyI6IlNvcnJ5LCBubyB2aWRlb3MgZm91bmQiLCJmb2xsb3ciOiJGb2xsb3ciLCJmb2xsb3dpbmciOiJGb2xsb3dpbmciLCJ1bmZvbGxvdyI6IlVuZm9sbG93IiwidW5mb2xsb3dpbmciOiJVbmZvbGxvd2luZyIsImNvdW50X2NvbW1lbnRzIjp7InNpbmd1bGFyIjoie0NPVU5UfSBjb21tZW50IiwicGx1cmFsIjoie0NPVU5UfSBjb21tZW50cyJ9LCJmaXJzdF9jb21tZW50IjoiQmUgdGhlIGZpcnN0IHRvIGNvbW1lbnRcdTIwMjYiLCJub19jb21tZW50c19mb3JfeW91IjoiRm9yYmlkZGVuLiBZb3UgY2Fubm90IHBvc3QgY29tbWVudHMgb24gdGhpcyBwYWdlLiIsIm9vcHMiOiJPb3BzISIsInBsYXllcl90cnlfYWdhaW4iOiJUaGF0IHdhc24ndCBzdXBwb3NlZCB0byBoYXBwZW4uIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4iLCJkdXJhdGlvbl9pbnB1dF9taW5fZHVyYXRpb24iOiJUaGUgZHVyYXRpb24gY2Fubm90IGJlIGxlc3MgdGhhbiB7TUlOX0RVUkFUSU9OfS4iLCJkdXJhdGlvbl9pbnB1dF9tYXhfZHVyYXRpb24iOiJUaGUgZHVyYXRpb24gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB7TUFYX0RVUkFUSU9OfS4iLCJkdXJhdGlvbl9pbnB1dF9pbnZhbGlkX2NoYXJhY3RlcnMiOiIwLTkgYW5kIDogYXJlIHRoZSBvbmx5IGFjY2VwdGFibGUgaW5wdXRzLiIsImNsb3NlIjoiQ2xvc2UiLCJleHBhbmQiOiJFeHBhbmQiLCJsb2FkaW5nIjoiTG9hZGluZy4uLiIsInRvcCI6InRvcCIsImFkdmFuY2VkX3NlYXJjaCI6IkFkdmFuY2VkIFNlYXJjaCIsIm5vX3N1Z2dlc3Rpb25zIjoiTm8gc3VnZ2VzdGlvbnMiLCJyZWNlbnRfc2VhcmNoZXMiOiJSZWNlbnQgU2VhcmNoZXMiLCJzZWFyY2hfYWxsIjoiU2VhcmNoIEFsbCBvZiBWaW1lbyIsImVtYWlsX2FuZF9wYXNzd29yZCI6IlBsZWFzZSBlbnRlciB5b3VyIGVtYWlsIGFuZCBwYXNzd29yZCIsImVtYWlsX2FkZHJlc3MiOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIiwibmFtZV9lbWFpbF9hbmRfcGFzc3dvcmQiOiJQbGVhc2UgZW50ZXIgeW91ciBuYW1lLCBlbWFpbCwgYW5kIHBhc3N3b3JkIiwiQWN0aXZpdHkiOiJBY3Rpdml0eSIsIkZvbGxvdyI6IkZvbGxvdyIsIkZvbGxvd2luZyI6IkZvbGxvd2luZyIsIkxvYWRpbmciOiJMb2FkaW5nIiwiTm8gYWN0aXZpdHkgaW4gdGhlIHBhc3QgMzAgZGF5cyI6Ik5vIGFjdGl2aXR5IGluIHRoZSBwYXN0IDMwIGRheXMiLCJTZWUgYWxsIjoiU2VlIGFsbCIsIlVuZm9sbG93IjoiVW5mb2xsb3ciLCJWaWV3IG1lc3NhZ2UiOiJWaWV3IG1lc3NhZ2UiLCJXZSdsbCBhbGVydCB5b3Ugb25jZSBzb21ldGhpbmcgY29vbCBoYXBwZW5zLiI6IldlJ2xsIGFsZXJ0IHlvdSBvbmNlIHNvbWV0aGluZyBjb29sIGhhcHBlbnMuIn07Cjwvc2NyaXB0PgoKCiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvcmVhY3RfcHJvZF9jb21iaW5lZC5taW4uanM/YjZlZTdhNGUiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L2V4Y2VwdGlvbl9jb21iaW5lZC5taW4uanM/MGM3YWFlODQiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L2FjdGl2aXR5X3RvcG5hdl9jb21iaW5lZC5taW4uanM/NTM5YjZjODMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L21vZHVsZXMvZ2xvYmFsL2FibGluY29sbi9ob3N0X3ZpZGVvcy5taW4uanM/NjVkYzQ1MWEiPjwvc2NyaXB0PgoKIDxzY3JpcHQgYXN5bmMgc3JjPSIvL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9R1RNLVJCS0smbD1fZ3RtIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBvblZpbWVvRG9tUmVhZHkoZSkgewogICAKIChmdW5jdGlvbigpIHsKIGlmICh0eXBlb2YgdmltZW8gIT09ICd1bmRlZmluZWQnICYmIHZpbWVvLmN1cl91c2VyKSB7CiB2aW1lby5jb25maWcuYXBpID0ge307CiB2aW1lby5jb25maWcuYXBpLnVybCA9ICdhcGkudmltZW8uY29tJzsKIHZpbWVvLmNvbmZpZy5hcGkuand0ID0gICdleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKMElqb3hPVFE1TXpNMk9URXNJbVY0Y0NJNk1UUTVNRGN6TkRnMk9IMC5wSkNfT1VZR1lxejhDRUU3bVpKRnNqSUFIRldueEZXak52cVdIUkdQN0t3JzsKIHZpbWVvLmNvbmZpZy5hcGkudmVyc2lvbiA9ICczLjMnOwogfQogfSgpKTsKCiB3aW5kb3cudmltZW8gPSB3aW5kb3cudmltZW8gfHwge307CiB3aW5kb3cudmltZW8uZXhjZXB0aW9uX2RhdGEgPSB7InRpdGxlIjoiU29ycnksIHdlIGNvdWxkblx1MjAxOXQgZmluZCB0aGF0IHBhZ2UiLCJtZXNzYWdlIjoiIiwibm90aWZpY2F0aW9uIjoiPGRpdiBjbGFzcz1cImV4Y2VwdGlvbl9ub3RpZmljYXRpb24gaXJpc19ub3RpZmljYXRpb24gaXJpc19ub3RpZmljYXRpb24tLXVwc2VsbFwiPlxuIDxkaXYgY2xhc3M9XCJpcmlzX25vdGlmaWNhdGlvbi0tdXBzZWxsLWljb25cIj5cbiA8c3BhbiBjbGFzcz1cImlyaXNfaWMgaXMtLTE2XCI+PHN2ZyB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj48cGF0aCBkPVwiTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTcgNGgydjJIN1Y0em0wIDNoMnY1SDdWN3pcIlwvPjxcL3N2Zz48XC9zcGFuPlxuIDxcL2Rpdj5cblxuIDxkaXYgY2xhc3M9XCJpcmlzX25vdGlmaWNhdGlvbi1oZWFkZXJcIj5cbiA8c3Ryb25nPlJlYXNvbnMgeW91IG1pZ2h0IGJlIHNlZWluZyB0aGlzIHBhZ2U8XC9zdHJvbmc+XG4gPFwvZGl2PlxuXG4gPHVsIGNsYXNzPVwiaXJpc19ub3RpZmljYXRpb24tbGlzdFwiPlxuICA8bGk+SXQgZXhpc3RzLCBidXQgeW91IGRvblx1MjAxOXQgaGF2ZSBwZXJtaXNzaW9uIHRvIHNlZSBpdCwgb3IgeW91IG5lZWQgdG8gPGEgb25jbGljaz1cInZpbWVvLlNlc3Npb24uY3JlYXRlKClcIj5sb2cgaW48XC9hPi48XC9saT5cbiAgPGxpPk5vdGhpbmcgaGFzIGV2ZXIgZXhpc3RlZCBoZXJlLiBTcG9va3kuPFwvbGk+XG4gPGxpPlNvbWV0aGluZyBvbmNlIGxpdmVkIGhlcmUsIGJ1dCBoYXMgYmVlbiBkZWxldGVkLjxcL2xpPlxuIDxcL3VsPlxuPFwvZGl2PlxuIiwic2VhcmNoIjp0cnVlLCJ2aWRlb3MiOlt7InNldHRpbmdzIjp7InRpdGxlIjp7InRleHQiOiJEaXNjb3ZlciB2aWRlb3MgZnJvbSB0aGUgd29ybGRcdTIwMTlzIGJlc3QgY3JlYXRvcnMiLCJzaG9ydF90ZXh0IjoiRGlzY292ZXIgYW1hemluZyB2aWRlb3MifSwidmlkZW9zIjpbeyJjbGlwX2lkIjoyMTAyMTE4MDAsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU5OTMzMjNfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU5OTMzMjNfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU5OTMzMjNfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1OTkzMzIzXzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJNT1RIRVIgLSBtb3RoZXIifSwidXBsb2FkZWRfb24iOiIxNCBob3VycyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjE4NiwiZm9ybWF0dGVkIjoiMDM6MDYifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjE0LCJmb3JtYXR0ZWQiOiIxNCJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjE1OCwiZm9ybWF0dGVkIjoiMTU4In0sInRvdGFsX3BsYXlzIjp7InJhdyI6MCwiZm9ybWF0dGVkIjoiMCJ9fSwidGl0bGUiOiJNT1RIRVIiLCJ1cmwiOiJcLzIxMDIxMTgwMCIsInVzZXIiOnsiaWQiOjIyNjUyMTksIm5hbWUiOiJNb3JnYW4gSm91cXVhbmQiLCJ1cmwiOiJcL21vcmdhbmpvdXF1YW5kIiwiYWNjb3VudF90eXBlIjoicGx1cyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjQzODU3Ml8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjQzODU3Ml8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjQzODU3Ml82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjQzODU3Ml8xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsiY2xpcF9pZCI6MjA3NzYzMjUzLCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIyOTQwNDg3XzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIyOTQwNDg3Xzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIyOTQwNDg3XzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMjk0MDQ4N18zMTIweDE3NTYuanBnIiwiYWx0IjoiVGhlIEJpcnRoIE9mIEEgRHVnb3V0IENhbm9lIGJ5IE5vcnRobWVuIC0gd29vZCBjYXJ2aW5nIn0sInVwbG9hZGVkX29uIjoiMiB3ZWVrcyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjExMjQsImZvcm1hdHRlZCI6IjE4OjQ0In0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3IjoxNCwiZm9ybWF0dGVkIjoiMTQifSwidG90YWxfbGlrZXMiOnsicmF3IjoyMDQsImZvcm1hdHRlZCI6IjIwNCJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjM1ODYsImZvcm1hdHRlZCI6IjM1ODYifX0sInRpdGxlIjoiVGhlIEJpcnRoIE9mIEEgRHVnb3V0IENhbm9lIGJ5IE5vcnRobWVuIiwidXJsIjoiXC8yMDc3NjMyNTMiLCJ1c2VyIjp7ImlkIjoxMDU2NTYwNSwibmFtZSI6Ik5vcnRobWVuIiwidXJsIjoiXC9ub3J0aG1lbiIsImFjY291bnRfdHlwZSI6InBybyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzcyMDU4OF8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzcyMDU4OF8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzcyMDU4OF82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzcyMDU4OF8xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsiY2xpcF9pZCI6MjA0Nzc2NjM2LCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjE5MzY4OTYzXzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjE5MzY4OTYzXzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjE5MzY4OTYzXzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYxOTM2ODk2M18zMTIweDE3NTYuanBnIiwiYWx0IjoiTmFjaHRoZXhlbiAtIE5pZ2h0IFdpdGNoZXMifSwidXBsb2FkZWRfb24iOiIxIG1vbnRoIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6NDkyLCJmb3JtYXR0ZWQiOiIwODoxMiJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6MTEsImZvcm1hdHRlZCI6IjExIn0sInRvdGFsX2xpa2VzIjp7InJhdyI6MjIwLCJmb3JtYXR0ZWQiOiIyMjAifSwidG90YWxfcGxheXMiOnsicmF3Ijo2ODAzLCJmb3JtYXR0ZWQiOiI2ODAzIn19LCJ0aXRsZSI6Ik5hY2h0aGV4ZW4iLCJ1cmwiOiJcLzIwNDc3NjYzNiIsInVzZXIiOnsiaWQiOjMxOTQzMjQsIm5hbWUiOiJUaGUgQW5pbWF0aW9uIFdvcmtzaG9wIiwidXJsIjoiXC90aGVhbmltYXRpb253b3Jrc2hvcCIsImFjY291bnRfdHlwZSI6InBsdXMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY2NTM1MjNfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY2NTM1MjNfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY2NTM1MjNfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTY2NTM1MjNfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7ImNsaXBfaWQiOjE3MTc0NjM4MSwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzU3NzI5MjIwMV8zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzU3NzI5MjIwMV83ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzU3NzI5MjIwMV8xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC81NzcyOTIyMDFfMzEyMHgxNzU2LmpwZyIsImFsdCI6IkJheWEgLSBHYXRlIDIxMiBcLyBHaW1tZSBUaGF0IERpdmUgLSBpc2F3am9obmZpcnN0In0sInVwbG9hZGVkX29uIjoiOSBtb250aHMgYWdvIiwiZHVyYXRpb24iOnsicmF3IjozNjEsImZvcm1hdHRlZCI6IjA2OjAxIn0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3IjoxOSwiZm9ybWF0dGVkIjoiMTkifSwidG90YWxfbGlrZXMiOnsicmF3Ijo1MzIsImZvcm1hdHRlZCI6IjUzMiJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjYyMTksImZvcm1hdHRlZCI6IjYyMTkifX0sInRpdGxlIjoiQmF5YSAtIEdhdGUgMjEyIFwvIEdpbW1lIFRoYXQgRGl2ZSIsInVybCI6IlwvMTcxNzQ2MzgxIiwidXNlciI6eyJpZCI6MzMzODcwNywibmFtZSI6IkpvaG4gQ2hyaXN0aWFuIEZlcm5lciBBcGFsbmVzIiwidXJsIjoiXC9pc2F3am9obmZpcnN0IiwiYWNjb3VudF90eXBlIjoicGx1cyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83NzkwNTQ5XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzc3OTA1NDlfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzc5MDU0OV82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83NzkwNTQ5XzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX1dfX0seyJzZXR0aW5ncyI6eyJ0aXRsZSI6eyJ0ZXh0IjoiUHVyY2hhc2UgaGlnaC1xdWFsaXR5IGZpbG1zIGFuZCBzZXJpZXMiLCJzaG9ydF90ZXh0IjoiUHVyY2hhc2UgZmlsbXMgYW5kIHNlcmllcyJ9LCJ2aWRlb3MiOlt7InZvZF9pZCI6MTAzNzAxLCJ0cmFpbGVyX2lkIjoxNzY5NTQzNzIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0NjY3NzhfMzkweDIxOS5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0NjY3NzhfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0NjY3NzhfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDY2Nzc4XzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJDb21lIERvd24gTW9sbHkgLSB0cmliZWNhIGZpbG0gZmVzdGl2YWwifSwidXBsb2FkZWRfb24iOiI0IGRheXMgYWdvIiwiZHVyYXRpb24iOnsicmF3Ijo0ODM3LCJmb3JtYXR0ZWQiOiIwMToyMDozNyJ9LCJ0aXRsZSI6IkNvbWUgRG93biBNb2xseSIsInVybCI6Ilwvb25kZW1hbmRcL2NvbWVkb3dubW9sbHkiLCJ1c2VyIjp7ImlkIjoxMjI5MzUwLCJuYW1lIjoiRmFjdG9yeSAyNSIsInVybCI6IlwvZmFjdG9yeTI1IiwiYWNjb3VudF90eXBlIjoicHJvIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzEyOHgxMjguanBnIn19LCJwcmljZSI6IiQ0LjI1IiwiYXV0b3BsYXkiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7InZvZF9pZCI6MTAzNzM0LCJ0cmFpbGVyX2lkIjoyMDU0MjI3MDUsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MjQyNDNfMzkweDIxOS5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MjQyNDNfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MjQyNDNfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDI0MjQzXzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJCbG9vbWluIE11ZCBTaHVmZmxlIC0gSmFtZXMgUmFuc29uZSJ9LCJ1cGxvYWRlZF9vbiI6IjQgZGF5cyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjQ1MTAsImZvcm1hdHRlZCI6IjAxOjE1OjEwIn0sInRpdGxlIjoiQmxvb21pbiBNdWQgU2h1ZmZsZSIsInVybCI6Ilwvb25kZW1hbmRcL2Jsb29taW5tdWRzaHVmZmxlIiwidXNlciI6eyJpZCI6MTIyOTM1MCwibmFtZSI6IkZhY3RvcnkgMjUiLCJ1cmwiOiJcL2ZhY3RvcnkyNSIsImFjY291bnRfdHlwZSI6InBybyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xODAwNV8xMjh4MTI4LmpwZyJ9fSwicHJpY2UiOiIkNC4yNSIsImF1dG9wbGF5IjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJ2b2RfaWQiOjEwMzc0NywidHJhaWxlcl9pZCI6MjA3Njg2MTQ0LCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDMzMjk0XzM5MHgyMTkuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDMzMjk0Xzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDMzMjk0XzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQzMzI5NF8zMTIweDE3NTYuanBnIiwiYWx0IjoiVGhleSBMb29rIExpa2UgUGVvcGxlIC0gcGVvcGxlIn0sInVwbG9hZGVkX29uIjoiNCBkYXlzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6NDc3MSwiZm9ybWF0dGVkIjoiMDE6MTk6MzEifSwidGl0bGUiOiJUaGV5IExvb2sgTGlrZSBQZW9wbGUiLCJ1cmwiOiJcL29uZGVtYW5kXC90aGV5bG9va2xpa2VwZW9wbGUiLCJ1c2VyIjp7ImlkIjo0NTk1MDYyLCJuYW1lIjoiR3Jhdml0YXMgVmVudHVyZXMiLCJ1cmwiOiJcL2dyYXZpdGFzdmVudHVyZXMiLCJhY2NvdW50X3R5cGUiOiJidXNpbmVzcyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83MTEzMTY3XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzcxMTMxNjdfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzExMzE2N182NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83MTEzMTY3XzEyOHgxMjguanBnIn19LCJwcmljZSI6IiQzLjk5IiwiYXV0b3BsYXkiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7InZvZF9pZCI6MTAyOTUyLCJ0cmFpbGVyX2lkIjoyMDc4NzM0MzksInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZvZF9wYWdlX3RodW1ibmFpbFwvMjQ4NzhfMzkweDIxOSIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdm9kX3BhZ2VfdGh1bWJuYWlsXC8yNDg3OF83ODB4NDM5Iiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92b2RfcGFnZV90aHVtYm5haWxcLzI0ODc4XzE1NjB4ODc4Iiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92b2RfcGFnZV90aHVtYm5haWxcLzI0ODc4XzMxMjB4MTc1NSIsImFsdCI6Ik1FTU9SWSJ9LCJ1cGxvYWRlZF9vbiI6IjUgZGF5cyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjUzNjcsImZvcm1hdHRlZCI6IjAxOjI5OjI3In0sInRpdGxlIjoiTUVNT1JZIHByZXNlbnRzOiBQcm9ncmFtIE5vLiAyIiwidXJsIjoiXC9vbmRlbWFuZFwvcHJvZ3JhbTIiLCJ1c2VyIjp7ImlkIjozMDQzMzU0MCwibmFtZSI6Ik1FTU9SWSIsInVybCI6IlwvbWVtb3J5aXMiLCJhY2NvdW50X3R5cGUiOiJwcm8iLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTU1ODU3NDNfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTU1ODU3NDNfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTU1ODU3NDNfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTU1ODU3NDNfMTI4eDEyOC5qcGcifX0sInByaWNlIjoiJDguOTkiLCJhdXRvcGxheSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9XX19LHsic2V0dGluZ3MiOnsidGl0bGUiOnsidGV4dCI6IldhdGNoIGh1bWFuLWN1cmF0ZWQgU3RhZmYgUGlja3MiLCJzaG9ydF90ZXh0IjoiV2F0Y2ggU3RhZmYgUGlja3MifSwidmlkZW9zIjpbeyJjbGlwX2lkIjoyMDkyNTc1NjQsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU3NzgyNDdfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU3NzgyNDdfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU3NzgyNDdfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1Nzc4MjQ3XzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJFbHV2aXVtIC0gUmVnZW5lcmF0aXZlIEJlaW5nIChPZmZpY2lhbCBWaWRlbykgLSBFbHV2aXVtIn0sInVwbG9hZGVkX29uIjoiMSB3ZWVrIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6NDQxLCJmb3JtYXR0ZWQiOiIwNzoyMSJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6NywiZm9ybWF0dGVkIjoiNyJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjE0NiwiZm9ybWF0dGVkIjoiMTQ2In0sInRvdGFsX3BsYXlzIjp7InJhdyI6Mjk4MywiZm9ybWF0dGVkIjoiMjk4MyJ9fSwidGl0bGUiOiJFbHV2aXVtIC0gUmVnZW5lcmF0aXZlIEJlaW5nIChPZmZpY2lhbCBWaWRlbykiLCJ1cmwiOiJcLzIwOTI1NzU2NCIsInVzZXIiOnsiaWQiOjEyODgxMDA4LCJuYW1lIjoiU3RhcyBTYW50aW1vdiIsInVybCI6Ilwvc2FudGltb3YiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzg4NDkxNDlfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvODg0OTE0OV8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC84ODQ5MTQ5XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzg4NDkxNDlfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7ImNsaXBfaWQiOjIwOTY5NDMwMCwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTMwMzc2Nl8zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTMwMzc2Nl83ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTMwMzc2Nl8xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjUzMDM3NjZfMzEyMHgxNzU2LmpwZyIsImFsdCI6IkJ1bGxkb3plciAtIG5vd25lc3MifSwidXBsb2FkZWRfb24iOiI0IGRheXMgYWdvIiwiZHVyYXRpb24iOnsicmF3IjoyNjYsImZvcm1hdHRlZCI6IjA0OjI2In0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3IjoyNSwiZm9ybWF0dGVkIjoiMjUifSwidG90YWxfbGlrZXMiOnsicmF3IjoyNjIsImZvcm1hdHRlZCI6IjI2MiJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjU5OTcsImZvcm1hdHRlZCI6IjU5OTcifX0sInRpdGxlIjoiQnVsbGRvemVyIiwidXJsIjoiXC8yMDk2OTQzMDAiLCJ1c2VyIjp7ImlkIjoxMDk5MDgyLCJuYW1lIjoiSXRzYm9uZ29ib3kiLCJ1cmwiOiJcL2l0c2JvbmdvYm95IiwiYWNjb3VudF90eXBlIjoicGx1cyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjE4NTAxN18xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjE4NTAxN18zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjE4NTAxN182NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjE4NTAxN18xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsiY2xpcF9pZCI6MjA4NDY0OTY2LCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIzNzg5OTM3XzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIzNzg5OTM3Xzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIzNzg5OTM3XzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyMzc4OTkzN18zMTIweDE3NTYuanBnIiwiYWx0IjoiVG9tIE1jQ2FydGVuIn0sInVwbG9hZGVkX29uIjoiMiB3ZWVrcyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjIzOCwiZm9ybWF0dGVkIjoiMDM6NTgifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjM5LCJmb3JtYXR0ZWQiOiIzOSJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjIwNTEsImZvcm1hdHRlZCI6IjIwNTEifSwidG90YWxfcGxheXMiOnsicmF3IjoxMzIzMzgsImZvcm1hdHRlZCI6IjEzMksifX0sInRpdGxlIjoiU3BhY2UgU2V4IGlzIFNlcmlvdXMgQnVzaW5lc3MiLCJ1cmwiOiJcLzIwODQ2NDk2NiIsInVzZXIiOnsiaWQiOjI0NzEwOTQsIm5hbWUiOiJUb20gTWNDYXJ0ZW4iLCJ1cmwiOiJcL21jY2FydGVuIiwiYWNjb3VudF90eXBlIjoiYmFzaWMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3ODc2ODVfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3ODc2ODVfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3ODc2ODVfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTc3ODc2ODVfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7ImNsaXBfaWQiOjIwNzUzNTMwMiwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNDQ3NjY2Ml8zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNDQ3NjY2Ml83ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNDQ3NjY2Ml8xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjQ0NzY2NjJfMzEyMHgxNzU2LmpwZyIsImFsdCI6IkJ5IFRoZSBOYW1lIG9mIEJvc3RvbiAtIGFuaW1hdGlvbiJ9LCJ1cGxvYWRlZF9vbiI6IjIgd2Vla3MgYWdvIiwiZHVyYXRpb24iOnsicmF3IjoxNDQsImZvcm1hdHRlZCI6IjAyOjI0In0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3IjoxMywiZm9ybWF0dGVkIjoiMTMifSwidG90YWxfbGlrZXMiOnsicmF3Ijo1NzcsImZvcm1hdHRlZCI6IjU3NyJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjExMzk5MCwiZm9ybWF0dGVkIjoiMTE0SyJ9fSwidGl0bGUiOiJCeSBUaGUgTmFtZSBvZiBCb3N0b24iLCJ1cmwiOiJcLzIwNzUzNTMwMiIsInVzZXIiOnsiaWQiOjkzMDc5MjMsIm5hbWUiOiJHcmFudCBLb2x0b24iLCJ1cmwiOiJcL2dyYW50a29sdG9uIiwiYWNjb3VudF90eXBlIjoicGx1cyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xMDE1MTcxMl8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xMDE1MTcxMl8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xMDE1MTcxMl82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xMDE1MTcxMl8xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9XX19XSwiYWRfY29uZmlnIjp7Im5ldHdvcmtfaWQiOiI1NDU0OTU0NCIsInVuaXRfbmFtZSI6ImVycm9ycGFnZSIsInNpemVzIjpbMzAwLDI1MF19LCJ3YXRjaF9sYXRlcl9jbGlwX2lkcyI6W119OwoKIG5ldyB3aW5kb3cuRXhjZXB0aW9uKCk7CiAgCiAKICB9CgogICQoZG9jdW1lbnQpLnJlYWR5KG9uVmltZW9Eb21SZWFkeSk7CiAgPC9zY3JpcHQ+CgoKIDwvYm9keT4KPC9odG1sPgo=
126
- http_version:
127
- recorded_at: Mon, 27 Mar 2017 21:01:08 GMT
128
- recorded_with: VCR 3.0.3