video_info 2.8.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/unit_test.yml +39 -0
  3. data/Guardfile +1 -1
  4. data/README.md +8 -21
  5. data/lib/video_info.rb +2 -3
  6. data/lib/video_info/provider.rb +3 -2
  7. data/lib/video_info/providers/vimeo_scraper.rb +12 -2
  8. data/lib/video_info/providers/youtube.rb +4 -0
  9. data/lib/video_info/providers/youtube_api.rb +1 -1
  10. data/lib/video_info/providers/youtube_scraper.rb +42 -25
  11. data/lib/video_info/providers/youtubeplaylist_api.rb +15 -1
  12. data/lib/video_info/version.rb +1 -1
  13. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_invalid_video_url/_available_/1_2_2_1_1.yml +26 -37
  14. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_valid_video/_available_/1_2_1_1_1.yml +26 -35
  15. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author/1_3_7_1.yml +31 -40
  16. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_thumbnail/1_3_9_1.yml +31 -40
  17. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_url/1_3_8_1.yml +31 -40
  18. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_date/should_show_correct_date.yml +31 -40
  19. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_description/1_3_10_1.yml +31 -40
  20. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_duration/1_3_12_1.yml +31 -40
  21. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_keywords/1_3_11_1.yml +31 -40
  22. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail/{1_3_19_1.yml → 1_3_21_1.yml} +31 -40
  23. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_large/1_3_18_1.yml +31 -40
  24. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_medium/1_3_17_1.yml +31 -40
  25. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_small/1_3_16_1.yml +31 -40
  26. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_title/1_3_6_1.yml +31 -40
  27. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_view_count/{1_3_20_1.yml → 1_3_22_1.yml} +31 -40
  28. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/1_2_3_1_1.yml +38 -37
  29. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/2_2_3_1_1.yml +28 -25
  30. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/1_2_2_1_1.yml +44 -41
  31. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/2_2_2_1_1.yml +26 -23
  32. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/1_2_1_1_1.yml +46 -38
  33. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/2_2_1_1_1.yml +24 -23
  34. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author/1_13_2_1.yml +33 -31
  35. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_thumbnail/1_13_3_1.yml +33 -31
  36. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_url/1_13_4_1.yml +32 -28
  37. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/available_/1_13_1_1.yml +33 -31
  38. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/date/1_13_7_1.yml +34 -34
  39. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/description/1_13_6_1.yml +33 -30
  40. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/duration/1_13_8_1.yml +34 -32
  41. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/height/1_13_10_1.yml +33 -30
  42. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/keywords/1_13_9_1.yml +34 -34
  43. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_large/1_13_14_1.yml +34 -33
  44. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_medium/1_13_13_1.yml +34 -33
  45. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_small/1_13_12_1.yml +34 -33
  46. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/title/1_13_5_1.yml +33 -31
  47. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/view_count/1_13_15_1.yml +34 -33
  48. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/width/1_13_11_1.yml +34 -33
  49. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_20_1.yml +158 -0
  50. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_20_1.yml +80 -0
  51. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_19_1.yml +158 -0
  52. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_19_1.yml +85 -0
  53. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_21_1.yml +159 -0
  54. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_21_1.yml +80 -0
  55. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_date/should_have_correct_upload_date.yml +82 -68
  56. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/1_3_7_1.yml +44 -34
  57. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/2_3_7_1.yml +36 -35
  58. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/1_3_9_1.yml +45 -37
  59. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/2_3_9_1.yml +39 -33
  60. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/1_3_11_1.yml +46 -38
  61. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/2_3_11_1.yml +36 -35
  62. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_keywords/should_return_a_string_list_of_keywords.yml +85 -71
  63. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_18_1.yml +236 -0
  64. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_18_1.yml +82 -0
  65. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/1_3_15_1.yml +67 -53
  66. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/2_3_15_1.yml +37 -34
  67. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/1_3_14_1.yml +67 -54
  68. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/2_3_14_1.yml +37 -32
  69. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/1_3_13_1.yml +67 -53
  70. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/2_3_13_1.yml +37 -32
  71. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/1_3_6_1.yml +45 -36
  72. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/2_3_6_1.yml +39 -33
  73. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_22_1.yml +158 -0
  74. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_22_1.yml +84 -0
  75. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/1_3_10_1.yml +46 -40
  76. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/2_3_10_1.yml +37 -34
  77. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail/1_12_1_1.yml +234 -0
  78. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail/2_12_1_1.yml +78 -0
  79. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_large/1_12_2_1.yml +233 -0
  80. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_large/2_12_2_1.yml +78 -0
  81. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_medium/1_12_3_1.yml +235 -0
  82. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_medium/2_12_3_1.yml +73 -0
  83. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_small/1_12_4_1.yml +234 -0
  84. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_small/2_12_4_1.yml +77 -0
  85. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_invalid_video/_available_/1_2_2_1_1.yml +25 -17
  86. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_valid_video/_available_/1_2_1_1_1.yml +28 -18
  87. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_duration/1_4_7_1.yml +33 -25
  88. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_height/1_4_9_1.yml +33 -25
  89. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_large/1_4_12_1.yml +33 -24
  90. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_medium/1_4_11_1.yml +34 -25
  91. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_small/1_4_10_1.yml +33 -25
  92. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_title/1_4_6_1.yml +33 -24
  93. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_width/1_4_8_1.yml +33 -24
  94. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_duration/1_3_7_1.yml +33 -25
  95. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_height/1_3_9_1.yml +33 -23
  96. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail/{1_3_13_1.yml → 1_3_15_1.yml} +33 -23
  97. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_large/1_3_12_1.yml +33 -23
  98. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_medium/1_3_11_1.yml +33 -23
  99. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_small/1_3_10_1.yml +33 -25
  100. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_title/1_3_6_1.yml +33 -25
  101. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_width/1_3_8_1.yml +33 -23
  102. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_2_1_1.yml +20 -442
  103. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_2_1_1.yml +81 -21
  104. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_2_11_1.yml +24 -446
  105. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_2_11_1.yml +81 -21
  106. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_2_8_1.yml +25 -449
  107. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_2_8_1.yml +81 -21
  108. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_2_10_1.yml +24 -450
  109. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_2_10_1.yml +81 -21
  110. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_2_9_1.yml +23 -449
  111. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_2_9_1.yml +81 -21
  112. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_2_7_1.yml +24 -446
  113. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_2_7_1.yml +81 -21
  114. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_18_1.yml +59 -0
  115. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_18_1.yml +114 -0
  116. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/1_2_1_1_1.yml +23 -20
  117. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/2_2_1_1_1.yml +152 -90
  118. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_3_1_1.yml +23 -447
  119. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_3_1_1.yml +81 -21
  120. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_a_video_without_description/_description/1_1_1_1.yml +59 -0
  121. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_date/should_return_date_video_was_posted.yml +181 -110
  122. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/1_17_7_1.yml +22 -19
  123. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/2_17_7_1.yml +152 -90
  124. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/1_17_9_1.yml +23 -20
  125. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/2_17_9_1.yml +152 -90
  126. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/1_17_8_1.yml +23 -20
  127. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/2_17_8_1.yml +152 -90
  128. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/1_17_6_1.yml +20 -17
  129. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/2_17_6_1.yml +152 -90
  130. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_17_1.yml +59 -0
  131. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_17_1.yml +187 -0
  132. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/1_3_6_1.yml +74 -15
  133. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/2_3_6_1.yml +152 -90
  134. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/1_3_7_1.yml +74 -15
  135. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/2_3_7_1.yml +271 -144
  136. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/1_3_8_1.yml +21 -18
  137. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/2_3_8_1.yml +271 -144
  138. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/can_be_called_twice_and_receive_the_same_value.yml +391 -0
  139. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_date/should_return_date_video_was_posted.yml +173 -108
  140. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/1_3_10_1.yml +23 -19
  141. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/2_3_10_1.yml +152 -90
  142. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/1_3_12_1.yml +21 -18
  143. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/2_3_12_1.yml +152 -90
  144. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/1_3_11_1.yml +21 -18
  145. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/2_3_11_1.yml +152 -90
  146. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/1_3_9_1.yml +23 -20
  147. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/2_3_9_1.yml +152 -90
  148. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_21_1.yml +59 -0
  149. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_21_1.yml +187 -0
  150. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/1_2_2_1_1.yml +87 -27
  151. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/1_2_3_1_1.yml +120 -60
  152. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/1_2_1_1_1.yml +120 -60
  153. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_21_1.yml +165 -0
  154. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_22_1.yml +274 -0
  155. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_23_1.yml +274 -0
  156. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/1_3_7_1.yml +131 -71
  157. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/1_3_8_1.yml +131 -71
  158. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_18_1.yml +165 -0
  159. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/1_3_15_1.yml +131 -71
  160. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large_2x/1_3_16_1.yml +165 -0
  161. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_maxres/1_3_17_1.yml +165 -0
  162. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/1_3_14_1.yml +131 -71
  163. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/1_3_13_1.yml +131 -71
  164. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/1_3_6_1.yml +131 -71
  165. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_videos/returns_list_of_videos_in_playlist.yml +78 -231
  166. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/1_4_2_1.yml +81 -21
  167. data/spec/lib/video_info/providers/dailymotion_spec.rb +6 -6
  168. data/spec/lib/video_info/providers/vimeo_spec.rb +21 -21
  169. data/spec/lib/video_info/providers/wistia_spec.rb +6 -6
  170. data/spec/lib/video_info/providers/youtube_playlist_spec.rb +22 -28
  171. data/spec/lib/video_info/providers/youtube_scraper_spec.rb +4 -2
  172. data/spec/lib/video_info/providers/youtube_spec.rb +28 -26
  173. data/spec/lib/video_info_spec.rb +0 -4
  174. data/spec/spec_helper.rb +6 -1
  175. data/tmp/rspec_guard_result +25 -0
  176. data/video_info.gemspec +4 -4
  177. metadata +85 -215
  178. data/.travis.yml +0 -21
  179. data/lib/video_info/providers/vkontakte.rb +0 -208
  180. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_18_1.yml +0 -150
  181. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_18_1.yml +0 -79
  182. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_17_1.yml +0 -150
  183. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_17_1.yml +0 -79
  184. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_19_1.yml +0 -150
  185. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_19_1.yml +0 -79
  186. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_16_1.yml +0 -222
  187. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_16_1.yml +0 -79
  188. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_20_1.yml +0 -150
  189. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_20_1.yml +0 -79
  190. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/1_12_1_1.yml +0 -222
  191. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/2_12_1_1.yml +0 -75
  192. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/1_12_2_1.yml +0 -222
  193. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/2_12_2_1.yml +0 -75
  194. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/1_12_3_1.yml +0 -222
  195. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/2_12_3_1.yml +0 -75
  196. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/1_12_4_1.yml +0 -222
  197. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/2_12_4_1.yml +0 -75
  198. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_hashes/available_/1_2_6_1_1.yml +0 -86
  199. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_invalid_video/available_/1_2_2_1_1.yml +0 -50
  200. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_private_video/available_/1_2_3_1_1.yml +0 -132
  201. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect/available_/1_2_4_1_1.yml +0 -134
  202. 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
  203. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_valid_video/available_/1_2_1_1_1.yml +0 -87
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video-54799401_165822734/title/1_7_4_1.yml +0 -48
  221. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video3552522_171340713/embed_url/1_10_1_1.yml +0 -48
  222. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/description/1_6_8_1.yml +0 -48
  223. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/duration/1_6_10_1.yml +0 -48
  224. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_code/1_6_6_1.yml +0 -48
  225. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_url/1_6_5_1.yml +0 -48
  226. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/height/1_6_12_1.yml +0 -48
  227. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/title/1_6_7_1.yml +0 -48
  228. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/view_count/1_6_13_1.yml +0 -48
  229. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/width/1_6_11_1.yml +0 -48
  230. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author/1_4_5_1.yml +0 -48
  231. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_thumbnail/1_4_6_1.yml +0 -48
  232. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_url/1_4_7_1.yml +0 -48
  233. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/title/1_4_4_1.yml +0 -48
  234. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/1_2_2_1_1.yml +0 -1447
  235. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/2_2_2_1_1.yml +0 -156
  236. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_3_1_1.yml +0 -485
  237. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_3_1_1.yml +0 -54
  238. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_3_11_1.yml +0 -481
  239. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_3_11_1.yml +0 -54
  240. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_3_8_1.yml +0 -483
  241. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_3_8_1.yml +0 -54
  242. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_3_10_1.yml +0 -484
  243. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_3_10_1.yml +0 -54
  244. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_3_9_1.yml +0 -484
  245. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_3_9_1.yml +0 -54
  246. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_3_7_1.yml +0 -484
  247. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_3_7_1.yml +0 -54
  248. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_17_1.yml +0 -485
  249. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_3_17_1.yml +0 -485
  250. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_17_1.yml +0 -54
  251. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_3_17_1.yml +0 -54
  252. 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
  253. 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
  254. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_16_1.yml +0 -56
  255. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_16_1.yml +0 -125
  256. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_20_1.yml +0 -56
  257. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_20_1.yml +0 -125
  258. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/2_2_2_1_1.yml +0 -60
  259. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/2_2_3_1_1.yml +0 -94
  260. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/2_2_1_1_1.yml +0 -94
  261. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_19_1.yml +0 -105
  262. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/2_3_19_1.yml +0 -105
  263. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_20_1.yml +0 -189
  264. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/2_3_20_1.yml +0 -189
  265. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_21_1.yml +0 -189
  266. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/2_3_21_1.yml +0 -189
  267. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/2_3_7_1.yml +0 -105
  268. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/2_3_8_1.yml +0 -105
  269. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_16_1.yml +0 -105
  270. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/2_3_16_1.yml +0 -105
  271. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/2_3_15_1.yml +0 -105
  272. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/2_3_14_1.yml +0 -105
  273. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/2_3_13_1.yml +0 -105
  274. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/2_3_6_1.yml +0 -105
  275. 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
  276. data/spec/lib/video_info/providers/vkontakte_spec.rb +0 -236
@@ -1,150 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: head
5
- uri: https://vimeo.com/136971428
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: 200
17
- message: OK
18
- headers:
19
- Server:
20
- - nginx
21
- Content-Type:
22
- - text/html; charset=UTF-8
23
- Expires:
24
- - Mon, 27 Mar 2017 22:23:36 GMT
25
- X-Ua-Compatible:
26
- - IE=edge
27
- X-Xss-Protection:
28
- - 1; mode=block
29
- X-Content-Type-Options:
30
- - nosniff
31
- X-Frame-Options:
32
- - sameorigin
33
- Strict-Transport-Security:
34
- - max-age=15552000; includeSubDomains; preload
35
- Content-Security-Policy-Report-Only:
36
- - 'default-src https: data: blob: ''unsafe-inline'' ''unsafe-eval''; report-uri
37
- /_csp'
38
- Via:
39
- - 1.1 varnish
40
- - 1.1 varnish
41
- - 1.1 varnish
42
- Cache-Control:
43
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
44
- X-Varnish-Cache:
45
- - '1'
46
- X-Vserver:
47
- - dfvimeowebproxy4
48
- Fastly-Debug-Digest:
49
- - cea2dd45cda6c7f8b8db6116e3d4b4847f4eb4010957232b160811b44c7fa0bc
50
- Content-Length:
51
- - '69827'
52
- Accept-Ranges:
53
- - bytes
54
- Date:
55
- - Mon, 27 Mar 2017 21:00:55 GMT
56
- Age:
57
- - '0'
58
- Connection:
59
- - keep-alive
60
- X-Served-By:
61
- - cache-iad2136-IAD, cache-lax8646-LAX
62
- X-Cache:
63
- - MISS, MISS
64
- X-Cache-Hits:
65
- - 0, 0
66
- X-Timer:
67
- - S1490648455.396264,VS0,VE94
68
- Vary:
69
- - User-Agent,Accept-Encoding
70
- body:
71
- encoding: UTF-8
72
- string: ''
73
- http_version:
74
- recorded_at: Mon, 27 Mar 2017 21:00:55 GMT
75
- - request:
76
- method: get
77
- uri: https://vimeo.com/136971428
78
- body:
79
- encoding: US-ASCII
80
- string: ''
81
- headers:
82
- Accept-Encoding:
83
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
84
- Accept:
85
- - "*/*"
86
- User-Agent:
87
- - Ruby
88
- response:
89
- status:
90
- code: 200
91
- message: OK
92
- headers:
93
- Server:
94
- - nginx
95
- Content-Type:
96
- - text/html; charset=UTF-8
97
- Expires:
98
- - Mon, 27 Mar 2017 22:23:37 GMT
99
- X-Ua-Compatible:
100
- - IE=edge
101
- X-Xss-Protection:
102
- - 1; mode=block
103
- X-Content-Type-Options:
104
- - nosniff
105
- X-Frame-Options:
106
- - sameorigin
107
- Strict-Transport-Security:
108
- - max-age=15552000; includeSubDomains; preload
109
- Content-Security-Policy-Report-Only:
110
- - 'default-src https: data: blob: ''unsafe-inline'' ''unsafe-eval''; report-uri
111
- /_csp'
112
- Via:
113
- - 1.1 varnish
114
- - 1.1 varnish
115
- - 1.1 varnish
116
- Cache-Control:
117
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
118
- X-Varnish-Cache:
119
- - '1'
120
- X-Vserver:
121
- - dfvimeowebproxy4
122
- Fastly-Debug-Digest:
123
- - cea2dd45cda6c7f8b8db6116e3d4b4847f4eb4010957232b160811b44c7fa0bc
124
- Content-Length:
125
- - '19712'
126
- Accept-Ranges:
127
- - bytes
128
- Date:
129
- - Mon, 27 Mar 2017 21:00:55 GMT
130
- Age:
131
- - '0'
132
- Connection:
133
- - keep-alive
134
- X-Served-By:
135
- - cache-iad2127-IAD, cache-lax8627-LAX
136
- X-Cache:
137
- - MISS, MISS
138
- X-Cache-Hits:
139
- - 0, 0
140
- X-Timer:
141
- - S1490648455.519262,VS0,VE91
142
- Vary:
143
- - User-Agent,Accept-Encoding
144
- body:
145
- encoding: ASCII-8BIT
146
- string: !binary |-
147
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgoKCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vIj4KIAo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vcGxheWVyLnZpbWVvLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9pLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9mLnZpbWVvY2RuLmNvbSI+CjxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjE5ODg0MDI4OTYzIj4KCiAgIDxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9IlZpbWVvIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vdmltZW8uY29tLzEzNjk3MTQyOCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0idmlkZW8iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJEZWFmaGVhdmVuIC0gJiMwMzk7TmV3IEJlcm11ZGEmIzAzOTsgVHJhaWxlciI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiYjMDM5O05ldyBCZXJtdWRhLCYjMDM5OyB0aGUgdXBjb21pbmcgYWxidW0gZnJvbSBEZWFmaGVhdmVuLCBpcyBhdmFpbGFibGUgT2N0b2JlciAybmQiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVwZGF0ZWRfdGltZSIgY29udGVudD0iMjAxNy0wMy0yN1QxMjowNzowMC0wNDowMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6c2VjdXJlX3VybCIgY29udGVudD0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS92aWRlby81MzE2ODgyMzlfMTI4MHg3MjAuanBnIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTp0eXBlIiBjb250ZW50PSJpbWFnZS9qcGciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjcyMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86dXJsIiBjb250ZW50PSJodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vMTM2OTcxNDI4P2F1dG9wbGF5PTEiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOnNlY3VyZV91cmwiIGNvbnRlbnQ9Imh0dHBzOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8xMzY5NzE0Mjg/YXV0b3BsYXk9MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86dHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp2aWRlbzp3aWR0aCIgY29udGVudD0iMTI4MCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86aGVpZ2h0IiBjb250ZW50PSI3MjAiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOnVybCIgY29udGVudD0iaHR0cHM6Ly92aW1lby5jb20vbW9vZ2Fsb29wLnN3Zj9jbGlwX2lkPTEzNjk3MTQyOCZhbXA7YXV0b3BsYXk9MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86c2VjdXJlX3VybCIgY29udGVudD0iaHR0cHM6Ly92aW1lby5jb20vbW9vZ2Fsb29wLnN3Zj9jbGlwX2lkPTEzNjk3MTQyOCZhbXA7YXV0b3BsYXk9MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86dHlwZSIgY29udGVudD0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp2aWRlbzpoZWlnaHQiIGNvbnRlbnQ9IjcyMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6aW9zOmFwcF9uYW1lIiBjb250ZW50PSJWaW1lbyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6aW9zOmFwcF9zdG9yZV9pZCIgY29udGVudD0iNDI1MTk0NzU5Ij4KICAgIDxtZXRhIHByb3BlcnR5PSJhbDppb3M6dXJsIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6YW5kcm9pZDphcHBfbmFtZSIgY29udGVudD0iVmltZW8iPgogICAgPG1ldGEgcHJvcGVydHk9ImFsOmFuZHJvaWQ6cGFja2FnZSIgY29udGVudD0iY29tLnZpbWVvLmFuZHJvaWQudmlkZW9hcHAiPgogICAgPG1ldGEgcHJvcGVydHk9ImFsOmFuZHJvaWQ6dXJsIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6d2ViOnNob3VsZF9mYWxsYmFjayIgY29udGVudD0idHJ1ZSI+CiAgCiAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiYjMDM5O05ldyBCZXJtdWRhLCYjMDM5OyB0aGUgdXBjb21pbmcgYWxidW0gZnJvbSBEZWFmaGVhdmVuLCBpcyBhdmFpbGFibGUgT2N0b2JlciAybmQiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0icGxheWVyIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOnNpdGUiIGNvbnRlbnQ9IkB2aW1lbyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjp0aXRsZSIgY29udGVudD0iRGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXIiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiYjMDM5O05ldyBCZXJtdWRhLCYjMDM5OyB0aGUgdXBjb21pbmcgYWxidW0gZnJvbSBEZWFmaGVhdmVuLCBpcyBhdmFpbGFibGUgT2N0b2JlciAybmQiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjpwbGF5ZXIiIGNvbnRlbnQ9Imh0dHBzOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8xMzY5NzE0MjgiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6cGxheWVyOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOnBsYXllcjpoZWlnaHQiIGNvbnRlbnQ9IjcyMCI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSJAdmltZW8iPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOm5hbWU6aXBob25lIiBjb250ZW50PSJWaW1lbyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6aWQ6aXBob25lIiBjb250ZW50PSI0MjUxOTQ3NTkiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDppcGhvbmUiIGNvbnRlbnQ9InZpbWVvOi8vYXBwLnZpbWVvLmNvbS92aWRlb3MvMTM2OTcxNDI4Ij4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDpuYW1lOmlwYWQiIGNvbnRlbnQ9IlZpbWVvIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDppZDppcGFkIiBjb250ZW50PSI0MjUxOTQ3NTkiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDppcGFkIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6bmFtZTpnb29nbGVwbGF5IiBjb250ZW50PSJWaW1lbyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6aWQ6Z29vZ2xlcGxheSIgY29udGVudD0iY29tLnZpbWVvLmFuZHJvaWQudmlkZW9hcHAiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDpnb29nbGVwbGF5IiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CgoKCgogPGxpbmsgPgogPGxpbmsgPgogPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL2FwaS9vZW1iZWQuanNvbj91cmw9aHR0cHMlM0ElMkYlMkZ2aW1lby5jb20lMkYxMzY5NzE0MjgiIHR5cGU9ImFwcGxpY2F0aW9uL2pzb24rb2VtYmVkIiB0aXRsZT0iRGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXIiPgogPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL2FwaS9vZW1iZWQueG1sP3VybD1odHRwcyUzQSUyRiUyRnZpbWVvLmNvbSUyRjEzNjk3MTQyOCIgdHlwZT0idGV4dC94bWwrb2VtYmVkIiB0aXRsZT0iRGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXIiPgogPGxpbmsgcmVsPSJwaW5nYmFjayIgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vX3BpbmdiYWNrIj4KIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSIvMTM2OTcxNDI4Ij4KCiA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiIGhyZWY9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9tYWluLXRvdWNoXzE4MCI+Cgo8bGluayByZWw9Im1hc2staWNvbiIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdmcvbGVnYWN5X3ZpZXdfc3VwcG9ydC9pcmlzX2ljb25fdl82NC5zdmciIGNvbG9yPSIjMTcyNzJlIj4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL2ltYWdlc192Ni9mYXZpY29uLmljbyIgZGF0YS1wbGF5PSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vcGxheV8zMiIgZGF0YS1wYXVzZT0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL3BhdXNlXzMyIj4KCjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUltYWdlIiBjb250ZW50PSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vbWFpbi10b3VjaF8xNDQiPgo8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLVRpbGVDb2xvciIgY29udGVudD0iIzAwYWRlZiI+Cgo8bGluayByZWw9InNlYXJjaCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgaHJlZj0iL3NlYXJjaC9vcGVuc2VhcmNoLnhtbCIgdGl0bGU9IlZpbWVvIHNlYXJjaCI+CjxsaW5rIHJlbD0ibG9nbyIgdHlwZT0iaW1hZ2Uvc3ZnIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL2xvZ28uc3ZnIj4KIDx0aXRsZT5EZWFmaGVhdmVuIC0gJiMwMzk7TmV3IEJlcm11ZGEmIzAzOTsgVHJhaWxlciBvbiBWaW1lbzwvdGl0bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvZ2xvYmFsL2ljb25fZm9udHMubWluLmNzcz9ERVYiPgoKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC9jbGlwX2JldGFfY29tYmluZWQubWluLmNzcz9lYTUzODYzYiI+CgoKCiA8c2NyaXB0PgogIAogIHZhciBwbGF5ZXJBc3NldFVybHMgPSB7ImpzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9qc1wvcGxheWVyLmpzIiwibW9vZyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvZmxhc2hcL21vb2dhbG9vcFwvNi40LjVcL21vb2dhbG9vcC5zd2YiLCJjaHJvbWVsZXNzX2NzcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvY3NzXC9jaHJvbWVsZXNzLmNzcyIsImNocm9tZWxlc3NfanMiOiJodHRwczpcL1wvZi52aW1lb2Nkbi5jb21cL3BcLzIuNTMuMTBcL2pzXC9jaHJvbWVsZXNzLmpzIiwibW9vZ19qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvanNcL21vb2dhbG9vcC5qcyIsImNzcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvY3NzXC9wbGF5ZXIuY3NzIiwicGxheWVyX3VybCI6InBsYXllci52aW1lby5jb20ifTsKCiAgdmFyIF9leHRlbmQgPSBmdW5jdGlvbigpe2Zvcih2YXIgcj1hcmd1bWVudHNbMF0sbj0xLGU9YXJndW1lbnRzLmxlbmd0aDtlPm47bisrKXt2YXIgdD1hcmd1bWVudHNbbl07Zm9yKHZhciBhIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShhKSYmKHJbYV09dFthXSl9cmV0dXJuIHJ9OwoKICB3aW5kb3cgPSBfZXh0ZW5kKHdpbmRvdywgeyJ2aW1lb19lc2kiOnsiY29uZmlnIjp7ImF1dG9jb21wbGV0ZV9lbmFibGVkIjp0cnVlfX0sImdsb2JhbF9ub3RpZmljYXRpb25zIjpbXX0pOwo8L3NjcmlwdD4KCiA8c3R5bGUgaWQ9ImVzaV9yaWJib24iPgogLmVzaV9yaWJib24gewogYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI1MDAlMjIlM0UlM0NyZWN0JTIweCUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjklMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyOGExZDglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjklMjIlMjB3aWR0aCUzRCUyMjIyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzMjQ4YmM3JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIzMSUyMiUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMxZTM5NTUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjU1JTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyMzJmNTEzMiUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNjglMjIlMjB3aWR0aCUzRCUyMjQ4JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNDE2ODI4JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIxMTYlMjIlMjB3aWR0aCUzRCUyMjMxJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzN2VhYTI5JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIxNDclMjIlMjB3aWR0aCUzRCUyMjQ2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzZGNiZDQyJTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIxOTMlMjIlMjB3aWR0aCUzRCUyMjM1JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzZGNhZDI3JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIyMjglMjIlMjB3aWR0aCUzRCUyMjExJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzZTM5YTIzJTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIyMzklMjIlMjB3aWR0aCUzRCUyMjIlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNjYzU1NGMlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI0MSUyMiUyMHdpZHRoJTNEJTIyMzYlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNjYTQ3M2YlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI3NyUyMiUyMHdpZHRoJTNEJTIyMTUlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNhNzI4MzQlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI5MiUyMiUyMHdpZHRoJTNEJTIyNjIlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM3MzU2NzUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM1NCUyMiUyMHdpZHRoJTNEJTIyOTglMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM2NTNlNjYlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjQ1MiUyMiUyMHdpZHRoJTNEJTIyNDglMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMzYjMxNWIlMjIlMkYlM0UlM0MlMkZzdmclM0UlMEEpIHRvcCBsZWZ0LzUwMHB4IDEwMCUgcmVwZWF0LXggIWltcG9ydGFudDsKIH0KIDwvc3R5bGU+CiAKIDxzY3JpcHQ+CiB2YXIgYWJsaW5jb2xuX2NvbmZpZyA9IGFibGluY29sbl9jb25maWcgfHwge307CiBhYmxpbmNvbG5fY29uZmlnLnRlc3RzID0geyJERlBBZENvaG9ydHMiOnsiaWQiOjY5LCJuYW1lIjoiREZQQWRDb2hvcnRzIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjpudWxsLCJleHBlcmltZW50cyI6W119LCJFeHBsb3JlIjp7ImlkIjo2NCwibmFtZSI6IkV4cGxvcmUiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcLyIsImV4cGVyaW1lbnRzIjpbXX0sIlRvcE5hdkFCIjp7ImlkIjo2NywibmFtZSI6IlRvcE5hdkFCIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W119LCJUb3BOYXZDb3B5VGVzdCI6eyJpZCI6NzcsIm5hbWUiOiJUb3BOYXZDb3B5VGVzdCIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvYWJvdXQiLCJleHBlcmltZW50cyI6W119LCJUb3BOYXYuSG9zdFZpZGVvc0xpbmsiOnsiaWQiOjEwMywibmFtZSI6IlRvcE5hdi5Ib3N0VmlkZW9zTGluayIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6bnVsbCwiZXhwZXJpbWVudHMiOltdfSwiVmlkZW9QYWdlLlZpZXdlclNlZ21lbnRhdGlvblN1cnZleSI6eyJpZCI6OTIsIm5hbWUiOiJWaWRlb1BhZ2UuVmlld2VyU2VnbWVudGF0aW9uU3VydmV5IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjpudWxsLCJleHBlcmltZW50cyI6W119LCJEZXNrdG9wT3V0cm8iOnsiaWQiOjg0LCJuYW1lIjoiRGVza3RvcE91dHJvIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjpudWxsLCJleHBlcmltZW50cyI6W119fTsKIDwvc2NyaXB0PgoKCiAKIDxzY3JpcHQ+CiB2YXIgZ29vZ2xldGFnID0gZ29vZ2xldGFnIHx8IHt9LAogZ3B0YWRzbG90cyA9IFtdLAogbGFuZ3VhZ2UsCiBoYXNfdXBsb2FkZWQsCiBjb2hvcnQ7CiBnb29nbGV0YWcuY21kID0gZ29vZ2xldGFnLmNtZCB8fCBbXTsKCiAoZnVuY3Rpb24oKSB7CiB2YXIgZ2FkcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLAogdXNlU1NMID0gJ2h0dHBzOicgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wsCiBub2RlOwogZ2Fkcy5hc3luYyA9IHRydWU7CiBnYWRzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKIGdhZHMuc3JjID0gKHVzZVNTTCA/ICdodHRwczonIDogJ2h0dHA6JykgKyAnLy93d3cuZ29vZ2xldGFnc2VydmljZXMuY29tL3RhZy9qcy9ncHQuanMnOwogbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKIG5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2Fkcywgbm9kZSk7CiB9KSgpOwoKIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKIAogIGxhbmd1YWdlID0gZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLyg/Oig/Ol58Lio7XHMqKWxhbmd1YWdlXHMqXD1ccyooW147XSopLiokKXxeLiokLywgIiQxIik7CiBoYXNfdXBsb2FkZWQgPSAoZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLyg/Oig/Ol58Lio7XHMqKWhhc191cGxvYWRlZFxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpKSA/ICdZJyA6ICdOJzsKIAogY29ob3J0ID0gKHdpbmRvdy5BQkxpbmNvbG4pID8gd2luZG93LkFCTGluY29sbi5nZXRUZXN0KCdERlBBZENvaG9ydHMnKS5nZXQoJ2NvaG9ydCcsICdBJykgOiAnQSc7CgogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnbGFuZ3VhZ2UnLCBbbGFuZ3VhZ2VdKTsKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2lzX3VwbG9hZGVyJywgW2hhc191cGxvYWRlZF0pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0JywgW2NvaG9ydF0pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0X2EnLCBbKGNvaG9ydCA9PT0gJ0EnKSA/ICdZJyA6ICdOJ10pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0X2InLCBbKGNvaG9ydCA9PT0gJ0InKSA/ICdZJyA6ICdOJ10pOwoKICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdzZWMnLCBbJ2ZhbHNlJ10pOwoKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2xvZ2dlZF9pbicsIFsnZmFsc2UnXSk7CgogIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ3JwdicsIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwKSsxKS50b1N0cmluZygpKTsKCiBnb29nbGV0YWcucHViYWRzKCkuZW5hYmxlQXN5bmNSZW5kZXJpbmcoKTsKIGdvb2dsZXRhZy5lbmFibGVTZXJ2aWNlcygpOwogfSk7CiA8L3NjcmlwdD4KCjxzY3JpcHQ+CiFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzpleHBvcnRzLHI9W107aWYoZS5wZXJmb3JtYW5jZXx8KGUucGVyZm9ybWFuY2U9e30pLGUucGVyZm9ybWFuY2Uubm93fHwoZS5wZXJmb3JtYW5jZS5ub3c9cGVyZm9ybWFuY2Uubm93fHxwZXJmb3JtYW5jZS53ZWJraXROb3d8fHBlcmZvcm1hbmNlLm1zTm93fHxwZXJmb3JtYW5jZS5tb3pOb3cpLCFlLnBlcmZvcm1hbmNlLm5vdyl7dmFyIG49RGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGU7cGVyZm9ybWFuY2UudGltaW5nJiZwZXJmb3JtYW5jZS50aW1pbmcmJihuPXBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQpLGUucGVyZm9ybWFuY2Uubm93PWZ1bmN0aW9uKCl7dmFyIGU9RGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGU7cmV0dXJuIGUtbn19ZS5wZXJmb3JtYW5jZS5tYXJrfHwoZS5wZXJmb3JtYW5jZS5tYXJrPWUucGVyZm9ybWFuY2Uud2Via2l0TWFyaz9lLnBlcmZvcm1hbmNlLndlYmtpdE1hcms6ZnVuY3Rpb24obil7ci5mb3JFYWNoKGZ1bmN0aW9uKGUscixhKXtlLm5hbWU9PT1uJiZhLnNwbGljZShyLDEpfSksci5wdXNoKHtuYW1lOm4sZW50cnlUeXBlOiJtYXJrIixzdGFydFRpbWU6ZS5wZXJmb3JtYW5jZS5ub3coKSxkdXJhdGlvbjowfSl9KSxlLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGV8fChlLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGU9ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlUeXBlP2UucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5VHlwZTpmdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbihyKXtyZXR1cm4gci5lbnRyeVR5cGU9PT1lfTtyZXR1cm4tMSE9PVsibWFyayIsIm1lYXN1cmUiXS5pbmRleE9mKGUpP3IuZmlsdGVyKG4pOnZvaWQgMH0pLGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZXx8KGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZT1lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWU/ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiByLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci5uYW1lPT09ZX0pfSksZS5wZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzfHwoZS5wZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzPWUucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNZWFzdXJlcz9lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWVhc3VyZXM6ZnVuY3Rpb24oKXtyLmZvckVhY2goZnVuY3Rpb24oZSxyLG4peyJtZWFzdXJlIj09PWUuZW50cnlUeXBlJiZuLnNwbGljZShyLDEpfSkscj1bXX0pLGUucGVyZm9ybWFuY2UuY2xlYXJNYXJrc3x8KGUucGVyZm9ybWFuY2UuY2xlYXJNYXJrcz1lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWFya3M/ZS5wZXJmb3JtYW5jZS53ZWJraXRDbGVhck1hcmtzOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKGUscixuKXsibWFyayI9PT1lLmVudHJ5VHlwZSYmbi5zcGxpY2UociwxKX0pLHI9W119KSxlLnBlcmZvcm1hbmNlLm1lYXN1cmV8fChlLnBlcmZvcm1hbmNlLm1lYXN1cmU9ZS5wZXJmb3JtYW5jZS53ZWJraXRNZWFzdXJlP2UucGVyZm9ybWFuY2Uud2Via2l0TWVhc3VyZTpmdW5jdGlvbihlLG4sYSl7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiByLm5hbWU9PT1lJiYibWFyayI9PT1yLmVudHJ5VHlwZX19LG89ci5maWx0ZXIodChuKSlbMF0sbT1yLmZpbHRlcih0KGEpKVswXSxpPW0uc3RhcnRUaW1lLW8uc3RhcnRUaW1lO3IucHVzaCh7bmFtZTplLGVudHJ5VHlwZToibWVhc3VyZSIsc3RhcnRUaW1lOm8uc3RhcnRUaW1lLGR1cmF0aW9uOml9KX0pfSgpLHdpbmRvdy5tYXJrVXNlclRpbWU9ZnVuY3Rpb24oZSl7dmFyIHI9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDApfTtyKGZ1bmN0aW9uKCl7d2luZG93LnBlcmZvcm1hbmNlLm1hcmsoZSksd2luZG93LmNvbnNvbGUmJmNvbnNvbGUudGltZVN0YW1wJiZjb25zb2xlLnRpbWVTdGFtcChlKX0pfTsKCihmdW5jdGlvbigpIHsKIHdpbmRvdy5tYXJrVXNlclRpbWUgPSBmdW5jdGlvbihsYWJlbCkgewogd2luZG93Ll9ndG0gPSB3aW5kb3cuX2d0bSB8fCBbXTsKCiAvLyBFeGl0IGVhcmx5IGlmIHRoZSBicm93c2VyIGNhbid0IGhhbmRsZSBuZXcgdGhpbmdzCiBpZiAodHlwZW9mIHBlcmZvcm1hbmNlID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgcGVyZm9ybWFuY2UubWFyayAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgcGVyZm9ybWFuY2UuY2xlYXJNYXJrcyAhPT0gJ2Z1bmN0aW9uJykgewogcmV0dXJuOwogfQoKIHZhciB1aWQgPSBwYXJzZUludChNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkuc3BsaXQoJzAuJylbMV0pICsgbmV3IERhdGUoKS5nZXRUaW1lKCksCiBtYXJrX25hbWUgPSBsYWJlbCArICdfJyArIHVpZCwKIHBhcnRzID0gbGFiZWwuc3BsaXQoJ3wnKSwKIGNhdGVnb3J5ID0gcGFydHNbMF0sCiB2YXJpYWJsZSA9IHBhcnRzWzFdLAogbGFiZWwgPSBwYXJ0c1syXSwKIG1hcmtfdGltZSwKIG1hcmtfZW50cmllczsKCiBwZXJmb3JtYW5jZS5tYXJrKG1hcmtfbmFtZSk7CiBtYXJrX2VudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKG1hcmtfbmFtZSk7CgogaWYgKG1hcmtfZW50cmllcy5sZW5ndGgpIHsKIG1hcmtfdGltZSA9IG1hcmtfZW50cmllc1swXS5zdGFydFRpbWU7CiB3aW5kb3cuX2d0bS5wdXNoKHsKICdldmVudCc6ICdwZXJmb3JtYW5jZV90aW1pbmcnLAogJ3BlcmZvcm1hbmNlX3RpbWluZy5jYXRlZ29yeSc6IGNhdGVnb3J5LAogJ3BlcmZvcm1hbmNlX3RpbWluZy52YXJpYWJsZSc6IHZhcmlhYmxlLAogJ3BlcmZvcm1hbmNlX3RpbWluZy50aW1lJzogbWFya190aW1lIC8gMTAwMCwKICdwZXJmb3JtYW5jZV90aW1pbmcubGFiZWwnOiBsYWJlbAogfSk7CiB9CiB9Owp9KCkpOwo8L3NjcmlwdD4KCiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvYWJsaW5jb2xuX2NvbWJpbmVkLm1pbi5qcz80NjQyMzBmMCI+PC9zY3JpcHQ+CgoKCiA8L2hlYWQ+CiA8Ym9keSBjbGFzcz0ib25zaXRlICI+CiA8ZGl2IGlkPSJ3cmFwIiBjbGFzcz0ib3V0ZXJfd3JhcCI+CiAKIDxkaXYgY2xhc3M9ImJvZHlfcmliYm9uIGVzaV9yaWJib24iPjwvZGl2PgoKIAogCjxzY3JpcHQ+CiB3aW5kb3cudmltZW8gPSB3aW5kb3cudmltZW8gfHwge307Cjwvc2NyaXB0Pgo8ZGl2IGlkPSJ0b3BuYXZfZGVza3RvcCIgY2xhc3M9InRvcG5hdl9kZXNrdG9wICIgcm9sZT0iYmFubmVyIj4KIDxkaXYgY2xhc3M9InRvcG5hdl9kZXNrdG9wX3dyYXBwZXIiPgoKICAgPGEgY2xhc3M9InRvcG5hdl9kZXNrdG9wX2xvZ28iIGhyZWY9Ii8vdmltZW8uY29tIiBhbHQ9IkdvIHRvIFZpbWVvIGhvbWUgcGFnZSIgdGl0bGU9IkdvIHRvIFZpbWVvIGhvbWUgcGFnZSIgYXJpYS1sYWJlbD0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp2aW1lb19ob21lIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9ob21lX2NsaWNrIj4KICA8c3ZnIGFsdD0iVmltZW8iIHdpZHRoPSIxMDAiIGhlaWdodD0iNDAiPjxwYXRoIGQ9Ik0yMi40NDggMTQuNTc1Yy0uMTA0IDIuMTctMS42MTggNS4xNDYtNC41NDQgOC45MTItMy4wMyAzLjk0Mi01LjU5IDUuOTEyLTcuNjg2IDUuOTEyLTEuMjk3IDAtMi4zOTctMS4yMDQtMy4zLTMuNi0uNi0yLjItMS4yMDItNC4zOTgtMS43OTQtNi41OTgtLjY2NC0yLjM5Ni0xLjM4LTMuNi0yLjE0Ny0zLjYtLjE2NiAwLS43NDcuMzU0LTEuNzUzIDEuMDVsLTEuMDQ4LTEuMzVjMS4xLS45NjUgMi4xOS0xLjkzIDMuMjU3LTIuOTA1IDEuNDYzLTEuMjY1IDIuNTczLTEuOTQgMy4zLTIuMDAyIDEuNzMyLS4xNjYgMi44IDEuMDE3IDMuMjA1IDMuNTU4LjQzNSAyLjc0LjczNiA0LjQ0LjkwMiA1LjExNS40OTggMi4yNyAxLjA0OCAzLjQwMiAxLjY1IDMuNDAyLjQ2NiAwIDEuMTcyLS43MzcgMi4xMDUtMi4yMS45MzQtMS40NzMgMS40MzItMi41OTMgMS41MDQtMy4zNy4xMzMtMS4yNzctLjM2NS0xLjkxLTEuNTA2LTEuOTEtLjUzIDAtMS4wOC4xMjUtMS42NS4zNjQgMS4xLTMuNTkgMy4xODYtNS4zMzMgNi4yNzctNS4yMyAyLjI3My4wNzMgMy4zNSAxLjU1NiAzLjIyNyA0LjQ2bTEzLjc1NSA3LjAzNGMtLjkzMyAxLjc2NC0yLjIyIDMuMzctMy44NiA0LjgwMy0yLjI0IDEuOTMtNC40NyAyLjkwNS02LjcgMi45MDUtMS4wMzcuMDAyLTEuODI2LS4zMy0yLjM3Ni0uOTk0LS41NS0uNjYzLS44MS0xLjUzNS0uNzc3LTIuNjAzLjAzLTEuMS4zNzItMi44IDEuMDI1LTUuMTA0LjY1NC0yLjMwMy45NzYtMy41MzcuOTc2LTMuNzAzIDAtLjg2LS4zLTEuMjk3LS45MDItMS4yOTctLjE5OCAwLS43Ny4zNTMtMS43MDIgMS4wNDhsLTEuMTUyLTEuMzVjMS4wNy0uOTYyIDIuMTM3LTEuOTI3IDMuMjA2LTIuOTAyIDEuNDMtMS4yNjYgMi41LTEuOTQgMy4yMDUtMi4wMDIgMS4xLS4xMDMgMS45MS4yMyAyLjQyOC45NzYuNTE4Ljc0Ny43MDUgMS43MjIuNTggMi45MTUtLjQzNSAyLjAzNC0uOTAyIDQuNjA3LTEuNCA3LjczLS4wMyAxLjQzLjQ4OCAyLjE0NiAxLjU1NiAyLjE0Ni40NjcgMCAxLjI5Ny0uNDk4IDIuNS0xLjQ4My45OTYtLjgyIDEuODE1LTEuNTk4IDIuNDUtMi4zMjRsLjk0MiAxLjI0NG0tNC4zNTctMTcuOGMtLjAzLjgzLS40NDYgMS42MjgtMS4yNTUgMi4zOTUtLjkuODYtMS45NyAxLjI5Ni0zLjIwNCAxLjI5Ni0xLjkgMC0yLjgyMi0uODMtMi43NS0yLjQ5LjAzMi0uODYuNTQtMS42OSAxLjUyNi0yLjQ5Ljk4NS0uNzk3IDIuMDc0LTEuMTkgMy4yNzgtMS4xOS43MDUgMCAxLjI4Ni4yNyAxLjc1My44Mi40NjcuNTQuNjg0IDEuMS42NTMgMS42Nm0zNS42MTIgMTcuOGMtLjkzMyAxLjc2My0yLjIyIDMuMzctMy44NiA0LjgwMi0yLjI0IDEuOTMtNC40NyAyLjkwNC02LjcgMi45MDQtMi4xNjguMDAyLTMuMjE2LTEuMjAyLTMuMTUzLTMuNTk4LjAzLTEuMDcuMjM4LTIuMzU1LjYyMi0zLjg1LjM4NC0xLjUwMy41OS0yLjY2NS42MjMtMy41MDUuMDMtMS4yNjUtLjM1My0xLjg5OC0xLjE1Mi0xLjg5OC0uODcgMC0xLjkxIDEuMDM2LTMuMTEyIDMuMS0xLjI3NiAyLjE2OC0xLjk2IDQuMjc0LTIuMDY0IDYuMzA4LS4wNzMgMS40My4wNzIgMi41NC40MjUgMy4yOTgtMi4zMjQuMDY0LTMuOTYzLS4zMi00Ljg4Ni0xLjE1LS44My0uNzM3LTEuMjEyLTEuOTUtMS4xNS0zLjY1Mi4wMy0xLjA2OC4xOTgtMi4xMzcuNDg4LTMuMjA1LjI5LTEuMDcuNDU3LTIuMDIzLjQ4OC0yLjg1My4wNjItMS4yMzQtLjM4NC0xLjg1Ny0xLjM1LTEuODU3LS44NCAwLTEuNzQuOTU1LTIuNzA2IDIuODUzLS45NjYgMS45LTEuNTA1IDMuODktMS42MSA1Ljk1Ni0uMDYgMS44NjcuMDUzIDMuMTc0LjM2NCAzLjktMi4yOTMuMDYyLTMuOTItLjQxNS00Ljg3Ni0xLjQ1Mi0uNzk4LS44Ni0xLjE2LTIuMTgtMS4xLTMuOTQyLjAzMi0uODYuMTg4LTIuMDc1LjQ1Ny0zLjYyLjI4LTEuNTQ2LjQyNS0yLjc1LjQ1Ny0zLjYyLjA2Mi0uNjAzLS4wODMtLjkwMy0uNDQ2LS45MDMtLjE5NyAwLS43NjguMzQtMS43MDIgMS4wMTVsLTEuMjAzLTEuMzQ4Yy4xNjgtLjEzNSAxLjIxNi0xLjEgMy4xNTYtMi45MDUgMS40LTEuMjk3IDIuMzU0LTEuOTcgMi44NTItMi4wMDIuODcyLS4wNzMgMS41NjcuMjkgMi4xMDYgMS4wOC41My43ODcuOCAxLjY5LjggMi43MjcgMCAuMzMyLS4wMzIuNjU0LS4xMDUuOTU0LjQ5Ny0uNzY2IDEuMDgtMS40MyAxLjc1Mi0yIDEuNTM3LTEuMzQgMy4yNi0yLjA4NiA1LjE1Ny0yLjI1MiAxLjY0LS4xMzUgMi44LjI1IDMuNTA1IDEuMTUyLjU3LjczNi44MyAxLjc4NC44IDMuMTUzLjIzNy0uMTk4LjQ4Ni0uNDE2Ljc0Ni0uNjU0Ljc2Ny0uOTAzIDEuNTE0LTEuNjIgMi4yNS0yLjE0OCAxLjIzNS0uOTAyIDIuNTItMS40IDMuODYtMS41MDQgMS41OTctLjEzNSAyLjc1LjI1IDMuNDU0IDEuMTUyLjYwMi43MjYuODcgMS43NzQuOCAzLjE0My0uMDMyLjkzMy0uMjYgMi4yOC0uNjc1IDQuMDY1LS40MTYgMS43NzMtLjYyNCAyLjgtLjYyNCAzLjA3LS4wMy42OTUuMDMgMS4xODIuMTk3IDEuNDQyLjE2Ni4yNy41Ny4zOTQgMS4yMDMuMzk0LjQ2NyAwIDEuMjk3LS40OTcgMi41LTEuNDgyLjk5Ni0uODIgMS44MTYtMS41OTggMi40NS0yLjMyNGwuOTYzIDEuMjU0bTE4Ljc2NS0uMDUyYy0uOTY1IDEuNTk4LTIuODc0IDMuMTk1LTUuNzA2IDQuNzkzLTMuNTM4IDIuMDMyLTcuMTI3IDMuMDUtMTAuNzU4IDMuMDUtMi43MDYgMC00LjYzNi0uOTA0LTUuODA4LTIuNy0uODMtMS4yMzMtMS4yMzQtMi42OTYtMS4yMDMtNC40MDcuMDMtMi42OTggMS4yMzQtNS4yNyAzLjYtNy43MSAyLjYwMy0yLjY2NSA1LjY3NC00LjAwMyA5LjIxLTQuMDAzIDMuMjcgMCA1IDEuMzI4IDUuMjA4IDMuOTk0LjEzNSAxLjcwMi0uNzk4IDMuNDQ1LTIuOCA1LjI0LTIuMTM3IDEuOTYtNC44MjQgMy4yMTUtOC4wNiAzLjc0NC42LjgzIDEuNTA0IDEuMjQ1IDIuNzA3IDEuMjQ1IDIuMzk2IDAgNS4wMi0uNjEzIDcuODYzLTEuODM3IDIuMDMzLS44NiAzLjYzLTEuNzUzIDQuODAzLTIuNjc2bC45NDUgMS4yNjVtLTExLjM2LTUuMjI4Yy4wMzItLjg5Mi0uMzMtMS4zNS0xLjEtMS4zNS0uOTk0IDAtMi4wMS42ODYtMy4wNDggMi4wNjYtMS4wMzggMS4zOC0xLjU2NyAyLjY5Ny0xLjU5OCAzLjk2Mi0uMDIgMC0uMDIuMjE4IDAgLjY0MyAxLjYzLS42IDMuMDUtMS41MTQgNC4yNDItMi43MzguOTY2LTEuMDU4IDEuNDYzLTEuOTIgMS41MDUtMi41ODNtMjQuOTQ2IDEuODY4Yy0uMTM1IDMuMDcyLTEuMjY1IDUuNzE3LTMuNDAyIDcuOTQ3LTIuMTM1IDIuMjMtNC43OSAzLjM1LTcuOTU1IDMuMzUtMi42MzUgMC00LjYzNy0uODUtNi4wMDYtMi41NS0uOTk3LTEuMjY3LTEuNTU3LTIuODU0LTEuNjUtNC43NTItLjE2Ni0yLjg2My44Ni01LjQ5OCAzLjEtNy44OTQgMi40MDgtMi42NjUgNS40MjctMy45OTMgOS4wNTctMy45OTMgMi4zMzQgMCA0LjA5OC43ODggNS4zIDIuMzQ0IDEuMTMyIDEuNDQzIDEuNjUgMy4yOSAxLjU1NyA1LjU1bS01LjY2NC0uMTg1Yy4wMy0uOTAzLS4wOTQtMS43MzMtLjM3NC0yLjQ4LS4yOC0uNzQ3LS42OTUtMS4xMy0xLjIyNC0xLjEzLTEuNzAyIDAtMy4xMDIuOTIzLTQuMjAyIDIuNzYtLjkzMyAxLjUwMy0xLjQzIDMuMTEtMS41MDQgNC44MTItLjAzLjg0LjExNCAxLjU3Ny40NDYgMi4yMS4zNjQuNzM2Ljg4MiAxLjEgMS41NTYgMS4xIDEuNTA1IDAgMi43OS0uODgzIDMuODYtMi42NTYuODkyLTEuNDcyIDEuMzgtMy4wMDggMS40NC00LjYxNWguMDAyeiIgZmlsbD0iIzExMjIzMyIvPjwvc3ZnPgogIDwvYT4KIAogICA8bmF2IGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51IiByb2xlPSJuYXZpZ2F0aW9uIiBhcmlhLWxhYmVsPSJNYWluIG1lbnUiPgogPHVsIGNsYXNzPSJ0b3BuYXZfbWVudV9kZXNrdG9wX21haW4iIHJvbGU9Im1lbnViYXIiPgoKICAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9ImpvaW4iPgogPGEgY2xhc3M9InRvcG5hdl9tZW51X2pvaW4ganMtdG9wbmF2X21lbnVfYXV0aCIgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTt2aW1lby5Nb2RhbC5jcmVhdGUoe3NpemU6J3hzbWFsbCcsY29udGVudDonL2pvaW4/bW9kYWw9bmV3J30pIiBkYXRhLWdhLWV2ZW50LWNsaWNrPSJ0b3BfbmF2fGpvaW4iIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OmpvaW4iIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2pvaW5fY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2pvaW4iIHRpdGxlPSJCZWNvbWUgYSBWaW1lbyBtZW1iZXIiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9qb2luIj4KIEpvaW4gPC9hPgoKICAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0ibG9naW4iPgogPGEgY2xhc3M9ImpzLXRvcG5hdl9tZW51X2F1dGgiIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7dmltZW8uU2Vzc2lvbi5jcmVhdGUoJ3JlZycsIG51bGwsIHRydWUpOyIgZGF0YS1nYS1ldmVudC1jbGljaz0idG9wX25hdnxsb2dpbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6bG9naW4iIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2xvZ2luX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9sb2dfaW4iIHRpdGxlPSJMb2cgaW4gdG8geW91ciBhY2NvdW50IiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfbG9naW4iPgogTG9nIGluIDwvYT4KCiAgIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9ImNyZWF0ZSI+CiA8YSBjbGFzcz0ianMtdG9wbmF2LWNyZWF0ZSB0b3BuYXZfaGFzX2Ryb3Bkb3duIHRvcG5hdl9pY29uX2NoZXZyb25fYSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6bWFuYWdlX3ZpZGVvc3xrZXl3b3JkOmhvc3RfdmlkZW9zIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NyZWF0ZSIgdGl0bGU9IiIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2NyZWF0ZSI+CiBIb3N0IHZpZGVvcyA8L2E+CgogICA8dWwgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24iIHJvbGU9Im1lbnUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBpZD0idG9wbmF2X2NyZWF0ZSI+CiAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDpjb21wYXJlX3BsYW5zIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS91cGdyYWRlIiB0aXRsZT0iVXBncmFkZSBvciBjb21wYXJlIG91ciBwbGFucyI+Q29tcGFyZSBwbGFuczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6cHJvZmVzc2lvbmFscyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vcHJvZmVzc2lvbmFscyIgdGl0bGU9IkdldCBwcm9mZXNzaW9uYWwgdmlkZW8gaG9zdGluZyB0b29scyI+UHJvZmVzc2lvbmFsczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6YnVzaW5lc3NlcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vYnVzaW5lc3MiIHRpdGxlPSJHZXQgcG93ZXJmdWwgdmlkZW8gbWFya2V0aW5nIHRvb2xzIj5CdXNpbmVzc2VzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDp2aWRlb19sb3ZlcnMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9tZW1iZXJzaGlwX29wdGlvbnNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2V2ZXJ5b25lIiB0aXRsZT0iVXBsb2FkIGFuZCBzaGFyZSB5b3VyIHZpZGVvcyI+VmlkZW8gbG92ZXJzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDp2aWRlb19zY2hvb2wiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV92aWRlb19zY2hvb2xfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3ZpZGVvc2Nob29sIiB0aXRsZT0iTGVhcm4gaG93IHRvIG1ha2UgYmV0dGVyIHZpZGVvcyI+VmlkZW8gU2Nob29sPC9hPgogPC9saT4KICAgPC91bD4KICA8L2xpPgogCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJ3YXRjaCI+CiA8YSBjbGFzcz0idG9wbmF2X2hhc19kcm9wZG93biB0b3BuYXZfaWNvbl9jaGV2cm9uX2EiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6d2F0Y2giIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS93YXRjaCIgdGl0bGU9IiIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X3dhdGNoIj4KIFdhdGNoIDwvYT4KCiAgIDx1bCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfd2F0Y2giPgogIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6c3RhZmZfcGlja3MiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX3N0YWZmX3BpY2tzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jaGFubmVscy9zdGFmZnBpY2tzIiB0aXRsZT0iVGhlIGJlc3QgdmlkZW9zIG9uIFZpbWVvLCBjdXJhdGVkIGRhaWx5IGJ5IG91ciB0ZWFtIj5TdGFmZiBQaWNrczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Y2F0ZWdvcmllcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2F0ZWdvcmllc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vY2F0ZWdvcmllcyIgdGl0bGU9IkJyb3dzZSB2aWRlb3MgYnkgaW50ZXJlc3QsIGdlbnJlLCBhbmQgbW9yZSI+Q2F0ZWdvcmllczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Y2hhbm5lbHMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2NoYW5uZWxzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jaGFubmVscyIgdGl0bGU9IlZpZXcgdmlkZW8gcGxheWxpc3RzIGNyZWF0ZWQgYW5kIGN1cmF0ZWQgYnkgb3RoZXIgbWVtYmVycyI+Q2hhbm5lbHM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmdyb3VwcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfZ3JvdXBzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9ncm91cHMiIHRpdGxlPSJXYXRjaCBhbmQgZGlzY3VzcyB2aWRlb3Mgd2l0aCBvdGhlcnMiPkdyb3VwczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6YXBwIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9hcHBzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9ldmVyeXdoZXJlIiB0aXRsZT0iV2F0Y2ggVmltZW8gdmlkZW9zIG9uIFRWcywgcGhvbmVzLCB0YWJsZXRzLCBhbmQgbW9yZSI+QXBwczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6bW9yZSIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfbW9yZV9jbGljayIgaHJlZj0iLy92aW1lby5jb20vd2F0Y2giIHRpdGxlPSJEaXNjb3ZlciBtb3JlIHdheXMgdG8gd2F0Y2ggb24gVmltZW8iPk1vcmXigKY8L2E+CiA8L2xpPgogICA8L3VsPgogIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9Im9uZGVtYW5kIj4KIDxhIGNsYXNzPSJ0b3BuYXZfaGFzX2Ryb3Bkb3duIHRvcG5hdl9pc19vbmRlbWFuZCB0b3BuYXZfaWNvbl9jaGV2cm9uX2EiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOm9uX2RlbWFuZCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kIiB0aXRsZT0iV2F0Y2ggbW92aWVzLCBzZXJpZXMsIGFuZCBtb3JlIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfb25kZW1hbmQiPgogT24gRGVtYW5kIDwvYT4KCiAgIDx1bCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfb25kZW1hbmQiPgogIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOndoYXRzX25ldyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfd2hhdHNfbmV3X2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZCIgdGl0bGU9IlNlZSBuZXcgYW5kIG5vdGV3b3J0aHkgdGl0bGVzIGFkZGVkIHRvIE9uIERlbWFuZCI+V2hhdOKAmXMgbmV3PC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6ZGlzY292ZXIiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX2Rpc2NvdmVyX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9kaXNjb3ZlciIgdGl0bGU9IkRpc2NvdmVyIHRpdGxlcyBvdXIgdGVhbSByZWNvbW1lbmRzIj5EaXNjb3ZlcjwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOmdlbnJlcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfZ2VucmVzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9icm93c2UiIHRpdGxlPSJCcm93c2UgdGl0bGVzIGJ5IGdlbnJlIj5HZW5yZXM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDp0dl9zZXJpZXMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX3R2X3Nlcmllc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQvYnJvd3NlL3R2K3NlcmllcyIgdGl0bGU9IkJyb3dzZSBzZXJpZXMgYW5kIFRWIHNob3dzIj5UViArIFNlcmllczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOnN0YXJ0X3NlbGxpbmciIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX3NlbGxfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL3N0YXJ0c2VsbGluZyIgdGl0bGU9IlNlbGwgZGlyZWN0bHkgdG8geW91ciBmYW5zIHdpdGggVmltZW8gT24gRGVtYW5kIj5TdGFydCBzZWxsaW5nPC9hPgogPC9saT4KICAgPC91bD4KICA8L2xpPgogCiA8L3VsPgogPC9uYXY+PCEtLSAvLnRvcG5hdl9kZXNrdG9wX21lbnUgLS0+CiAKICAgPGRpdiBjbGFzcz0idG9wbmF2X21lbnVfcmlnaHQiPgoKICAgPGZvcm0gY2xhc3M9InRvcG5hdl9tZW51X3NlYXJjaCIgYWN0aW9uPSIvL3ZpbWVvLmNvbS9zZWFyY2giIG1ldGhvZD0iZ2V0IiByb2xlPSJzZWFyY2giIGRhdGEtZHMtcHJvdGVjdGlvbj4KIDxpbnB1dCBjbGFzcz0idG9wbmF2X21lbnVfc2VhcmNoX2lucHV0IGpzLXRvcG5hdl9tZW51X3NlYXJjaF9pbnB1dCBqcy1zZWFyY2hfYXV0b2NvbXBsZXRlIiAgdHlwZT0idGV4dCIgbmFtZT0icSIgdGl0bGU9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIHZhbHVlPSIiIGFyaWEtbGFiZWw9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIHBsYWNlaG9sZGVyPSJTZWFyY2ggdmlkZW9zLCBwZW9wbGUsIGFuZCBtb3JlIiBhdXRvY29tcGxldGU9Im9mZiI+PGJ1dHRvbiBjbGFzcz0idG9wbmF2X21lbnVfc2VhcmNoX3N1Ym1pdCB0b3BuYXZfaWNvbl9zZWFyY2hfYiIgdHlwZT0ic3VibWl0IiBhcmlhLWxhYmVsPSJTZWFyY2giPjwvYnV0dG9uPgogPC9mb3JtPgogCiAgCiAgCiAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF91cGxvYWQgdG9wbmF2X2ljb25fdXBsb2FkX2IiIGhyZWY9Ii91cGxvYWQiIHRpdGxlPSJVcGxvYWQgeW91ciB2aWRlb3MiIHJvbGU9ImJ1dHRvbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb21wb25lbnQ6dG9wX25hdnxrZXl3b3JkOnVwbG9hZCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdXBsb2FkX2NsaWNrIj48c3Bhbj5VcGxvYWQ8L3NwYW4+PC9hPgogIDwvZGl2PjwhLS0gLy50b3BuYXZfbWVudV9yaWdodCAtLT4KICA8L2Rpdj48IS0tIC8udG9wbmF2X2Rlc2t0b3Bfd3JhcHBlciAtLT4KPC9kaXY+CgogPG5hdiBpZD0idG9wbmF2X21vYmlsZSIgY2xhc3M9InRvcG5hdl9tb2JpbGUgIiByb2xlPSJiYW5uZXIiPgoKIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KICA8YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfbGVmdCB0b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvIGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2xvZ28gdG9wbmF2X2ljb25fbW9iaWxlX3Zsb2dvX2IiPgogIDwvYnV0dG9uPgogPGEgaHJlZj0iLy92aW1lby5jb20vc2VhcmNoIiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX3JpZ2h0IHRvcG5hdl9tb2JpbGVfaGVhZGVyX3NlYXJjaCB0b3BuYXZfaWNvbl9tb2JpbGVfc2VhcmNoX2IiPiA8L2E+CiA8c3BhbiBjbGFzcz0idG9wbmF2X21vYmlsZV9oZWFkZXJfdGl0bGUiPjwvc3Bhbj4KIDwvZGl2PgoKICA8c2VjdGlvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51IGpzLXRvcG5hdl9tb2JpbGVfbWVudV9tYWluIj4KIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9sZWZ0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2Nsb3NlIHRvcG5hdl9pY29uX21vYmlsZV94X2IiPiA8L2J1dHRvbj4KIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9yaWdodCBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5ncyB0b3BuYXZfaWNvbl9tb2JpbGVfZ2Vhcl9iIj4gPC9idXR0b24+CiA8L2Rpdj4KCiA8dWw+CiAgIDxsaT4KIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX2NoYW5uZWxfYiAiIGhyZWY9Ii8vdmltZW8uY29tLyI+CiBTdGFmZiBQaWNrcyA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBkYXRhLWFjdGlvbj0ibGFzdF9wYWdlIiBkYXRhLWJyZWV6ZS1pZ25vcmUgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV9hdmF0YXJfYiAiIGhyZWY9Ii9sb2dfaW4iPgogPHNwYW4gY2xhc3M9Im1lbnVfYXV0aCI+Sm9pbiBvciBsb2cgaW48L3NwYW4+IDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX3N0YXJfYiIgaHJlZj0iLy92aW1lby5jb20vd2F0Y2giPgogV2F0Y2ggPC9hPgogPC9saT4KICAgPGxpPgogPGEgb25jbGljaz0idmltZW8ubW9iaWxlLmRlc2t0b3Bfc2hhcmVkLl91cGxvYWQodGhpcyk7IHJldHVybiBmYWxzZTsiIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX3VwbG9hZF9iIiBocmVmPSIvL3ZpbWVvLmNvbS91cGxvYWQiPgogVXBsb2FkIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX3ZvZF9iICIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQiPgogT24gRGVtYW5kIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX2ZvcmdvdF9iICIgaHJlZj0iaHR0cHM6Ly9oZWxwLnZpbWVvLmNvbS9oYy9lbi11cyI+CiBIZWxwIDwvYT4KIDwvbGk+CiAgPC91bD4KIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudSB0b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MganMtdG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzIj4KIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9sZWZ0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbnNfY2xvc2UgdG9wbmF2X2ljb25fbW9iaWxlX2Fycm93bGVmdF9iIj4gPC9idXR0b24+CiA8c3BhbiBjbGFzcz0idG9wbmF2X21vYmlsZV9oZWFkZXJfdGl0bGUiPk1vcmUgc3R1ZmY8L3NwYW4+CiA8L2Rpdj4KCiA8dWw+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vdGVybXMiPgogVGVybXMgb2YgU2VydmljZSA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vcHJpdmFjeSI+CiBQcml2YWN5IFBvbGljeSA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vZG1jYSI+CiBDb3B5cmlnaHQgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL2Nvb2tpZV9wb2xpY3kiPgogQ29va2llcyA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJkZXNrdG9wIiBvbmNsaWNrPSJ2aW1lby5tb2JpbGUuZGVza3RvcF9zaGFyZWQuX3MyZHMoKTsgcmV0dXJuIGZhbHNlIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPgogRGVza3RvcCBzaXRlIDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgbGFuZ3VhZ2UgaHJlZj0iIyI+CiBMYW5ndWFnZSA8L2E+CiAgIDxzZWxlY3Qgb25jaGFuZ2U9InZpbWVvLm1vYmlsZS5kZXNrdG9wX3NoYXJlZC5fczJsKHRoaXMpIiB0aXRsZT0iQ2hvb3NlIGEgZGlmZmVyZW50IGxhbmd1YWdlIiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzX2xhbmd1YWdlIj4KICAgPG9wdGlvbiBjbGFzcz0ic2VsZWN0ZWQiIHNlbGVjdGVkIHZhbHVlPSJlbiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBFbmdsaXNoIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImVzIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIEVzcGHDsW9sIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImRlLURFIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIERldXRzY2ggPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iZnItRlIiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRnJhbsOnYWlzIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImphLUpQIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIOaXpeacrOiqniA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJwdC1CUiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBQb3J0dWd1w6pzIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImtvLUtSIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIO2VnOq1reyWtCA8L29wdGlvbj4KICA8L3NlbGVjdD4KICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL2ZhcSI+CiBGQVEgPC9hPgogICA8L2xpPgogIDwvdWw+CgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51X2NvcHlyaWdodCI+VE0gKyDCqSAyMDE3IFZpbWVvLCBJbmMuPC9kaXY+CiA8L3NlY3Rpb24+CjwvbmF2PgoKPHNjcmlwdD4KIWZ1bmN0aW9uKGEsYil7YS52aW1lbz1hLnZpbWVvfHx7fSx2aW1lby5tb2JpbGU9dmltZW8ubW9iaWxlfHx7fSxWaW1lbz12aW1lby5tb2JpbGV8fHt9LFZpbWVvLmRlc2t0b3Bfc2hhcmVkPVZpbWVvLmRlc2t0b3Bfc2hhcmVkfHx7fTt2YXIgYz1iLmdldEVsZW1lbnRCeUlkKCJ0b3BuYXZfZGVza3RvcCIpLGQ9Im9udG91Y2hzdGFydCJpbiBhPyJ0b3VjaHN0YXJ0IjphLlBvaW50ZXJFdmVudD8icG9pbnRlcmRvd24iOmEuTVNQb2ludGVyRXZlbnQ/Ik1TUG9pbnRlckRvd24iOiJjbGljayI7ImNsaWNrIiE9PWQmJmMuYWRkRXZlbnRMaXN0ZW5lcihkLGZ1bmN0aW9uKGEpe3ZhciBiPSJpbWciPT09YS50YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQ7Yi5jbGFzc0xpc3QuY29udGFpbnMoInRvcG5hdl9oYXNfZHJvcGRvd24iKSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKX0sITEpLGMuYWRkRXZlbnRMaXN0ZW5lcihkLGZ1bmN0aW9uKGMpe2MudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygianMtdG9wbmF2X21lbnVfYXV0aCIpJiYoYi5jb29raWU9Imxhc3RfcGFnZT0iK2VuY29kZVVSSUNvbXBvbmVudChhLmxvY2F0aW9uLnBhdGhuYW1lKSsiO3BhdGg9Jy8nO21heC1hZ2U9MTgwMDsiKX0sITEpLFZpbWVvLmRlc2t0b3Bfc2hhcmVkLl91cGxvYWQ9ZnVuY3Rpb24oYyl7aWYoL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBmLGcsZD0idmltZW86Ly9hcHAudmltZW8uY29tL3VwbG9hZD9yZWY9bW9iaWxld2ViIixlPSIvdXBsb2FkIjtyZXR1cm4gZj1mdW5jdGlvbigpe2Iud2Via2l0SGlkZGVufHwoYS5sb2NhdGlvbj1lKX0sZz1mdW5jdGlvbigpe2EubG9jYXRpb249ZCxzZXRUaW1lb3V0KGYsMjUpfSxnKCksITF9YS5sb2NhdGlvbj1jLmhyZWZ9LFZpbWVvLmRlc2t0b3Bfc2hhcmVkLl9zMmRzPWZ1bmN0aW9uKCl7Yi5jb29raWU9Im9wdF9vdXRfbW9iaWxlPTE7ZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVDtkb21haW49Iit2aW1lby5kb21haW4sYS5sb2NhdGlvbi5yZWxvYWQoKX0sVmltZW8uZGVza3RvcF9zaGFyZWQuX3MybD1mdW5jdGlvbihiKXt2YXIgYz1iLnZhbHVlLGQ9bmV3IFhNTEh0dHBSZXF1ZXN0O2Qub3BlbigiUE9TVCIsIi9zZXR0aW5ncy9sb2NhbGUiKSxkLnNldFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpLGQuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiksZC5zZW5kKCJsb2NhbGU9IitjKyImdG9rZW49Iit2aW1lby54c3JmdCksZC5vbmxvYWQ9ZnVuY3Rpb24oKXsyMDA9PT1kLnN0YXR1cyYmYS5sb2NhdGlvbi5yZWxvYWQoKX19O3ZhciBlPSJjbGljayIsZj0iYmxvY2siLGc9Im5vbmUiLGg9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfbG9nbyIpO2gmJmguYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBjPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfbWVudV9tYWluIik7Yy5zdHlsZS5kaXNwbGF5PWY7dmFyIGQ9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfY2xvc2UiKTtkLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxjLnN0eWxlLmRpc3BsYXk9Z30pO3ZhciBoPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfbWVudV9zZXR0aW5ncyIpLGk9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfc2V0dGluZ3MiKTtpLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxoLnN0eWxlLmRpc3BsYXk9ZixjLnN0eWxlLmRpc3BsYXk9Zzt2YXIgZD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5zX2Nsb3NlIik7ZC5hZGRFdmVudExpc3RlbmVyKGUsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCksaC5zdHlsZS5kaXNwbGF5PWcsYy5zdHlsZS5kaXNwbGF5PWZ9KX0pfSwhMSksc2V0VGltZW91dChmdW5jdGlvbigpe2Z1bmN0aW9uIGYoYSl7dmFyIGI9bmV3IFhNTEh0dHBSZXF1ZXN0O2Iub3BlbigiUE9TVCIsIi9zZXR0aW5ncy9uYXYiKSxiLnNldFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpLGIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiksYi5zZW5kKCJtZXNzYWdlX3N0YXRlPSIrYSsiJnRva2VuPSIrdmltZW8ueHNyZnQpLGIub25sb2FkPWZ1bmN0aW9uKCl7fX12YXIgYT1iLmdldEVsZW1lbnRCeUlkKCJ0b3BuYXZfbWVudV9hdmF0YXIiKTtpZihhKXt2YXIgYz1hLnF1ZXJ5U2VsZWN0b3IoIi50b3BuYXZfbWVudV9hdmF0YXJfYnViYmxlIiksZT0oYS5xdWVyeVNlbGVjdG9yKCIjdG9wbmF2X3VzZXJfZHJvcGRvd24iKSwhMSk7YyYmYy5jbGFzc0xpc3QuYWRkKCJvbiIpLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIixmdW5jdGlvbigpe2V8fChlPSEwLGMmJmMuY2xhc3NMaXN0LnJlbW92ZSgib24iKSxmKDEpKX0sITEpfX0sMWUzKX0od2luZG93LGRvY3VtZW50KTsKPC9zY3JpcHQ+CgogPGRpdiBjbGFzcz0id3JhcF9jb250ZW50Ij4KIAo8ZGl2IGNsYXNzPSJhcHBfYmFubmVyX2NvbnRhaW5lciI+CgogPGRpdiBjbGFzcz0iYXBwX2Jhbm5lciBoaWRlIGpzLWFwcF9iYW5uZXIiPgoKIDxidXR0b24gY2xhc3M9ImFwcF9iYW5uZXJfY2xvc2UganMtYXBwX2Jhbm5lcl9jbG9zZSI+JnRpbWVzOzwvYnV0dG9uPgoKIDxkaXYgY2xhc3M9ImFwcF9iYW5uZXJfaWNvbl93cmFwcGVyIj4KIDxzdmcgY2xhc3M9ImFwcF9iYW5uZXJfaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yNCA2LjY0M0MyNCAxMS4yODYgMTUgMjIgMTAuODc1IDIyIDYgMjIgNiA3LjcxNCAzLjAxMyA3LjcxNGMtLjM4OCAwLTEuODgzIDEuMDctMS44ODMgMS4wN0wwIDcuMzU4czUuMjUtNSA3LjUtNWM0LjUgMCAzIDEyLjUgNS42MjUgMTIuNSAxLjUgMCA2Ljc1LTcuODU3IDIuMjUtNy44NTctLjc1IDAtMS41LjM1Ny0xLjUuMzU3QzE1IDMuNzg3IDE3LjI1IDIgMjAuNjI1IDIgMjIuODc1IDIgMjQgMy43ODYgMjQgNi42NDN6Ii8+PC9zdmc+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJhcHBfYmFubmVyX2N0YSI+CiBXYXRjaCBpbiBvdXIgYXBwIDwvZGl2PgoKIDxhIGNsYXNzPSJhcHBfYmFubmVyX2J1dHRvbiBqcy1hcHBfYmFubmVyX29wZW5fYXBwIiBkYXRhLWRlZXAtbGluaz0idmlkZW9zLzEzNjk3MTQyOCIgZGF0YS1zb3VyY2UtY29udGV4dD0iY2xpcCI+CiA8c3BhbiBjbGFzcz0iYXBwX2Jhbm5lcl9idXR0b25fdGV4dCI+T3BlbiBpbiBhcHA8L3NwYW4+CiA8L2E+CgogPC9kaXY+Cgo8L2Rpdj4KCgogIDxzY3JpcHQ+CiAgIWZ1bmN0aW9uKGkpe2lmKHZvaWQgMD09PWkudmltZW98fHZvaWQgMD09PWkudmltZW8uY2xpcHMpe2kudmltZW89aS52aW1lb3x8e30saS52aW1lby5jbGlwcz1pLnZpbWVvLmNsaXBzfHx7fTt2YXIgZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZS5vcGVuKCJHRVQiLCJodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vMTM2OTcxNDI4L2NvbmZpZz9ieWxpbmU9MCZjb2xsZWN0aW9ucz0xJmNvbnRleHQ9VmltZW8lNUNDb250cm9sbGVyJTVDQ2xpcENvbnRyb2xsZXIubWFpbiZkZWZhdWx0X3RvX2hkPTEmb3V0cm89bm90aGluZyZwb3J0cmFpdD0wJnNoYXJlPTEmdGl0bGU9MCZ3YXRjaF90cmFpbGVyPTAmcz1iZTUxMmFjOTM5NzljOTJiMGYwODViNGJlNTBmNmJlMTliM2U2YmJkXzE0OTA3NDcwMTciLCEwKSxlLm9ubG9hZD1mdW5jdGlvbigpe2kudmltZW8uY2xpcHNbIjEzNjk3MTQyOCJdPUpTT04ucGFyc2UoZS5yZXNwb25zZVRleHQpfSxlLndpdGhDcmVkZW50aWFscz0hMCxlLnNlbmQoKX19KHdpbmRvdyk7CiA8L3NjcmlwdD4KCjwhLS1baWYgbHRlIElFIDldPgogPHNjcmlwdD53aW5kb3cubG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24gKyAnP2xpdGU9MSc7PC9zY3JpcHQ+CjwhW2VuZGlmXS0tPgoKPG1haW4gaWQ9Im1haW4iIGNsYXNzPSJpc19sb2FkaW5nIj4KIDxkaXYgY2xhc3M9ImlyaXNfZ3JpZCBpcmlzX2dyaWRfZnA5NjAiPgogPGRpdiBjbGFzcz0iY2xpcF9tYWluIj4KIDxkaXYgY2xhc3M9InBsYXllcl9hcmVhIj4KIDxub3NjcmlwdD4KIDxpbWcgc3JjPSJodHRwczovL2kudmltZW9jZG4uY29tL3ZpZGVvLzUzMTY4ODIzOS5qcGc/bXc9MTkyMCZhbXA7bWg9MTA4MCZhbXA7cT03MCIgYWx0PSIiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIGF1dG87IG1heC1oZWlnaHQ6IDU0MHB4OyIgLz4KIDwvbm9zY3JpcHQ+CiA8L2Rpdj4KCiA8bm9zY3JpcHQ+CiA8ZGl2IGNsYXNzPSJjbGlwX21haW4tY29udGVudCBpcmlzX2dyaWQtd3JhcHBlci0tY29udGVudCI+CiA8ZGl2IGNsYXNzPSJpcmlzX2dyaWQtY29udGVudCI+CiA8ZGl2IGNsYXNzPSJyb3cgdS1jb2xsYXBzZSBjbGlwLW5vdGlmaWNhdGlvbiIgc3R5bGU9Im1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogMS41ZW07Ij4KIDxkaXYgY2xhc3M9ImlyaXNfbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uLWNsaXAgaXJpc19ub3RpZmljYXRpb24tY2xpcC0tY2F1dGlvbiBpcmlzX25vdGlmaWNhdGlvbi0tbm8tY2xvc2UgY2xlYXJmaXgiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwOyI+CiA8cD5QbGVhc2UgZW5hYmxlIEphdmFTY3JpcHQgdG8gZXhwZXJpZW5jZSBWaW1lbyBpbiBhbGwgb2YgaXRzIGdsb3J5LjwvcD4KIDwvZGl2PgogPC9kaXY+CgogPGRpdiBjbGFzcz0iaXJpc19ncmlkLWNvbnRlbnQiPgogPGRpdiBjbGFzcz0iY2xpcF9pbmZvLXdyYXBwZXIiPgogPGRpdiBjbGFzcz0iY2xpcF9pbmZvIj4KIDxoMSBjbGFzcz0iY2xpcF9pbmZvLWhlYWRlciI+RGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXI8L2gxPgogPC9kaXY+CiA8ZGl2IGNsYXNzPSJjbGlwX2luZm8tc3VibGluZS0td2F0Y2ggY2xpcF9pbmZvLXN1YmxpbmUtLWlubGluZSI+CiA8cCBjbGFzcz0idXNlcmJ5bGluZS1zdWJsaW5lIHVzZXJieWxpbmUtc3VibGluZS0tbGciPgogPHNwYW4+ZnJvbTwvc3Bhbj4KIDxzcGFuIGNsYXNzPSJ1c2VybGluayB1c2VybGluay0tbWQiPgogPGEgaHJlZj0iL2FudGlyZWNvcmRzIj5BbnRpIFJlY29yZHM8L2E+CiA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4KICA8YSB0YWJpbmRleD0iLTEiIGhyZWY9Ii9wbHVzIiB0aXRsZT0iTGVhcm4gbW9yZSBhYm91dCBWaW1lbyBQbHVzIiBkYXRhLWd0bS1jbGljaz0iYmFkZ2VfcGx1c19jbGljayIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6YmFkZ2V8Y29tcG9uZW50OnVwZ3JhZGVfbGlua3xrZXl3b3JkOnBsdXMiPgogPHNwYW4gY2xhc3M9ImlyaXNfYmFkZ2UgaXJpc19iYWRnZS0tcGx1cyBiYWRnZSBiYWRnZS0tcGx1cyBiYWRnZV9wbHVzIj4KIFBsdXMgPC9zcGFuPgogPC9hPgogPC9zcGFuPgogPC9zcGFuPgogPC9wPgogPHNwYW4gY2xhc3M9ImNsaXBfaW5mby10aW1lIj48dGltZSBkYXRldGltZT0iMjAxNS0wOC0yMVQxNzozNzo0My0wNDowMCIgdGl0bGU9IkZyaWRheSwgQXVndXN0IDIxLCAyMDE1IGF0IDU6MzcgUE0iPjEgeWVhciBhZ288L3RpbWU+PC9zcGFuPgogPC9kaXY+CiA8L2Rpdj4KIDwvZGl2PgogPC9kaXY+CgogPGRpdiBjbGFzcz0iY2xpcF9kZXRhaWxzIGlyaXNfZGl2aWRlci0tZGFyayBpcmlzX2RpdmlkZXItdG9wIGlyaXNfZGl2aWRlci10b3AtLW0gaXJpc19kaXZpZGVyLWJvdCBpcmlzX2RpdmlkZXItYm90LS1tIHUtY29sbGFwc2UgY2xlYXJmaXgiPgogPGRpdiBjbGFzcz0iaXJpc19ncmlkLWNvbnRlbnQiPgogPGRpdiBjbGFzcz0iY2xpcF9kZXRhaWxzLWRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLXdyYXBwZXIgaXJpc19kZXNjIj4KIDxwIGNsYXNzPSJmaXJzdCI+JiMwMzk7TmV3IEJlcm11ZGEsJiMwMzk7IHRoZSB1cGNvbWluZyBhbGJ1bSBmcm9tIERlYWZoZWF2ZW4sIGlzIGF2YWlsYWJsZSBPY3RvYmVyIDJuZDwvcD4gPC9kaXY+CiA8L2Rpdj4KIDwvZGl2PgogPC9kaXY+CiA8L25vc2NyaXB0PgogPC9kaXY+CiA8L2Rpdj4KPC9tYWluPgoKPHNjcmlwdD4KIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKIHdpbmRvdy52aW1lby5jbGlwX3BhZ2VfY29uZmlnID0geyJjbGlwIjp7ImlkIjoxMzY5NzE0MjgsInRpdGxlIjoiRGVhZmhlYXZlbiAtIFx1MjAxOE5ldyBCZXJtdWRhXHUyMDE5IFRyYWlsZXIiLCJkZXNjcmlwdGlvbiI6IjxwIGNsYXNzPVwiZmlyc3RcIj4mIzAzOTtOZXcgQmVybXVkYSwmIzAzOTsgdGhlIHVwY29taW5nIGFsYnVtIGZyb20gRGVhZmhlYXZlbiwgaXMgYXZhaWxhYmxlIE9jdG9iZXIgMm5kPFwvcD4iLCJ1cGxvYWRlZF9vbiI6IjIwMTUtMDgtMjEgMTc6Mzc6NDMiLCJ1cGxvYWRlZF9vbl9yZWxhdGl2ZSI6IjEgeWVhciBhZ28iLCJ1cGxvYWRlZF9vbl9mdWxsIjoiRnJpZGF5LCBBdWd1c3QgMjEsIDIwMTUgYXQgNTozNyBQTSBFU1QiLCJpc19zcGF0aWFsIjpmYWxzZSwicHJpdmFjeSI6eyJpc19wdWJsaWMiOnRydWUsInR5cGUiOiJhbnlib2R5IiwiZGVzY3JpcHRpb24iOiJQdWJsaWMifSwiZHVyYXRpb24iOnsicmF3Ijo1OSwiZm9ybWF0dGVkIjoiMDA6NTkifSwiaXNfbGlrZWQiOmZhbHNlLCJpc191bmF2YWlsYWJsZSI6ZmFsc2V9LCJvd25lciI6eyJpZCI6ODE0MzExLCJkaXNwbGF5X25hbWUiOiJBbnRpIFJlY29yZHMiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwiYmFkZ2UiOnsidHlwZSI6InBsdXMiLCJhbHRfdGV4dCI6IkxlYXJuIG1vcmUgYWJvdXQgVmltZW8gUGx1cyIsInVybCI6IlwvcGx1cyIsInRleHQiOiJQbHVzIiwicHJpbWFyeV90YWciOiJzcGFuIiwiY2xhc3NOYW1lIjoiaXJpc19iYWRnZSBpcmlzX2JhZGdlLS1wbHVzIGJhZGdlIGJhZGdlLS1wbHVzIGJhZGdlX3BsdXMiLCJndG1fY2xpY2tfZXZlbnQiOiJiYWRnZV9wbHVzX2NsaWNrIiwiZmF0YWxfYXR0cmFjdGlvbl9ldmVudCI6ImNvbnRhaW5lcjpiYWRnZXxjb21wb25lbnQ6dXBncmFkZV9saW5rfGtleXdvcmQ6cGx1cyJ9LCJwb3J0cmFpdCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNDc5MDI3Nl83NXg3NSIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE0NzkwMjc2XzE1MHgxNTAifSwidXJsIjoiXC9hbnRpcmVjb3JkcyIsInZlcmlmaWVkIjp0cnVlLCJpc19mb2xsb3dpbmciOmZhbHNlfSwib25kZW1hbmQiOm51bGwsImJyYW5kX2NoYW5uZWwiOm51bGwsImN1cl91c2VyIjpudWxsLCJzdGF0dXMiOnsic3RhdGUiOiJyZWFkeSJ9LCJjb3B5cmlnaHRfc3RhdHVzIjp7ImlzX2Jsb2NrZWQiOmZhbHNlfSwiY29udGVudF9ibG9ja19zdGF0dXMiOnsiaXNfYmxvY2tlZCI6ZmFsc2UsIm1lc3NhZ2UiOm51bGwsImNvbnRpbnVvdXNfcGxheV9lbmFibGVkIjpmYWxzZX0sInBsYXllciI6eyJjb25maWdfdXJsIjoiaHR0cHM6XC9cL3BsYXllci52aW1lby5jb21cL3ZpZGVvXC8xMzY5NzE0MjhcL2NvbmZpZz9ieWxpbmU9MCZjb2xsZWN0aW9ucz0xJmNvbnRleHQ9VmltZW8lNUNDb250cm9sbGVyJTVDQ2xpcENvbnRyb2xsZXIubWFpbiZkZWZhdWx0X3RvX2hkPTEmb3V0cm89bm90aGluZyZwb3J0cmFpdD0wJnNoYXJlPTEmdGl0bGU9MCZ3YXRjaF90cmFpbGVyPTAmcz1iZTUxMmFjOTM5NzljOTJiMGYwODViNGJlNTBmNmJlMTliM2U2YmJkXzE0OTA3NDcwMTciLCJwbGF5ZXJfdXJsIjoicGxheWVyLnZpbWVvLmNvbSIsImRpbWVuc2lvbnMiOnsiaGVpZ2h0Ijo1NDAsIndpZHRoIjo5NjB9LCJwb3N0ZXIiOnsidXJsIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNTMxNjg4MjM5LmpwZz9tdz0yMDAwJm1oPTEwODAmcT03MCJ9fSwic2hhcmVfZW5hYmxlZCI6dHJ1ZSwiY29udGludW91c19wbGF5X2VuYWJsZWQiOnRydWUsInNlbmRfdG9fd2lwc3Rlcl9lbmFibGVkIjpmYWxzZSwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzUzMTY4ODIzOV8xOTB4MTA3LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzUzMTY4ODIzOV8zODB4MjE0LmpwZyIsIndpZHRoIjoxOTAsImhlaWdodCI6MTA3LCJpZCI6NTMxNjg4MjM5fSwiYWRzIjp7ImFmY190ZXh0X2FkIjp7InB1Yl9pZCI6ImNhLXB1Yi0yNDU5MjQyMTk5MDQ4NzAwIn0sImRpc3BsYXlfYWQiOnsibmV0d29ya19pZCI6IjU0NTQ5NTQ0IiwidW5pdF9uYW1lIjoiY2xpcCIsInNpemVzIjpbMzAwLDI1MF0sImN1c3RvbV90YXJnZXRpbmciOnsiY29udGVudF9yYXRpbmciOnt9fX19LCJjb250ZW50X3JhdGluZyI6bnVsbCwibm90aWZpY2F0aW9ucyI6W10sImNhdGVnb3JpZXNfY29uZmlnIjp7ImNhdGVnb3JpZXMiOm51bGwsInRvdGFsX2NhdGVnb3JpZXMiOjB9LCJtdXNpY190cmFjayI6bnVsbCwiY2NfbGljZW5zZSI6bnVsbCwiY3JlZGl0cyI6eyJ0b3RhbF9jcmVkaXRzIjp7InJhdyI6MCwiZm9ybWF0dGVkIjowfX0sInN0cmVhbSI6eyJpZCI6bnVsbCwicG9zIjowfSwiY29sbGVjdGlvbl9hZGRlciI6eyJlbmFibGVkIjp0cnVlfSwiY2xpcF9zdGF0cyI6eyJlbmFibGVkIjpmYWxzZX0sImRvd25sb2FkX2NvbmZpZyI6bnVsbCwic3VydmV5X3VybCI6Imh0dHBzOlwvXC93d3cubWFya2V0aW5ncmVzZWFyY2hyZXNvdXJjZXMuY29tXC9pbWFnZXNcL292bTAwNTE2XC9tcnIuYXNwP0kuVXNlcjE9TyZ1c2VyPWxvZ2dlZG91dCZjbGlwPTEzNjk3MTQyOCZ2dWlkPSJ9Owogd2luZG93LmNhbl9wcmVsb2FkID0gdHJ1ZTsKCiA8L3NjcmlwdD4KCiA8ZGl2IGNsYXNzPSJoaWRlIj4KIDxkaXYgaWQ9Imdvb2dsZV9hZmNfYWRzIiBjbGFzcz0iZ29vZ2xlX2FkIj48L2Rpdj4KCiA8L2Rpdj4KCjxzY3JpcHQ+CmNvbnNvbGUubG9nKCclYyBcblwK4o6cICAgICAgIEBAQCYgICAgICAgQEBAQEBAXG5cCuKOnCAgICAjQEBAQEBAQCAgICAmQEBAQEBAQEAgICAgICAgQnVpbHQgdXNpbmc6XG5cCuKOnCAgI0BAQEBAQEBAQC4gICUlJkBAQEBAQEAgICAgICAgIOKAoiBSZWFjdCArIEZsdXhcblwK4o6cICAgICAgJkBAQEBAJSAgICAgKEBAQEBAKCAgICAgICDigKIgRVM2XG5cCuKOnCAgICAgICBAQEBAQEAgICAgIEBAQEBAQCAgICAgICAg4oCiIEZldGNoIEFQSVxuXArijpwgICAgICAgJUBAQEBAKCAgLkBAQEBAKCAgICAgICAgIOKAoiBGbGV4Ym94XG5cCuKOnCAgICAgICAgQEBAQEBAKEBAQEBAQFxuXArijpwgICAgICAgIC9AQEBAQEBAQEBAJSAgICAgICAgICAgIExpa2UgcGxheWluZyB3aXRoIG5ldyB0ZWNobm9sb2d5LCB0b28/XG5cCuKOnCAgICAgICAgICZAQEBAQEBAJSAgICAgICAgICAgICAgaHR0cHM6Ly92aW1lby5jb20vam9ic1xuXArijpwgICAgICAgICAgQEBAQEAjXG5cClxuXAonLCAnY29sb3I6ICMwMGFkZWY7Jyk7Cjwvc2NyaXB0PgogPC9kaXY+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+CiA8cCBjbGFzcz0iYWN0aXZlIGZvb3Rlcl92Ml9fdGlwLWNvbnRlbnQiPkl0IGNhbiBiZSBkaWZmaWN1bHQgdG8gPGEgaHJlZj0iL3ZpZGVvc2Nob29sL2xlc3Nvbi8xNDkvcXVpY2stZm9jdXNpbmctdGlwcyI+ZmluZCBmb2N1czwvYT4gaW4gbGlmZSwgYW5kIGFsc28gd2hlbiBzaG9vdGluZyB2aWRlb3MuIFdlIGNhbiBoZWxwIHlvdSB3aXRoIG9uZSBvZiB0aG9zZSBjaGFsbGVuZ2VzLjwvcD4KIDwvYXNpZGU+CiA8L3NlY3Rpb24+CiAKICA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19hdXhpbGlhcnkgIj4KCiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsIj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQiPgogPHA+VE0gKyAmY29weTsgMjAxNyBWaW1lbywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KIDwvZGl2PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvdGVybXMiIHRpdGxlPSJUZXJtcyAmYW1wOyBDb25kaXRpb25zIj4KIFRlcm1zIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9Ii9wcml2YWN5IiB0aXRsZT0iUHJpdmFjeSBQb2xpY3kiPgogUHJpdmFjeSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvZG1jYSIgdGl0bGU9IkNvcHlyaWdodCBJbmZvcm1hdGlvbiI+CiBDb3B5cmlnaHQgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iL2Nvb2tpZV9wb2xpY3kiIHRpdGxlPSJMZWFybiBtb3JlIGFib3V0IGhvdyBWaW1lbyB1c2VzIGNvb2tpZXMiPgogQ29va2llcyA8L2E+CiA8L2xpPgogPC91bD4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQgZm9vdGVyX3YyX193aXRobG92ZSI+CiBNYWRlIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vbG92ZSI+PHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIgZm9vdGVyX3YyX19sb3ZlaGVhcnQgZm9vdGVyX3YyX19hdXhpbGlhcnktaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTIgMTIiPjxwYXRoIGQ9Ik05IDJDNy4zMTIgMiA2IDMuNSA2IDMuNVM0LjY4NyAyIDMgMkMxLjMxMiAyIDAgMy4zMTIgMCA1YzAgMy4xODggMy43NSAzLjAxMiA2IDYgMi4yNS0yLjk4OCA2LTIuODEyIDYtNiAwLTEuNjg4LTEuMzEzLTMtMy0zeiIvPjwvc3ZnPjwvYT4gaW4gTllDLiA8L2Rpdj4KIDwvZGl2PgoKIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fZmlsdGVycyBmb290ZXJfdjJfX2F1eGlsaWFyeS1jb250ZW50Ij4KIDxzcGFuIGNsYXNzPSJsYW5ndWFnZSI+CiBMYW5ndWFnZToKIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9IiNsYW5ndWFnZSIgb25jbGljaz0idmltZW8uTW9kYWwuY3JlYXRlKHtjb250ZW50OiAnL3NldHRpbmdzL2xvY2FsZScsIHNpemU6ICdzbWFsbCd9KTsgcmV0dXJuIGZhbHNlOyIgdGl0bGU9IkNob29zZSBhIGRpZmZlcmVudCBsYW5ndWFnZSI+RW5nbGlzaDwvYT4KIDwvc3Bhbj4KCiAgPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fZmlsdGVyIj5NYXR1cmUgY29udGVudCBmaWx0ZXI6IDwvc3Bhbj48YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IGZvb3Rlcl92Ml9fZmlsdGVyc19fbGFuZyBjb250ZW50ZmlsdGVyIGpzLWZvb3Rlcl9jb250ZW50ZmlsdGVyX2xpbmsiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgb25jbGljaz0idmltZW8uTW9kYWwuY3JlYXRlKHtjb250ZW50OiAnL3NldHRpbmdzL2NvbnRlbnRyYXRpbmcnfSkiIHRpdGxlPSJDaGFuZ2UgeW91ciBtYXR1cmUgY29udGVudCBmaWx0ZXIiPk5vbmU8L2E+CiAgPC9kaXY+Cgo8L3NlY3Rpb24+CjwvZm9vdGVyPgogCiA8L2Rpdj4KCiAKIAogCiAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KIFt7InVybCI6Imh0dHBzOi8vdmltZW8uY29tLzEzNjk3MTQyOCIsInRodW1ibmFpbFVybCI6Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyIsImVtYmVkVXJsIjoiaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLzEzNjk3MTQyOCIsIm5hbWUiOiJEZWFmaGVhdmVuIC0gJiMwMzk7TmV3IEJlcm11ZGEmIzAzOTsgVHJhaWxlciIsImRlc2NyaXB0aW9uIjoiJiMwMzk7TmV3IEJlcm11ZGEsJiMwMzk7IHRoZSB1cGNvbWluZyBhbGJ1bSBmcm9tIERlYWZoZWF2ZW4sIGlzIGF2YWlsYWJsZSBPY3RvYmVyIDJuZCIsImhlaWdodCI6NzIwLCJ3aWR0aCI6MTI4MCwicGxheWVyVHlwZSI6IkhUTUw1IEZsYXNoIiwidmlkZW9RdWFsaXR5IjoiSEQiLCJkdXJhdGlvbiI6IlBUMDBIMDBNNTlTIiwidXBsb2FkRGF0ZSI6IjIwMTUtMDgtMjFUMTc6Mzc6NDMtMDQ6MDAiLCJ0aHVtYm5haWwiOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsInVybCI6Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyIsIndpZHRoIjoxMjgwLCJoZWlnaHQiOjcyMH0sImF1dGhvciI6eyJAdHlwZSI6IlBlcnNvbiIsIm5hbWUiOiJBbnRpIFJlY29yZHMiLCJ1cmwiOiJodHRwczovL3ZpbWVvLmNvbS9hbnRpcmVjb3JkcyJ9LCJwb3RlbnRpYWxBY3Rpb24iOnsiQHR5cGUiOiJWaWV3QWN0aW9uIiwidGFyZ2V0IjoidmltZW86Ly9hcHAudmltZW8uY29tL3ZpZGVvcy8xMzY5NzE0MjgifSwiaW50ZXJhY3Rpb25Db3VudCI6MzY0LCJAdHlwZSI6IlZpZGVvT2JqZWN0IiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZyJ9LHsiaXRlbUxpc3RFbGVtZW50IjpbeyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjEsIml0ZW0iOnsiQGlkIjoiaHR0cHM6Ly92aW1lby5jb20vYW50aXJlY29yZHMiLCJuYW1lIjoiQW50aSBSZWNvcmRzIn19LHsiQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoyLCJpdGVtIjp7IkBpZCI6Imh0dHBzOi8vdmltZW8uY29tL2FudGlyZWNvcmRzL3ZpZGVvcyIsIm5hbWUiOiJWaWRlb3MifX1dLCJAdHlwZSI6IkJyZWFkY3J1bWJMaXN0IiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZyJ9XSA8L3NjcmlwdD4KCjxzY3JpcHQ+CiB2YXIgX19mYSA9IF9fZmEgfHwgW107CiBfX2ZhLnB1c2goWyd0cmFja1BhZ2V2aWV3J10pOwoKICAvLyBBbmFseXRpY3MgU2V0dXAKIHZhciBfZ3RtID0gX2d0bSB8fCBbXSwKIF9pbml0aWFsX2d0bV9zdGF0ZSA9IHsiY2xpcF9pZCI6MTM2OTcxNDI4LCJjcmVhdG9yX2lkIjo4MTQzMTEsImNhdGVnb3J5IjoiIiwicHJpdmFjeSI6ImFueWJvZHkiLCJzdGFmZl9waWNrIjoibm8iLCJsYW5ndWFnZSI6ImVuIiwidXNlcl9zdGF0dXMiOiJsb2dnZWRfb3V0IiwidXNlcl90eXBlIjoibm9uZSIsImdhX3VuaXZlcnNhbF9pZCI6IlVBLTc2NjQxLTgiLCJjb21zY29yZV9zaXRlX2lkIjoxMDM0ODI4OX07CgogX2luaXRpYWxfZ3RtX3N0YXRlWyd2dWlkJ10gPSBkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopdnVpZFxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpOwogX2luaXRpYWxfZ3RtX3N0YXRlWydndG0uc3RhcnQnXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogX2luaXRpYWxfZ3RtX3N0YXRlWydldmVudCddID0gJ2d0bS5qcyc7CiBfZ3RtLnB1c2goX2luaXRpYWxfZ3RtX3N0YXRlKTsKIAogLyoqCiAqIElmIHRoZSBjdXJyZW50IHJlcXVlc3Qgd2FzIGJ1Y2tldGVkIGluIGFuIEFCTGluY29sbiBleHBlcmltZW50LAogKiBzZW5kIHRoZSBzZWxlY3RlZCB0cmVhdG1lbnQgYmFjayBmcm9tIHRoZSBjbGllbnQsIHRvIGZpbHRlciBhYiB0ZXN0CiAqIGRhdGEgZG93biB0byBub24tcm9ib3QgdXNlcnMgdGhhdCBydW4gSmF2YVNjcmlwdC4KICovCiBpZiAoIkFCTGluY29sbiIgaW4gd2luZG93KSB7CiAoZnVuY3Rpb24gKCkgewogICB9KSgpOwogfQoKICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogIHZhciBDU1NfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvJywKIEpTX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC8nLAogSU1BR0VfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2LycsCiBTVkdfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3ZnLycsCiAgQlVJTERfSEFTSCA9ICc3MjQ1NCc7CgogIHZhciB2aW1lbyA9IF9leHRlbmQoKHdpbmRvdy52aW1lbyB8fCB7fSksIHsiYXBwX3ZlcnNpb24iOiJ2NiIsImRvbWFpbiI6InZpbWVvLmNvbSIsInVybCI6InZpbWVvLmNvbSIsImN1cl91c2VyIjpmYWxzZSwiaXNfbW9iaWxlIjpmYWxzZX0pOwogdmltZW8uY29uZmlnID0gX2V4dGVuZCgodmltZW8uY29uZmlnIHx8IHt9KSwgeyJsb2NhbGUiOiJlbiJ9KTsKCiAgdmFyIGxvY2FsZUNvbmZpZyA9IHsKIGxhbmc6ICdlbicsCiAnRGF0ZSc6IHsKIG1vbnRoczogWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLAogbW9udGhzX2FiYnI6IFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sCiBkYXlzOiBbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sCiBkYXlzX2FiYnI6IFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sCgogLy8gQ3VsdHVyZSdzIGRhdGUgb3JkZXI6IE1NL0REL1lZWVkKIGRhdGVPcmRlcjogWydkYXRlJywgJ21vbnRoJywgJ3llYXInXSwKIHNob3J0RGF0ZTogJyVkLyVtLyVZJywKIHNob3J0VGltZTogJyVJOiVNJXAnLAogQU06ICdBTScsCiBQTTogJ1BNJywKIGZpcnN0RGF5T2ZXZWVrOiAwLAoKIC8vIERhdGUuRXh0cmFzCiBvcmRpbmFsOiBmdW5jdGlvbihkYXlPZk1vbnRoKXsKIHJldHVybiBkYXlPZk1vbnRoOwogfQogfSwKICdEYXRlUGlja2VyJzogewogc2VsZWN0X2FfdGltZTogIlNlbGVjdCBhIHRpbWUiLAogdXNlX21vdXNlX3doZWVsOiAiVXNlIHRoZSBtb3VzZSB3aGVlbCB0byBxdWlja2x5IGNoYW5nZSB2YWx1ZSIsCiB0aW1lX2NvbmZpcm1fYnV0dG9uOiAiT0siLAogYXBwbHlfcmFuZ2U6ICJBcHBseSIsCiBjYW5jZWw6ICJDYW5jZWwiLAogd2VlazogIldrIiB9LAogICdOdW1iZXInOiB7CiBkZWNpbWFsOiAnLicsCiBncm91cDogJywnLAogY3VycmVuY3k6IHsKIHByZWZpeDogJyQnCiB9CiB9LAogJ0Zvcm1WYWxpZGF0b3InOiB7InJlcXVpcmVkIjoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iLCJyZXF1aXJlZENoayI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn0gfTsKCiB2YXIgZnVsbExvY2FsZSA9ICcnOwoKIAogIHZhciBDb3B5ID0ge3RyYW5zbGF0ZTpmdW5jdGlvbih0LGksdSl7dmFyIGU9J29iamVjdCchPXR5cGVvZiB0aGlzLmRpY3RbdF0/dGhpcy5kaWN0W3RdOmk/dGhpcy5kaWN0W3RdLnBsdXJhbDp0aGlzLmRpY3RbdF0uc2luZ3VsYXI7cmV0dXJuJ29iamVjdCc9PXR5cGVvZiB1JiYoZT10aGlzLnN1YnN0aXR1dGUoZSx1KSksZX0sc3Vic3RpdHV0ZTpmdW5jdGlvbih0LGkpe3JldHVybiB2b2lkIDAhPT10LnN1YnN0aXR1dGU/dC5zdWJzdGl0dXRlKGkpOnQucmVwbGFjZSgvXFw/XHsoW157fV0rKVx9L2csZnVuY3Rpb24odCx1KXtyZXR1cm4nXFwnPT10LmNoYXJBdCgwKT90LnNsaWNlKDEpOm51bGwhPWlbdV0/aVt1XTonJ30pfSxkaWN0Ont9fTsKIENvcHkuZGljdCA9IHsiZGlkX3lvdV9tZWFuX2VtYWlsIjoiRGlkIHlvdSBtZWFuIDxlbT57U1VHR0VTVH08XC9lbT4/IiwiZW1haWxfcGFzc3dvcmRfbWlzbWF0Y2giOiJFbWFpbCBhbmQgcGFzc3dvcmQgZG8gbm90IG1hdGNoIiwianVzdF9ub3ciOiJqdXN0IG5vdyIsInNlY29uZHNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBzZWNvbmQgYWdvIiwicGx1cmFsIjoie0NPVU5UfSBzZWNvbmRzIGFnbyJ9LCJtaW51dGVzX2FnbyI6eyJzaW5ndWxhciI6IntDT1VOVH0gbWludXRlIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gbWludXRlcyBhZ28ifSwiaG91cnNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBob3VyIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gaG91cnMgYWdvIn0sIm9wZW5fY29tbWVudF9ib3giOiJBZGQgbmV3IGNvbW1lbnQgaW5zdGVhZCAmcmFxdW87IiwidXJsX3VuYXZhaWxhYmxlIjoiU29ycnksIHRoaXMgdXJsIGlzIHVuYXZhaWxhYmxlLiIsInVuc2F2ZWRfY2hhbmdlc19nZW5lcmljIjoiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLCBhcmUgeW91IHN1cmUgeW91IHdpc2ggdG8gbGVhdmU/IiwiYWRkIjoiQWRkIiwicmVtb3ZlIjoiUmVtb3ZlIiwic2VsZWN0IjoiU2VsZWN0Iiwibm9fZm9sbG93ZXJzX2Zvcl9sZXR0ZXIiOiJZb3UgZG9uJnJzcXVvO3QgZm9sbG93IGFueW9uZSB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciAmbGRxdW87e1BBR0VfTEVUVEVSfSZyZHF1bzsiLCJzaGFyZV9saW1pdF9yZWFjaGVkIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gc2hhcmUgd2l0aC4iLCJhdF9sZWFzdF9vbmUiOiJUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSB1c2VyLiIsImF2YWlsYWJsZSI6IkF2YWlsYWJsZSIsInVuYXZhaWxhYmxlIjoiVW5hdmFpbGFibGUiLCJicm93c2VfZXJyb3JfZ2VuZXJpYyI6IlNvcnJ5LCB0aGVyZSB3YXMgYW4gZXJyb3IiLCJicm93c2VfZXJyb3Jfbm9fdmlkZW9zIjoiU29ycnksIG5vIHZpZGVvcyBmb3VuZCIsImZvbGxvdyI6IkZvbGxvdyIsImZvbGxvd2luZyI6IkZvbGxvd2luZyIsInVuZm9sbG93IjoiVW5mb2xsb3ciLCJ1bmZvbGxvd2luZyI6IlVuZm9sbG93aW5nIiwiY291bnRfY29tbWVudHMiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IGNvbW1lbnQiLCJwbHVyYWwiOiJ7Q09VTlR9IGNvbW1lbnRzIn0sImZpcnN0X2NvbW1lbnQiOiJCZSB0aGUgZmlyc3QgdG8gY29tbWVudFx1MjAyNiIsIm5vX2NvbW1lbnRzX2Zvcl95b3UiOiJGb3JiaWRkZW4uIFlvdSBjYW5ub3QgcG9zdCBjb21tZW50cyBvbiB0aGlzIHBhZ2UuIiwib29wcyI6Ik9vcHMhIiwicGxheWVyX3RyeV9hZ2FpbiI6IlRoYXQgd2Fzbid0IHN1cHBvc2VkIHRvIGhhcHBlbi4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLiIsImR1cmF0aW9uX2lucHV0X21pbl9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHtNSU5fRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X21heF9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHtNQVhfRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X2ludmFsaWRfY2hhcmFjdGVycyI6IjAtOSBhbmQgOiBhcmUgdGhlIG9ubHkgYWNjZXB0YWJsZSBpbnB1dHMuIiwiY2xvc2UiOiJDbG9zZSIsImV4cGFuZCI6IkV4cGFuZCIsImxvYWRpbmciOiJMb2FkaW5nLi4uIiwidG9wIjoidG9wIiwiYWR2YW5jZWRfc2VhcmNoIjoiQWR2YW5jZWQgU2VhcmNoIiwibm9fc3VnZ2VzdGlvbnMiOiJObyBzdWdnZXN0aW9ucyIsInJlY2VudF9zZWFyY2hlcyI6IlJlY2VudCBTZWFyY2hlcyIsInNlYXJjaF9hbGwiOiJTZWFyY2ggQWxsIG9mIFZpbWVvIiwiZW1haWxfYW5kX3Bhc3N3b3JkIjoiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgYW5kIHBhc3N3b3JkIiwiZW1haWxfYWRkcmVzcyI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiLCJuYW1lX2VtYWlsX2FuZF9wYXNzd29yZCI6IlBsZWFzZSBlbnRlciB5b3VyIG5hbWUsIGVtYWlsLCBhbmQgcGFzc3dvcmQiLCIxIFRyYWNrIjoiMSBUcmFjayIsIkFib3V0IjoiQWJvdXQiLCJBY2NlcHQiOiJBY2NlcHQiLCJBZGQgYSBuZXcgY29tbWVudCI6IkFkZCBhIG5ldyBjb21tZW50IiwiQWRkIGNvbW1lbnQiOiJBZGQgY29tbWVudCIsIkFkZCByZXBseSI6IkFkZCByZXBseSIsIkFkZCB0byBjb2xsZWN0aW9ucyI6IkFkZCB0byBjb2xsZWN0aW9ucyIsIkFkZCI6IkFkZCIsIkFsYnVtcyI6IkFsYnVtcyIsIkFwcHJveGltYXRlIFRpbWUgUmVtYWluaW5nIjoiQXBwcm94aW1hdGUgVGltZSBSZW1haW5pbmciLCJBcmUgeW91IHN1cmUgeW91IHdhbnQgZGVsZXRlIHRoaXMgY29tbWVudCBwZXJtYW5lbnRseT8iOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgZGVsZXRlIHRoaXMgY29tbWVudCBwZXJtYW5lbnRseT8iLCJBdXRvcGxheSBuZXh0IHZpZGVvIjoiQXV0b3BsYXkgbmV4dCB2aWRlbyIsIkJ1eSB7RElTUExBWV9QUklDRX0iOiJCdXkge0RJU1BMQVlfUFJJQ0V9IiwiYnkge0FSVElTVF9OQU1FfSI6ImJ5IHtBUlRJU1RfTkFNRX0iLCJDYW5jZWwiOiJDYW5jZWwiLCJDaGFuZ2Ugc2V0dGluZ3MuIjoiQ2hhbmdlIHNldHRpbmdzLiIsIkNoYW5nZSB5b3VyIGNvbnRlbnQgZmlsdGVyIHByZWZlcmVuY2UiOiJDaGFuZ2UgeW91ciBjb250ZW50IGZpbHRlciBwcmVmZXJlbmNlIiwiQ2hhbm5lbHMiOiJDaGFubmVscyIsIkNob29zZSBmaWxlIjoiQ2hvb3NlIGZpbGUiLCJDbGljayBoZXJlIHRvIGFkZCBhIG5ldyBjb21tZW50IjoiQ2xpY2sgaGVyZSB0byBhZGQgYSBuZXcgY29tbWVudCIsIkNsaWNrIHRvIHNoYXJlIHRoaXMgY29tbWVudCBvbiB7U09DSUFMX0FQUH0iOiJDbGljayB0byBzaGFyZSB0aGlzIGNvbW1lbnQgb24ge1NPQ0lBTF9BUFB9IiwiQ29sbGVjdGlvbiBuYW1lIjoiQ29sbGVjdGlvbiBuYW1lIiwiQ29tbWVudHMgYXJlIGRpc2FibGVkLiI6IkNvbW1lbnRzIGFyZSBkaXNhYmxlZC4iLCJDb21tZW50cyI6IkNvbW1lbnRzIiwiQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbnNlOiI6IkNyZWF0aXZlIENvbW1vbnMgTGljZW5zZToiLCJEZWxldGUiOiJEZWxldGUiLCJEaW1lbnNpb25zIjoiRGltZW5zaW9ucyIsIkRvblx1MjAxOXQgd29ycnkhIE9ubHkgeW91ICh0aGUgY3JlYXRvcikgY2FuIGRvd25sb2FkIHRoaXMgdmlkZW8uIjoiRG9uXHUyMDE5dCB3b3JyeSEgT25seSB5b3UgKHRoZSBjcmVhdG9yKSBjYW4gZG93bmxvYWQgdGhpcyB2aWRlby4iLCJEb3dubG9hZCBjYXB0aW9ucyBhbmQgc3VidGl0bGVzIjoiRG93bmxvYWQgY2FwdGlvbnMgYW5kIHN1YnRpdGxlcyIsIkRvd25sb2FkIExpbmsiOiJEb3dubG9hZCBMaW5rIiwiRG93bmxvYWQiOiJEb3dubG9hZCIsIkR1ZSB0byB5b3VyIHByaXZhY3kgc2V0dGluZ3MsIHRoaXMgdmlkZW8gY2Fubm90IGJlIGFkZGVkIHRvIGNoYW5uZWxzIG9yIGdyb3Vwcy4iOiJEdWUgdG8geW91ciBwcml2YWN5IHNldHRpbmdzLCB0aGlzIHZpZGVvIGNhbm5vdCBiZSBhZGRlZCB0byBjaGFubmVscyBvciBncm91cHMuIiwiRWRpdCBTZXR0aW5ncyI6IkVkaXQgU2V0dGluZ3MiLCJFZGl0IjoiRWRpdCIsIkV4aXQgZnVsbHNjcmVlbiI6IkV4aXQgZnVsbHNjcmVlbiIsIkZldGNoIjoiRmV0Y2giLCJGaWxlIFNpemUiOiJGaWxlIFNpemUiLCJGaWxlIjoiRmlsZSIsIkZpbmlzaGVzIjoiRmluaXNoZXMiLCJGb2xsb3ciOiJGb2xsb3ciLCJGb2xsb3dpbmciOiJGb2xsb3dpbmciLCJGb3JtZXIgVmltZW8gc3RhZmYgbWVtYmVyIjoiRm9ybWVyIFZpbWVvIHN0YWZmIG1lbWJlciIsImZyb20ge1VTRVJfTkFNRX0iOiJmcm9tIHtVU0VSX05BTUV9IiwiZnJvbSB7Vk9EX1RJVExFfSI6ImZyb20ge1ZPRF9USVRMRX0iLCJHZXQgbWUgb3V0IG9mIGhlcmUhIjoiR2V0IG1lIG91dCBvZiBoZXJlISIsIkdyb3VwcyI6Ikdyb3VwcyIsIkhvdyB3YXMgeW91ciB2aWV3aW5nIGV4cGVyaWVuY2U/ICI6IkhvdyB3YXMgeW91ciB2aWV3aW5nIGV4cGVyaWVuY2U/ICIsIkluY29ycmVjdCByYXRpbmciOiJJbmNvcnJlY3QgcmF0aW5nIiwiSnVzdCBjaGVjayB5b3VyIGluYm94IGZvciBhIG1lc3NhZ2UgZnJvbSB1cyBhbmQgdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcy4gVGhlbiB5b3UgY2FuIGRvIGFsbCBraW5kcyBvZiBjb29sIHN0dWZmIG9uIFZpbWVvISAoe0F9SGVscHtcL0F9KSI6Ikp1c3QgY2hlY2sgeW91ciBpbmJveCBmb3IgYSBtZXNzYWdlIGZyb20gdXMgYW5kIHZlcmlmeSB5b3VyIGVtYWlsIGFkZHJlc3MuIFRoZW4geW91IGNhbiBkbyBhbGwga2luZHMgb2YgY29vbCBzdHVmZiBvbiBWaW1lbyEgKHtBfUhlbHB7XC9BfSkiLCJMZWFybiBhYm91dCBvdGhlciB2aW9sYXRpb25zIjoiTGVhcm4gYWJvdXQgb3RoZXIgdmlvbGF0aW9ucyIsIkxlYXJuIGFib3V0IFN0YXRzIjoiTGVhcm4gYWJvdXQgU3RhdHMiLCJMZWFybiBtb3JlIjoiTGVhcm4gbW9yZSIsIkxlYXZlIHRoZSBmaXJzdCBjb21tZW50OiI6IkxlYXZlIHRoZSBmaXJzdCBjb21tZW50OiIsIkxldCB1cyBrbm93LiI6IkxldCB1cyBrbm93LiIsIkxpa2Ugd2hhdCB5b3Ugc2F3PyBTZWUgdGhlIGZ1bGwgdGl0bGUuIjoiTGlrZSB3aGF0IHlvdSBzYXc/IFNlZSB0aGUgZnVsbCB0aXRsZS4iLCJMaWtlIjoiTGlrZSIsIkxpa2VkIjoiTGlrZWQiLCJMaWtlcyI6Ikxpa2VzIiwiTG9hZCB7Q09VTlR9IHByZXZpb3VzIGNvbW1lbnQiOnsic2luZ3VsYXIiOiJMb2FkIHtDT1VOVH0gcHJldmlvdXMgY29tbWVudCIsInBsdXJhbCI6IkxvYWQge0NPVU5UfSBwcmV2aW91cyBjb21tZW50cyJ9LCJMb2FkaW5nIjoiTG9hZGluZyIsIk1hbmFnZSBjb2xsZWN0aW9ucyI6Ik1hbmFnZSBjb2xsZWN0aW9ucyIsIk1vbmV5bWFrZXIiOiJNb25leW1ha2VyIiwibW9yZSI6Im1vcmUiLCJOZXh0IHZpZGVvIjoiTmV4dCB2aWRlbyIsIk5vdCBwbGF5aW5nIG5pY2UiOiJOb3QgcGxheWluZyBuaWNlIiwiT25seSB2aXNpYmxlIHRvIHlvdSI6Ik9ubHkgdmlzaWJsZSB0byB5b3UiLCJPcmlnaW5hbCBmaWxlIGlzIGluIHRoZSBhcmNoaXZlIjoiT3JpZ2luYWwgZmlsZSBpcyBpbiB0aGUgYXJjaGl2ZSIsIlBlbmRpbmcgc3VibWlzc2lvbiI6IlBlbmRpbmcgc3VibWlzc2lvbiIsIlBlcm1hbGluayB0byB0aGlzIGNvbW1lbnQiOiJQZXJtYWxpbmsgdG8gdGhpcyBjb21tZW50IiwiUGxheXMiOiJQbGF5cyIsInBsZWFzZSBsZXQgdXMga25vdyI6InBsZWFzZSBsZXQgdXMga25vdyIsIlBvcnRmb2xpb3MiOiJQb3J0Zm9saW9zIiwiUHJlc2VudGVkIGJ5IHtCUkFORF9OQU1FfVx1MjAxOXMge0NBTVBBSUdOX1RJVExFfSI6IlByZXNlbnRlZCBieSB7QlJBTkRfTkFNRX1cdTIwMTlzIHtDQU1QQUlHTl9USVRMRX0iLCJQcmVzaWRlbnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMiOiJQcmVzaWRlbnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMiLCJQcmV2aW91cyB2aWRlbyI6IlByZXZpb3VzIHZpZGVvIiwiUHVibGljIERvbWFpbiBEZWRpY2F0aW9uIjoiUHVibGljIERvbWFpbiBEZWRpY2F0aW9uIiwiUmVhZCBtb3JlXHUyMDI2IjoiUmVhZCBtb3JlXHUyMDI2IiwiUmVqZWN0IjoiUmVqZWN0IiwiUmVtZW1iZXIgdG8gYmUgY29vbCBhbmQgcGxheSBuaWNlISI6IlJlbWVtYmVyIHRvIGJlIGNvb2wgYW5kIHBsYXkgbmljZSEiLCJSZW1vdmUgY3JlZGl0IjoiUmVtb3ZlIGNyZWRpdCIsIlJlbnQge0RJU1BMQVlfUFJJQ0V9IjoiUmVudCB7RElTUExBWV9QUklDRX0iLCJSZXBsYXkiOiJSZXBsYXkiLCJSZXBseSB0byB0aGlzIGNvbW1lbnQiOiJSZXBseSB0byB0aGlzIGNvbW1lbnQiLCJSZXBseSI6IlJlcGx5IiwiUmVwb3J0IHRoaXMgdmlkZW8iOiJSZXBvcnQgdGhpcyB2aWRlbyIsIlJlcG9ydCB0aGlzIHZpZGVvPyI6IlJlcG9ydCB0aGlzIHZpZGVvPyIsIlJldHJ5IHVwbG9hZCI6IlJldHJ5IHVwbG9hZCIsIlJldmlldyBwYWdlIjoiUmV2aWV3IHBhZ2UiLCJTZWUgYWxsIHZpZGVvIHN0YXRzIjoiU2VlIGFsbCB2aWRlbyBzdGF0cyIsIlNlZSBmdWxsIHN0YXRpc3RpY3MiOiJTZWUgZnVsbCBzdGF0aXN0aWNzIiwiU2V0dGluZ3MiOiJTZXR0aW5ncyIsIlNoYXJlIjoiU2hhcmUiLCJTaG93IG1lIHRoZSB2aWRlbyI6IlNob3cgbWUgdGhlIHZpZGVvIiwiU2hvdyBtb3JlXHUyMDI2IjoiU2hvdyBtb3JlXHUyMDI2IiwiU291cmNlIGZpbGVzIG5vdCBhY2Nlc3NlZCBmb3IgMzAgZGF5cyBhcmUgYXV0b21hdGljYWxseSBzdG9yZWQgaW4gb3VyIHNlY3JldCB1bmRlcmdyb3VuZCBzdG9yYWdlIGFyY2hpdmUuIEFzIHN1Y2gsIGl0IG1heSB0YWtlIGEgZmV3IGhvdXJzIHRvIHJldHJpZXZlIHRoZSBmaWxlLiBTdGlsbCB3YW50IHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZT8iOiJTb3VyY2UgZmlsZXMgbm90IGFjY2Vzc2VkIGZvciAzMCBkYXlzIGFyZSBhdXRvbWF0aWNhbGx5IHN0b3JlZCBpbiBvdXIgc2VjcmV0IHVuZGVyZ3JvdW5kIHN0b3JhZ2UgYXJjaGl2ZS4gQXMgc3VjaCwgaXQgbWF5IHRha2UgYSBmZXcgaG91cnMgdG8gcmV0cmlldmUgdGhlIGZpbGUuIFN0aWxsIHdhbnQgdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlPyIsIlNwYW0iOiJTcGFtIiwiU3RhdHMiOiJTdGF0cyIsIlN1YnNjcmliZSB7RElTUExBWV9QUklDRX1cL3tCSUxMSU5HX1BFUklPRH0iOiJTdWJzY3JpYmUge0RJU1BMQVlfUFJJQ0V9XC97QklMTElOR19QRVJJT0R9IiwiVGhlIHBlcnNvbiB3aG8gYXNzb2NpYXRlZCBhIHdvcmsgd2l0aCB0aGlzIGRlZWQgaGFzIGRlZGljYXRlZCB0aGUgd29yayB0byB0aGUgcHVibGljIGRvbWFpbiBieSB3YWl2aW5nIGFsbCBvZiBoaXMgb3IgaGVyIHJpZ2h0cyB0byB0aGUgd29yayB3b3JsZHdpZGUgdW5kZXIgY29weXJpZ2h0IGxhdywgaW5jbHVkaW5nIGFsbCByZWxhdGVkIGFuZCBuZWlnaGJvcmluZyByaWdodHMsIHRvIHRoZSBleHRlbnQgYWxsb3dlZCBieSBsYXcuIFlvdSBjYW4gY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlIGFuZCBwZXJmb3JtIHRoZSB3b3JrLCBldmVuIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzLCBhbGwgd2l0aG91dCBhc2tpbmcgcGVybWlzc2lvbi4iOiJUaGUgcGVyc29uIHdobyBhc3NvY2lhdGVkIGEgd29yayB3aXRoIHRoaXMgZGVlZCBoYXMgZGVkaWNhdGVkIHRoZSB3b3JrIHRvIHRoZSBwdWJsaWMgZG9tYWluIGJ5IHdhaXZpbmcgYWxsIG9mIGhpcyBvciBoZXIgcmlnaHRzIHRvIHRoZSB3b3JrIHdvcmxkd2lkZSB1bmRlciBjb3B5cmlnaHQgbGF3LCBpbmNsdWRpbmcgYWxsIHJlbGF0ZWQgYW5kIG5laWdoYm9yaW5nIHJpZ2h0cywgdG8gdGhlIGV4dGVudCBhbGxvd2VkIGJ5IGxhdy4gWW91IGNhbiBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUgYW5kIHBlcmZvcm0gdGhlIHdvcmssIGV2ZW4gZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMsIGFsbCB3aXRob3V0IGFza2luZyBwZXJtaXNzaW9uLiIsIlRoZSBwZXJzb24gd2hvIHVwbG9hZGVkIHRoaXMgdmlkZW8gb2J2aW91c2x5IGRpZG5cdTIwMTl0IG1ha2UgaXQgKGl0XHUyMDE5cyBhIFRWIHNob3csIG1vdmllIHRyYWlsZXIsIG9yIHJpcHBlZCBmcm9tIGVsc2V3aGVyZSB0aGUgd2ViLikiOiJUaGUgcGVyc29uIHdobyB1cGxvYWRlZCB0aGlzIHZpZGVvIG9idmlvdXNseSBkaWRuXHUyMDE5dCBtYWtlIGl0IChpdFx1MjAxOXMgYSBUViBzaG93LCBtb3ZpZSB0cmFpbGVyLCBvciByaXBwZWQgZnJvbSBlbHNld2hlcmUgdGhlIHdlYi4pIiwiVGhpcyBjb21tZW50IHdpbGwgYmUgc2hhcmVkIG9uIHtTT0NJQUxfQVBQfSI6IlRoaXMgY29tbWVudCB3aWxsIGJlIHNoYXJlZCBvbiB7U09DSUFMX0FQUH0iLCJUaGlzIGxpY2Vuc2UgYWxsb3dzIGZvciByZWRpc3RyaWJ1dGlvbiwgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwsIGFzIGxvbmcgYXMgaXQgaXMgcGFzc2VkIGFsb25nIHVuY2hhbmdlZCBhbmQgaW4gd2hvbGUsIHdpdGggY3JlZGl0IHRvIHlvdS4iOiJUaGlzIGxpY2Vuc2UgYWxsb3dzIGZvciByZWRpc3RyaWJ1dGlvbiwgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwsIGFzIGxvbmcgYXMgaXQgaXMgcGFzc2VkIGFsb25nIHVuY2hhbmdlZCBhbmQgaW4gd2hvbGUsIHdpdGggY3JlZGl0IHRvIHlvdS4iLCJUaGlzIGxpY2Vuc2UgaXMgdGhlIG1vc3QgcmVzdHJpY3RpdmUgb2Ygb3VyIHNpeCBtYWluIGxpY2Vuc2VzLCBvbmx5IGFsbG93aW5nIG90aGVycyB0byBkb3dubG9hZCB5b3VyIHdvcmtzIGFuZCBzaGFyZSB0aGVtIHdpdGggb3RoZXJzIGFzIGxvbmcgYXMgdGhleSBjcmVkaXQgeW91LCBidXQgdGhleSBjYW5cdTIwMTl0IGNoYW5nZSB0aGVtIGluIGFueSB3YXkgb3IgdXNlIHRoZW0gY29tbWVyY2lhbGx5LiI6IlRoaXMgbGljZW5zZSBpcyB0aGUgbW9zdCByZXN0cmljdGl2ZSBvZiBvdXIgc2l4IG1haW4gbGljZW5zZXMsIG9ubHkgYWxsb3dpbmcgb3RoZXJzIHRvIGRvd25sb2FkIHlvdXIgd29ya3MgYW5kIHNoYXJlIHRoZW0gd2l0aCBvdGhlcnMgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UsIGJ1dCB0aGV5IGNhblx1MjAxOXQgY2hhbmdlIHRoZW0gaW4gYW55IHdheSBvciB1c2UgdGhlbSBjb21tZXJjaWFsbHkuIiwiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIGRpc3RyaWJ1dGUsIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrLCBldmVuIGNvbW1lcmNpYWxseSwgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgZm9yIHRoZSBvcmlnaW5hbCBjcmVhdGlvbi4gVGhpcyBpcyB0aGUgbW9zdCBhY2NvbW1vZGF0aW5nIG9mIGxpY2Vuc2VzIG9mZmVyZWQuIFJlY29tbWVuZGVkIGZvciBtYXhpbXVtIGRpc3NlbWluYXRpb24gYW5kIHVzZSBvZiBsaWNlbnNlZCBtYXRlcmlhbHMuIjoiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIGRpc3RyaWJ1dGUsIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrLCBldmVuIGNvbW1lcmNpYWxseSwgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgZm9yIHRoZSBvcmlnaW5hbCBjcmVhdGlvbi4gVGhpcyBpcyB0aGUgbW9zdCBhY2NvbW1vZGF0aW5nIG9mIGxpY2Vuc2VzIG9mZmVyZWQuIFJlY29tbWVuZGVkIGZvciBtYXhpbXVtIGRpc3NlbWluYXRpb24gYW5kIHVzZSBvZiBsaWNlbnNlZCBtYXRlcmlhbHMuIiwiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrIGV2ZW4gZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMsIGFzIGxvbmcgYXMgdGhleSBjcmVkaXQgeW91IGFuZCBsaWNlbnNlIHRoZWlyIG5ldyBjcmVhdGlvbnMgdW5kZXIgdGhlIGlkZW50aWNhbCB0ZXJtcy4gVGhpcyBsaWNlbnNlIGlzIG9mdGVuIGNvbXBhcmVkIHRvICZsZHF1bztjb3B5bGVmdCZyZHF1bzsgZnJlZSBhbmQgb3BlbiBzb3VyY2Ugc29mdHdhcmUgbGljZW5zZXMuIEFsbCBuZXcgd29ya3MgYmFzZWQgb24geW91cnMgd2lsbCBjYXJyeSB0aGUgc2FtZSBsaWNlbnNlLCBzbyBhbnkgZGVyaXZhdGl2ZXMgd2lsbCBhbHNvIGFsbG93IGNvbW1lcmNpYWwgdXNlLiBUaGlzIGlzIHRoZSBsaWNlbnNlIHVzZWQgYnkgV2lraXBlZGlhLCBhbmQgaXMgcmVjb21tZW5kZWQgZm9yIG1hdGVyaWFscyB0aGF0IHdvdWxkIGJlbmVmaXQgZnJvbSBpbmNvcnBvcmF0aW5nIGNvbnRlbnQgZnJvbSBXaWtpcGVkaWEgYW5kIHNpbWlsYXJseSBsaWNlbnNlZCBwcm9qZWN0cy4iOiJUaGlzIGxpY2Vuc2UgbGV0cyBvdGhlcnMgcmVtaXgsIHR3ZWFrLCBhbmQgYnVpbGQgdXBvbiB5b3VyIHdvcmsgZXZlbiBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcywgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgYW5kIGxpY2Vuc2UgdGhlaXIgbmV3IGNyZWF0aW9ucyB1bmRlciB0aGUgaWRlbnRpY2FsIHRlcm1zLiBUaGlzIGxpY2Vuc2UgaXMgb2Z0ZW4gY29tcGFyZWQgdG8gJmxkcXVvO2NvcHlsZWZ0JnJkcXVvOyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZSBsaWNlbnNlcy4gQWxsIG5ldyB3b3JrcyBiYXNlZCBvbiB5b3VycyB3aWxsIGNhcnJ5IHRoZSBzYW1lIGxpY2Vuc2UsIHNvIGFueSBkZXJpdmF0aXZlcyB3aWxsIGFsc28gYWxsb3cgY29tbWVyY2lhbCB1c2UuIFRoaXMgaXMgdGhlIGxpY2Vuc2UgdXNlZCBieSBXaWtpcGVkaWEsIGFuZCBpcyByZWNvbW1lbmRlZCBmb3IgbWF0ZXJpYWxzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGluY29ycG9yYXRpbmcgY29udGVudCBmcm9tIFdpa2lwZWRpYSBhbmQgc2ltaWxhcmx5IGxpY2Vuc2VkIHByb2plY3RzLiIsIlRoaXMgbGljZW5zZSBsZXRzIG90aGVycyByZW1peCwgdHdlYWssIGFuZCBidWlsZCB1cG9uIHlvdXIgd29yayBub24tY29tbWVyY2lhbGx5LCBhbmQgYWx0aG91Z2ggdGhlaXIgbmV3IHdvcmtzIG11c3QgYWxzbyBhY2tub3dsZWRnZSB5b3UgYW5kIGJlIG5vbi1jb21tZXJjaWFsLCB0aGV5IGRvblx1MjAxOXQgaGF2ZSB0byBsaWNlbnNlIHRoZWlyIGRlcml2YXRpdmUgd29ya3Mgb24gdGhlIHNhbWUgdGVybXMuIjoiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrIG5vbi1jb21tZXJjaWFsbHksIGFuZCBhbHRob3VnaCB0aGVpciBuZXcgd29ya3MgbXVzdCBhbHNvIGFja25vd2xlZGdlIHlvdSBhbmQgYmUgbm9uLWNvbW1lcmNpYWwsIHRoZXkgZG9uXHUyMDE5dCBoYXZlIHRvIGxpY2Vuc2UgdGhlaXIgZGVyaXZhdGl2ZSB3b3JrcyBvbiB0aGUgc2FtZSB0ZXJtcy4iLCJUaGlzIGxpY2Vuc2UgbGV0cyBvdGhlcnMgcmVtaXgsIHR3ZWFrLCBhbmQgYnVpbGQgdXBvbiB5b3VyIHdvcmsgbm9uLWNvbW1lcmNpYWxseSwgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgYW5kIGxpY2Vuc2UgdGhlaXIgbmV3IGNyZWF0aW9ucyB1bmRlciB0aGUgaWRlbnRpY2FsIHRlcm1zLiI6IlRoaXMgbGljZW5zZSBsZXRzIG90aGVycyByZW1peCwgdHdlYWssIGFuZCBidWlsZCB1cG9uIHlvdXIgd29yayBub24tY29tbWVyY2lhbGx5LCBhcyBsb25nIGFzIHRoZXkgY3JlZGl0IHlvdSBhbmQgbGljZW5zZSB0aGVpciBuZXcgY3JlYXRpb25zIHVuZGVyIHRoZSBpZGVudGljYWwgdGVybXMuIiwiVGhpcyBzb3VyY2UgZmlsZSBoYXMgYmVlbiBsb3ZpbmdseSBzdG9yZWQgaW4gb3VyIGFyY2hpdmUuIjoiVGhpcyBzb3VyY2UgZmlsZSBoYXMgYmVlbiBsb3ZpbmdseSBzdG9yZWQgaW4gb3VyIGFyY2hpdmUuIiwiVGhpcyB2aWRlbyBjb250YWlucyBoYXJhc3NtZW50LCBpbmNpdGVzIGhhdHJlZCwgb3IgZGVwaWN0cyBleHRyZW1lIG9yIHJlYWwtbGlmZSB2aW9sZW5jZS4iOiJUaGlzIHZpZGVvIGNvbnRhaW5zIGhhcmFzc21lbnQsIGluY2l0ZXMgaGF0cmVkLCBvciBkZXBpY3RzIGV4dHJlbWUgb3IgcmVhbC1saWZlIHZpb2xlbmNlLiIsIlRoaXMgdmlkZW8gY29udGFpbnMgcG9ybm9ncmFwaHksIGFkdmVydGlzZXMgYSBwcm9kdWN0IG9yIHNlcnZpY2Ugb2YgYW4gZXJvdGljIG5hdHVyZSwgb3Igc2VlbXMgcHJpbWFyaWx5IGZvY3VzZWQgb24gc2V4dWFsIHN0aW11bGF0aW9uLiI6IlRoaXMgdmlkZW8gY29udGFpbnMgcG9ybm9ncmFwaHksIGFkdmVydGlzZXMgYSBwcm9kdWN0IG9yIHNlcnZpY2Ugb2YgYW4gZXJvdGljIG5hdHVyZSwgb3Igc2VlbXMgcHJpbWFyaWx5IGZvY3VzZWQgb24gc2V4dWFsIHN0aW11bGF0aW9uLiIsIlRoaXMgdmlkZW8gaXMgYWxzbyBpbiB7Q09VTlR9IG90aGVyIGNvbGxlY3Rpb24uIjp7InNpbmd1bGFyIjoiVGhpcyB2aWRlbyBpcyBhbHNvIGluIHtDT1VOVH0gb3RoZXIgY29sbGVjdGlvbi4iLCJwbHVyYWwiOiJUaGlzIHZpZGVvIGlzIGFsc28gaW4ge0NPVU5UfSBvdGhlciBjb2xsZWN0aW9ucy4ifSwiVGhpcyB2aWRlbyBpcyBhbiBhZHZlcnRpc2VtZW50LCBjb21tZXJjaWFsLCBvciBpcyBhIHZpZGVvIHRoYXQgYWN0aXZlbHkgc2VsbHMgYSBwcm9kdWN0IG9yIHNlcnZpY2UuIjoiVGhpcyB2aWRlbyBpcyBhbiBhZHZlcnRpc2VtZW50LCBjb21tZXJjaWFsLCBvciBpcyBhIHZpZGVvIHRoYXQgYWN0aXZlbHkgc2VsbHMgYSBwcm9kdWN0IG9yIHNlcnZpY2UuIiwiVGhpcyB2aWRlbyBpcyBoaWRkZW4gZnJvbSB2aW1lby5jb20uIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB7VElUTEV9IjoiVGhpcyB2aWRlbyBpcyBoaWRkZW4gZnJvbSB2aW1lby5jb20uIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB7VElUTEV9IiwiVGhpcyB2aWRlbyBpcyBwcmltYXJpbHkgZGVzaWduZWQgdG8gZHJpdmUgdHJhZmZpYyB0byB0aGlyZCBwYXJ0eSBzaXRlcywgdXNlIFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uIChTRU8pIHRvIG1hbmlwdWxhdGUgc2VhcmNoIHJhbmtpbmdzLCBvciBvdGhlcndpc2UgZGVjZWl2ZSBvciBtaXNsZWFkIHRoZSBhdWRpZW5jZS4iOiJUaGlzIHZpZGVvIGlzIHByaW1hcmlseSBkZXNpZ25lZCB0byBkcml2ZSB0cmFmZmljIHRvIHRoaXJkIHBhcnR5IHNpdGVzLCB1c2UgU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24gKFNFTykgdG8gbWFuaXB1bGF0ZSBzZWFyY2ggcmFua2luZ3MsIG9yIG90aGVyd2lzZSBkZWNlaXZlIG9yIG1pc2xlYWQgdGhlIGF1ZGllbmNlLiIsIlRoaXMgdmlkZW8gc2hvdWxkIGJlIG1hcmtlZCBhcyBcdTIwMWNNYXR1cmVcdTIwMWQgZHVlIHRvIG51ZGl0eSwgcHJvZmFuaXR5LCB2aW9sZW5jZSwgb3IgZHJ1Z1wvYWxjb2hvbCB1c2UuIjoiVGhpcyB2aWRlbyBzaG91bGQgYmUgbWFya2VkIGFzIFx1MjAxY01hdHVyZVx1MjAxZCBkdWUgdG8gbnVkaXR5LCBwcm9mYW5pdHksIHZpb2xlbmNlLCBvciBkcnVnXC9hbGNvaG9sIHVzZS4iLCJUb2dnbGUgdmlzaWJpbGl0eSBvZiBzdGF0cyBncmFwaCI6IlRvZ2dsZSB2aXNpYmlsaXR5IG9mIHN0YXRzIGdyYXBoIiwiVW5mb2xsb3ciOiJVbmZvbGxvdyIsIlVubGlrZSI6IlVubGlrZSIsIlVwIG5leHQiOiJVcCBuZXh0IiwidXBkYXRlIHlvdXIgY29udGVudCByYXRpbmcgcHJlZmVyZW5jZXMiOiJ1cGRhdGUgeW91ciBjb250ZW50IHJhdGluZyBwcmVmZXJlbmNlcyIsIlVwZ3JhZGUgYW5kIHdlXHUyMDE5bGwgaG9sZCBvbiB0byB5b3VyIG9yaWdpbmFsIHZpZGVvIGZpbGVzLiI6IlVwZ3JhZGUgYW5kIHdlXHUyMDE5bGwgaG9sZCBvbiB0byB5b3VyIG9yaWdpbmFsIHZpZGVvIGZpbGVzLiIsIlVwbG9hZGVkIGJ5IHtVU0VSfSI6IlVwbG9hZGVkIGJ5IHtVU0VSfSIsIlVwbG9hZGVyIGRpZCBub3QgbWFrZSB0aGlzIjoiVXBsb2FkZXIgZGlkIG5vdCBtYWtlIHRoaXMiLCJVc2VyIHZlcmlmaWNhdGlvbiI6IlVzZXIgdmVyaWZpY2F0aW9uIiwiVmVyaWZ5IHlvdXIgYWNvdW50IjoiVmVyaWZ5IHlvdXIgYWNvdW50IiwiVmVyaWZ5IjoiVmVyaWZ5IiwidmlhIHtBUFBfTkFNRX0iOiJ2aWEge0FQUF9OQU1FfSIsInZpYSB7Q0FNRU99IjoidmlhIHtDQU1FT30iLCJWaWRlbyBmbGFnZ2luZyBmb3JtIjoiVmlkZW8gZmxhZ2dpbmcgZm9ybSIsIlZpZXcgYWxsIGNhdGVnb3JpZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlkZW8iOiJWaWV3IGFsbCBjYXRlZ29yaWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZGVvIiwiVmlldyBhbGwgdXNlcnMgY3JlZGl0ZWQgYnkgdGhpcyB2aWRlbyI6IlZpZXcgYWxsIHVzZXJzIGNyZWRpdGVkIGJ5IHRoaXMgdmlkZW8iLCJWaWV3IGFsbCI6IlZpZXcgYWxsIiwiVmlldyBjaGFubmVsIjoiVmlldyBjaGFubmVsIiwiVmlldyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgdmlkZW8iOiJWaWV3IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyB2aWRlbyIsIlZpZXcgdGl0bGUiOiJWaWV3IHRpdGxlIiwiVmltZW8gQnVzaW5lc3MgdXNlciI6IlZpbWVvIEJ1c2luZXNzIHVzZXIiLCJWaW1lbyBjdXJhdGlvbiB0ZWFtIG1lbWJlciI6IlZpbWVvIGN1cmF0aW9uIHRlYW0gbWVtYmVyIiwiVmltZW8gcGFydG5lciI6IlZpbWVvIHBhcnRuZXIiLCJWaW1lbyBQbHVzIHVzZXIiOiJWaW1lbyBQbHVzIHVzZXIiLCJWaW1lbyBQcm8gdXNlciI6IlZpbWVvIFBybyB1c2VyIiwiVmltZW8gc3BvbnNvciI6IlZpbWVvIHNwb25zb3IiLCJWaW1lbyBzdGFmZiBtZW1iZXIiOiJWaW1lbyBzdGFmZiBtZW1iZXIiLCJWaW1lbyBzdXBwb3J0IHNwZWNpYWxpc3QiOiJWaW1lbyBzdXBwb3J0IHNwZWNpYWxpc3QiLCJXYW50IHRvIGxlYXZlIGEgY29tbWVudD8gRmlyc3QgeW91XHUyMDE5bGwgbmVlZCB0byB2ZXJpZnkgeW91ciBWaW1lbyBhY2NvdW50LiI6IldhbnQgdG8gbGVhdmUgYSBjb21tZW50PyBGaXJzdCB5b3VcdTIwMTlsbCBuZWVkIHRvIHZlcmlmeSB5b3VyIFZpbWVvIGFjY291bnQuIiwiV2FudCB0byBsZWF2ZSBhIGNvbW1lbnQ/IjoiV2FudCB0byBsZWF2ZSBhIGNvbW1lbnQ/IiwiV2F0Y2ggaXQgYWdhaW4iOiJXYXRjaCBpdCBhZ2FpbiIsIldlXHUyMDE5cmUgb24gaXQhIFBsZWFzZSBjaGVjayBiYWNrIGxhdGVyLCBhcyBpdCBjb3VsZCB0YWtlIGEgZmV3IGhvdXJzLiI6IldlXHUyMDE5cmUgb24gaXQhIFBsZWFzZSBjaGVjayBiYWNrIGxhdGVyLCBhcyBpdCBjb3VsZCB0YWtlIGEgZmV3IGhvdXJzLiIsIldoZW4geW91IGFkZCB0aGlzIHByaXZhdGUgdmlkZW8gdG8gYSBjb2xsZWN0aW9uLCB0aGUgdmlkZW8gd2lsbCBiZSB2aWV3YWJsZSB3aXRoaW4gdGhhdCBhbGJ1bSwgZ3JvdXAsIGV0Yy4iOiJXaGVuIHlvdSBhZGQgdGhpcyBwcml2YXRlIHZpZGVvIHRvIGEgY29sbGVjdGlvbiwgdGhlIHZpZGVvIHdpbGwgYmUgdmlld2FibGUgd2l0aGluIHRoYXQgYWxidW0sIGdyb3VwLCBldGMuIiwiV2h5IGFyZSB5b3UgcmVwb3J0aW5nIHRoaXMgdmlkZW8/IjoiV2h5IGFyZSB5b3UgcmVwb3J0aW5nIHRoaXMgdmlkZW8/IiwiV291bGQgeW91IGxpa2UgdG8gaW5jbHVkZSB0aGlzIHZpZGVvIHN1Ym1pdHRlZCBieSB7VVNFUl9OQU1FfSBpbiB0aGUge0dST1VQX05BTUV9IGdyb3VwPyI6IldvdWxkIHlvdSBsaWtlIHRvIGluY2x1ZGUgdGhpcyB2aWRlbyBzdWJtaXR0ZWQgYnkge1VTRVJfTkFNRX0gaW4gdGhlIHtHUk9VUF9OQU1FfSBncm91cD8iLCJYWFgtcmF0ZWQiOiJYWFgtcmF0ZWQiLCJZZXMsIGZldGNoIG9yaWdpbmFsIGZpbGUiOiJZZXMsIGZldGNoIG9yaWdpbmFsIGZpbGUiLCJZb3UgY2FuIHtVUERBVEVfWU9VUl9QUkVGRVJFTkNFU19MSU5LfSBhdCBhbnkgdGltZS4iOiJZb3UgY2FuIHtVUERBVEVfWU9VUl9QUkVGRVJFTkNFU19MSU5LfSBhdCBhbnkgdGltZS4iLCJZb3UgY2Fubm90IGNyZWF0ZSB7VElUTEV9IHdoaWxlIGluIFByaXZhdGUgTW9kZS4gSWYgeW91IHRoaW5rIGl0IHdhcyBmbGFnZ2VkIGluIGVycm9yLCB7UExFQVNFX0xFVF9VU19LTk9XX0xJTkt9IjoiWW91IGNhbm5vdCBjcmVhdGUge1RJVExFfSB3aGlsZSBpbiBQcml2YXRlIE1vZGUuIElmIHlvdSB0aGluayBpdCB3YXMgZmxhZ2dlZCBpbiBlcnJvciwge1BMRUFTRV9MRVRfVVNfS05PV19MSU5LfSIsIllvdSBuZWVkIGEgMzYwIHBsYXllciB0byB3YXRjaCB0aGlzIGRvd25sb2FkLiB7QX1TZWUgb3VyIHJlY29tbWVuZGF0aW9uc3tcL0F9LiI6IllvdSBuZWVkIGEgMzYwIHBsYXllciB0byB3YXRjaCB0aGlzIGRvd25sb2FkLiB7QX1TZWUgb3VyIHJlY29tbWVuZGF0aW9uc3tcL0F9LiIsIllvdXIgYWNjb3VudCBoYXMgYmVlbiBmbGFnZ2VkIGZvciBzcGFtLiBJZiB5b3UgdGhpbmsgaXQgd2FzIGZsYWdnZWQgaW4gZXJyb3IsIHtQTEVBU0VfTEVUX1VTX0tOT1dfTElOS30uIjoiWW91ciBhY2NvdW50IGhhcyBiZWVuIGZsYWdnZWQgZm9yIHNwYW0uIElmIHlvdSB0aGluayBpdCB3YXMgZmxhZ2dlZCBpbiBlcnJvciwge1BMRUFTRV9MRVRfVVNfS05PV19MSU5LfS4iLCJ7Q09VTlR9IENhdGVnb3J5Ijp7InNpbmd1bGFyIjoie0NPVU5UfSBDYXRlZ29yeSIsInBsdXJhbCI6IntDT1VOVH0gQ2F0ZWdvcmllcyJ9LCJ7Q09VTlR9IENvbGxlY3Rpb24iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IENvbGxlY3Rpb24iLCJwbHVyYWwiOiJ7Q09VTlR9IENvbGxlY3Rpb25zIn0sIntDT1VOVH0gQ29tbWVudCI6eyJzaW5ndWxhciI6IntDT1VOVH0gQ29tbWVudCIsInBsdXJhbCI6IntDT1VOVH0gQ29tbWVudHMifSwie0NPVU5UfSBDcmVkaXQiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IENyZWRpdCIsInBsdXJhbCI6IntDT1VOVH0gQ3JlZGl0cyJ9LCJ7Q09VTlR9IExpa2UiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IExpa2UiLCJwbHVyYWwiOiJ7Q09VTlR9IExpa2VzIn0sIntDT1VOVH0gUGhvdG8iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IFBob3RvIiwicGx1cmFsIjoie0NPVU5UfSBQaG90b3MifSwie0NPVU5UfSBQbGF5Ijp7InNpbmd1bGFyIjoie0NPVU5UfSBQbGF5IiwicGx1cmFsIjoie0NPVU5UfSBQbGF5cyJ9LCJBY3Rpdml0eSI6IkFjdGl2aXR5IiwiTm8gYWN0aXZpdHkgaW4gdGhlIHBhc3QgMzAgZGF5cyI6Ik5vIGFjdGl2aXR5IGluIHRoZSBwYXN0IDMwIGRheXMiLCJTZWUgYWxsIjoiU2VlIGFsbCIsIlZpZXcgbWVzc2FnZSI6IlZpZXcgbWVzc2FnZSIsIldlJ2xsIGFsZXJ0IHlvdSBvbmNlIHNvbWV0aGluZyBjb29sIGhhcHBlbnMuIjoiV2UnbGwgYWxlcnQgeW91IG9uY2Ugc29tZXRoaW5nIGNvb2wgaGFwcGVucy4ifTsKPC9zY3JpcHQ+CgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L3V0aWxzL3BsYXllcl9tYW5hZ2VyL3BsYXllcl9tYW5hZ2VyLm1pbi5qcz81NWFiNzA4MyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogaWYgKHR5cGVvZiBwbGF5ZXJBc3NldFVybHMgIT09ICd1bmRlZmluZWQnKSB7CiAgUGxheWVyTWFuYWdlci5ydW4ocGxheWVyQXNzZXRVcmxzKTsKICB9CiA8L3NjcmlwdD4KCiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvcmVhY3RfcHJvZF9jb21iaW5lZC5taW4uanM/YjZlZTdhNGUiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L2NsaXBfY29tYmluZWQubWluLmpzP2RiNGI5YWMxIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9hY3Rpdml0eV90b3BuYXZfY29tYmluZWQubWluLmpzPzUzOWI2YzgzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9fYnVuZGxlcy9jbGlwLmJ1bmRsZS5taW4uanM/OTUwZGViN2IiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L21vZHVsZXMvZ2xvYmFsL2FibGluY29sbi9ob3N0X3ZpZGVvcy5taW4uanM/NjVkYzQ1MWEiPjwvc2NyaXB0PgoKIDxzY3JpcHQgYXN5bmMgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9jbGlwX2JldGFfbGlic19hc3luY19jb21iaW5lZC5taW4uanM/MThmYmU2OWEiPjwvc2NyaXB0PgogPHNjcmlwdCBhc3luYyBzcmM9Ii8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0bS5qcz9pZD1HVE0tUkJLSyZsPV9ndG0iPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0aW9uIG9uVmltZW9Eb21SZWFkeShlKSB7CiAKICAgaWYgKCF2aW1lby5ieXBhc3NfcGxheWVyX3Jlc3BvbnNpdmVfZGVsZWdhdGVzKSB7CiB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMgPSB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMgfHwge307CiB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMud2lsbE9wZW5TaGFyZU92ZXJsYXkgPSB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMud2lsbE9wZW5TaGFyZU92ZXJsYXkgfHwgZnVuY3Rpb24oaWQpIHsKIFBsYXllck1hbmFnZXIucGF1c2VBbGxQbGF5ZXJzKCk7CiB2aW1lby5zaGFyZS5Qb3B1cChpZCk7CiByZXR1cm4gZmFsc2U7CiB9OwoKIHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcy53aWxsT3BlbkxvZ2luRm9ybSA9IHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcy53aWxsT3BlbkxvZ2luRm9ybSB8fCBmdW5jdGlvbihpZCwgY29udGV4dCkgewogaWYgKHR5cGVvZiB2aW1lby5Nb2RhbCAhPT0gJ3VuZGVmaW5lZCcpIHsKIFBsYXllck1hbmFnZXIucGF1c2VBbGxQbGF5ZXJzKCk7CgogaWYgKGNvbnRleHQpIHsKIHZpbWVvLlNlc3Npb24uY3JlYXRlKHsgcGxheWVyOiAxLCBjbGlwX2lkOiBpZCwgY29udGV4dDogY29udGV4dCB9KTsKIH0KIGVsc2UgewogdmltZW8uU2Vzc2lvbi5jcmVhdGUoKTsKIH0KCiByZXR1cm4gZmFsc2U7CiB9CiB9OwoKIGlmIChQbGF5ZXJNYW5hZ2VyKSB7CiBQbGF5ZXJNYW5hZ2VyLnNldERlZmF1bHREZWxlZ2F0ZSh2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMpOwogfQogfQogCiBpZiAoUGxheWVyTWFuYWdlcikgewogUGxheWVyTWFuYWdlci5kaXNwYXRjaFJlYWR5U2lnbmFscygpOwogfQogCiAgfQoKICAkKGRvY3VtZW50KS5yZWFkeShvblZpbWVvRG9tUmVhZHkpOwogIDwvc2NyaXB0PgoKICA8c2NyaXB0PgogdmFyIGdvb2dsZV9hZF9jbGllbnQgPSAnY2EtaXdvbi12aW1lbycsCiBnb29nbGVfYWRfb3V0cHV0ID0gJ2pzJywKIGdvb2dsZV9tYXhfbnVtX2FkcyA9ICczJywKIGdvb2dsZV9hZF90eXBlID0gJ3RleHQnLAogZ29vZ2xlX2VuY29kaW5nID0gJ3V0ZjgnLAogZ29vZ2xlX2ZlZWRiYWNrID0gJ29uJywKIGdvb2dsZV9rd190eXBlID0gJ2Jyb2FkJywKIGdvb2dsZV9rdyA9ICcnOwoKIGRvY3VtZW50LndyaXRlKCc8c2NyJysnaXB0IHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanMiPjwvc2NyJysnaXB0PicpOwogPC9zY3JpcHQ+IAogPC9ib2R5Pgo8L2h0bWw+Cg==
148
- http_version:
149
- recorded_at: Mon, 27 Mar 2017 21:00:55 GMT
150
- recorded_with: VCR 3.0.3
@@ -1,79 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.vimeo.com/videos/136971428
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - VideoInfo/2.7
12
- Authorization:
13
- - bearer 6b66b015a3504793b4f541d878f46ff6
14
- Accept:
15
- - application/vnd.vimeo.*+json;version=3.2
16
- Accept-Encoding:
17
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- Server:
24
- - nginx
25
- Content-Type:
26
- - application/vnd.vimeo.video+json
27
- Cache-Control:
28
- - no-cache, max-age=315360000
29
- Strict-Transport-Security:
30
- - max-age=15552000; includeSubDomains; preload
31
- X-Ratelimit-Limit:
32
- - '500'
33
- X-Ratelimit-Remaining:
34
- - '485'
35
- X-Ratelimit-Reset:
36
- - '2017-03-27T21:16:16+00:00'
37
- Expires:
38
- - Thu, 25 Mar 2027 21:01:16 GMT
39
- Via:
40
- - 1.1 varnish
41
- - 1.1 varnish
42
- Fastly-Debug-Digest:
43
- - 0d94ad6e757fc08c8ced42c1d2a77169f2aa45dd8b863c1cd49a0e8bd236bd6b
44
- Content-Length:
45
- - '1662'
46
- Accept-Ranges:
47
- - bytes
48
- Date:
49
- - Mon, 27 Mar 2017 21:01:16 GMT
50
- Age:
51
- - '0'
52
- Connection:
53
- - keep-alive
54
- X-Served-By:
55
- - cache-iad2134-IAD, cache-lax8633-LAX
56
- X-Cache:
57
- - MISS, MISS
58
- X-Cache-Hits:
59
- - 0, 0
60
- X-Timer:
61
- - S1490648476.416254,VS0,VE184
62
- Vary:
63
- - Accept,Vimeo-Client-Id,Accept-Encoding
64
- body:
65
- encoding: ASCII-8BIT
66
- string: '{"uri":"/videos/136971428","name":"Deafheaven - ''New Bermuda'' Trailer","description":"''New
67
- Bermuda,'' the upcoming album from Deafheaven, is available October 2nd","link":"https://vimeo.com/136971428","duration":59,"width":1280,"language":"en","height":720,"embed":{"html":"<iframe
68
- src=\"https://player.vimeo.com/video/136971428?badge=0&autopause=0&player_id=0\"
69
- width=\"1280\" height=\"720\" frameborder=\"0\" title=\"Deafheaven - &#039;New
70
- Bermuda&#039; Trailer\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"},"created_time":"2015-08-21T21:37:43+00:00","modified_time":"2017-03-27T16:07:00+00:00","release_time":"2015-08-21T21:37:43+00:00","content_rating":["safe"],"license":null,"privacy":{"view":"anybody","embed":"public","download":false,"add":true,"comments":"anybody"},"pictures":{"uri":"/videos/136971428/pictures/531688239","active":true,"type":"custom","sizes":[{"width":100,"height":75,"link":"https://i.vimeocdn.com/video/531688239_100x75.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_100x75.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":200,"height":150,"link":"https://i.vimeocdn.com/video/531688239_200x150.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_200x150.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":295,"height":166,"link":"https://i.vimeocdn.com/video/531688239_295x166.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_295x166.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":640,"height":360,"link":"https://i.vimeocdn.com/video/531688239_640x360.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_640x360.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":960,"height":540,"link":"https://i.vimeocdn.com/video/531688239_960x540.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_960x540.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":1280,"height":720,"link":"https://i.vimeocdn.com/video/531688239_1280x720.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_1280x720.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"}],"resource_key":"d02759c29fd9734d3100d5c1f04f06b2dc74a90b"},"tags":[],"stats":{"plays":364},"metadata":{"connections":{"comments":{"uri":"/videos/136971428/comments","options":["GET","POST"],"total":0},"credits":{"uri":"/videos/136971428/credits","options":["GET","POST"],"total":1},"likes":{"uri":"/videos/136971428/likes","options":["GET"],"total":2},"pictures":{"uri":"/videos/136971428/pictures","options":["GET","POST"],"total":1},"texttracks":{"uri":"/videos/136971428/texttracks","options":["GET","POST"],"total":0},"related":null},"interactions":{"watchlater":{"added":false,"added_time":null,"uri":"/users/22881647/watchlater/136971428"},"like":{"added":false,"added_time":null,"uri":"/users/22881647/likes/136971428"}}},"user":{"uri":"/users/814311","name":"Anti
71
- Records","link":"https://vimeo.com/antirecords","location":"Los Angeles, CA","bio":"Home
72
- to Tom Waits, Wilco, Neko Case, Mavis Staples, Deafheaven, Daniel Lanois,
73
- Xenia Rubinos, Cass McCombs, The Antlers, Title Fight, Son Little, Andy Shauf,
74
- and more.","created_time":"2008-10-06T20:33:11+00:00","account":"plus","pictures":{"uri":"/users/814311/pictures/14790276","active":true,"type":"custom","sizes":[{"width":30,"height":30,"link":"https://i.vimeocdn.com/portrait/14790276_30x30?r=pad"},{"width":75,"height":75,"link":"https://i.vimeocdn.com/portrait/14790276_75x75?r=pad"},{"width":100,"height":100,"link":"https://i.vimeocdn.com/portrait/14790276_100x100?r=pad"},{"width":300,"height":300,"link":"https://i.vimeocdn.com/portrait/14790276_300x300?r=pad"}],"resource_key":"e61a33d865c9349dc7ee051232fb30d1492ee1fc"},"websites":[{"name":"Official
75
- Site","link":"www.anti.com","description":null},{"name":"Twitter","link":"twitter.com/antirecords","description":null},{"name":"Facebook","link":"www.facebook.com/antirecords","description":null},{"name":"Instagram","link":"www.instagram.com/antirecords/","description":null},{"name":"Online
76
- Store","link":"www.anti.com/store","description":null}],"metadata":{"connections":{"activities":{"uri":"/users/814311/activities","options":["GET"]},"albums":{"uri":"/users/814311/albums","options":["GET"],"total":1},"appearances":{"uri":"/users/814311/appearances","options":["GET"],"total":2},"channels":{"uri":"/users/814311/channels","options":["GET"],"total":1},"feed":{"uri":"/users/814311/feed","options":["GET"]},"followers":{"uri":"/users/814311/followers","options":["GET"],"total":734},"following":{"uri":"/users/814311/following","options":["GET"],"total":2},"groups":{"uri":"/users/814311/groups","options":["GET"],"total":0},"likes":{"uri":"/users/814311/likes","options":["GET"],"total":1},"moderated_channels":{"uri":"/users/814311/channels?filter=moderated","options":["GET"],"total":1},"portfolios":{"uri":"/users/814311/portfolios","options":["GET"],"total":0},"videos":{"uri":"/users/814311/videos","options":["GET"],"total":50},"shared":{"uri":"/users/814311/shared/videos","options":["GET"],"total":192},"pictures":{"uri":"/users/814311/pictures","options":["GET","POST"],"total":1}},"interactions":{"follow":{"added":false,"added_time":null,"uri":"/users/22881647/following/814311"}}},"resource_key":"e1d6212aaacbfb79302c5f750b44d5101a3f8a55","preferences":{"videos":{"privacy":null}}},"app":null,"status":"available","resource_key":"7c4542791d2267ed231d820afcfff7d6c840e688","embed_presets":null}'
77
- http_version:
78
- recorded_at: Mon, 27 Mar 2017 21:01:16 GMT
79
- recorded_with: VCR 3.0.3
@@ -1,150 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: head
5
- uri: https://vimeo.com/136971428
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: 200
17
- message: OK
18
- headers:
19
- Server:
20
- - nginx
21
- Content-Type:
22
- - text/html; charset=UTF-8
23
- Expires:
24
- - Mon, 27 Mar 2017 22:23:36 GMT
25
- X-Ua-Compatible:
26
- - IE=edge
27
- X-Xss-Protection:
28
- - 1; mode=block
29
- X-Content-Type-Options:
30
- - nosniff
31
- X-Frame-Options:
32
- - sameorigin
33
- Strict-Transport-Security:
34
- - max-age=15552000; includeSubDomains; preload
35
- Content-Security-Policy-Report-Only:
36
- - 'default-src https: data: blob: ''unsafe-inline'' ''unsafe-eval''; report-uri
37
- /_csp'
38
- Via:
39
- - 1.1 varnish
40
- - 1.1 varnish
41
- - 1.1 varnish
42
- Cache-Control:
43
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
44
- X-Varnish-Cache:
45
- - '1'
46
- X-Vserver:
47
- - dfvimeowebproxy4
48
- Fastly-Debug-Digest:
49
- - cea2dd45cda6c7f8b8db6116e3d4b4847f4eb4010957232b160811b44c7fa0bc
50
- Content-Length:
51
- - '69827'
52
- Accept-Ranges:
53
- - bytes
54
- Date:
55
- - Mon, 27 Mar 2017 21:00:56 GMT
56
- Age:
57
- - '0'
58
- Connection:
59
- - keep-alive
60
- X-Served-By:
61
- - cache-iad2120-IAD, cache-lax8633-LAX
62
- X-Cache:
63
- - MISS, MISS
64
- X-Cache-Hits:
65
- - 0, 0
66
- X-Timer:
67
- - S1490648455.988142,VS0,VE87
68
- Vary:
69
- - User-Agent,Accept-Encoding
70
- body:
71
- encoding: UTF-8
72
- string: ''
73
- http_version:
74
- recorded_at: Mon, 27 Mar 2017 21:00:56 GMT
75
- - request:
76
- method: get
77
- uri: https://vimeo.com/136971428
78
- body:
79
- encoding: US-ASCII
80
- string: ''
81
- headers:
82
- Accept-Encoding:
83
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
84
- Accept:
85
- - "*/*"
86
- User-Agent:
87
- - Ruby
88
- response:
89
- status:
90
- code: 200
91
- message: OK
92
- headers:
93
- Server:
94
- - nginx
95
- Content-Type:
96
- - text/html; charset=UTF-8
97
- Expires:
98
- - Mon, 27 Mar 2017 22:23:37 GMT
99
- X-Ua-Compatible:
100
- - IE=edge
101
- X-Xss-Protection:
102
- - 1; mode=block
103
- X-Content-Type-Options:
104
- - nosniff
105
- X-Frame-Options:
106
- - sameorigin
107
- Strict-Transport-Security:
108
- - max-age=15552000; includeSubDomains; preload
109
- Content-Security-Policy-Report-Only:
110
- - 'default-src https: data: blob: ''unsafe-inline'' ''unsafe-eval''; report-uri
111
- /_csp'
112
- Via:
113
- - 1.1 varnish
114
- - 1.1 varnish
115
- - 1.1 varnish
116
- Cache-Control:
117
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
118
- X-Varnish-Cache:
119
- - '1'
120
- X-Vserver:
121
- - dfvimeowebproxy4
122
- Fastly-Debug-Digest:
123
- - cea2dd45cda6c7f8b8db6116e3d4b4847f4eb4010957232b160811b44c7fa0bc
124
- Content-Length:
125
- - '19712'
126
- Accept-Ranges:
127
- - bytes
128
- Date:
129
- - Mon, 27 Mar 2017 21:00:56 GMT
130
- Age:
131
- - '0'
132
- Connection:
133
- - keep-alive
134
- X-Served-By:
135
- - cache-iad2143-IAD, cache-lax8630-LAX
136
- X-Cache:
137
- - MISS, MISS
138
- X-Cache-Hits:
139
- - 0, 0
140
- X-Timer:
141
- - S1490648456.105746,VS0,VE83
142
- Vary:
143
- - User-Agent,Accept-Encoding
144
- body:
145
- encoding: ASCII-8BIT
146
- string: !binary |-
147
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgoKCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vIj4KIAo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vcGxheWVyLnZpbWVvLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9pLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9mLnZpbWVvY2RuLmNvbSI+CjxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjE5ODg0MDI4OTYzIj4KCiAgIDxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9IlZpbWVvIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vdmltZW8uY29tLzEzNjk3MTQyOCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0idmlkZW8iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJEZWFmaGVhdmVuIC0gJiMwMzk7TmV3IEJlcm11ZGEmIzAzOTsgVHJhaWxlciI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiYjMDM5O05ldyBCZXJtdWRhLCYjMDM5OyB0aGUgdXBjb21pbmcgYWxidW0gZnJvbSBEZWFmaGVhdmVuLCBpcyBhdmFpbGFibGUgT2N0b2JlciAybmQiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVwZGF0ZWRfdGltZSIgY29udGVudD0iMjAxNy0wMy0yN1QxMjowNzowMC0wNDowMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6c2VjdXJlX3VybCIgY29udGVudD0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS92aWRlby81MzE2ODgyMzlfMTI4MHg3MjAuanBnIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTp0eXBlIiBjb250ZW50PSJpbWFnZS9qcGciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjcyMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86dXJsIiBjb250ZW50PSJodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vMTM2OTcxNDI4P2F1dG9wbGF5PTEiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOnNlY3VyZV91cmwiIGNvbnRlbnQ9Imh0dHBzOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8xMzY5NzE0Mjg/YXV0b3BsYXk9MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86dHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp2aWRlbzp3aWR0aCIgY29udGVudD0iMTI4MCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86aGVpZ2h0IiBjb250ZW50PSI3MjAiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOnVybCIgY29udGVudD0iaHR0cHM6Ly92aW1lby5jb20vbW9vZ2Fsb29wLnN3Zj9jbGlwX2lkPTEzNjk3MTQyOCZhbXA7YXV0b3BsYXk9MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86c2VjdXJlX3VybCIgY29udGVudD0iaHR0cHM6Ly92aW1lby5jb20vbW9vZ2Fsb29wLnN3Zj9jbGlwX2lkPTEzNjk3MTQyOCZhbXA7YXV0b3BsYXk9MSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dmlkZW86dHlwZSIgY29udGVudD0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp2aWRlbzpoZWlnaHQiIGNvbnRlbnQ9IjcyMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6aW9zOmFwcF9uYW1lIiBjb250ZW50PSJWaW1lbyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6aW9zOmFwcF9zdG9yZV9pZCIgY29udGVudD0iNDI1MTk0NzU5Ij4KICAgIDxtZXRhIHByb3BlcnR5PSJhbDppb3M6dXJsIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6YW5kcm9pZDphcHBfbmFtZSIgY29udGVudD0iVmltZW8iPgogICAgPG1ldGEgcHJvcGVydHk9ImFsOmFuZHJvaWQ6cGFja2FnZSIgY29udGVudD0iY29tLnZpbWVvLmFuZHJvaWQudmlkZW9hcHAiPgogICAgPG1ldGEgcHJvcGVydHk9ImFsOmFuZHJvaWQ6dXJsIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6d2ViOnNob3VsZF9mYWxsYmFjayIgY29udGVudD0idHJ1ZSI+CiAgCiAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiYjMDM5O05ldyBCZXJtdWRhLCYjMDM5OyB0aGUgdXBjb21pbmcgYWxidW0gZnJvbSBEZWFmaGVhdmVuLCBpcyBhdmFpbGFibGUgT2N0b2JlciAybmQiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0icGxheWVyIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOnNpdGUiIGNvbnRlbnQ9IkB2aW1lbyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjp0aXRsZSIgY29udGVudD0iRGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXIiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiYjMDM5O05ldyBCZXJtdWRhLCYjMDM5OyB0aGUgdXBjb21pbmcgYWxidW0gZnJvbSBEZWFmaGVhdmVuLCBpcyBhdmFpbGFibGUgT2N0b2JlciAybmQiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjpwbGF5ZXIiIGNvbnRlbnQ9Imh0dHBzOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8xMzY5NzE0MjgiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6cGxheWVyOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOnBsYXllcjpoZWlnaHQiIGNvbnRlbnQ9IjcyMCI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSJAdmltZW8iPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOm5hbWU6aXBob25lIiBjb250ZW50PSJWaW1lbyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6aWQ6aXBob25lIiBjb250ZW50PSI0MjUxOTQ3NTkiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDppcGhvbmUiIGNvbnRlbnQ9InZpbWVvOi8vYXBwLnZpbWVvLmNvbS92aWRlb3MvMTM2OTcxNDI4Ij4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDpuYW1lOmlwYWQiIGNvbnRlbnQ9IlZpbWVvIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDppZDppcGFkIiBjb250ZW50PSI0MjUxOTQ3NTkiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDppcGFkIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6bmFtZTpnb29nbGVwbGF5IiBjb250ZW50PSJWaW1lbyI+CiAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6aWQ6Z29vZ2xlcGxheSIgY29udGVudD0iY29tLnZpbWVvLmFuZHJvaWQudmlkZW9hcHAiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDpnb29nbGVwbGF5IiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzEzNjk3MTQyOCI+CgoKCgogPGxpbmsgPgogPGxpbmsgPgogPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL2FwaS9vZW1iZWQuanNvbj91cmw9aHR0cHMlM0ElMkYlMkZ2aW1lby5jb20lMkYxMzY5NzE0MjgiIHR5cGU9ImFwcGxpY2F0aW9uL2pzb24rb2VtYmVkIiB0aXRsZT0iRGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXIiPgogPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL2FwaS9vZW1iZWQueG1sP3VybD1odHRwcyUzQSUyRiUyRnZpbWVvLmNvbSUyRjEzNjk3MTQyOCIgdHlwZT0idGV4dC94bWwrb2VtYmVkIiB0aXRsZT0iRGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXIiPgogPGxpbmsgcmVsPSJwaW5nYmFjayIgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vX3BpbmdiYWNrIj4KIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSIvMTM2OTcxNDI4Ij4KCiA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiIGhyZWY9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9tYWluLXRvdWNoXzE4MCI+Cgo8bGluayByZWw9Im1hc2staWNvbiIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdmcvbGVnYWN5X3ZpZXdfc3VwcG9ydC9pcmlzX2ljb25fdl82NC5zdmciIGNvbG9yPSIjMTcyNzJlIj4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL2ltYWdlc192Ni9mYXZpY29uLmljbyIgZGF0YS1wbGF5PSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vcGxheV8zMiIgZGF0YS1wYXVzZT0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL3BhdXNlXzMyIj4KCjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUltYWdlIiBjb250ZW50PSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vbWFpbi10b3VjaF8xNDQiPgo8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLVRpbGVDb2xvciIgY29udGVudD0iIzAwYWRlZiI+Cgo8bGluayByZWw9InNlYXJjaCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgaHJlZj0iL3NlYXJjaC9vcGVuc2VhcmNoLnhtbCIgdGl0bGU9IlZpbWVvIHNlYXJjaCI+CjxsaW5rIHJlbD0ibG9nbyIgdHlwZT0iaW1hZ2Uvc3ZnIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL2xvZ28uc3ZnIj4KIDx0aXRsZT5EZWFmaGVhdmVuIC0gJiMwMzk7TmV3IEJlcm11ZGEmIzAzOTsgVHJhaWxlciBvbiBWaW1lbzwvdGl0bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvZ2xvYmFsL2ljb25fZm9udHMubWluLmNzcz9ERVYiPgoKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC9jbGlwX2JldGFfY29tYmluZWQubWluLmNzcz9lYTUzODYzYiI+CgoKCiA8c2NyaXB0PgogIAogIHZhciBwbGF5ZXJBc3NldFVybHMgPSB7ImpzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9qc1wvcGxheWVyLmpzIiwibW9vZyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvZmxhc2hcL21vb2dhbG9vcFwvNi40LjVcL21vb2dhbG9vcC5zd2YiLCJjaHJvbWVsZXNzX2NzcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvY3NzXC9jaHJvbWVsZXNzLmNzcyIsImNocm9tZWxlc3NfanMiOiJodHRwczpcL1wvZi52aW1lb2Nkbi5jb21cL3BcLzIuNTMuMTBcL2pzXC9jaHJvbWVsZXNzLmpzIiwibW9vZ19qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvanNcL21vb2dhbG9vcC5qcyIsImNzcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvY3NzXC9wbGF5ZXIuY3NzIiwicGxheWVyX3VybCI6InBsYXllci52aW1lby5jb20ifTsKCiAgdmFyIF9leHRlbmQgPSBmdW5jdGlvbigpe2Zvcih2YXIgcj1hcmd1bWVudHNbMF0sbj0xLGU9YXJndW1lbnRzLmxlbmd0aDtlPm47bisrKXt2YXIgdD1hcmd1bWVudHNbbl07Zm9yKHZhciBhIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShhKSYmKHJbYV09dFthXSl9cmV0dXJuIHJ9OwoKICB3aW5kb3cgPSBfZXh0ZW5kKHdpbmRvdywgeyJ2aW1lb19lc2kiOnsiY29uZmlnIjp7ImF1dG9jb21wbGV0ZV9lbmFibGVkIjp0cnVlfX0sImdsb2JhbF9ub3RpZmljYXRpb25zIjpbXX0pOwo8L3NjcmlwdD4KCiA8c3R5bGUgaWQ9ImVzaV9yaWJib24iPgogLmVzaV9yaWJib24gewogYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI1MDAlMjIlM0UlM0NyZWN0JTIweCUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjklMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyOGExZDglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjklMjIlMjB3aWR0aCUzRCUyMjIyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzMjQ4YmM3JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIzMSUyMiUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMxZTM5NTUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjU1JTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyMzJmNTEzMiUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNjglMjIlMjB3aWR0aCUzRCUyMjQ4JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNDE2ODI4JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIxMTYlMjIlMjB3aWR0aCUzRCUyMjMxJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzN2VhYTI5JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIxNDclMjIlMjB3aWR0aCUzRCUyMjQ2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzZGNiZDQyJTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIxOTMlMjIlMjB3aWR0aCUzRCUyMjM1JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzZGNhZDI3JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIyMjglMjIlMjB3aWR0aCUzRCUyMjExJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzZTM5YTIzJTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjIyMzklMjIlMjB3aWR0aCUzRCUyMjIlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNjYzU1NGMlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI0MSUyMiUyMHdpZHRoJTNEJTIyMzYlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNjYTQ3M2YlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI3NyUyMiUyMHdpZHRoJTNEJTIyMTUlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNhNzI4MzQlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI5MiUyMiUyMHdpZHRoJTNEJTIyNjIlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM3MzU2NzUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM1NCUyMiUyMHdpZHRoJTNEJTIyOTglMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM2NTNlNjYlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjQ1MiUyMiUyMHdpZHRoJTNEJTIyNDglMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMzYjMxNWIlMjIlMkYlM0UlM0MlMkZzdmclM0UlMEEpIHRvcCBsZWZ0LzUwMHB4IDEwMCUgcmVwZWF0LXggIWltcG9ydGFudDsKIH0KIDwvc3R5bGU+CiAKIDxzY3JpcHQ+CiB2YXIgYWJsaW5jb2xuX2NvbmZpZyA9IGFibGluY29sbl9jb25maWcgfHwge307CiBhYmxpbmNvbG5fY29uZmlnLnRlc3RzID0geyJERlBBZENvaG9ydHMiOnsiaWQiOjY5LCJuYW1lIjoiREZQQWRDb2hvcnRzIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjpudWxsLCJleHBlcmltZW50cyI6W119LCJFeHBsb3JlIjp7ImlkIjo2NCwibmFtZSI6IkV4cGxvcmUiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcLyIsImV4cGVyaW1lbnRzIjpbXX0sIlRvcE5hdkFCIjp7ImlkIjo2NywibmFtZSI6IlRvcE5hdkFCIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W119LCJUb3BOYXZDb3B5VGVzdCI6eyJpZCI6NzcsIm5hbWUiOiJUb3BOYXZDb3B5VGVzdCIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvYWJvdXQiLCJleHBlcmltZW50cyI6W119LCJUb3BOYXYuSG9zdFZpZGVvc0xpbmsiOnsiaWQiOjEwMywibmFtZSI6IlRvcE5hdi5Ib3N0VmlkZW9zTGluayIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6bnVsbCwiZXhwZXJpbWVudHMiOltdfSwiVmlkZW9QYWdlLlZpZXdlclNlZ21lbnRhdGlvblN1cnZleSI6eyJpZCI6OTIsIm5hbWUiOiJWaWRlb1BhZ2UuVmlld2VyU2VnbWVudGF0aW9uU3VydmV5IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjpudWxsLCJleHBlcmltZW50cyI6W119LCJEZXNrdG9wT3V0cm8iOnsiaWQiOjg0LCJuYW1lIjoiRGVza3RvcE91dHJvIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjpudWxsLCJleHBlcmltZW50cyI6W119fTsKIDwvc2NyaXB0PgoKCiAKIDxzY3JpcHQ+CiB2YXIgZ29vZ2xldGFnID0gZ29vZ2xldGFnIHx8IHt9LAogZ3B0YWRzbG90cyA9IFtdLAogbGFuZ3VhZ2UsCiBoYXNfdXBsb2FkZWQsCiBjb2hvcnQ7CiBnb29nbGV0YWcuY21kID0gZ29vZ2xldGFnLmNtZCB8fCBbXTsKCiAoZnVuY3Rpb24oKSB7CiB2YXIgZ2FkcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLAogdXNlU1NMID0gJ2h0dHBzOicgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wsCiBub2RlOwogZ2Fkcy5hc3luYyA9IHRydWU7CiBnYWRzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKIGdhZHMuc3JjID0gKHVzZVNTTCA/ICdodHRwczonIDogJ2h0dHA6JykgKyAnLy93d3cuZ29vZ2xldGFnc2VydmljZXMuY29tL3RhZy9qcy9ncHQuanMnOwogbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKIG5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2Fkcywgbm9kZSk7CiB9KSgpOwoKIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKIAogIGxhbmd1YWdlID0gZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLyg/Oig/Ol58Lio7XHMqKWxhbmd1YWdlXHMqXD1ccyooW147XSopLiokKXxeLiokLywgIiQxIik7CiBoYXNfdXBsb2FkZWQgPSAoZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLyg/Oig/Ol58Lio7XHMqKWhhc191cGxvYWRlZFxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpKSA/ICdZJyA6ICdOJzsKIAogY29ob3J0ID0gKHdpbmRvdy5BQkxpbmNvbG4pID8gd2luZG93LkFCTGluY29sbi5nZXRUZXN0KCdERlBBZENvaG9ydHMnKS5nZXQoJ2NvaG9ydCcsICdBJykgOiAnQSc7CgogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnbGFuZ3VhZ2UnLCBbbGFuZ3VhZ2VdKTsKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2lzX3VwbG9hZGVyJywgW2hhc191cGxvYWRlZF0pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0JywgW2NvaG9ydF0pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0X2EnLCBbKGNvaG9ydCA9PT0gJ0EnKSA/ICdZJyA6ICdOJ10pOwogZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0X2InLCBbKGNvaG9ydCA9PT0gJ0InKSA/ICdZJyA6ICdOJ10pOwoKICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdzZWMnLCBbJ2ZhbHNlJ10pOwoKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2xvZ2dlZF9pbicsIFsnZmFsc2UnXSk7CgogIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ3JwdicsIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwKSsxKS50b1N0cmluZygpKTsKCiBnb29nbGV0YWcucHViYWRzKCkuZW5hYmxlQXN5bmNSZW5kZXJpbmcoKTsKIGdvb2dsZXRhZy5lbmFibGVTZXJ2aWNlcygpOwogfSk7CiA8L3NjcmlwdD4KCjxzY3JpcHQ+CiFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzpleHBvcnRzLHI9W107aWYoZS5wZXJmb3JtYW5jZXx8KGUucGVyZm9ybWFuY2U9e30pLGUucGVyZm9ybWFuY2Uubm93fHwoZS5wZXJmb3JtYW5jZS5ub3c9cGVyZm9ybWFuY2Uubm93fHxwZXJmb3JtYW5jZS53ZWJraXROb3d8fHBlcmZvcm1hbmNlLm1zTm93fHxwZXJmb3JtYW5jZS5tb3pOb3cpLCFlLnBlcmZvcm1hbmNlLm5vdyl7dmFyIG49RGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGU7cGVyZm9ybWFuY2UudGltaW5nJiZwZXJmb3JtYW5jZS50aW1pbmcmJihuPXBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQpLGUucGVyZm9ybWFuY2Uubm93PWZ1bmN0aW9uKCl7dmFyIGU9RGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGU7cmV0dXJuIGUtbn19ZS5wZXJmb3JtYW5jZS5tYXJrfHwoZS5wZXJmb3JtYW5jZS5tYXJrPWUucGVyZm9ybWFuY2Uud2Via2l0TWFyaz9lLnBlcmZvcm1hbmNlLndlYmtpdE1hcms6ZnVuY3Rpb24obil7ci5mb3JFYWNoKGZ1bmN0aW9uKGUscixhKXtlLm5hbWU9PT1uJiZhLnNwbGljZShyLDEpfSksci5wdXNoKHtuYW1lOm4sZW50cnlUeXBlOiJtYXJrIixzdGFydFRpbWU6ZS5wZXJmb3JtYW5jZS5ub3coKSxkdXJhdGlvbjowfSl9KSxlLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGV8fChlLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGU9ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlUeXBlP2UucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5VHlwZTpmdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbihyKXtyZXR1cm4gci5lbnRyeVR5cGU9PT1lfTtyZXR1cm4tMSE9PVsibWFyayIsIm1lYXN1cmUiXS5pbmRleE9mKGUpP3IuZmlsdGVyKG4pOnZvaWQgMH0pLGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZXx8KGUucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZT1lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWU/ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiByLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci5uYW1lPT09ZX0pfSksZS5wZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzfHwoZS5wZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzPWUucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNZWFzdXJlcz9lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWVhc3VyZXM6ZnVuY3Rpb24oKXtyLmZvckVhY2goZnVuY3Rpb24oZSxyLG4peyJtZWFzdXJlIj09PWUuZW50cnlUeXBlJiZuLnNwbGljZShyLDEpfSkscj1bXX0pLGUucGVyZm9ybWFuY2UuY2xlYXJNYXJrc3x8KGUucGVyZm9ybWFuY2UuY2xlYXJNYXJrcz1lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWFya3M/ZS5wZXJmb3JtYW5jZS53ZWJraXRDbGVhck1hcmtzOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKGUscixuKXsibWFyayI9PT1lLmVudHJ5VHlwZSYmbi5zcGxpY2UociwxKX0pLHI9W119KSxlLnBlcmZvcm1hbmNlLm1lYXN1cmV8fChlLnBlcmZvcm1hbmNlLm1lYXN1cmU9ZS5wZXJmb3JtYW5jZS53ZWJraXRNZWFzdXJlP2UucGVyZm9ybWFuY2Uud2Via2l0TWVhc3VyZTpmdW5jdGlvbihlLG4sYSl7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiByLm5hbWU9PT1lJiYibWFyayI9PT1yLmVudHJ5VHlwZX19LG89ci5maWx0ZXIodChuKSlbMF0sbT1yLmZpbHRlcih0KGEpKVswXSxpPW0uc3RhcnRUaW1lLW8uc3RhcnRUaW1lO3IucHVzaCh7bmFtZTplLGVudHJ5VHlwZToibWVhc3VyZSIsc3RhcnRUaW1lOm8uc3RhcnRUaW1lLGR1cmF0aW9uOml9KX0pfSgpLHdpbmRvdy5tYXJrVXNlclRpbWU9ZnVuY3Rpb24oZSl7dmFyIHI9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDApfTtyKGZ1bmN0aW9uKCl7d2luZG93LnBlcmZvcm1hbmNlLm1hcmsoZSksd2luZG93LmNvbnNvbGUmJmNvbnNvbGUudGltZVN0YW1wJiZjb25zb2xlLnRpbWVTdGFtcChlKX0pfTsKCihmdW5jdGlvbigpIHsKIHdpbmRvdy5tYXJrVXNlclRpbWUgPSBmdW5jdGlvbihsYWJlbCkgewogd2luZG93Ll9ndG0gPSB3aW5kb3cuX2d0bSB8fCBbXTsKCiAvLyBFeGl0IGVhcmx5IGlmIHRoZSBicm93c2VyIGNhbid0IGhhbmRsZSBuZXcgdGhpbmdzCiBpZiAodHlwZW9mIHBlcmZvcm1hbmNlID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgcGVyZm9ybWFuY2UubWFyayAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgcGVyZm9ybWFuY2UuY2xlYXJNYXJrcyAhPT0gJ2Z1bmN0aW9uJykgewogcmV0dXJuOwogfQoKIHZhciB1aWQgPSBwYXJzZUludChNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkuc3BsaXQoJzAuJylbMV0pICsgbmV3IERhdGUoKS5nZXRUaW1lKCksCiBtYXJrX25hbWUgPSBsYWJlbCArICdfJyArIHVpZCwKIHBhcnRzID0gbGFiZWwuc3BsaXQoJ3wnKSwKIGNhdGVnb3J5ID0gcGFydHNbMF0sCiB2YXJpYWJsZSA9IHBhcnRzWzFdLAogbGFiZWwgPSBwYXJ0c1syXSwKIG1hcmtfdGltZSwKIG1hcmtfZW50cmllczsKCiBwZXJmb3JtYW5jZS5tYXJrKG1hcmtfbmFtZSk7CiBtYXJrX2VudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKG1hcmtfbmFtZSk7CgogaWYgKG1hcmtfZW50cmllcy5sZW5ndGgpIHsKIG1hcmtfdGltZSA9IG1hcmtfZW50cmllc1swXS5zdGFydFRpbWU7CiB3aW5kb3cuX2d0bS5wdXNoKHsKICdldmVudCc6ICdwZXJmb3JtYW5jZV90aW1pbmcnLAogJ3BlcmZvcm1hbmNlX3RpbWluZy5jYXRlZ29yeSc6IGNhdGVnb3J5LAogJ3BlcmZvcm1hbmNlX3RpbWluZy52YXJpYWJsZSc6IHZhcmlhYmxlLAogJ3BlcmZvcm1hbmNlX3RpbWluZy50aW1lJzogbWFya190aW1lIC8gMTAwMCwKICdwZXJmb3JtYW5jZV90aW1pbmcubGFiZWwnOiBsYWJlbAogfSk7CiB9CiB9Owp9KCkpOwo8L3NjcmlwdD4KCiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvYWJsaW5jb2xuX2NvbWJpbmVkLm1pbi5qcz80NjQyMzBmMCI+PC9zY3JpcHQ+CgoKCiA8L2hlYWQ+CiA8Ym9keSBjbGFzcz0ib25zaXRlICI+CiA8ZGl2IGlkPSJ3cmFwIiBjbGFzcz0ib3V0ZXJfd3JhcCI+CiAKIDxkaXYgY2xhc3M9ImJvZHlfcmliYm9uIGVzaV9yaWJib24iPjwvZGl2PgoKIAogCjxzY3JpcHQ+CiB3aW5kb3cudmltZW8gPSB3aW5kb3cudmltZW8gfHwge307Cjwvc2NyaXB0Pgo8ZGl2IGlkPSJ0b3BuYXZfZGVza3RvcCIgY2xhc3M9InRvcG5hdl9kZXNrdG9wICIgcm9sZT0iYmFubmVyIj4KIDxkaXYgY2xhc3M9InRvcG5hdl9kZXNrdG9wX3dyYXBwZXIiPgoKICAgPGEgY2xhc3M9InRvcG5hdl9kZXNrdG9wX2xvZ28iIGhyZWY9Ii8vdmltZW8uY29tIiBhbHQ9IkdvIHRvIFZpbWVvIGhvbWUgcGFnZSIgdGl0bGU9IkdvIHRvIFZpbWVvIGhvbWUgcGFnZSIgYXJpYS1sYWJlbD0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp2aW1lb19ob21lIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9ob21lX2NsaWNrIj4KICA8c3ZnIGFsdD0iVmltZW8iIHdpZHRoPSIxMDAiIGhlaWdodD0iNDAiPjxwYXRoIGQ9Ik0yMi40NDggMTQuNTc1Yy0uMTA0IDIuMTctMS42MTggNS4xNDYtNC41NDQgOC45MTItMy4wMyAzLjk0Mi01LjU5IDUuOTEyLTcuNjg2IDUuOTEyLTEuMjk3IDAtMi4zOTctMS4yMDQtMy4zLTMuNi0uNi0yLjItMS4yMDItNC4zOTgtMS43OTQtNi41OTgtLjY2NC0yLjM5Ni0xLjM4LTMuNi0yLjE0Ny0zLjYtLjE2NiAwLS43NDcuMzU0LTEuNzUzIDEuMDVsLTEuMDQ4LTEuMzVjMS4xLS45NjUgMi4xOS0xLjkzIDMuMjU3LTIuOTA1IDEuNDYzLTEuMjY1IDIuNTczLTEuOTQgMy4zLTIuMDAyIDEuNzMyLS4xNjYgMi44IDEuMDE3IDMuMjA1IDMuNTU4LjQzNSAyLjc0LjczNiA0LjQ0LjkwMiA1LjExNS40OTggMi4yNyAxLjA0OCAzLjQwMiAxLjY1IDMuNDAyLjQ2NiAwIDEuMTcyLS43MzcgMi4xMDUtMi4yMS45MzQtMS40NzMgMS40MzItMi41OTMgMS41MDQtMy4zNy4xMzMtMS4yNzctLjM2NS0xLjkxLTEuNTA2LTEuOTEtLjUzIDAtMS4wOC4xMjUtMS42NS4zNjQgMS4xLTMuNTkgMy4xODYtNS4zMzMgNi4yNzctNS4yMyAyLjI3My4wNzMgMy4zNSAxLjU1NiAzLjIyNyA0LjQ2bTEzLjc1NSA3LjAzNGMtLjkzMyAxLjc2NC0yLjIyIDMuMzctMy44NiA0LjgwMy0yLjI0IDEuOTMtNC40NyAyLjkwNS02LjcgMi45MDUtMS4wMzcuMDAyLTEuODI2LS4zMy0yLjM3Ni0uOTk0LS41NS0uNjYzLS44MS0xLjUzNS0uNzc3LTIuNjAzLjAzLTEuMS4zNzItMi44IDEuMDI1LTUuMTA0LjY1NC0yLjMwMy45NzYtMy41MzcuOTc2LTMuNzAzIDAtLjg2LS4zLTEuMjk3LS45MDItMS4yOTctLjE5OCAwLS43Ny4zNTMtMS43MDIgMS4wNDhsLTEuMTUyLTEuMzVjMS4wNy0uOTYyIDIuMTM3LTEuOTI3IDMuMjA2LTIuOTAyIDEuNDMtMS4yNjYgMi41LTEuOTQgMy4yMDUtMi4wMDIgMS4xLS4xMDMgMS45MS4yMyAyLjQyOC45NzYuNTE4Ljc0Ny43MDUgMS43MjIuNTggMi45MTUtLjQzNSAyLjAzNC0uOTAyIDQuNjA3LTEuNCA3LjczLS4wMyAxLjQzLjQ4OCAyLjE0NiAxLjU1NiAyLjE0Ni40NjcgMCAxLjI5Ny0uNDk4IDIuNS0xLjQ4My45OTYtLjgyIDEuODE1LTEuNTk4IDIuNDUtMi4zMjRsLjk0MiAxLjI0NG0tNC4zNTctMTcuOGMtLjAzLjgzLS40NDYgMS42MjgtMS4yNTUgMi4zOTUtLjkuODYtMS45NyAxLjI5Ni0zLjIwNCAxLjI5Ni0xLjkgMC0yLjgyMi0uODMtMi43NS0yLjQ5LjAzMi0uODYuNTQtMS42OSAxLjUyNi0yLjQ5Ljk4NS0uNzk3IDIuMDc0LTEuMTkgMy4yNzgtMS4xOS43MDUgMCAxLjI4Ni4yNyAxLjc1My44Mi40NjcuNTQuNjg0IDEuMS42NTMgMS42Nm0zNS42MTIgMTcuOGMtLjkzMyAxLjc2My0yLjIyIDMuMzctMy44NiA0LjgwMi0yLjI0IDEuOTMtNC40NyAyLjkwNC02LjcgMi45MDQtMi4xNjguMDAyLTMuMjE2LTEuMjAyLTMuMTUzLTMuNTk4LjAzLTEuMDcuMjM4LTIuMzU1LjYyMi0zLjg1LjM4NC0xLjUwMy41OS0yLjY2NS42MjMtMy41MDUuMDMtMS4yNjUtLjM1My0xLjg5OC0xLjE1Mi0xLjg5OC0uODcgMC0xLjkxIDEuMDM2LTMuMTEyIDMuMS0xLjI3NiAyLjE2OC0xLjk2IDQuMjc0LTIuMDY0IDYuMzA4LS4wNzMgMS40My4wNzIgMi41NC40MjUgMy4yOTgtMi4zMjQuMDY0LTMuOTYzLS4zMi00Ljg4Ni0xLjE1LS44My0uNzM3LTEuMjEyLTEuOTUtMS4xNS0zLjY1Mi4wMy0xLjA2OC4xOTgtMi4xMzcuNDg4LTMuMjA1LjI5LTEuMDcuNDU3LTIuMDIzLjQ4OC0yLjg1My4wNjItMS4yMzQtLjM4NC0xLjg1Ny0xLjM1LTEuODU3LS44NCAwLTEuNzQuOTU1LTIuNzA2IDIuODUzLS45NjYgMS45LTEuNTA1IDMuODktMS42MSA1Ljk1Ni0uMDYgMS44NjcuMDUzIDMuMTc0LjM2NCAzLjktMi4yOTMuMDYyLTMuOTItLjQxNS00Ljg3Ni0xLjQ1Mi0uNzk4LS44Ni0xLjE2LTIuMTgtMS4xLTMuOTQyLjAzMi0uODYuMTg4LTIuMDc1LjQ1Ny0zLjYyLjI4LTEuNTQ2LjQyNS0yLjc1LjQ1Ny0zLjYyLjA2Mi0uNjAzLS4wODMtLjkwMy0uNDQ2LS45MDMtLjE5NyAwLS43NjguMzQtMS43MDIgMS4wMTVsLTEuMjAzLTEuMzQ4Yy4xNjgtLjEzNSAxLjIxNi0xLjEgMy4xNTYtMi45MDUgMS40LTEuMjk3IDIuMzU0LTEuOTcgMi44NTItMi4wMDIuODcyLS4wNzMgMS41NjcuMjkgMi4xMDYgMS4wOC41My43ODcuOCAxLjY5LjggMi43MjcgMCAuMzMyLS4wMzIuNjU0LS4xMDUuOTU0LjQ5Ny0uNzY2IDEuMDgtMS40MyAxLjc1Mi0yIDEuNTM3LTEuMzQgMy4yNi0yLjA4NiA1LjE1Ny0yLjI1MiAxLjY0LS4xMzUgMi44LjI1IDMuNTA1IDEuMTUyLjU3LjczNi44MyAxLjc4NC44IDMuMTUzLjIzNy0uMTk4LjQ4Ni0uNDE2Ljc0Ni0uNjU0Ljc2Ny0uOTAzIDEuNTE0LTEuNjIgMi4yNS0yLjE0OCAxLjIzNS0uOTAyIDIuNTItMS40IDMuODYtMS41MDQgMS41OTctLjEzNSAyLjc1LjI1IDMuNDU0IDEuMTUyLjYwMi43MjYuODcgMS43NzQuOCAzLjE0My0uMDMyLjkzMy0uMjYgMi4yOC0uNjc1IDQuMDY1LS40MTYgMS43NzMtLjYyNCAyLjgtLjYyNCAzLjA3LS4wMy42OTUuMDMgMS4xODIuMTk3IDEuNDQyLjE2Ni4yNy41Ny4zOTQgMS4yMDMuMzk0LjQ2NyAwIDEuMjk3LS40OTcgMi41LTEuNDgyLjk5Ni0uODIgMS44MTYtMS41OTggMi40NS0yLjMyNGwuOTYzIDEuMjU0bTE4Ljc2NS0uMDUyYy0uOTY1IDEuNTk4LTIuODc0IDMuMTk1LTUuNzA2IDQuNzkzLTMuNTM4IDIuMDMyLTcuMTI3IDMuMDUtMTAuNzU4IDMuMDUtMi43MDYgMC00LjYzNi0uOTA0LTUuODA4LTIuNy0uODMtMS4yMzMtMS4yMzQtMi42OTYtMS4yMDMtNC40MDcuMDMtMi42OTggMS4yMzQtNS4yNyAzLjYtNy43MSAyLjYwMy0yLjY2NSA1LjY3NC00LjAwMyA5LjIxLTQuMDAzIDMuMjcgMCA1IDEuMzI4IDUuMjA4IDMuOTk0LjEzNSAxLjcwMi0uNzk4IDMuNDQ1LTIuOCA1LjI0LTIuMTM3IDEuOTYtNC44MjQgMy4yMTUtOC4wNiAzLjc0NC42LjgzIDEuNTA0IDEuMjQ1IDIuNzA3IDEuMjQ1IDIuMzk2IDAgNS4wMi0uNjEzIDcuODYzLTEuODM3IDIuMDMzLS44NiAzLjYzLTEuNzUzIDQuODAzLTIuNjc2bC45NDUgMS4yNjVtLTExLjM2LTUuMjI4Yy4wMzItLjg5Mi0uMzMtMS4zNS0xLjEtMS4zNS0uOTk0IDAtMi4wMS42ODYtMy4wNDggMi4wNjYtMS4wMzggMS4zOC0xLjU2NyAyLjY5Ny0xLjU5OCAzLjk2Mi0uMDIgMC0uMDIuMjE4IDAgLjY0MyAxLjYzLS42IDMuMDUtMS41MTQgNC4yNDItMi43MzguOTY2LTEuMDU4IDEuNDYzLTEuOTIgMS41MDUtMi41ODNtMjQuOTQ2IDEuODY4Yy0uMTM1IDMuMDcyLTEuMjY1IDUuNzE3LTMuNDAyIDcuOTQ3LTIuMTM1IDIuMjMtNC43OSAzLjM1LTcuOTU1IDMuMzUtMi42MzUgMC00LjYzNy0uODUtNi4wMDYtMi41NS0uOTk3LTEuMjY3LTEuNTU3LTIuODU0LTEuNjUtNC43NTItLjE2Ni0yLjg2My44Ni01LjQ5OCAzLjEtNy44OTQgMi40MDgtMi42NjUgNS40MjctMy45OTMgOS4wNTctMy45OTMgMi4zMzQgMCA0LjA5OC43ODggNS4zIDIuMzQ0IDEuMTMyIDEuNDQzIDEuNjUgMy4yOSAxLjU1NyA1LjU1bS01LjY2NC0uMTg1Yy4wMy0uOTAzLS4wOTQtMS43MzMtLjM3NC0yLjQ4LS4yOC0uNzQ3LS42OTUtMS4xMy0xLjIyNC0xLjEzLTEuNzAyIDAtMy4xMDIuOTIzLTQuMjAyIDIuNzYtLjkzMyAxLjUwMy0xLjQzIDMuMTEtMS41MDQgNC44MTItLjAzLjg0LjExNCAxLjU3Ny40NDYgMi4yMS4zNjQuNzM2Ljg4MiAxLjEgMS41NTYgMS4xIDEuNTA1IDAgMi43OS0uODgzIDMuODYtMi42NTYuODkyLTEuNDcyIDEuMzgtMy4wMDggMS40NC00LjYxNWguMDAyeiIgZmlsbD0iIzExMjIzMyIvPjwvc3ZnPgogIDwvYT4KIAogICA8bmF2IGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51IiByb2xlPSJuYXZpZ2F0aW9uIiBhcmlhLWxhYmVsPSJNYWluIG1lbnUiPgogPHVsIGNsYXNzPSJ0b3BuYXZfbWVudV9kZXNrdG9wX21haW4iIHJvbGU9Im1lbnViYXIiPgoKICAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9ImpvaW4iPgogPGEgY2xhc3M9InRvcG5hdl9tZW51X2pvaW4ganMtdG9wbmF2X21lbnVfYXV0aCIgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTt2aW1lby5Nb2RhbC5jcmVhdGUoe3NpemU6J3hzbWFsbCcsY29udGVudDonL2pvaW4/bW9kYWw9bmV3J30pIiBkYXRhLWdhLWV2ZW50LWNsaWNrPSJ0b3BfbmF2fGpvaW4iIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OmpvaW4iIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2pvaW5fY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2pvaW4iIHRpdGxlPSJCZWNvbWUgYSBWaW1lbyBtZW1iZXIiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9qb2luIj4KIEpvaW4gPC9hPgoKICAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0ibG9naW4iPgogPGEgY2xhc3M9ImpzLXRvcG5hdl9tZW51X2F1dGgiIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7dmltZW8uU2Vzc2lvbi5jcmVhdGUoJ3JlZycsIG51bGwsIHRydWUpOyIgZGF0YS1nYS1ldmVudC1jbGljaz0idG9wX25hdnxsb2dpbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6bG9naW4iIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2xvZ2luX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9sb2dfaW4iIHRpdGxlPSJMb2cgaW4gdG8geW91ciBhY2NvdW50IiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfbG9naW4iPgogTG9nIGluIDwvYT4KCiAgIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9ImNyZWF0ZSI+CiA8YSBjbGFzcz0ianMtdG9wbmF2LWNyZWF0ZSB0b3BuYXZfaGFzX2Ryb3Bkb3duIHRvcG5hdl9pY29uX2NoZXZyb25fYSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6bWFuYWdlX3ZpZGVvc3xrZXl3b3JkOmhvc3RfdmlkZW9zIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NyZWF0ZSIgdGl0bGU9IiIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2NyZWF0ZSI+CiBIb3N0IHZpZGVvcyA8L2E+CgogICA8dWwgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24iIHJvbGU9Im1lbnUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBpZD0idG9wbmF2X2NyZWF0ZSI+CiAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDpjb21wYXJlX3BsYW5zIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS91cGdyYWRlIiB0aXRsZT0iVXBncmFkZSBvciBjb21wYXJlIG91ciBwbGFucyI+Q29tcGFyZSBwbGFuczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6cHJvZmVzc2lvbmFscyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vcHJvZmVzc2lvbmFscyIgdGl0bGU9IkdldCBwcm9mZXNzaW9uYWwgdmlkZW8gaG9zdGluZyB0b29scyI+UHJvZmVzc2lvbmFsczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6YnVzaW5lc3NlcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vYnVzaW5lc3MiIHRpdGxlPSJHZXQgcG93ZXJmdWwgdmlkZW8gbWFya2V0aW5nIHRvb2xzIj5CdXNpbmVzc2VzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDp2aWRlb19sb3ZlcnMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9tZW1iZXJzaGlwX29wdGlvbnNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2V2ZXJ5b25lIiB0aXRsZT0iVXBsb2FkIGFuZCBzaGFyZSB5b3VyIHZpZGVvcyI+VmlkZW8gbG92ZXJzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aG9zdF92aWRlb3N8a2V5d29yZDp2aWRlb19zY2hvb2wiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV92aWRlb19zY2hvb2xfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3ZpZGVvc2Nob29sIiB0aXRsZT0iTGVhcm4gaG93IHRvIG1ha2UgYmV0dGVyIHZpZGVvcyI+VmlkZW8gU2Nob29sPC9hPgogPC9saT4KICAgPC91bD4KICA8L2xpPgogCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJ3YXRjaCI+CiA8YSBjbGFzcz0idG9wbmF2X2hhc19kcm9wZG93biB0b3BuYXZfaWNvbl9jaGV2cm9uX2EiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6d2F0Y2giIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS93YXRjaCIgdGl0bGU9IiIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X3dhdGNoIj4KIFdhdGNoIDwvYT4KCiAgIDx1bCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfd2F0Y2giPgogIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6c3RhZmZfcGlja3MiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX3N0YWZmX3BpY2tzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jaGFubmVscy9zdGFmZnBpY2tzIiB0aXRsZT0iVGhlIGJlc3QgdmlkZW9zIG9uIFZpbWVvLCBjdXJhdGVkIGRhaWx5IGJ5IG91ciB0ZWFtIj5TdGFmZiBQaWNrczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Y2F0ZWdvcmllcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2F0ZWdvcmllc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vY2F0ZWdvcmllcyIgdGl0bGU9IkJyb3dzZSB2aWRlb3MgYnkgaW50ZXJlc3QsIGdlbnJlLCBhbmQgbW9yZSI+Q2F0ZWdvcmllczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Y2hhbm5lbHMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2NoYW5uZWxzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jaGFubmVscyIgdGl0bGU9IlZpZXcgdmlkZW8gcGxheWxpc3RzIGNyZWF0ZWQgYW5kIGN1cmF0ZWQgYnkgb3RoZXIgbWVtYmVycyI+Q2hhbm5lbHM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmdyb3VwcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfZ3JvdXBzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9ncm91cHMiIHRpdGxlPSJXYXRjaCBhbmQgZGlzY3VzcyB2aWRlb3Mgd2l0aCBvdGhlcnMiPkdyb3VwczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6YXBwIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9hcHBzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9ldmVyeXdoZXJlIiB0aXRsZT0iV2F0Y2ggVmltZW8gdmlkZW9zIG9uIFRWcywgcGhvbmVzLCB0YWJsZXRzLCBhbmQgbW9yZSI+QXBwczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6bW9yZSIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfbW9yZV9jbGljayIgaHJlZj0iLy92aW1lby5jb20vd2F0Y2giIHRpdGxlPSJEaXNjb3ZlciBtb3JlIHdheXMgdG8gd2F0Y2ggb24gVmltZW8iPk1vcmXigKY8L2E+CiA8L2xpPgogICA8L3VsPgogIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9Im9uZGVtYW5kIj4KIDxhIGNsYXNzPSJ0b3BuYXZfaGFzX2Ryb3Bkb3duIHRvcG5hdl9pc19vbmRlbWFuZCB0b3BuYXZfaWNvbl9jaGV2cm9uX2EiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOm9uX2RlbWFuZCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kIiB0aXRsZT0iV2F0Y2ggbW92aWVzLCBzZXJpZXMsIGFuZCBtb3JlIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfb25kZW1hbmQiPgogT24gRGVtYW5kIDwvYT4KCiAgIDx1bCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfb25kZW1hbmQiPgogIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOndoYXRzX25ldyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfd2hhdHNfbmV3X2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZCIgdGl0bGU9IlNlZSBuZXcgYW5kIG5vdGV3b3J0aHkgdGl0bGVzIGFkZGVkIHRvIE9uIERlbWFuZCI+V2hhdOKAmXMgbmV3PC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6ZGlzY292ZXIiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX2Rpc2NvdmVyX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9kaXNjb3ZlciIgdGl0bGU9IkRpc2NvdmVyIHRpdGxlcyBvdXIgdGVhbSByZWNvbW1lbmRzIj5EaXNjb3ZlcjwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOmdlbnJlcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfb25kZW1hbmRfZ2VucmVzX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9icm93c2UiIHRpdGxlPSJCcm93c2UgdGl0bGVzIGJ5IGdlbnJlIj5HZW5yZXM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDp0dl9zZXJpZXMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX3R2X3Nlcmllc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQvYnJvd3NlL3R2K3NlcmllcyIgdGl0bGU9IkJyb3dzZSBzZXJpZXMgYW5kIFRWIHNob3dzIj5UViArIFNlcmllczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOnN0YXJ0X3NlbGxpbmciIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX3NlbGxfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL3N0YXJ0c2VsbGluZyIgdGl0bGU9IlNlbGwgZGlyZWN0bHkgdG8geW91ciBmYW5zIHdpdGggVmltZW8gT24gRGVtYW5kIj5TdGFydCBzZWxsaW5nPC9hPgogPC9saT4KICAgPC91bD4KICA8L2xpPgogCiA8L3VsPgogPC9uYXY+PCEtLSAvLnRvcG5hdl9kZXNrdG9wX21lbnUgLS0+CiAKICAgPGRpdiBjbGFzcz0idG9wbmF2X21lbnVfcmlnaHQiPgoKICAgPGZvcm0gY2xhc3M9InRvcG5hdl9tZW51X3NlYXJjaCIgYWN0aW9uPSIvL3ZpbWVvLmNvbS9zZWFyY2giIG1ldGhvZD0iZ2V0IiByb2xlPSJzZWFyY2giIGRhdGEtZHMtcHJvdGVjdGlvbj4KIDxpbnB1dCBjbGFzcz0idG9wbmF2X21lbnVfc2VhcmNoX2lucHV0IGpzLXRvcG5hdl9tZW51X3NlYXJjaF9pbnB1dCBqcy1zZWFyY2hfYXV0b2NvbXBsZXRlIiAgdHlwZT0idGV4dCIgbmFtZT0icSIgdGl0bGU9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIHZhbHVlPSIiIGFyaWEtbGFiZWw9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiIHBsYWNlaG9sZGVyPSJTZWFyY2ggdmlkZW9zLCBwZW9wbGUsIGFuZCBtb3JlIiBhdXRvY29tcGxldGU9Im9mZiI+PGJ1dHRvbiBjbGFzcz0idG9wbmF2X21lbnVfc2VhcmNoX3N1Ym1pdCB0b3BuYXZfaWNvbl9zZWFyY2hfYiIgdHlwZT0ic3VibWl0IiBhcmlhLWxhYmVsPSJTZWFyY2giPjwvYnV0dG9uPgogPC9mb3JtPgogCiAgCiAgCiAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF91cGxvYWQgdG9wbmF2X2ljb25fdXBsb2FkX2IiIGhyZWY9Ii91cGxvYWQiIHRpdGxlPSJVcGxvYWQgeW91ciB2aWRlb3MiIHJvbGU9ImJ1dHRvbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb21wb25lbnQ6dG9wX25hdnxrZXl3b3JkOnVwbG9hZCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdXBsb2FkX2NsaWNrIj48c3Bhbj5VcGxvYWQ8L3NwYW4+PC9hPgogIDwvZGl2PjwhLS0gLy50b3BuYXZfbWVudV9yaWdodCAtLT4KICA8L2Rpdj48IS0tIC8udG9wbmF2X2Rlc2t0b3Bfd3JhcHBlciAtLT4KPC9kaXY+CgogPG5hdiBpZD0idG9wbmF2X21vYmlsZSIgY2xhc3M9InRvcG5hdl9tb2JpbGUgIiByb2xlPSJiYW5uZXIiPgoKIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KICA8YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfbGVmdCB0b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvIGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2xvZ28gdG9wbmF2X2ljb25fbW9iaWxlX3Zsb2dvX2IiPgogIDwvYnV0dG9uPgogPGEgaHJlZj0iLy92aW1lby5jb20vc2VhcmNoIiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX3JpZ2h0IHRvcG5hdl9tb2JpbGVfaGVhZGVyX3NlYXJjaCB0b3BuYXZfaWNvbl9tb2JpbGVfc2VhcmNoX2IiPiA8L2E+CiA8c3BhbiBjbGFzcz0idG9wbmF2X21vYmlsZV9oZWFkZXJfdGl0bGUiPjwvc3Bhbj4KIDwvZGl2PgoKICA8c2VjdGlvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51IGpzLXRvcG5hdl9tb2JpbGVfbWVudV9tYWluIj4KIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9sZWZ0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2Nsb3NlIHRvcG5hdl9pY29uX21vYmlsZV94X2IiPiA8L2J1dHRvbj4KIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9yaWdodCBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5ncyB0b3BuYXZfaWNvbl9tb2JpbGVfZ2Vhcl9iIj4gPC9idXR0b24+CiA8L2Rpdj4KCiA8dWw+CiAgIDxsaT4KIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX2NoYW5uZWxfYiAiIGhyZWY9Ii8vdmltZW8uY29tLyI+CiBTdGFmZiBQaWNrcyA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBkYXRhLWFjdGlvbj0ibGFzdF9wYWdlIiBkYXRhLWJyZWV6ZS1pZ25vcmUgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV9hdmF0YXJfYiAiIGhyZWY9Ii9sb2dfaW4iPgogPHNwYW4gY2xhc3M9Im1lbnVfYXV0aCI+Sm9pbiBvciBsb2cgaW48L3NwYW4+IDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX3N0YXJfYiIgaHJlZj0iLy92aW1lby5jb20vd2F0Y2giPgogV2F0Y2ggPC9hPgogPC9saT4KICAgPGxpPgogPGEgb25jbGljaz0idmltZW8ubW9iaWxlLmRlc2t0b3Bfc2hhcmVkLl91cGxvYWQodGhpcyk7IHJldHVybiBmYWxzZTsiIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX3VwbG9hZF9iIiBocmVmPSIvL3ZpbWVvLmNvbS91cGxvYWQiPgogVXBsb2FkIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYnJlZXplLWlnbm9yZSBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX3ZvZF9iICIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQiPgogT24gRGVtYW5kIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0idG9wbmF2X2ljb25fbW9iaWxlX2ZvcmdvdF9iICIgaHJlZj0iaHR0cHM6Ly9oZWxwLnZpbWVvLmNvbS9oYy9lbi11cyI+CiBIZWxwIDwvYT4KIDwvbGk+CiAgPC91bD4KIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudSB0b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MganMtdG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzIj4KIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KIDxidXR0b24gY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9sZWZ0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbnNfY2xvc2UgdG9wbmF2X2ljb25fbW9iaWxlX2Fycm93bGVmdF9iIj4gPC9idXR0b24+CiA8c3BhbiBjbGFzcz0idG9wbmF2X21vYmlsZV9oZWFkZXJfdGl0bGUiPk1vcmUgc3R1ZmY8L3NwYW4+CiA8L2Rpdj4KCiA8dWw+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vdGVybXMiPgogVGVybXMgb2YgU2VydmljZSA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vcHJpdmFjeSI+CiBQcml2YWN5IFBvbGljeSA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iLy92aW1lby5jb20vZG1jYSI+CiBDb3B5cmlnaHQgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL2Nvb2tpZV9wb2xpY3kiPgogQ29va2llcyA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGRhdGEtYWN0aW9uPSJkZXNrdG9wIiBvbmNsaWNrPSJ2aW1lby5tb2JpbGUuZGVza3RvcF9zaGFyZWQuX3MyZHMoKTsgcmV0dXJuIGZhbHNlIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPgogRGVza3RvcCBzaXRlIDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgbGFuZ3VhZ2UgaHJlZj0iIyI+CiBMYW5ndWFnZSA8L2E+CiAgIDxzZWxlY3Qgb25jaGFuZ2U9InZpbWVvLm1vYmlsZS5kZXNrdG9wX3NoYXJlZC5fczJsKHRoaXMpIiB0aXRsZT0iQ2hvb3NlIGEgZGlmZmVyZW50IGxhbmd1YWdlIiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzX2xhbmd1YWdlIj4KICAgPG9wdGlvbiBjbGFzcz0ic2VsZWN0ZWQiIHNlbGVjdGVkIHZhbHVlPSJlbiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBFbmdsaXNoIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImVzIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIEVzcGHDsW9sIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImRlLURFIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIERldXRzY2ggPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iZnItRlIiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRnJhbsOnYWlzIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImphLUpQIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIOaXpeacrOiqniA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJwdC1CUiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBQb3J0dWd1w6pzIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImtvLUtSIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIO2VnOq1reyWtCA8L29wdGlvbj4KICA8L3NlbGVjdD4KICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL2ZhcSI+CiBGQVEgPC9hPgogICA8L2xpPgogIDwvdWw+CgogPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51X2NvcHlyaWdodCI+VE0gKyDCqSAyMDE3IFZpbWVvLCBJbmMuPC9kaXY+CiA8L3NlY3Rpb24+CjwvbmF2PgoKPHNjcmlwdD4KIWZ1bmN0aW9uKGEsYil7YS52aW1lbz1hLnZpbWVvfHx7fSx2aW1lby5tb2JpbGU9dmltZW8ubW9iaWxlfHx7fSxWaW1lbz12aW1lby5tb2JpbGV8fHt9LFZpbWVvLmRlc2t0b3Bfc2hhcmVkPVZpbWVvLmRlc2t0b3Bfc2hhcmVkfHx7fTt2YXIgYz1iLmdldEVsZW1lbnRCeUlkKCJ0b3BuYXZfZGVza3RvcCIpLGQ9Im9udG91Y2hzdGFydCJpbiBhPyJ0b3VjaHN0YXJ0IjphLlBvaW50ZXJFdmVudD8icG9pbnRlcmRvd24iOmEuTVNQb2ludGVyRXZlbnQ/Ik1TUG9pbnRlckRvd24iOiJjbGljayI7ImNsaWNrIiE9PWQmJmMuYWRkRXZlbnRMaXN0ZW5lcihkLGZ1bmN0aW9uKGEpe3ZhciBiPSJpbWciPT09YS50YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQ7Yi5jbGFzc0xpc3QuY29udGFpbnMoInRvcG5hdl9oYXNfZHJvcGRvd24iKSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKX0sITEpLGMuYWRkRXZlbnRMaXN0ZW5lcihkLGZ1bmN0aW9uKGMpe2MudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygianMtdG9wbmF2X21lbnVfYXV0aCIpJiYoYi5jb29raWU9Imxhc3RfcGFnZT0iK2VuY29kZVVSSUNvbXBvbmVudChhLmxvY2F0aW9uLnBhdGhuYW1lKSsiO3BhdGg9Jy8nO21heC1hZ2U9MTgwMDsiKX0sITEpLFZpbWVvLmRlc2t0b3Bfc2hhcmVkLl91cGxvYWQ9ZnVuY3Rpb24oYyl7aWYoL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBmLGcsZD0idmltZW86Ly9hcHAudmltZW8uY29tL3VwbG9hZD9yZWY9bW9iaWxld2ViIixlPSIvdXBsb2FkIjtyZXR1cm4gZj1mdW5jdGlvbigpe2Iud2Via2l0SGlkZGVufHwoYS5sb2NhdGlvbj1lKX0sZz1mdW5jdGlvbigpe2EubG9jYXRpb249ZCxzZXRUaW1lb3V0KGYsMjUpfSxnKCksITF9YS5sb2NhdGlvbj1jLmhyZWZ9LFZpbWVvLmRlc2t0b3Bfc2hhcmVkLl9zMmRzPWZ1bmN0aW9uKCl7Yi5jb29raWU9Im9wdF9vdXRfbW9iaWxlPTE7ZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVDtkb21haW49Iit2aW1lby5kb21haW4sYS5sb2NhdGlvbi5yZWxvYWQoKX0sVmltZW8uZGVza3RvcF9zaGFyZWQuX3MybD1mdW5jdGlvbihiKXt2YXIgYz1iLnZhbHVlLGQ9bmV3IFhNTEh0dHBSZXF1ZXN0O2Qub3BlbigiUE9TVCIsIi9zZXR0aW5ncy9sb2NhbGUiKSxkLnNldFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpLGQuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiksZC5zZW5kKCJsb2NhbGU9IitjKyImdG9rZW49Iit2aW1lby54c3JmdCksZC5vbmxvYWQ9ZnVuY3Rpb24oKXsyMDA9PT1kLnN0YXR1cyYmYS5sb2NhdGlvbi5yZWxvYWQoKX19O3ZhciBlPSJjbGljayIsZj0iYmxvY2siLGc9Im5vbmUiLGg9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfbG9nbyIpO2gmJmguYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBjPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfbWVudV9tYWluIik7Yy5zdHlsZS5kaXNwbGF5PWY7dmFyIGQ9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfY2xvc2UiKTtkLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxjLnN0eWxlLmRpc3BsYXk9Z30pO3ZhciBoPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfbWVudV9zZXR0aW5ncyIpLGk9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfc2V0dGluZ3MiKTtpLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKSxoLnN0eWxlLmRpc3BsYXk9ZixjLnN0eWxlLmRpc3BsYXk9Zzt2YXIgZD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5zX2Nsb3NlIik7ZC5hZGRFdmVudExpc3RlbmVyKGUsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCksaC5zdHlsZS5kaXNwbGF5PWcsYy5zdHlsZS5kaXNwbGF5PWZ9KX0pfSwhMSksc2V0VGltZW91dChmdW5jdGlvbigpe2Z1bmN0aW9uIGYoYSl7dmFyIGI9bmV3IFhNTEh0dHBSZXF1ZXN0O2Iub3BlbigiUE9TVCIsIi9zZXR0aW5ncy9uYXYiKSxiLnNldFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpLGIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiksYi5zZW5kKCJtZXNzYWdlX3N0YXRlPSIrYSsiJnRva2VuPSIrdmltZW8ueHNyZnQpLGIub25sb2FkPWZ1bmN0aW9uKCl7fX12YXIgYT1iLmdldEVsZW1lbnRCeUlkKCJ0b3BuYXZfbWVudV9hdmF0YXIiKTtpZihhKXt2YXIgYz1hLnF1ZXJ5U2VsZWN0b3IoIi50b3BuYXZfbWVudV9hdmF0YXJfYnViYmxlIiksZT0oYS5xdWVyeVNlbGVjdG9yKCIjdG9wbmF2X3VzZXJfZHJvcGRvd24iKSwhMSk7YyYmYy5jbGFzc0xpc3QuYWRkKCJvbiIpLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIixmdW5jdGlvbigpe2V8fChlPSEwLGMmJmMuY2xhc3NMaXN0LnJlbW92ZSgib24iKSxmKDEpKX0sITEpfX0sMWUzKX0od2luZG93LGRvY3VtZW50KTsKPC9zY3JpcHQ+CgogPGRpdiBjbGFzcz0id3JhcF9jb250ZW50Ij4KIAo8ZGl2IGNsYXNzPSJhcHBfYmFubmVyX2NvbnRhaW5lciI+CgogPGRpdiBjbGFzcz0iYXBwX2Jhbm5lciBoaWRlIGpzLWFwcF9iYW5uZXIiPgoKIDxidXR0b24gY2xhc3M9ImFwcF9iYW5uZXJfY2xvc2UganMtYXBwX2Jhbm5lcl9jbG9zZSI+JnRpbWVzOzwvYnV0dG9uPgoKIDxkaXYgY2xhc3M9ImFwcF9iYW5uZXJfaWNvbl93cmFwcGVyIj4KIDxzdmcgY2xhc3M9ImFwcF9iYW5uZXJfaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yNCA2LjY0M0MyNCAxMS4yODYgMTUgMjIgMTAuODc1IDIyIDYgMjIgNiA3LjcxNCAzLjAxMyA3LjcxNGMtLjM4OCAwLTEuODgzIDEuMDctMS44ODMgMS4wN0wwIDcuMzU4czUuMjUtNSA3LjUtNWM0LjUgMCAzIDEyLjUgNS42MjUgMTIuNSAxLjUgMCA2Ljc1LTcuODU3IDIuMjUtNy44NTctLjc1IDAtMS41LjM1Ny0xLjUuMzU3QzE1IDMuNzg3IDE3LjI1IDIgMjAuNjI1IDIgMjIuODc1IDIgMjQgMy43ODYgMjQgNi42NDN6Ii8+PC9zdmc+CiA8L2Rpdj4KCiA8ZGl2IGNsYXNzPSJhcHBfYmFubmVyX2N0YSI+CiBXYXRjaCBpbiBvdXIgYXBwIDwvZGl2PgoKIDxhIGNsYXNzPSJhcHBfYmFubmVyX2J1dHRvbiBqcy1hcHBfYmFubmVyX29wZW5fYXBwIiBkYXRhLWRlZXAtbGluaz0idmlkZW9zLzEzNjk3MTQyOCIgZGF0YS1zb3VyY2UtY29udGV4dD0iY2xpcCI+CiA8c3BhbiBjbGFzcz0iYXBwX2Jhbm5lcl9idXR0b25fdGV4dCI+T3BlbiBpbiBhcHA8L3NwYW4+CiA8L2E+CgogPC9kaXY+Cgo8L2Rpdj4KCgogIDxzY3JpcHQ+CiAgIWZ1bmN0aW9uKGkpe2lmKHZvaWQgMD09PWkudmltZW98fHZvaWQgMD09PWkudmltZW8uY2xpcHMpe2kudmltZW89aS52aW1lb3x8e30saS52aW1lby5jbGlwcz1pLnZpbWVvLmNsaXBzfHx7fTt2YXIgZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZS5vcGVuKCJHRVQiLCJodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vMTM2OTcxNDI4L2NvbmZpZz9ieWxpbmU9MCZjb2xsZWN0aW9ucz0xJmNvbnRleHQ9VmltZW8lNUNDb250cm9sbGVyJTVDQ2xpcENvbnRyb2xsZXIubWFpbiZkZWZhdWx0X3RvX2hkPTEmb3V0cm89bm90aGluZyZwb3J0cmFpdD0wJnNoYXJlPTEmdGl0bGU9MCZ3YXRjaF90cmFpbGVyPTAmcz1iZTUxMmFjOTM5NzljOTJiMGYwODViNGJlNTBmNmJlMTliM2U2YmJkXzE0OTA3NDcwMTciLCEwKSxlLm9ubG9hZD1mdW5jdGlvbigpe2kudmltZW8uY2xpcHNbIjEzNjk3MTQyOCJdPUpTT04ucGFyc2UoZS5yZXNwb25zZVRleHQpfSxlLndpdGhDcmVkZW50aWFscz0hMCxlLnNlbmQoKX19KHdpbmRvdyk7CiA8L3NjcmlwdD4KCjwhLS1baWYgbHRlIElFIDldPgogPHNjcmlwdD53aW5kb3cubG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24gKyAnP2xpdGU9MSc7PC9zY3JpcHQ+CjwhW2VuZGlmXS0tPgoKPG1haW4gaWQ9Im1haW4iIGNsYXNzPSJpc19sb2FkaW5nIj4KIDxkaXYgY2xhc3M9ImlyaXNfZ3JpZCBpcmlzX2dyaWRfZnA5NjAiPgogPGRpdiBjbGFzcz0iY2xpcF9tYWluIj4KIDxkaXYgY2xhc3M9InBsYXllcl9hcmVhIj4KIDxub3NjcmlwdD4KIDxpbWcgc3JjPSJodHRwczovL2kudmltZW9jZG4uY29tL3ZpZGVvLzUzMTY4ODIzOS5qcGc/bXc9MTkyMCZhbXA7bWg9MTA4MCZhbXA7cT03MCIgYWx0PSIiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIGF1dG87IG1heC1oZWlnaHQ6IDU0MHB4OyIgLz4KIDwvbm9zY3JpcHQ+CiA8L2Rpdj4KCiA8bm9zY3JpcHQ+CiA8ZGl2IGNsYXNzPSJjbGlwX21haW4tY29udGVudCBpcmlzX2dyaWQtd3JhcHBlci0tY29udGVudCI+CiA8ZGl2IGNsYXNzPSJpcmlzX2dyaWQtY29udGVudCI+CiA8ZGl2IGNsYXNzPSJyb3cgdS1jb2xsYXBzZSBjbGlwLW5vdGlmaWNhdGlvbiIgc3R5bGU9Im1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogMS41ZW07Ij4KIDxkaXYgY2xhc3M9ImlyaXNfbm90aWZpY2F0aW9uIGlyaXNfbm90aWZpY2F0aW9uLWNsaXAgaXJpc19ub3RpZmljYXRpb24tY2xpcC0tY2F1dGlvbiBpcmlzX25vdGlmaWNhdGlvbi0tbm8tY2xvc2UgY2xlYXJmaXgiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwOyI+CiA8cD5QbGVhc2UgZW5hYmxlIEphdmFTY3JpcHQgdG8gZXhwZXJpZW5jZSBWaW1lbyBpbiBhbGwgb2YgaXRzIGdsb3J5LjwvcD4KIDwvZGl2PgogPC9kaXY+CgogPGRpdiBjbGFzcz0iaXJpc19ncmlkLWNvbnRlbnQiPgogPGRpdiBjbGFzcz0iY2xpcF9pbmZvLXdyYXBwZXIiPgogPGRpdiBjbGFzcz0iY2xpcF9pbmZvIj4KIDxoMSBjbGFzcz0iY2xpcF9pbmZvLWhlYWRlciI+RGVhZmhlYXZlbiAtICYjMDM5O05ldyBCZXJtdWRhJiMwMzk7IFRyYWlsZXI8L2gxPgogPC9kaXY+CiA8ZGl2IGNsYXNzPSJjbGlwX2luZm8tc3VibGluZS0td2F0Y2ggY2xpcF9pbmZvLXN1YmxpbmUtLWlubGluZSI+CiA8cCBjbGFzcz0idXNlcmJ5bGluZS1zdWJsaW5lIHVzZXJieWxpbmUtc3VibGluZS0tbGciPgogPHNwYW4+ZnJvbTwvc3Bhbj4KIDxzcGFuIGNsYXNzPSJ1c2VybGluayB1c2VybGluay0tbWQiPgogPGEgaHJlZj0iL2FudGlyZWNvcmRzIj5BbnRpIFJlY29yZHM8L2E+CiA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4KICA8YSB0YWJpbmRleD0iLTEiIGhyZWY9Ii9wbHVzIiB0aXRsZT0iTGVhcm4gbW9yZSBhYm91dCBWaW1lbyBQbHVzIiBkYXRhLWd0bS1jbGljaz0iYmFkZ2VfcGx1c19jbGljayIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6YmFkZ2V8Y29tcG9uZW50OnVwZ3JhZGVfbGlua3xrZXl3b3JkOnBsdXMiPgogPHNwYW4gY2xhc3M9ImlyaXNfYmFkZ2UgaXJpc19iYWRnZS0tcGx1cyBiYWRnZSBiYWRnZS0tcGx1cyBiYWRnZV9wbHVzIj4KIFBsdXMgPC9zcGFuPgogPC9hPgogPC9zcGFuPgogPC9zcGFuPgogPC9wPgogPHNwYW4gY2xhc3M9ImNsaXBfaW5mby10aW1lIj48dGltZSBkYXRldGltZT0iMjAxNS0wOC0yMVQxNzozNzo0My0wNDowMCIgdGl0bGU9IkZyaWRheSwgQXVndXN0IDIxLCAyMDE1IGF0IDU6MzcgUE0iPjEgeWVhciBhZ288L3RpbWU+PC9zcGFuPgogPC9kaXY+CiA8L2Rpdj4KIDwvZGl2PgogPC9kaXY+CgogPGRpdiBjbGFzcz0iY2xpcF9kZXRhaWxzIGlyaXNfZGl2aWRlci0tZGFyayBpcmlzX2RpdmlkZXItdG9wIGlyaXNfZGl2aWRlci10b3AtLW0gaXJpc19kaXZpZGVyLWJvdCBpcmlzX2RpdmlkZXItYm90LS1tIHUtY29sbGFwc2UgY2xlYXJmaXgiPgogPGRpdiBjbGFzcz0iaXJpc19ncmlkLWNvbnRlbnQiPgogPGRpdiBjbGFzcz0iY2xpcF9kZXRhaWxzLWRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLXdyYXBwZXIgaXJpc19kZXNjIj4KIDxwIGNsYXNzPSJmaXJzdCI+JiMwMzk7TmV3IEJlcm11ZGEsJiMwMzk7IHRoZSB1cGNvbWluZyBhbGJ1bSBmcm9tIERlYWZoZWF2ZW4sIGlzIGF2YWlsYWJsZSBPY3RvYmVyIDJuZDwvcD4gPC9kaXY+CiA8L2Rpdj4KIDwvZGl2PgogPC9kaXY+CiA8L25vc2NyaXB0PgogPC9kaXY+CiA8L2Rpdj4KPC9tYWluPgoKPHNjcmlwdD4KIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKIHdpbmRvdy52aW1lby5jbGlwX3BhZ2VfY29uZmlnID0geyJjbGlwIjp7ImlkIjoxMzY5NzE0MjgsInRpdGxlIjoiRGVhZmhlYXZlbiAtIFx1MjAxOE5ldyBCZXJtdWRhXHUyMDE5IFRyYWlsZXIiLCJkZXNjcmlwdGlvbiI6IjxwIGNsYXNzPVwiZmlyc3RcIj4mIzAzOTtOZXcgQmVybXVkYSwmIzAzOTsgdGhlIHVwY29taW5nIGFsYnVtIGZyb20gRGVhZmhlYXZlbiwgaXMgYXZhaWxhYmxlIE9jdG9iZXIgMm5kPFwvcD4iLCJ1cGxvYWRlZF9vbiI6IjIwMTUtMDgtMjEgMTc6Mzc6NDMiLCJ1cGxvYWRlZF9vbl9yZWxhdGl2ZSI6IjEgeWVhciBhZ28iLCJ1cGxvYWRlZF9vbl9mdWxsIjoiRnJpZGF5LCBBdWd1c3QgMjEsIDIwMTUgYXQgNTozNyBQTSBFU1QiLCJpc19zcGF0aWFsIjpmYWxzZSwicHJpdmFjeSI6eyJpc19wdWJsaWMiOnRydWUsInR5cGUiOiJhbnlib2R5IiwiZGVzY3JpcHRpb24iOiJQdWJsaWMifSwiZHVyYXRpb24iOnsicmF3Ijo1OSwiZm9ybWF0dGVkIjoiMDA6NTkifSwiaXNfbGlrZWQiOmZhbHNlLCJpc191bmF2YWlsYWJsZSI6ZmFsc2V9LCJvd25lciI6eyJpZCI6ODE0MzExLCJkaXNwbGF5X25hbWUiOiJBbnRpIFJlY29yZHMiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwiYmFkZ2UiOnsidHlwZSI6InBsdXMiLCJhbHRfdGV4dCI6IkxlYXJuIG1vcmUgYWJvdXQgVmltZW8gUGx1cyIsInVybCI6IlwvcGx1cyIsInRleHQiOiJQbHVzIiwicHJpbWFyeV90YWciOiJzcGFuIiwiY2xhc3NOYW1lIjoiaXJpc19iYWRnZSBpcmlzX2JhZGdlLS1wbHVzIGJhZGdlIGJhZGdlLS1wbHVzIGJhZGdlX3BsdXMiLCJndG1fY2xpY2tfZXZlbnQiOiJiYWRnZV9wbHVzX2NsaWNrIiwiZmF0YWxfYXR0cmFjdGlvbl9ldmVudCI6ImNvbnRhaW5lcjpiYWRnZXxjb21wb25lbnQ6dXBncmFkZV9saW5rfGtleXdvcmQ6cGx1cyJ9LCJwb3J0cmFpdCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNDc5MDI3Nl83NXg3NSIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE0NzkwMjc2XzE1MHgxNTAifSwidXJsIjoiXC9hbnRpcmVjb3JkcyIsInZlcmlmaWVkIjp0cnVlLCJpc19mb2xsb3dpbmciOmZhbHNlfSwib25kZW1hbmQiOm51bGwsImJyYW5kX2NoYW5uZWwiOm51bGwsImN1cl91c2VyIjpudWxsLCJzdGF0dXMiOnsic3RhdGUiOiJyZWFkeSJ9LCJjb3B5cmlnaHRfc3RhdHVzIjp7ImlzX2Jsb2NrZWQiOmZhbHNlfSwiY29udGVudF9ibG9ja19zdGF0dXMiOnsiaXNfYmxvY2tlZCI6ZmFsc2UsIm1lc3NhZ2UiOm51bGwsImNvbnRpbnVvdXNfcGxheV9lbmFibGVkIjpmYWxzZX0sInBsYXllciI6eyJjb25maWdfdXJsIjoiaHR0cHM6XC9cL3BsYXllci52aW1lby5jb21cL3ZpZGVvXC8xMzY5NzE0MjhcL2NvbmZpZz9ieWxpbmU9MCZjb2xsZWN0aW9ucz0xJmNvbnRleHQ9VmltZW8lNUNDb250cm9sbGVyJTVDQ2xpcENvbnRyb2xsZXIubWFpbiZkZWZhdWx0X3RvX2hkPTEmb3V0cm89bm90aGluZyZwb3J0cmFpdD0wJnNoYXJlPTEmdGl0bGU9MCZ3YXRjaF90cmFpbGVyPTAmcz1iZTUxMmFjOTM5NzljOTJiMGYwODViNGJlNTBmNmJlMTliM2U2YmJkXzE0OTA3NDcwMTciLCJwbGF5ZXJfdXJsIjoicGxheWVyLnZpbWVvLmNvbSIsImRpbWVuc2lvbnMiOnsiaGVpZ2h0Ijo1NDAsIndpZHRoIjo5NjB9LCJwb3N0ZXIiOnsidXJsIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNTMxNjg4MjM5LmpwZz9tdz0yMDAwJm1oPTEwODAmcT03MCJ9fSwic2hhcmVfZW5hYmxlZCI6dHJ1ZSwiY29udGludW91c19wbGF5X2VuYWJsZWQiOnRydWUsInNlbmRfdG9fd2lwc3Rlcl9lbmFibGVkIjpmYWxzZSwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzUzMTY4ODIzOV8xOTB4MTA3LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzUzMTY4ODIzOV8zODB4MjE0LmpwZyIsIndpZHRoIjoxOTAsImhlaWdodCI6MTA3LCJpZCI6NTMxNjg4MjM5fSwiYWRzIjp7ImFmY190ZXh0X2FkIjp7InB1Yl9pZCI6ImNhLXB1Yi0yNDU5MjQyMTk5MDQ4NzAwIn0sImRpc3BsYXlfYWQiOnsibmV0d29ya19pZCI6IjU0NTQ5NTQ0IiwidW5pdF9uYW1lIjoiY2xpcCIsInNpemVzIjpbMzAwLDI1MF0sImN1c3RvbV90YXJnZXRpbmciOnsiY29udGVudF9yYXRpbmciOnt9fX19LCJjb250ZW50X3JhdGluZyI6bnVsbCwibm90aWZpY2F0aW9ucyI6W10sImNhdGVnb3JpZXNfY29uZmlnIjp7ImNhdGVnb3JpZXMiOm51bGwsInRvdGFsX2NhdGVnb3JpZXMiOjB9LCJtdXNpY190cmFjayI6bnVsbCwiY2NfbGljZW5zZSI6bnVsbCwiY3JlZGl0cyI6eyJ0b3RhbF9jcmVkaXRzIjp7InJhdyI6MCwiZm9ybWF0dGVkIjowfX0sInN0cmVhbSI6eyJpZCI6bnVsbCwicG9zIjowfSwiY29sbGVjdGlvbl9hZGRlciI6eyJlbmFibGVkIjp0cnVlfSwiY2xpcF9zdGF0cyI6eyJlbmFibGVkIjpmYWxzZX0sImRvd25sb2FkX2NvbmZpZyI6bnVsbCwic3VydmV5X3VybCI6Imh0dHBzOlwvXC93d3cubWFya2V0aW5ncmVzZWFyY2hyZXNvdXJjZXMuY29tXC9pbWFnZXNcL292bTAwNTE2XC9tcnIuYXNwP0kuVXNlcjE9TyZ1c2VyPWxvZ2dlZG91dCZjbGlwPTEzNjk3MTQyOCZ2dWlkPSJ9Owogd2luZG93LmNhbl9wcmVsb2FkID0gdHJ1ZTsKCiA8L3NjcmlwdD4KCiA8ZGl2IGNsYXNzPSJoaWRlIj4KIDxkaXYgaWQ9Imdvb2dsZV9hZmNfYWRzIiBjbGFzcz0iZ29vZ2xlX2FkIj48L2Rpdj4KCiA8L2Rpdj4KCjxzY3JpcHQ+CmNvbnNvbGUubG9nKCclYyBcblwK4o6cICAgICAgIEBAQCYgICAgICAgQEBAQEBAXG5cCuKOnCAgICAjQEBAQEBAQCAgICAmQEBAQEBAQEAgICAgICAgQnVpbHQgdXNpbmc6XG5cCuKOnCAgI0BAQEBAQEBAQC4gICUlJkBAQEBAQEAgICAgICAgIOKAoiBSZWFjdCArIEZsdXhcblwK4o6cICAgICAgJkBAQEBAJSAgICAgKEBAQEBAKCAgICAgICDigKIgRVM2XG5cCuKOnCAgICAgICBAQEBAQEAgICAgIEBAQEBAQCAgICAgICAg4oCiIEZldGNoIEFQSVxuXArijpwgICAgICAgJUBAQEBAKCAgLkBAQEBAKCAgICAgICAgIOKAoiBGbGV4Ym94XG5cCuKOnCAgICAgICAgQEBAQEBAKEBAQEBAQFxuXArijpwgICAgICAgIC9AQEBAQEBAQEBAJSAgICAgICAgICAgIExpa2UgcGxheWluZyB3aXRoIG5ldyB0ZWNobm9sb2d5LCB0b28/XG5cCuKOnCAgICAgICAgICZAQEBAQEBAJSAgICAgICAgICAgICAgaHR0cHM6Ly92aW1lby5jb20vam9ic1xuXArijpwgICAgICAgICAgQEBAQEAjXG5cClxuXAonLCAnY29sb3I6ICMwMGFkZWY7Jyk7Cjwvc2NyaXB0PgogPC9kaXY+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+CiA8cCBjbGFzcz0iYWN0aXZlIGZvb3Rlcl92Ml9fdGlwLWNvbnRlbnQiPkl0IGNhbiBiZSBkaWZmaWN1bHQgdG8gPGEgaHJlZj0iL3ZpZGVvc2Nob29sL2xlc3Nvbi8xNDkvcXVpY2stZm9jdXNpbmctdGlwcyI+ZmluZCBmb2N1czwvYT4gaW4gbGlmZSwgYW5kIGFsc28gd2hlbiBzaG9vdGluZyB2aWRlb3MuIFdlIGNhbiBoZWxwIHlvdSB3aXRoIG9uZSBvZiB0aG9zZSBjaGFsbGVuZ2VzLjwvcD4KIDwvYXNpZGU+CiA8L3NlY3Rpb24+CiAKICA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19hdXhpbGlhcnkgIj4KCiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsIj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQiPgogPHA+VE0gKyAmY29weTsgMjAxNyBWaW1lbywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KIDwvZGl2PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvdGVybXMiIHRpdGxlPSJUZXJtcyAmYW1wOyBDb25kaXRpb25zIj4KIFRlcm1zIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9Ii9wcml2YWN5IiB0aXRsZT0iUHJpdmFjeSBQb2xpY3kiPgogUHJpdmFjeSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvZG1jYSIgdGl0bGU9IkNvcHlyaWdodCBJbmZvcm1hdGlvbiI+CiBDb3B5cmlnaHQgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iL2Nvb2tpZV9wb2xpY3kiIHRpdGxlPSJMZWFybiBtb3JlIGFib3V0IGhvdyBWaW1lbyB1c2VzIGNvb2tpZXMiPgogQ29va2llcyA8L2E+CiA8L2xpPgogPC91bD4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQgZm9vdGVyX3YyX193aXRobG92ZSI+CiBNYWRlIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vbG92ZSI+PHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIgZm9vdGVyX3YyX19sb3ZlaGVhcnQgZm9vdGVyX3YyX19hdXhpbGlhcnktaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTIgMTIiPjxwYXRoIGQ9Ik05IDJDNy4zMTIgMiA2IDMuNSA2IDMuNVM0LjY4NyAyIDMgMkMxLjMxMiAyIDAgMy4zMTIgMCA1YzAgMy4xODggMy43NSAzLjAxMiA2IDYgMi4yNS0yLjk4OCA2LTIuODEyIDYtNiAwLTEuNjg4LTEuMzEzLTMtMy0zeiIvPjwvc3ZnPjwvYT4gaW4gTllDLiA8L2Rpdj4KIDwvZGl2PgoKIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fZmlsdGVycyBmb290ZXJfdjJfX2F1eGlsaWFyeS1jb250ZW50Ij4KIDxzcGFuIGNsYXNzPSJsYW5ndWFnZSI+CiBMYW5ndWFnZToKIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9IiNsYW5ndWFnZSIgb25jbGljaz0idmltZW8uTW9kYWwuY3JlYXRlKHtjb250ZW50OiAnL3NldHRpbmdzL2xvY2FsZScsIHNpemU6ICdzbWFsbCd9KTsgcmV0dXJuIGZhbHNlOyIgdGl0bGU9IkNob29zZSBhIGRpZmZlcmVudCBsYW5ndWFnZSI+RW5nbGlzaDwvYT4KIDwvc3Bhbj4KCiAgPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fZmlsdGVyIj5NYXR1cmUgY29udGVudCBmaWx0ZXI6IDwvc3Bhbj48YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IGZvb3Rlcl92Ml9fZmlsdGVyc19fbGFuZyBjb250ZW50ZmlsdGVyIGpzLWZvb3Rlcl9jb250ZW50ZmlsdGVyX2xpbmsiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgb25jbGljaz0idmltZW8uTW9kYWwuY3JlYXRlKHtjb250ZW50OiAnL3NldHRpbmdzL2NvbnRlbnRyYXRpbmcnfSkiIHRpdGxlPSJDaGFuZ2UgeW91ciBtYXR1cmUgY29udGVudCBmaWx0ZXIiPk5vbmU8L2E+CiAgPC9kaXY+Cgo8L3NlY3Rpb24+CjwvZm9vdGVyPgogCiA8L2Rpdj4KCiAKIAogCiAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KIFt7InVybCI6Imh0dHBzOi8vdmltZW8uY29tLzEzNjk3MTQyOCIsInRodW1ibmFpbFVybCI6Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyIsImVtYmVkVXJsIjoiaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLzEzNjk3MTQyOCIsIm5hbWUiOiJEZWFmaGVhdmVuIC0gJiMwMzk7TmV3IEJlcm11ZGEmIzAzOTsgVHJhaWxlciIsImRlc2NyaXB0aW9uIjoiJiMwMzk7TmV3IEJlcm11ZGEsJiMwMzk7IHRoZSB1cGNvbWluZyBhbGJ1bSBmcm9tIERlYWZoZWF2ZW4sIGlzIGF2YWlsYWJsZSBPY3RvYmVyIDJuZCIsImhlaWdodCI6NzIwLCJ3aWR0aCI6MTI4MCwicGxheWVyVHlwZSI6IkhUTUw1IEZsYXNoIiwidmlkZW9RdWFsaXR5IjoiSEQiLCJkdXJhdGlvbiI6IlBUMDBIMDBNNTlTIiwidXBsb2FkRGF0ZSI6IjIwMTUtMDgtMjFUMTc6Mzc6NDMtMDQ6MDAiLCJ0aHVtYm5haWwiOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsInVybCI6Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vNTMxNjg4MjM5XzEyODB4NzIwLmpwZyIsIndpZHRoIjoxMjgwLCJoZWlnaHQiOjcyMH0sImF1dGhvciI6eyJAdHlwZSI6IlBlcnNvbiIsIm5hbWUiOiJBbnRpIFJlY29yZHMiLCJ1cmwiOiJodHRwczovL3ZpbWVvLmNvbS9hbnRpcmVjb3JkcyJ9LCJwb3RlbnRpYWxBY3Rpb24iOnsiQHR5cGUiOiJWaWV3QWN0aW9uIiwidGFyZ2V0IjoidmltZW86Ly9hcHAudmltZW8uY29tL3ZpZGVvcy8xMzY5NzE0MjgifSwiaW50ZXJhY3Rpb25Db3VudCI6MzY0LCJAdHlwZSI6IlZpZGVvT2JqZWN0IiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZyJ9LHsiaXRlbUxpc3RFbGVtZW50IjpbeyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjEsIml0ZW0iOnsiQGlkIjoiaHR0cHM6Ly92aW1lby5jb20vYW50aXJlY29yZHMiLCJuYW1lIjoiQW50aSBSZWNvcmRzIn19LHsiQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoyLCJpdGVtIjp7IkBpZCI6Imh0dHBzOi8vdmltZW8uY29tL2FudGlyZWNvcmRzL3ZpZGVvcyIsIm5hbWUiOiJWaWRlb3MifX1dLCJAdHlwZSI6IkJyZWFkY3J1bWJMaXN0IiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZyJ9XSA8L3NjcmlwdD4KCjxzY3JpcHQ+CiB2YXIgX19mYSA9IF9fZmEgfHwgW107CiBfX2ZhLnB1c2goWyd0cmFja1BhZ2V2aWV3J10pOwoKICAvLyBBbmFseXRpY3MgU2V0dXAKIHZhciBfZ3RtID0gX2d0bSB8fCBbXSwKIF9pbml0aWFsX2d0bV9zdGF0ZSA9IHsiY2xpcF9pZCI6MTM2OTcxNDI4LCJjcmVhdG9yX2lkIjo4MTQzMTEsImNhdGVnb3J5IjoiIiwicHJpdmFjeSI6ImFueWJvZHkiLCJzdGFmZl9waWNrIjoibm8iLCJsYW5ndWFnZSI6ImVuIiwidXNlcl9zdGF0dXMiOiJsb2dnZWRfb3V0IiwidXNlcl90eXBlIjoibm9uZSIsImdhX3VuaXZlcnNhbF9pZCI6IlVBLTc2NjQxLTgiLCJjb21zY29yZV9zaXRlX2lkIjoxMDM0ODI4OX07CgogX2luaXRpYWxfZ3RtX3N0YXRlWyd2dWlkJ10gPSBkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopdnVpZFxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpOwogX2luaXRpYWxfZ3RtX3N0YXRlWydndG0uc3RhcnQnXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogX2luaXRpYWxfZ3RtX3N0YXRlWydldmVudCddID0gJ2d0bS5qcyc7CiBfZ3RtLnB1c2goX2luaXRpYWxfZ3RtX3N0YXRlKTsKIAogLyoqCiAqIElmIHRoZSBjdXJyZW50IHJlcXVlc3Qgd2FzIGJ1Y2tldGVkIGluIGFuIEFCTGluY29sbiBleHBlcmltZW50LAogKiBzZW5kIHRoZSBzZWxlY3RlZCB0cmVhdG1lbnQgYmFjayBmcm9tIHRoZSBjbGllbnQsIHRvIGZpbHRlciBhYiB0ZXN0CiAqIGRhdGEgZG93biB0byBub24tcm9ib3QgdXNlcnMgdGhhdCBydW4gSmF2YVNjcmlwdC4KICovCiBpZiAoIkFCTGluY29sbiIgaW4gd2luZG93KSB7CiAoZnVuY3Rpb24gKCkgewogICB9KSgpOwogfQoKICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogIHZhciBDU1NfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvJywKIEpTX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC8nLAogSU1BR0VfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2LycsCiBTVkdfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3ZnLycsCiAgQlVJTERfSEFTSCA9ICc3MjQ1NCc7CgogIHZhciB2aW1lbyA9IF9leHRlbmQoKHdpbmRvdy52aW1lbyB8fCB7fSksIHsiYXBwX3ZlcnNpb24iOiJ2NiIsImRvbWFpbiI6InZpbWVvLmNvbSIsInVybCI6InZpbWVvLmNvbSIsImN1cl91c2VyIjpmYWxzZSwiaXNfbW9iaWxlIjpmYWxzZX0pOwogdmltZW8uY29uZmlnID0gX2V4dGVuZCgodmltZW8uY29uZmlnIHx8IHt9KSwgeyJsb2NhbGUiOiJlbiJ9KTsKCiAgdmFyIGxvY2FsZUNvbmZpZyA9IHsKIGxhbmc6ICdlbicsCiAnRGF0ZSc6IHsKIG1vbnRoczogWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLAogbW9udGhzX2FiYnI6IFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sCiBkYXlzOiBbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sCiBkYXlzX2FiYnI6IFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sCgogLy8gQ3VsdHVyZSdzIGRhdGUgb3JkZXI6IE1NL0REL1lZWVkKIGRhdGVPcmRlcjogWydkYXRlJywgJ21vbnRoJywgJ3llYXInXSwKIHNob3J0RGF0ZTogJyVkLyVtLyVZJywKIHNob3J0VGltZTogJyVJOiVNJXAnLAogQU06ICdBTScsCiBQTTogJ1BNJywKIGZpcnN0RGF5T2ZXZWVrOiAwLAoKIC8vIERhdGUuRXh0cmFzCiBvcmRpbmFsOiBmdW5jdGlvbihkYXlPZk1vbnRoKXsKIHJldHVybiBkYXlPZk1vbnRoOwogfQogfSwKICdEYXRlUGlja2VyJzogewogc2VsZWN0X2FfdGltZTogIlNlbGVjdCBhIHRpbWUiLAogdXNlX21vdXNlX3doZWVsOiAiVXNlIHRoZSBtb3VzZSB3aGVlbCB0byBxdWlja2x5IGNoYW5nZSB2YWx1ZSIsCiB0aW1lX2NvbmZpcm1fYnV0dG9uOiAiT0siLAogYXBwbHlfcmFuZ2U6ICJBcHBseSIsCiBjYW5jZWw6ICJDYW5jZWwiLAogd2VlazogIldrIiB9LAogICdOdW1iZXInOiB7CiBkZWNpbWFsOiAnLicsCiBncm91cDogJywnLAogY3VycmVuY3k6IHsKIHByZWZpeDogJyQnCiB9CiB9LAogJ0Zvcm1WYWxpZGF0b3InOiB7InJlcXVpcmVkIjoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iLCJyZXF1aXJlZENoayI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn0gfTsKCiB2YXIgZnVsbExvY2FsZSA9ICcnOwoKIAogIHZhciBDb3B5ID0ge3RyYW5zbGF0ZTpmdW5jdGlvbih0LGksdSl7dmFyIGU9J29iamVjdCchPXR5cGVvZiB0aGlzLmRpY3RbdF0/dGhpcy5kaWN0W3RdOmk/dGhpcy5kaWN0W3RdLnBsdXJhbDp0aGlzLmRpY3RbdF0uc2luZ3VsYXI7cmV0dXJuJ29iamVjdCc9PXR5cGVvZiB1JiYoZT10aGlzLnN1YnN0aXR1dGUoZSx1KSksZX0sc3Vic3RpdHV0ZTpmdW5jdGlvbih0LGkpe3JldHVybiB2b2lkIDAhPT10LnN1YnN0aXR1dGU/dC5zdWJzdGl0dXRlKGkpOnQucmVwbGFjZSgvXFw/XHsoW157fV0rKVx9L2csZnVuY3Rpb24odCx1KXtyZXR1cm4nXFwnPT10LmNoYXJBdCgwKT90LnNsaWNlKDEpOm51bGwhPWlbdV0/aVt1XTonJ30pfSxkaWN0Ont9fTsKIENvcHkuZGljdCA9IHsiZGlkX3lvdV9tZWFuX2VtYWlsIjoiRGlkIHlvdSBtZWFuIDxlbT57U1VHR0VTVH08XC9lbT4/IiwiZW1haWxfcGFzc3dvcmRfbWlzbWF0Y2giOiJFbWFpbCBhbmQgcGFzc3dvcmQgZG8gbm90IG1hdGNoIiwianVzdF9ub3ciOiJqdXN0IG5vdyIsInNlY29uZHNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBzZWNvbmQgYWdvIiwicGx1cmFsIjoie0NPVU5UfSBzZWNvbmRzIGFnbyJ9LCJtaW51dGVzX2FnbyI6eyJzaW5ndWxhciI6IntDT1VOVH0gbWludXRlIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gbWludXRlcyBhZ28ifSwiaG91cnNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBob3VyIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gaG91cnMgYWdvIn0sIm9wZW5fY29tbWVudF9ib3giOiJBZGQgbmV3IGNvbW1lbnQgaW5zdGVhZCAmcmFxdW87IiwidXJsX3VuYXZhaWxhYmxlIjoiU29ycnksIHRoaXMgdXJsIGlzIHVuYXZhaWxhYmxlLiIsInVuc2F2ZWRfY2hhbmdlc19nZW5lcmljIjoiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLCBhcmUgeW91IHN1cmUgeW91IHdpc2ggdG8gbGVhdmU/IiwiYWRkIjoiQWRkIiwicmVtb3ZlIjoiUmVtb3ZlIiwic2VsZWN0IjoiU2VsZWN0Iiwibm9fZm9sbG93ZXJzX2Zvcl9sZXR0ZXIiOiJZb3UgZG9uJnJzcXVvO3QgZm9sbG93IGFueW9uZSB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciAmbGRxdW87e1BBR0VfTEVUVEVSfSZyZHF1bzsiLCJzaGFyZV9saW1pdF9yZWFjaGVkIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gc2hhcmUgd2l0aC4iLCJhdF9sZWFzdF9vbmUiOiJUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSB1c2VyLiIsImF2YWlsYWJsZSI6IkF2YWlsYWJsZSIsInVuYXZhaWxhYmxlIjoiVW5hdmFpbGFibGUiLCJicm93c2VfZXJyb3JfZ2VuZXJpYyI6IlNvcnJ5LCB0aGVyZSB3YXMgYW4gZXJyb3IiLCJicm93c2VfZXJyb3Jfbm9fdmlkZW9zIjoiU29ycnksIG5vIHZpZGVvcyBmb3VuZCIsImZvbGxvdyI6IkZvbGxvdyIsImZvbGxvd2luZyI6IkZvbGxvd2luZyIsInVuZm9sbG93IjoiVW5mb2xsb3ciLCJ1bmZvbGxvd2luZyI6IlVuZm9sbG93aW5nIiwiY291bnRfY29tbWVudHMiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IGNvbW1lbnQiLCJwbHVyYWwiOiJ7Q09VTlR9IGNvbW1lbnRzIn0sImZpcnN0X2NvbW1lbnQiOiJCZSB0aGUgZmlyc3QgdG8gY29tbWVudFx1MjAyNiIsIm5vX2NvbW1lbnRzX2Zvcl95b3UiOiJGb3JiaWRkZW4uIFlvdSBjYW5ub3QgcG9zdCBjb21tZW50cyBvbiB0aGlzIHBhZ2UuIiwib29wcyI6Ik9vcHMhIiwicGxheWVyX3RyeV9hZ2FpbiI6IlRoYXQgd2Fzbid0IHN1cHBvc2VkIHRvIGhhcHBlbi4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLiIsImR1cmF0aW9uX2lucHV0X21pbl9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHtNSU5fRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X21heF9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHtNQVhfRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X2ludmFsaWRfY2hhcmFjdGVycyI6IjAtOSBhbmQgOiBhcmUgdGhlIG9ubHkgYWNjZXB0YWJsZSBpbnB1dHMuIiwiY2xvc2UiOiJDbG9zZSIsImV4cGFuZCI6IkV4cGFuZCIsImxvYWRpbmciOiJMb2FkaW5nLi4uIiwidG9wIjoidG9wIiwiYWR2YW5jZWRfc2VhcmNoIjoiQWR2YW5jZWQgU2VhcmNoIiwibm9fc3VnZ2VzdGlvbnMiOiJObyBzdWdnZXN0aW9ucyIsInJlY2VudF9zZWFyY2hlcyI6IlJlY2VudCBTZWFyY2hlcyIsInNlYXJjaF9hbGwiOiJTZWFyY2ggQWxsIG9mIFZpbWVvIiwiZW1haWxfYW5kX3Bhc3N3b3JkIjoiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgYW5kIHBhc3N3b3JkIiwiZW1haWxfYWRkcmVzcyI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiLCJuYW1lX2VtYWlsX2FuZF9wYXNzd29yZCI6IlBsZWFzZSBlbnRlciB5b3VyIG5hbWUsIGVtYWlsLCBhbmQgcGFzc3dvcmQiLCIxIFRyYWNrIjoiMSBUcmFjayIsIkFib3V0IjoiQWJvdXQiLCJBY2NlcHQiOiJBY2NlcHQiLCJBZGQgYSBuZXcgY29tbWVudCI6IkFkZCBhIG5ldyBjb21tZW50IiwiQWRkIGNvbW1lbnQiOiJBZGQgY29tbWVudCIsIkFkZCByZXBseSI6IkFkZCByZXBseSIsIkFkZCB0byBjb2xsZWN0aW9ucyI6IkFkZCB0byBjb2xsZWN0aW9ucyIsIkFkZCI6IkFkZCIsIkFsYnVtcyI6IkFsYnVtcyIsIkFwcHJveGltYXRlIFRpbWUgUmVtYWluaW5nIjoiQXBwcm94aW1hdGUgVGltZSBSZW1haW5pbmciLCJBcmUgeW91IHN1cmUgeW91IHdhbnQgZGVsZXRlIHRoaXMgY29tbWVudCBwZXJtYW5lbnRseT8iOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgZGVsZXRlIHRoaXMgY29tbWVudCBwZXJtYW5lbnRseT8iLCJBdXRvcGxheSBuZXh0IHZpZGVvIjoiQXV0b3BsYXkgbmV4dCB2aWRlbyIsIkJ1eSB7RElTUExBWV9QUklDRX0iOiJCdXkge0RJU1BMQVlfUFJJQ0V9IiwiYnkge0FSVElTVF9OQU1FfSI6ImJ5IHtBUlRJU1RfTkFNRX0iLCJDYW5jZWwiOiJDYW5jZWwiLCJDaGFuZ2Ugc2V0dGluZ3MuIjoiQ2hhbmdlIHNldHRpbmdzLiIsIkNoYW5nZSB5b3VyIGNvbnRlbnQgZmlsdGVyIHByZWZlcmVuY2UiOiJDaGFuZ2UgeW91ciBjb250ZW50IGZpbHRlciBwcmVmZXJlbmNlIiwiQ2hhbm5lbHMiOiJDaGFubmVscyIsIkNob29zZSBmaWxlIjoiQ2hvb3NlIGZpbGUiLCJDbGljayBoZXJlIHRvIGFkZCBhIG5ldyBjb21tZW50IjoiQ2xpY2sgaGVyZSB0byBhZGQgYSBuZXcgY29tbWVudCIsIkNsaWNrIHRvIHNoYXJlIHRoaXMgY29tbWVudCBvbiB7U09DSUFMX0FQUH0iOiJDbGljayB0byBzaGFyZSB0aGlzIGNvbW1lbnQgb24ge1NPQ0lBTF9BUFB9IiwiQ29sbGVjdGlvbiBuYW1lIjoiQ29sbGVjdGlvbiBuYW1lIiwiQ29tbWVudHMgYXJlIGRpc2FibGVkLiI6IkNvbW1lbnRzIGFyZSBkaXNhYmxlZC4iLCJDb21tZW50cyI6IkNvbW1lbnRzIiwiQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbnNlOiI6IkNyZWF0aXZlIENvbW1vbnMgTGljZW5zZToiLCJEZWxldGUiOiJEZWxldGUiLCJEaW1lbnNpb25zIjoiRGltZW5zaW9ucyIsIkRvblx1MjAxOXQgd29ycnkhIE9ubHkgeW91ICh0aGUgY3JlYXRvcikgY2FuIGRvd25sb2FkIHRoaXMgdmlkZW8uIjoiRG9uXHUyMDE5dCB3b3JyeSEgT25seSB5b3UgKHRoZSBjcmVhdG9yKSBjYW4gZG93bmxvYWQgdGhpcyB2aWRlby4iLCJEb3dubG9hZCBjYXB0aW9ucyBhbmQgc3VidGl0bGVzIjoiRG93bmxvYWQgY2FwdGlvbnMgYW5kIHN1YnRpdGxlcyIsIkRvd25sb2FkIExpbmsiOiJEb3dubG9hZCBMaW5rIiwiRG93bmxvYWQiOiJEb3dubG9hZCIsIkR1ZSB0byB5b3VyIHByaXZhY3kgc2V0dGluZ3MsIHRoaXMgdmlkZW8gY2Fubm90IGJlIGFkZGVkIHRvIGNoYW5uZWxzIG9yIGdyb3Vwcy4iOiJEdWUgdG8geW91ciBwcml2YWN5IHNldHRpbmdzLCB0aGlzIHZpZGVvIGNhbm5vdCBiZSBhZGRlZCB0byBjaGFubmVscyBvciBncm91cHMuIiwiRWRpdCBTZXR0aW5ncyI6IkVkaXQgU2V0dGluZ3MiLCJFZGl0IjoiRWRpdCIsIkV4aXQgZnVsbHNjcmVlbiI6IkV4aXQgZnVsbHNjcmVlbiIsIkZldGNoIjoiRmV0Y2giLCJGaWxlIFNpemUiOiJGaWxlIFNpemUiLCJGaWxlIjoiRmlsZSIsIkZpbmlzaGVzIjoiRmluaXNoZXMiLCJGb2xsb3ciOiJGb2xsb3ciLCJGb2xsb3dpbmciOiJGb2xsb3dpbmciLCJGb3JtZXIgVmltZW8gc3RhZmYgbWVtYmVyIjoiRm9ybWVyIFZpbWVvIHN0YWZmIG1lbWJlciIsImZyb20ge1VTRVJfTkFNRX0iOiJmcm9tIHtVU0VSX05BTUV9IiwiZnJvbSB7Vk9EX1RJVExFfSI6ImZyb20ge1ZPRF9USVRMRX0iLCJHZXQgbWUgb3V0IG9mIGhlcmUhIjoiR2V0IG1lIG91dCBvZiBoZXJlISIsIkdyb3VwcyI6Ikdyb3VwcyIsIkhvdyB3YXMgeW91ciB2aWV3aW5nIGV4cGVyaWVuY2U/ICI6IkhvdyB3YXMgeW91ciB2aWV3aW5nIGV4cGVyaWVuY2U/ICIsIkluY29ycmVjdCByYXRpbmciOiJJbmNvcnJlY3QgcmF0aW5nIiwiSnVzdCBjaGVjayB5b3VyIGluYm94IGZvciBhIG1lc3NhZ2UgZnJvbSB1cyBhbmQgdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcy4gVGhlbiB5b3UgY2FuIGRvIGFsbCBraW5kcyBvZiBjb29sIHN0dWZmIG9uIFZpbWVvISAoe0F9SGVscHtcL0F9KSI6Ikp1c3QgY2hlY2sgeW91ciBpbmJveCBmb3IgYSBtZXNzYWdlIGZyb20gdXMgYW5kIHZlcmlmeSB5b3VyIGVtYWlsIGFkZHJlc3MuIFRoZW4geW91IGNhbiBkbyBhbGwga2luZHMgb2YgY29vbCBzdHVmZiBvbiBWaW1lbyEgKHtBfUhlbHB7XC9BfSkiLCJMZWFybiBhYm91dCBvdGhlciB2aW9sYXRpb25zIjoiTGVhcm4gYWJvdXQgb3RoZXIgdmlvbGF0aW9ucyIsIkxlYXJuIGFib3V0IFN0YXRzIjoiTGVhcm4gYWJvdXQgU3RhdHMiLCJMZWFybiBtb3JlIjoiTGVhcm4gbW9yZSIsIkxlYXZlIHRoZSBmaXJzdCBjb21tZW50OiI6IkxlYXZlIHRoZSBmaXJzdCBjb21tZW50OiIsIkxldCB1cyBrbm93LiI6IkxldCB1cyBrbm93LiIsIkxpa2Ugd2hhdCB5b3Ugc2F3PyBTZWUgdGhlIGZ1bGwgdGl0bGUuIjoiTGlrZSB3aGF0IHlvdSBzYXc/IFNlZSB0aGUgZnVsbCB0aXRsZS4iLCJMaWtlIjoiTGlrZSIsIkxpa2VkIjoiTGlrZWQiLCJMaWtlcyI6Ikxpa2VzIiwiTG9hZCB7Q09VTlR9IHByZXZpb3VzIGNvbW1lbnQiOnsic2luZ3VsYXIiOiJMb2FkIHtDT1VOVH0gcHJldmlvdXMgY29tbWVudCIsInBsdXJhbCI6IkxvYWQge0NPVU5UfSBwcmV2aW91cyBjb21tZW50cyJ9LCJMb2FkaW5nIjoiTG9hZGluZyIsIk1hbmFnZSBjb2xsZWN0aW9ucyI6Ik1hbmFnZSBjb2xsZWN0aW9ucyIsIk1vbmV5bWFrZXIiOiJNb25leW1ha2VyIiwibW9yZSI6Im1vcmUiLCJOZXh0IHZpZGVvIjoiTmV4dCB2aWRlbyIsIk5vdCBwbGF5aW5nIG5pY2UiOiJOb3QgcGxheWluZyBuaWNlIiwiT25seSB2aXNpYmxlIHRvIHlvdSI6Ik9ubHkgdmlzaWJsZSB0byB5b3UiLCJPcmlnaW5hbCBmaWxlIGlzIGluIHRoZSBhcmNoaXZlIjoiT3JpZ2luYWwgZmlsZSBpcyBpbiB0aGUgYXJjaGl2ZSIsIlBlbmRpbmcgc3VibWlzc2lvbiI6IlBlbmRpbmcgc3VibWlzc2lvbiIsIlBlcm1hbGluayB0byB0aGlzIGNvbW1lbnQiOiJQZXJtYWxpbmsgdG8gdGhpcyBjb21tZW50IiwiUGxheXMiOiJQbGF5cyIsInBsZWFzZSBsZXQgdXMga25vdyI6InBsZWFzZSBsZXQgdXMga25vdyIsIlBvcnRmb2xpb3MiOiJQb3J0Zm9saW9zIiwiUHJlc2VudGVkIGJ5IHtCUkFORF9OQU1FfVx1MjAxOXMge0NBTVBBSUdOX1RJVExFfSI6IlByZXNlbnRlZCBieSB7QlJBTkRfTkFNRX1cdTIwMTlzIHtDQU1QQUlHTl9USVRMRX0iLCJQcmVzaWRlbnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMiOiJQcmVzaWRlbnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMiLCJQcmV2aW91cyB2aWRlbyI6IlByZXZpb3VzIHZpZGVvIiwiUHVibGljIERvbWFpbiBEZWRpY2F0aW9uIjoiUHVibGljIERvbWFpbiBEZWRpY2F0aW9uIiwiUmVhZCBtb3JlXHUyMDI2IjoiUmVhZCBtb3JlXHUyMDI2IiwiUmVqZWN0IjoiUmVqZWN0IiwiUmVtZW1iZXIgdG8gYmUgY29vbCBhbmQgcGxheSBuaWNlISI6IlJlbWVtYmVyIHRvIGJlIGNvb2wgYW5kIHBsYXkgbmljZSEiLCJSZW1vdmUgY3JlZGl0IjoiUmVtb3ZlIGNyZWRpdCIsIlJlbnQge0RJU1BMQVlfUFJJQ0V9IjoiUmVudCB7RElTUExBWV9QUklDRX0iLCJSZXBsYXkiOiJSZXBsYXkiLCJSZXBseSB0byB0aGlzIGNvbW1lbnQiOiJSZXBseSB0byB0aGlzIGNvbW1lbnQiLCJSZXBseSI6IlJlcGx5IiwiUmVwb3J0IHRoaXMgdmlkZW8iOiJSZXBvcnQgdGhpcyB2aWRlbyIsIlJlcG9ydCB0aGlzIHZpZGVvPyI6IlJlcG9ydCB0aGlzIHZpZGVvPyIsIlJldHJ5IHVwbG9hZCI6IlJldHJ5IHVwbG9hZCIsIlJldmlldyBwYWdlIjoiUmV2aWV3IHBhZ2UiLCJTZWUgYWxsIHZpZGVvIHN0YXRzIjoiU2VlIGFsbCB2aWRlbyBzdGF0cyIsIlNlZSBmdWxsIHN0YXRpc3RpY3MiOiJTZWUgZnVsbCBzdGF0aXN0aWNzIiwiU2V0dGluZ3MiOiJTZXR0aW5ncyIsIlNoYXJlIjoiU2hhcmUiLCJTaG93IG1lIHRoZSB2aWRlbyI6IlNob3cgbWUgdGhlIHZpZGVvIiwiU2hvdyBtb3JlXHUyMDI2IjoiU2hvdyBtb3JlXHUyMDI2IiwiU291cmNlIGZpbGVzIG5vdCBhY2Nlc3NlZCBmb3IgMzAgZGF5cyBhcmUgYXV0b21hdGljYWxseSBzdG9yZWQgaW4gb3VyIHNlY3JldCB1bmRlcmdyb3VuZCBzdG9yYWdlIGFyY2hpdmUuIEFzIHN1Y2gsIGl0IG1heSB0YWtlIGEgZmV3IGhvdXJzIHRvIHJldHJpZXZlIHRoZSBmaWxlLiBTdGlsbCB3YW50IHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZT8iOiJTb3VyY2UgZmlsZXMgbm90IGFjY2Vzc2VkIGZvciAzMCBkYXlzIGFyZSBhdXRvbWF0aWNhbGx5IHN0b3JlZCBpbiBvdXIgc2VjcmV0IHVuZGVyZ3JvdW5kIHN0b3JhZ2UgYXJjaGl2ZS4gQXMgc3VjaCwgaXQgbWF5IHRha2UgYSBmZXcgaG91cnMgdG8gcmV0cmlldmUgdGhlIGZpbGUuIFN0aWxsIHdhbnQgdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlPyIsIlNwYW0iOiJTcGFtIiwiU3RhdHMiOiJTdGF0cyIsIlN1YnNjcmliZSB7RElTUExBWV9QUklDRX1cL3tCSUxMSU5HX1BFUklPRH0iOiJTdWJzY3JpYmUge0RJU1BMQVlfUFJJQ0V9XC97QklMTElOR19QRVJJT0R9IiwiVGhlIHBlcnNvbiB3aG8gYXNzb2NpYXRlZCBhIHdvcmsgd2l0aCB0aGlzIGRlZWQgaGFzIGRlZGljYXRlZCB0aGUgd29yayB0byB0aGUgcHVibGljIGRvbWFpbiBieSB3YWl2aW5nIGFsbCBvZiBoaXMgb3IgaGVyIHJpZ2h0cyB0byB0aGUgd29yayB3b3JsZHdpZGUgdW5kZXIgY29weXJpZ2h0IGxhdywgaW5jbHVkaW5nIGFsbCByZWxhdGVkIGFuZCBuZWlnaGJvcmluZyByaWdodHMsIHRvIHRoZSBleHRlbnQgYWxsb3dlZCBieSBsYXcuIFlvdSBjYW4gY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlIGFuZCBwZXJmb3JtIHRoZSB3b3JrLCBldmVuIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzLCBhbGwgd2l0aG91dCBhc2tpbmcgcGVybWlzc2lvbi4iOiJUaGUgcGVyc29uIHdobyBhc3NvY2lhdGVkIGEgd29yayB3aXRoIHRoaXMgZGVlZCBoYXMgZGVkaWNhdGVkIHRoZSB3b3JrIHRvIHRoZSBwdWJsaWMgZG9tYWluIGJ5IHdhaXZpbmcgYWxsIG9mIGhpcyBvciBoZXIgcmlnaHRzIHRvIHRoZSB3b3JrIHdvcmxkd2lkZSB1bmRlciBjb3B5cmlnaHQgbGF3LCBpbmNsdWRpbmcgYWxsIHJlbGF0ZWQgYW5kIG5laWdoYm9yaW5nIHJpZ2h0cywgdG8gdGhlIGV4dGVudCBhbGxvd2VkIGJ5IGxhdy4gWW91IGNhbiBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUgYW5kIHBlcmZvcm0gdGhlIHdvcmssIGV2ZW4gZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMsIGFsbCB3aXRob3V0IGFza2luZyBwZXJtaXNzaW9uLiIsIlRoZSBwZXJzb24gd2hvIHVwbG9hZGVkIHRoaXMgdmlkZW8gb2J2aW91c2x5IGRpZG5cdTIwMTl0IG1ha2UgaXQgKGl0XHUyMDE5cyBhIFRWIHNob3csIG1vdmllIHRyYWlsZXIsIG9yIHJpcHBlZCBmcm9tIGVsc2V3aGVyZSB0aGUgd2ViLikiOiJUaGUgcGVyc29uIHdobyB1cGxvYWRlZCB0aGlzIHZpZGVvIG9idmlvdXNseSBkaWRuXHUyMDE5dCBtYWtlIGl0IChpdFx1MjAxOXMgYSBUViBzaG93LCBtb3ZpZSB0cmFpbGVyLCBvciByaXBwZWQgZnJvbSBlbHNld2hlcmUgdGhlIHdlYi4pIiwiVGhpcyBjb21tZW50IHdpbGwgYmUgc2hhcmVkIG9uIHtTT0NJQUxfQVBQfSI6IlRoaXMgY29tbWVudCB3aWxsIGJlIHNoYXJlZCBvbiB7U09DSUFMX0FQUH0iLCJUaGlzIGxpY2Vuc2UgYWxsb3dzIGZvciByZWRpc3RyaWJ1dGlvbiwgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwsIGFzIGxvbmcgYXMgaXQgaXMgcGFzc2VkIGFsb25nIHVuY2hhbmdlZCBhbmQgaW4gd2hvbGUsIHdpdGggY3JlZGl0IHRvIHlvdS4iOiJUaGlzIGxpY2Vuc2UgYWxsb3dzIGZvciByZWRpc3RyaWJ1dGlvbiwgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwsIGFzIGxvbmcgYXMgaXQgaXMgcGFzc2VkIGFsb25nIHVuY2hhbmdlZCBhbmQgaW4gd2hvbGUsIHdpdGggY3JlZGl0IHRvIHlvdS4iLCJUaGlzIGxpY2Vuc2UgaXMgdGhlIG1vc3QgcmVzdHJpY3RpdmUgb2Ygb3VyIHNpeCBtYWluIGxpY2Vuc2VzLCBvbmx5IGFsbG93aW5nIG90aGVycyB0byBkb3dubG9hZCB5b3VyIHdvcmtzIGFuZCBzaGFyZSB0aGVtIHdpdGggb3RoZXJzIGFzIGxvbmcgYXMgdGhleSBjcmVkaXQgeW91LCBidXQgdGhleSBjYW5cdTIwMTl0IGNoYW5nZSB0aGVtIGluIGFueSB3YXkgb3IgdXNlIHRoZW0gY29tbWVyY2lhbGx5LiI6IlRoaXMgbGljZW5zZSBpcyB0aGUgbW9zdCByZXN0cmljdGl2ZSBvZiBvdXIgc2l4IG1haW4gbGljZW5zZXMsIG9ubHkgYWxsb3dpbmcgb3RoZXJzIHRvIGRvd25sb2FkIHlvdXIgd29ya3MgYW5kIHNoYXJlIHRoZW0gd2l0aCBvdGhlcnMgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UsIGJ1dCB0aGV5IGNhblx1MjAxOXQgY2hhbmdlIHRoZW0gaW4gYW55IHdheSBvciB1c2UgdGhlbSBjb21tZXJjaWFsbHkuIiwiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIGRpc3RyaWJ1dGUsIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrLCBldmVuIGNvbW1lcmNpYWxseSwgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgZm9yIHRoZSBvcmlnaW5hbCBjcmVhdGlvbi4gVGhpcyBpcyB0aGUgbW9zdCBhY2NvbW1vZGF0aW5nIG9mIGxpY2Vuc2VzIG9mZmVyZWQuIFJlY29tbWVuZGVkIGZvciBtYXhpbXVtIGRpc3NlbWluYXRpb24gYW5kIHVzZSBvZiBsaWNlbnNlZCBtYXRlcmlhbHMuIjoiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIGRpc3RyaWJ1dGUsIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrLCBldmVuIGNvbW1lcmNpYWxseSwgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgZm9yIHRoZSBvcmlnaW5hbCBjcmVhdGlvbi4gVGhpcyBpcyB0aGUgbW9zdCBhY2NvbW1vZGF0aW5nIG9mIGxpY2Vuc2VzIG9mZmVyZWQuIFJlY29tbWVuZGVkIGZvciBtYXhpbXVtIGRpc3NlbWluYXRpb24gYW5kIHVzZSBvZiBsaWNlbnNlZCBtYXRlcmlhbHMuIiwiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrIGV2ZW4gZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMsIGFzIGxvbmcgYXMgdGhleSBjcmVkaXQgeW91IGFuZCBsaWNlbnNlIHRoZWlyIG5ldyBjcmVhdGlvbnMgdW5kZXIgdGhlIGlkZW50aWNhbCB0ZXJtcy4gVGhpcyBsaWNlbnNlIGlzIG9mdGVuIGNvbXBhcmVkIHRvICZsZHF1bztjb3B5bGVmdCZyZHF1bzsgZnJlZSBhbmQgb3BlbiBzb3VyY2Ugc29mdHdhcmUgbGljZW5zZXMuIEFsbCBuZXcgd29ya3MgYmFzZWQgb24geW91cnMgd2lsbCBjYXJyeSB0aGUgc2FtZSBsaWNlbnNlLCBzbyBhbnkgZGVyaXZhdGl2ZXMgd2lsbCBhbHNvIGFsbG93IGNvbW1lcmNpYWwgdXNlLiBUaGlzIGlzIHRoZSBsaWNlbnNlIHVzZWQgYnkgV2lraXBlZGlhLCBhbmQgaXMgcmVjb21tZW5kZWQgZm9yIG1hdGVyaWFscyB0aGF0IHdvdWxkIGJlbmVmaXQgZnJvbSBpbmNvcnBvcmF0aW5nIGNvbnRlbnQgZnJvbSBXaWtpcGVkaWEgYW5kIHNpbWlsYXJseSBsaWNlbnNlZCBwcm9qZWN0cy4iOiJUaGlzIGxpY2Vuc2UgbGV0cyBvdGhlcnMgcmVtaXgsIHR3ZWFrLCBhbmQgYnVpbGQgdXBvbiB5b3VyIHdvcmsgZXZlbiBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcywgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgYW5kIGxpY2Vuc2UgdGhlaXIgbmV3IGNyZWF0aW9ucyB1bmRlciB0aGUgaWRlbnRpY2FsIHRlcm1zLiBUaGlzIGxpY2Vuc2UgaXMgb2Z0ZW4gY29tcGFyZWQgdG8gJmxkcXVvO2NvcHlsZWZ0JnJkcXVvOyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZSBsaWNlbnNlcy4gQWxsIG5ldyB3b3JrcyBiYXNlZCBvbiB5b3VycyB3aWxsIGNhcnJ5IHRoZSBzYW1lIGxpY2Vuc2UsIHNvIGFueSBkZXJpdmF0aXZlcyB3aWxsIGFsc28gYWxsb3cgY29tbWVyY2lhbCB1c2UuIFRoaXMgaXMgdGhlIGxpY2Vuc2UgdXNlZCBieSBXaWtpcGVkaWEsIGFuZCBpcyByZWNvbW1lbmRlZCBmb3IgbWF0ZXJpYWxzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGluY29ycG9yYXRpbmcgY29udGVudCBmcm9tIFdpa2lwZWRpYSBhbmQgc2ltaWxhcmx5IGxpY2Vuc2VkIHByb2plY3RzLiIsIlRoaXMgbGljZW5zZSBsZXRzIG90aGVycyByZW1peCwgdHdlYWssIGFuZCBidWlsZCB1cG9uIHlvdXIgd29yayBub24tY29tbWVyY2lhbGx5LCBhbmQgYWx0aG91Z2ggdGhlaXIgbmV3IHdvcmtzIG11c3QgYWxzbyBhY2tub3dsZWRnZSB5b3UgYW5kIGJlIG5vbi1jb21tZXJjaWFsLCB0aGV5IGRvblx1MjAxOXQgaGF2ZSB0byBsaWNlbnNlIHRoZWlyIGRlcml2YXRpdmUgd29ya3Mgb24gdGhlIHNhbWUgdGVybXMuIjoiVGhpcyBsaWNlbnNlIGxldHMgb3RoZXJzIHJlbWl4LCB0d2VhaywgYW5kIGJ1aWxkIHVwb24geW91ciB3b3JrIG5vbi1jb21tZXJjaWFsbHksIGFuZCBhbHRob3VnaCB0aGVpciBuZXcgd29ya3MgbXVzdCBhbHNvIGFja25vd2xlZGdlIHlvdSBhbmQgYmUgbm9uLWNvbW1lcmNpYWwsIHRoZXkgZG9uXHUyMDE5dCBoYXZlIHRvIGxpY2Vuc2UgdGhlaXIgZGVyaXZhdGl2ZSB3b3JrcyBvbiB0aGUgc2FtZSB0ZXJtcy4iLCJUaGlzIGxpY2Vuc2UgbGV0cyBvdGhlcnMgcmVtaXgsIHR3ZWFrLCBhbmQgYnVpbGQgdXBvbiB5b3VyIHdvcmsgbm9uLWNvbW1lcmNpYWxseSwgYXMgbG9uZyBhcyB0aGV5IGNyZWRpdCB5b3UgYW5kIGxpY2Vuc2UgdGhlaXIgbmV3IGNyZWF0aW9ucyB1bmRlciB0aGUgaWRlbnRpY2FsIHRlcm1zLiI6IlRoaXMgbGljZW5zZSBsZXRzIG90aGVycyByZW1peCwgdHdlYWssIGFuZCBidWlsZCB1cG9uIHlvdXIgd29yayBub24tY29tbWVyY2lhbGx5LCBhcyBsb25nIGFzIHRoZXkgY3JlZGl0IHlvdSBhbmQgbGljZW5zZSB0aGVpciBuZXcgY3JlYXRpb25zIHVuZGVyIHRoZSBpZGVudGljYWwgdGVybXMuIiwiVGhpcyBzb3VyY2UgZmlsZSBoYXMgYmVlbiBsb3ZpbmdseSBzdG9yZWQgaW4gb3VyIGFyY2hpdmUuIjoiVGhpcyBzb3VyY2UgZmlsZSBoYXMgYmVlbiBsb3ZpbmdseSBzdG9yZWQgaW4gb3VyIGFyY2hpdmUuIiwiVGhpcyB2aWRlbyBjb250YWlucyBoYXJhc3NtZW50LCBpbmNpdGVzIGhhdHJlZCwgb3IgZGVwaWN0cyBleHRyZW1lIG9yIHJlYWwtbGlmZSB2aW9sZW5jZS4iOiJUaGlzIHZpZGVvIGNvbnRhaW5zIGhhcmFzc21lbnQsIGluY2l0ZXMgaGF0cmVkLCBvciBkZXBpY3RzIGV4dHJlbWUgb3IgcmVhbC1saWZlIHZpb2xlbmNlLiIsIlRoaXMgdmlkZW8gY29udGFpbnMgcG9ybm9ncmFwaHksIGFkdmVydGlzZXMgYSBwcm9kdWN0IG9yIHNlcnZpY2Ugb2YgYW4gZXJvdGljIG5hdHVyZSwgb3Igc2VlbXMgcHJpbWFyaWx5IGZvY3VzZWQgb24gc2V4dWFsIHN0aW11bGF0aW9uLiI6IlRoaXMgdmlkZW8gY29udGFpbnMgcG9ybm9ncmFwaHksIGFkdmVydGlzZXMgYSBwcm9kdWN0IG9yIHNlcnZpY2Ugb2YgYW4gZXJvdGljIG5hdHVyZSwgb3Igc2VlbXMgcHJpbWFyaWx5IGZvY3VzZWQgb24gc2V4dWFsIHN0aW11bGF0aW9uLiIsIlRoaXMgdmlkZW8gaXMgYWxzbyBpbiB7Q09VTlR9IG90aGVyIGNvbGxlY3Rpb24uIjp7InNpbmd1bGFyIjoiVGhpcyB2aWRlbyBpcyBhbHNvIGluIHtDT1VOVH0gb3RoZXIgY29sbGVjdGlvbi4iLCJwbHVyYWwiOiJUaGlzIHZpZGVvIGlzIGFsc28gaW4ge0NPVU5UfSBvdGhlciBjb2xsZWN0aW9ucy4ifSwiVGhpcyB2aWRlbyBpcyBhbiBhZHZlcnRpc2VtZW50LCBjb21tZXJjaWFsLCBvciBpcyBhIHZpZGVvIHRoYXQgYWN0aXZlbHkgc2VsbHMgYSBwcm9kdWN0IG9yIHNlcnZpY2UuIjoiVGhpcyB2aWRlbyBpcyBhbiBhZHZlcnRpc2VtZW50LCBjb21tZXJjaWFsLCBvciBpcyBhIHZpZGVvIHRoYXQgYWN0aXZlbHkgc2VsbHMgYSBwcm9kdWN0IG9yIHNlcnZpY2UuIiwiVGhpcyB2aWRlbyBpcyBoaWRkZW4gZnJvbSB2aW1lby5jb20uIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB7VElUTEV9IjoiVGhpcyB2aWRlbyBpcyBoaWRkZW4gZnJvbSB2aW1lby5jb20uIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB7VElUTEV9IiwiVGhpcyB2aWRlbyBpcyBwcmltYXJpbHkgZGVzaWduZWQgdG8gZHJpdmUgdHJhZmZpYyB0byB0aGlyZCBwYXJ0eSBzaXRlcywgdXNlIFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uIChTRU8pIHRvIG1hbmlwdWxhdGUgc2VhcmNoIHJhbmtpbmdzLCBvciBvdGhlcndpc2UgZGVjZWl2ZSBvciBtaXNsZWFkIHRoZSBhdWRpZW5jZS4iOiJUaGlzIHZpZGVvIGlzIHByaW1hcmlseSBkZXNpZ25lZCB0byBkcml2ZSB0cmFmZmljIHRvIHRoaXJkIHBhcnR5IHNpdGVzLCB1c2UgU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24gKFNFTykgdG8gbWFuaXB1bGF0ZSBzZWFyY2ggcmFua2luZ3MsIG9yIG90aGVyd2lzZSBkZWNlaXZlIG9yIG1pc2xlYWQgdGhlIGF1ZGllbmNlLiIsIlRoaXMgdmlkZW8gc2hvdWxkIGJlIG1hcmtlZCBhcyBcdTIwMWNNYXR1cmVcdTIwMWQgZHVlIHRvIG51ZGl0eSwgcHJvZmFuaXR5LCB2aW9sZW5jZSwgb3IgZHJ1Z1wvYWxjb2hvbCB1c2UuIjoiVGhpcyB2aWRlbyBzaG91bGQgYmUgbWFya2VkIGFzIFx1MjAxY01hdHVyZVx1MjAxZCBkdWUgdG8gbnVkaXR5LCBwcm9mYW5pdHksIHZpb2xlbmNlLCBvciBkcnVnXC9hbGNvaG9sIHVzZS4iLCJUb2dnbGUgdmlzaWJpbGl0eSBvZiBzdGF0cyBncmFwaCI6IlRvZ2dsZSB2aXNpYmlsaXR5IG9mIHN0YXRzIGdyYXBoIiwiVW5mb2xsb3ciOiJVbmZvbGxvdyIsIlVubGlrZSI6IlVubGlrZSIsIlVwIG5leHQiOiJVcCBuZXh0IiwidXBkYXRlIHlvdXIgY29udGVudCByYXRpbmcgcHJlZmVyZW5jZXMiOiJ1cGRhdGUgeW91ciBjb250ZW50IHJhdGluZyBwcmVmZXJlbmNlcyIsIlVwZ3JhZGUgYW5kIHdlXHUyMDE5bGwgaG9sZCBvbiB0byB5b3VyIG9yaWdpbmFsIHZpZGVvIGZpbGVzLiI6IlVwZ3JhZGUgYW5kIHdlXHUyMDE5bGwgaG9sZCBvbiB0byB5b3VyIG9yaWdpbmFsIHZpZGVvIGZpbGVzLiIsIlVwbG9hZGVkIGJ5IHtVU0VSfSI6IlVwbG9hZGVkIGJ5IHtVU0VSfSIsIlVwbG9hZGVyIGRpZCBub3QgbWFrZSB0aGlzIjoiVXBsb2FkZXIgZGlkIG5vdCBtYWtlIHRoaXMiLCJVc2VyIHZlcmlmaWNhdGlvbiI6IlVzZXIgdmVyaWZpY2F0aW9uIiwiVmVyaWZ5IHlvdXIgYWNvdW50IjoiVmVyaWZ5IHlvdXIgYWNvdW50IiwiVmVyaWZ5IjoiVmVyaWZ5IiwidmlhIHtBUFBfTkFNRX0iOiJ2aWEge0FQUF9OQU1FfSIsInZpYSB7Q0FNRU99IjoidmlhIHtDQU1FT30iLCJWaWRlbyBmbGFnZ2luZyBmb3JtIjoiVmlkZW8gZmxhZ2dpbmcgZm9ybSIsIlZpZXcgYWxsIGNhdGVnb3JpZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlkZW8iOiJWaWV3IGFsbCBjYXRlZ29yaWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZGVvIiwiVmlldyBhbGwgdXNlcnMgY3JlZGl0ZWQgYnkgdGhpcyB2aWRlbyI6IlZpZXcgYWxsIHVzZXJzIGNyZWRpdGVkIGJ5IHRoaXMgdmlkZW8iLCJWaWV3IGFsbCI6IlZpZXcgYWxsIiwiVmlldyBjaGFubmVsIjoiVmlldyBjaGFubmVsIiwiVmlldyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgdmlkZW8iOiJWaWV3IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyB2aWRlbyIsIlZpZXcgdGl0bGUiOiJWaWV3IHRpdGxlIiwiVmltZW8gQnVzaW5lc3MgdXNlciI6IlZpbWVvIEJ1c2luZXNzIHVzZXIiLCJWaW1lbyBjdXJhdGlvbiB0ZWFtIG1lbWJlciI6IlZpbWVvIGN1cmF0aW9uIHRlYW0gbWVtYmVyIiwiVmltZW8gcGFydG5lciI6IlZpbWVvIHBhcnRuZXIiLCJWaW1lbyBQbHVzIHVzZXIiOiJWaW1lbyBQbHVzIHVzZXIiLCJWaW1lbyBQcm8gdXNlciI6IlZpbWVvIFBybyB1c2VyIiwiVmltZW8gc3BvbnNvciI6IlZpbWVvIHNwb25zb3IiLCJWaW1lbyBzdGFmZiBtZW1iZXIiOiJWaW1lbyBzdGFmZiBtZW1iZXIiLCJWaW1lbyBzdXBwb3J0IHNwZWNpYWxpc3QiOiJWaW1lbyBzdXBwb3J0IHNwZWNpYWxpc3QiLCJXYW50IHRvIGxlYXZlIGEgY29tbWVudD8gRmlyc3QgeW91XHUyMDE5bGwgbmVlZCB0byB2ZXJpZnkgeW91ciBWaW1lbyBhY2NvdW50LiI6IldhbnQgdG8gbGVhdmUgYSBjb21tZW50PyBGaXJzdCB5b3VcdTIwMTlsbCBuZWVkIHRvIHZlcmlmeSB5b3VyIFZpbWVvIGFjY291bnQuIiwiV2FudCB0byBsZWF2ZSBhIGNvbW1lbnQ/IjoiV2FudCB0byBsZWF2ZSBhIGNvbW1lbnQ/IiwiV2F0Y2ggaXQgYWdhaW4iOiJXYXRjaCBpdCBhZ2FpbiIsIldlXHUyMDE5cmUgb24gaXQhIFBsZWFzZSBjaGVjayBiYWNrIGxhdGVyLCBhcyBpdCBjb3VsZCB0YWtlIGEgZmV3IGhvdXJzLiI6IldlXHUyMDE5cmUgb24gaXQhIFBsZWFzZSBjaGVjayBiYWNrIGxhdGVyLCBhcyBpdCBjb3VsZCB0YWtlIGEgZmV3IGhvdXJzLiIsIldoZW4geW91IGFkZCB0aGlzIHByaXZhdGUgdmlkZW8gdG8gYSBjb2xsZWN0aW9uLCB0aGUgdmlkZW8gd2lsbCBiZSB2aWV3YWJsZSB3aXRoaW4gdGhhdCBhbGJ1bSwgZ3JvdXAsIGV0Yy4iOiJXaGVuIHlvdSBhZGQgdGhpcyBwcml2YXRlIHZpZGVvIHRvIGEgY29sbGVjdGlvbiwgdGhlIHZpZGVvIHdpbGwgYmUgdmlld2FibGUgd2l0aGluIHRoYXQgYWxidW0sIGdyb3VwLCBldGMuIiwiV2h5IGFyZSB5b3UgcmVwb3J0aW5nIHRoaXMgdmlkZW8/IjoiV2h5IGFyZSB5b3UgcmVwb3J0aW5nIHRoaXMgdmlkZW8/IiwiV291bGQgeW91IGxpa2UgdG8gaW5jbHVkZSB0aGlzIHZpZGVvIHN1Ym1pdHRlZCBieSB7VVNFUl9OQU1FfSBpbiB0aGUge0dST1VQX05BTUV9IGdyb3VwPyI6IldvdWxkIHlvdSBsaWtlIHRvIGluY2x1ZGUgdGhpcyB2aWRlbyBzdWJtaXR0ZWQgYnkge1VTRVJfTkFNRX0gaW4gdGhlIHtHUk9VUF9OQU1FfSBncm91cD8iLCJYWFgtcmF0ZWQiOiJYWFgtcmF0ZWQiLCJZZXMsIGZldGNoIG9yaWdpbmFsIGZpbGUiOiJZZXMsIGZldGNoIG9yaWdpbmFsIGZpbGUiLCJZb3UgY2FuIHtVUERBVEVfWU9VUl9QUkVGRVJFTkNFU19MSU5LfSBhdCBhbnkgdGltZS4iOiJZb3UgY2FuIHtVUERBVEVfWU9VUl9QUkVGRVJFTkNFU19MSU5LfSBhdCBhbnkgdGltZS4iLCJZb3UgY2Fubm90IGNyZWF0ZSB7VElUTEV9IHdoaWxlIGluIFByaXZhdGUgTW9kZS4gSWYgeW91IHRoaW5rIGl0IHdhcyBmbGFnZ2VkIGluIGVycm9yLCB7UExFQVNFX0xFVF9VU19LTk9XX0xJTkt9IjoiWW91IGNhbm5vdCBjcmVhdGUge1RJVExFfSB3aGlsZSBpbiBQcml2YXRlIE1vZGUuIElmIHlvdSB0aGluayBpdCB3YXMgZmxhZ2dlZCBpbiBlcnJvciwge1BMRUFTRV9MRVRfVVNfS05PV19MSU5LfSIsIllvdSBuZWVkIGEgMzYwIHBsYXllciB0byB3YXRjaCB0aGlzIGRvd25sb2FkLiB7QX1TZWUgb3VyIHJlY29tbWVuZGF0aW9uc3tcL0F9LiI6IllvdSBuZWVkIGEgMzYwIHBsYXllciB0byB3YXRjaCB0aGlzIGRvd25sb2FkLiB7QX1TZWUgb3VyIHJlY29tbWVuZGF0aW9uc3tcL0F9LiIsIllvdXIgYWNjb3VudCBoYXMgYmVlbiBmbGFnZ2VkIGZvciBzcGFtLiBJZiB5b3UgdGhpbmsgaXQgd2FzIGZsYWdnZWQgaW4gZXJyb3IsIHtQTEVBU0VfTEVUX1VTX0tOT1dfTElOS30uIjoiWW91ciBhY2NvdW50IGhhcyBiZWVuIGZsYWdnZWQgZm9yIHNwYW0uIElmIHlvdSB0aGluayBpdCB3YXMgZmxhZ2dlZCBpbiBlcnJvciwge1BMRUFTRV9MRVRfVVNfS05PV19MSU5LfS4iLCJ7Q09VTlR9IENhdGVnb3J5Ijp7InNpbmd1bGFyIjoie0NPVU5UfSBDYXRlZ29yeSIsInBsdXJhbCI6IntDT1VOVH0gQ2F0ZWdvcmllcyJ9LCJ7Q09VTlR9IENvbGxlY3Rpb24iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IENvbGxlY3Rpb24iLCJwbHVyYWwiOiJ7Q09VTlR9IENvbGxlY3Rpb25zIn0sIntDT1VOVH0gQ29tbWVudCI6eyJzaW5ndWxhciI6IntDT1VOVH0gQ29tbWVudCIsInBsdXJhbCI6IntDT1VOVH0gQ29tbWVudHMifSwie0NPVU5UfSBDcmVkaXQiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IENyZWRpdCIsInBsdXJhbCI6IntDT1VOVH0gQ3JlZGl0cyJ9LCJ7Q09VTlR9IExpa2UiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IExpa2UiLCJwbHVyYWwiOiJ7Q09VTlR9IExpa2VzIn0sIntDT1VOVH0gUGhvdG8iOnsic2luZ3VsYXIiOiJ7Q09VTlR9IFBob3RvIiwicGx1cmFsIjoie0NPVU5UfSBQaG90b3MifSwie0NPVU5UfSBQbGF5Ijp7InNpbmd1bGFyIjoie0NPVU5UfSBQbGF5IiwicGx1cmFsIjoie0NPVU5UfSBQbGF5cyJ9LCJBY3Rpdml0eSI6IkFjdGl2aXR5IiwiTm8gYWN0aXZpdHkgaW4gdGhlIHBhc3QgMzAgZGF5cyI6Ik5vIGFjdGl2aXR5IGluIHRoZSBwYXN0IDMwIGRheXMiLCJTZWUgYWxsIjoiU2VlIGFsbCIsIlZpZXcgbWVzc2FnZSI6IlZpZXcgbWVzc2FnZSIsIldlJ2xsIGFsZXJ0IHlvdSBvbmNlIHNvbWV0aGluZyBjb29sIGhhcHBlbnMuIjoiV2UnbGwgYWxlcnQgeW91IG9uY2Ugc29tZXRoaW5nIGNvb2wgaGFwcGVucy4ifTsKPC9zY3JpcHQ+CgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L3V0aWxzL3BsYXllcl9tYW5hZ2VyL3BsYXllcl9tYW5hZ2VyLm1pbi5qcz81NWFiNzA4MyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogaWYgKHR5cGVvZiBwbGF5ZXJBc3NldFVybHMgIT09ICd1bmRlZmluZWQnKSB7CiAgUGxheWVyTWFuYWdlci5ydW4ocGxheWVyQXNzZXRVcmxzKTsKICB9CiA8L3NjcmlwdD4KCiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvcmVhY3RfcHJvZF9jb21iaW5lZC5taW4uanM/YjZlZTdhNGUiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L2NsaXBfY29tYmluZWQubWluLmpzP2RiNGI5YWMxIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9hY3Rpdml0eV90b3BuYXZfY29tYmluZWQubWluLmpzPzUzOWI2YzgzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9fYnVuZGxlcy9jbGlwLmJ1bmRsZS5taW4uanM/OTUwZGViN2IiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L21vZHVsZXMvZ2xvYmFsL2FibGluY29sbi9ob3N0X3ZpZGVvcy5taW4uanM/NjVkYzQ1MWEiPjwvc2NyaXB0PgoKIDxzY3JpcHQgYXN5bmMgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9jbGlwX2JldGFfbGlic19hc3luY19jb21iaW5lZC5taW4uanM/MThmYmU2OWEiPjwvc2NyaXB0PgogPHNjcmlwdCBhc3luYyBzcmM9Ii8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0bS5qcz9pZD1HVE0tUkJLSyZsPV9ndG0iPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0aW9uIG9uVmltZW9Eb21SZWFkeShlKSB7CiAKICAgaWYgKCF2aW1lby5ieXBhc3NfcGxheWVyX3Jlc3BvbnNpdmVfZGVsZWdhdGVzKSB7CiB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMgPSB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMgfHwge307CiB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMud2lsbE9wZW5TaGFyZU92ZXJsYXkgPSB2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMud2lsbE9wZW5TaGFyZU92ZXJsYXkgfHwgZnVuY3Rpb24oaWQpIHsKIFBsYXllck1hbmFnZXIucGF1c2VBbGxQbGF5ZXJzKCk7CiB2aW1lby5zaGFyZS5Qb3B1cChpZCk7CiByZXR1cm4gZmFsc2U7CiB9OwoKIHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcy53aWxsT3BlbkxvZ2luRm9ybSA9IHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcy53aWxsT3BlbkxvZ2luRm9ybSB8fCBmdW5jdGlvbihpZCwgY29udGV4dCkgewogaWYgKHR5cGVvZiB2aW1lby5Nb2RhbCAhPT0gJ3VuZGVmaW5lZCcpIHsKIFBsYXllck1hbmFnZXIucGF1c2VBbGxQbGF5ZXJzKCk7CgogaWYgKGNvbnRleHQpIHsKIHZpbWVvLlNlc3Npb24uY3JlYXRlKHsgcGxheWVyOiAxLCBjbGlwX2lkOiBpZCwgY29udGV4dDogY29udGV4dCB9KTsKIH0KIGVsc2UgewogdmltZW8uU2Vzc2lvbi5jcmVhdGUoKTsKIH0KCiByZXR1cm4gZmFsc2U7CiB9CiB9OwoKIGlmIChQbGF5ZXJNYW5hZ2VyKSB7CiBQbGF5ZXJNYW5hZ2VyLnNldERlZmF1bHREZWxlZ2F0ZSh2aW1lby5wbGF5ZXJfcmVzcG9uc2l2ZV9kZWxlZ2F0ZXMpOwogfQogfQogCiBpZiAoUGxheWVyTWFuYWdlcikgewogUGxheWVyTWFuYWdlci5kaXNwYXRjaFJlYWR5U2lnbmFscygpOwogfQogCiAgfQoKICAkKGRvY3VtZW50KS5yZWFkeShvblZpbWVvRG9tUmVhZHkpOwogIDwvc2NyaXB0PgoKICA8c2NyaXB0PgogdmFyIGdvb2dsZV9hZF9jbGllbnQgPSAnY2EtaXdvbi12aW1lbycsCiBnb29nbGVfYWRfb3V0cHV0ID0gJ2pzJywKIGdvb2dsZV9tYXhfbnVtX2FkcyA9ICczJywKIGdvb2dsZV9hZF90eXBlID0gJ3RleHQnLAogZ29vZ2xlX2VuY29kaW5nID0gJ3V0ZjgnLAogZ29vZ2xlX2ZlZWRiYWNrID0gJ29uJywKIGdvb2dsZV9rd190eXBlID0gJ2Jyb2FkJywKIGdvb2dsZV9rdyA9ICcnOwoKIGRvY3VtZW50LndyaXRlKCc8c2NyJysnaXB0IHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanMiPjwvc2NyJysnaXB0PicpOwogPC9zY3JpcHQ+IAogPC9ib2R5Pgo8L2h0bWw+Cg==
148
- http_version:
149
- recorded_at: Mon, 27 Mar 2017 21:00:56 GMT
150
- recorded_with: VCR 3.0.3
@@ -1,79 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.vimeo.com/videos/136971428
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - VideoInfo/2.7
12
- Authorization:
13
- - bearer 6b66b015a3504793b4f541d878f46ff6
14
- Accept:
15
- - application/vnd.vimeo.*+json;version=3.2
16
- Accept-Encoding:
17
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- Server:
24
- - nginx
25
- Content-Type:
26
- - application/vnd.vimeo.video+json
27
- Cache-Control:
28
- - no-cache, max-age=315360000
29
- Strict-Transport-Security:
30
- - max-age=15552000; includeSubDomains; preload
31
- X-Ratelimit-Limit:
32
- - '500'
33
- X-Ratelimit-Remaining:
34
- - '483'
35
- X-Ratelimit-Reset:
36
- - '2017-03-27T21:16:16+00:00'
37
- Expires:
38
- - Thu, 25 Mar 2027 21:01:16 GMT
39
- Via:
40
- - 1.1 varnish
41
- - 1.1 varnish
42
- Fastly-Debug-Digest:
43
- - 0d94ad6e757fc08c8ced42c1d2a77169f2aa45dd8b863c1cd49a0e8bd236bd6b
44
- Content-Length:
45
- - '1662'
46
- Accept-Ranges:
47
- - bytes
48
- Date:
49
- - Mon, 27 Mar 2017 21:01:17 GMT
50
- Age:
51
- - '0'
52
- Connection:
53
- - keep-alive
54
- X-Served-By:
55
- - cache-iad2138-IAD, cache-lax8620-LAX
56
- X-Cache:
57
- - MISS, MISS
58
- X-Cache-Hits:
59
- - 0, 0
60
- X-Timer:
61
- - S1490648476.943708,VS0,VE177
62
- Vary:
63
- - Accept,Vimeo-Client-Id,Accept-Encoding
64
- body:
65
- encoding: ASCII-8BIT
66
- string: '{"uri":"/videos/136971428","name":"Deafheaven - ''New Bermuda'' Trailer","description":"''New
67
- Bermuda,'' the upcoming album from Deafheaven, is available October 2nd","link":"https://vimeo.com/136971428","duration":59,"width":1280,"language":"en","height":720,"embed":{"html":"<iframe
68
- src=\"https://player.vimeo.com/video/136971428?badge=0&autopause=0&player_id=0\"
69
- width=\"1280\" height=\"720\" frameborder=\"0\" title=\"Deafheaven - &#039;New
70
- Bermuda&#039; Trailer\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"},"created_time":"2015-08-21T21:37:43+00:00","modified_time":"2017-03-27T16:07:00+00:00","release_time":"2015-08-21T21:37:43+00:00","content_rating":["safe"],"license":null,"privacy":{"view":"anybody","embed":"public","download":false,"add":true,"comments":"anybody"},"pictures":{"uri":"/videos/136971428/pictures/531688239","active":true,"type":"custom","sizes":[{"width":100,"height":75,"link":"https://i.vimeocdn.com/video/531688239_100x75.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_100x75.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":200,"height":150,"link":"https://i.vimeocdn.com/video/531688239_200x150.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_200x150.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":295,"height":166,"link":"https://i.vimeocdn.com/video/531688239_295x166.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_295x166.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":640,"height":360,"link":"https://i.vimeocdn.com/video/531688239_640x360.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_640x360.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":960,"height":540,"link":"https://i.vimeocdn.com/video/531688239_960x540.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_960x540.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":1280,"height":720,"link":"https://i.vimeocdn.com/video/531688239_1280x720.jpg?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F531688239_1280x720.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"}],"resource_key":"d02759c29fd9734d3100d5c1f04f06b2dc74a90b"},"tags":[],"stats":{"plays":364},"metadata":{"connections":{"comments":{"uri":"/videos/136971428/comments","options":["GET","POST"],"total":0},"credits":{"uri":"/videos/136971428/credits","options":["GET","POST"],"total":1},"likes":{"uri":"/videos/136971428/likes","options":["GET"],"total":2},"pictures":{"uri":"/videos/136971428/pictures","options":["GET","POST"],"total":1},"texttracks":{"uri":"/videos/136971428/texttracks","options":["GET","POST"],"total":0},"related":null},"interactions":{"watchlater":{"added":false,"added_time":null,"uri":"/users/22881647/watchlater/136971428"},"like":{"added":false,"added_time":null,"uri":"/users/22881647/likes/136971428"}}},"user":{"uri":"/users/814311","name":"Anti
71
- Records","link":"https://vimeo.com/antirecords","location":"Los Angeles, CA","bio":"Home
72
- to Tom Waits, Wilco, Neko Case, Mavis Staples, Deafheaven, Daniel Lanois,
73
- Xenia Rubinos, Cass McCombs, The Antlers, Title Fight, Son Little, Andy Shauf,
74
- and more.","created_time":"2008-10-06T20:33:11+00:00","account":"plus","pictures":{"uri":"/users/814311/pictures/14790276","active":true,"type":"custom","sizes":[{"width":30,"height":30,"link":"https://i.vimeocdn.com/portrait/14790276_30x30?r=pad"},{"width":75,"height":75,"link":"https://i.vimeocdn.com/portrait/14790276_75x75?r=pad"},{"width":100,"height":100,"link":"https://i.vimeocdn.com/portrait/14790276_100x100?r=pad"},{"width":300,"height":300,"link":"https://i.vimeocdn.com/portrait/14790276_300x300?r=pad"}],"resource_key":"e61a33d865c9349dc7ee051232fb30d1492ee1fc"},"websites":[{"name":"Official
75
- Site","link":"www.anti.com","description":null},{"name":"Twitter","link":"twitter.com/antirecords","description":null},{"name":"Facebook","link":"www.facebook.com/antirecords","description":null},{"name":"Instagram","link":"www.instagram.com/antirecords/","description":null},{"name":"Online
76
- Store","link":"www.anti.com/store","description":null}],"metadata":{"connections":{"activities":{"uri":"/users/814311/activities","options":["GET"]},"albums":{"uri":"/users/814311/albums","options":["GET"],"total":1},"appearances":{"uri":"/users/814311/appearances","options":["GET"],"total":2},"channels":{"uri":"/users/814311/channels","options":["GET"],"total":1},"feed":{"uri":"/users/814311/feed","options":["GET"]},"followers":{"uri":"/users/814311/followers","options":["GET"],"total":734},"following":{"uri":"/users/814311/following","options":["GET"],"total":2},"groups":{"uri":"/users/814311/groups","options":["GET"],"total":0},"likes":{"uri":"/users/814311/likes","options":["GET"],"total":1},"moderated_channels":{"uri":"/users/814311/channels?filter=moderated","options":["GET"],"total":1},"portfolios":{"uri":"/users/814311/portfolios","options":["GET"],"total":0},"videos":{"uri":"/users/814311/videos","options":["GET"],"total":50},"shared":{"uri":"/users/814311/shared/videos","options":["GET"],"total":192},"pictures":{"uri":"/users/814311/pictures","options":["GET","POST"],"total":1}},"interactions":{"follow":{"added":false,"added_time":null,"uri":"/users/22881647/following/814311"}}},"resource_key":"e1d6212aaacbfb79302c5f750b44d5101a3f8a55","preferences":{"videos":{"privacy":null}}},"app":null,"status":"available","resource_key":"7c4542791d2267ed231d820afcfff7d6c840e688","embed_presets":null}'
77
- http_version:
78
- recorded_at: Mon, 27 Mar 2017 21:01:17 GMT
79
- recorded_with: VCR 3.0.3