diff --git a/lib/video_info/providers/vimeo_scraper.rb b/lib/video_info/providers/vimeo_scraper.rb index 7ed5c25b..60008878 100644 --- a/lib/video_info/providers/vimeo_scraper.rb +++ b/lib/video_info/providers/vimeo_scraper.rb @@ -131,9 +131,9 @@ def stats private def user_interaction_count(interaction_type:) - interaction_statistic.find do |stat| + interaction_statistic&.find do |stat| stat["interactionType"] == "http://schema.org/#{interaction_type}" - end["userInteractionCount"] + end&.public_send(:[], "userInteractionCount") end def interaction_statistic diff --git a/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_7848846/stats/1_14_1_1.yml b/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_7848846/stats/1_14_1_1.yml new file mode 100644 index 00000000..1324048b --- /dev/null +++ b/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_7848846/stats/1_14_1_1.yml @@ -0,0 +1,247 @@ +--- +http_interactions: +- request: + method: head + uri: https://vimeo.com/7848846 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - VideoInfo/4.0.0 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 26 Oct 2023 20:26:08 GMT + Content-Type: + - text/html; charset=UTF-8 + Connection: + - keep-alive + Expires: + - Thu, 26 Oct 2023 20:36:08 GMT + X-Vimeo-Device: + - d + X-Ua-Compatible: + - IE=edge + X-Xss-Protection: + - 1; mode=block + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - sameorigin + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Content-Security-Policy-Report-Only: + - 'default-src https: data: blob: wss: ''unsafe-inline'' ''unsafe-eval''; report-uri + /_csp' + X-Bapp-Server: + - pweb-7cc5595cc8-fk8vt + Via: + - 1.1 varnish (Varnish/6.0), 1.1 varnish, 1.1 varnish + Cache-Control: + - no-store, no-cache, must-revalidate, post-check=0, pre-check=0 + X-Varnish-Cache: + - '0' + X-Vserver: + - web-varnish-prod-varnish-15 + X-Backend-Proxy: + - webproxy16 + Age: + - '0' + X-Served-By: + - cache-iad-kjyo7100043-IAD, cache-lcy-eglc8600045-LCY + X-Cache: + - MISS, MISS + X-Cache-Hits: + - 0, 0 + X-Timer: + - S1698351968.152028,VS0,VE363 + Vary: + - User-Agent,Accept-Encoding,x-http-method-override + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=7yX8DZtM1IA5h0JnquYY7tcwDaTT32gK1rb8eaa_jFU-1698351968-0-AVYz7g6IA0tohwDdbBNVFu2D0dQvGkzTFEh64dYsCvtnhQl/1M8xGghfvN8bH7T5ynkfBT8Unbb9DhbBBsE1Gjk=; + path=/; expires=Thu, 26-Oct-23 20:56:08 GMT; domain=.vimeo.com; HttpOnly; + Secure; SameSite=None + Server: + - cloudflare + Cf-Ray: + - 81c56eb8dcf502d9-CDG + Content-Encoding: + - gzip + body: + encoding: UTF-8 + string: '' + recorded_at: Thu, 26 Oct 2023 20:26:08 GMT +- request: + method: get + uri: https://vimeo.com/7848846 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 26 Oct 2023 20:26:09 GMT + Content-Type: + - text/html; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Expires: + - Thu, 26 Oct 2023 20:36:09 GMT + X-Vimeo-Device: + - d + X-Ua-Compatible: + - IE=edge + X-Xss-Protection: + - 1; mode=block + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - sameorigin + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Content-Security-Policy-Report-Only: + - 'default-src https: data: blob: wss: ''unsafe-inline'' ''unsafe-eval''; report-uri + /_csp' + X-Bapp-Server: + - pweb-7cc5595cc8-vkfws + Via: + - 1.1 varnish (Varnish/6.0), 1.1 varnish, 1.1 varnish + Cache-Control: + - no-store, no-cache, must-revalidate, post-check=0, pre-check=0 + X-Varnish-Cache: + - '0' + X-Vserver: + - web-varnish-prod-varnish-6 + X-Backend-Proxy: + - webproxy7 + Age: + - '0' + X-Served-By: + - cache-iad-kjyo7100043-IAD, cache-lcy-eglc8600052-LCY + X-Cache: + - MISS, MISS + X-Cache-Hits: + - 0, 0 + X-Timer: + - S1698351969.066993,VS0,VE361 + Vary: + - User-Agent,Accept-Encoding,x-http-method-override + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=gsA49M49VCNQdqspfTztLDXcAaTMog0iwqtgyOQNkTk-1698351969-0-AUYAL99sn87eKnam0cFDJ3QbE77V0iMd9fAM+8f0HiNwoJHFQOFc4ftpSswGVXm9HSEBMkXkwWEmXzfzZ2EYjhY=; + path=/; expires=Thu, 26-Oct-23 20:56:09 GMT; domain=.vimeo.com; HttpOnly; + Secure; SameSite=None + Server: + - cloudflare + Cf-Ray: + - 81c56ebe8ea80477-CDG + body: + encoding: ASCII-8BIT + string: !binary |- + PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICAgIDxoZWFkPgogICAgICAgIAo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CjxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjE5ODg0MDI4OTYzIj4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vcGxheWVyLnZpbWVvLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9pLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9mLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiBocmVmPSIvc2VhcmNoL29wZW5zZWFyY2gueG1sIiB0aXRsZT0iVmltZW8iPgo8bGluayByZWw9ImxvZ28iIHR5cGU9ImltYWdlL3N2ZyIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9sb2dvLnN2ZyI+CgoKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTUuMCx1c2VyLXNjYWxhYmxlPXllcyI+CiAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iVmltZW8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vdmltZW8uY29tLzc4NDg4NDYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ2aWRlby5vdGhlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJJS09OUyAtIFNMT1cgTElHSFQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iQXJ0aXN0OiBJS09OUy4gVGl0bGU6IFNMT1cgTElHSFQuIENyZWF0b3I6IFBhdHJpayBKb2hhbnNzb24uIExhYmVsOiBTRVJWSUNFLiB3d3cuc3J2Yy5zZSAgQWxidW0gJnF1b3Q7SWtvbnMmcXVvdDsgb3V0IG5vdyBDRC9MUC9TdHJlYW0gZnJvbSBTZXJ2aWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXBkYXRlZF90aW1lIiBjb250ZW50PSIyMDIyLTA3LTAxVDA2OjA1OjEwLTA0OjAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vMzUwMTQ1ODQtNDQ2NjU2NDIxYTkzNWY5ZjI1NjM3NWYxZmFlMmRjOGEyZDUwMDMwMzA5OTlhMjM1NjFhNzZhNGFkNWNlMWJmMS1kP2Y9d2VicCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOnNlY3VyZV91cmwiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vMzUwMTQ1ODQtNDQ2NjU2NDIxYTkzNWY5ZjI1NjM3NWYxZmFlMmRjOGEyZDUwMDMwMzA5OTlhMjM1NjFhNzZhNGFkNWNlMWJmMS1kP2Y9d2VicCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOnR5cGUiIGNvbnRlbnQ9ImltYWdlL3dlYnAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTp3aWR0aCIgY29udGVudD0iMTI4MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOmhlaWdodCIgY29udGVudD0iOTYwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6aW9zOmFwcF9uYW1lIiBjb250ZW50PSJWaW1lbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9ImFsOmlvczphcHBfc3RvcmVfaWQiIGNvbnRlbnQ9IjQyNTE5NDc1OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9ImFsOmlvczp1cmwiIGNvbnRlbnQ9InZpbWVvOi8vYXBwLnZpbWVvLmNvbS92aWRlb3MvNzg0ODg0NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9ImFsOmFuZHJvaWQ6YXBwX25hbWUiIGNvbnRlbnQ9IlZpbWVvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0iYWw6YW5kcm9pZDpwYWNrYWdlIiBjb250ZW50PSJjb20udmltZW8uYW5kcm9pZC52aWRlb2FwcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9ImFsOmFuZHJvaWQ6dXJsIiBjb250ZW50PSJ2aW1lbzovL2FwcC52aW1lby5jb20vdmlkZW9zLzc4NDg4NDYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJhbDp3ZWI6c2hvdWxkX2ZhbGxiYWNrIiBjb250ZW50PSJ0cnVlIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQXJ0aXN0OiBJS09OUy4gVGl0bGU6IFNMT1cgTElHSFQuIENyZWF0b3I6IFBhdHJpayBKb2hhbnNzb24uIExhYmVsOiBTRVJWSUNFLiB3d3cuc3J2Yy5zZSAgQWxidW0gJnF1b3Q7SWtvbnMmcXVvdDsgb3V0IG5vdyBDRC9MUC9TdHJlYW0gZnJvbSBTZXJ2aWNlIj4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InBsYXllciI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSJAdmltZW8iPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IklLT05TIC0gU0xPVyBMSUdIVCI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iQXJ0aXN0OiBJS09OUy4gVGl0bGU6IFNMT1cgTElHSFQuIENyZWF0b3I6IFBhdHJpayBKb2hhbnNzb24uIExhYmVsOiBTRVJWSUNFLiB3d3cuc3J2Yy5zZSAgQWxidW0gJnF1b3Q7SWtvbnMmcXVvdDsgb3V0IG5vdyBDRC9MUC9TdHJlYW0gZnJvbSBTZXJ2aWNlIj4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJodHRwczovL2kudmltZW9jZG4uY29tL3ZpZGVvLzM1MDE0NTg0LTQ0NjY1NjQyMWE5MzVmOWYyNTYzNzVmMWZhZTJkYzhhMmQ1MDAzMDMwOTk5YTIzNTYxYTc2YTRhZDVjZTFiZjEtZD9mPXdlYnAiPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6cGxheWVyIiBjb250ZW50PSJodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vNzg0ODg0Nj9oPTQ2NmViZDJmMzMiPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6cGxheWVyOndpZHRoIiBjb250ZW50PSIxMjgwIj4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOnBsYXllcjpoZWlnaHQiIGNvbnRlbnQ9Ijk2MCI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSJAdmltZW8iPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOm5hbWU6aXBob25lIiBjb250ZW50PSJWaW1lbyI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6aWQ6aXBob25lIiBjb250ZW50PSI0MjUxOTQ3NTkiPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6YXBwOnVybDppcGhvbmUiIGNvbnRlbnQ9InZpbWVvOi8vYXBwLnZpbWVvLmNvbS92aWRlb3MvNzg0ODg0NiI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6bmFtZTppcGFkIiBjb250ZW50PSJWaW1lbyI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6aWQ6aXBhZCIgY29udGVudD0iNDI1MTk0NzU5Ij4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDp1cmw6aXBhZCIgY29udGVudD0idmltZW86Ly9hcHAudmltZW8uY29tL3ZpZGVvcy83ODQ4ODQ2Ij4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDpuYW1lOmdvb2dsZXBsYXkiIGNvbnRlbnQ9IlZpbWVvIj4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmFwcDppZDpnb29nbGVwbGF5IiBjb250ZW50PSJjb20udmltZW8uYW5kcm9pZC52aWRlb2FwcCI+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idHdpdHRlcjphcHA6dXJsOmdvb2dsZXBsYXkiIGNvbnRlbnQ9InZpbWVvOi8vYXBwLnZpbWVvLmNvbS92aWRlb3MvNzg0ODg0NiI+CiAgICAKCgoKICAgICAgICAgICAgICAgICAgICA8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vYXBpL29lbWJlZC5qc29uP3VybD1odHRwcyUzQSUyRiUyRnZpbWVvLmNvbSUyRjc4NDg4NDYlM0ZoJTNENDY2ZWJkMmYzMyIgdHlwZT0iYXBwbGljYXRpb24vanNvbitvZW1iZWQiIHRpdGxlPSJJS09OUyAtIFNMT1cgTElHSFQiPgogICAgICAgICAgICAgICAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL2FwaS9vZW1iZWQueG1sP3VybD1odHRwcyUzQSUyRiUyRnZpbWVvLmNvbSUyRjc4NDg4NDYlM0ZoJTNENDY2ZWJkMmYzMyIgdHlwZT0idGV4dC94bWwrb2VtYmVkIiB0aXRsZT0iSUtPTlMgLSBTTE9XIExJR0hUIj4KICAgICAgICAgICAgICAgIDxsaW5rIHJlbD0icGluZ2JhY2siIGhyZWY9Imh0dHBzOi8vdmltZW8uY29tL19waW5nYmFjayI+CiAgICAgICAgICAgICAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vNzg0ODg0NiI+CiAgICAgICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiBocmVmPSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vbWFpbi10b3VjaF8xODAiPgoKPGxpbmsgcmVsPSJtYXNrLWljb24iIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3ZnL2xlZ2FjeV92aWV3X3N1cHBvcnQvaXJpc19pY29uX3ZfNjQuc3ZnP2IwNmM0ZTFlZjEzZTdiZTczMDM0NjQ3OTYxMjE4ZjJhNTkwNDFhNGYiIGNvbG9yPSIjMTcyNzJlIj4KCiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2L2Zhdmljb24uaWNvP2IwNmM0ZTFlZjEzZTdiZTczMDM0NjQ3OTYxMjE4ZjJhNTkwNDFhNGYiIGRhdGEtcGxheT0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL3BsYXlfMzIiIGRhdGEtcGF1c2U9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9wYXVzZV8zMiI+Cgo8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLVRpbGVJbWFnZSIgY29udGVudD0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL21haW4tdG91Y2hfMTQ0Ij4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3IiIGNvbnRlbnQ9IiMwMGFkZWYiPgogICAgICAgIDx0aXRsZT5JS09OUyAtIFNMT1cgTElHSFQgb24gVmltZW88L3RpdGxlPgogICAgICAgIDxzdHlsZT4KICAjb3Qtc2RrLWJ0biB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KPC9zdHlsZT4KPHNjcmlwdD4KICAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBpc0NyYXdsZXIoKSB7CiAgICAgIHZhciBjcmF3bGVyVUEgPSBbCiAgICAgICAgJ2Fkc2JvdC1nb29nbGUnLAogICAgICAgICdhcHBsZWJvdCcsCiAgICAgICAgJ2JhaWR1c3BpZGVyJywKICAgICAgICAnYmluZ2JvdCcsCiAgICAgICAgJ2JsZWtrb2JvdCcsCiAgICAgICAgJ0VtYmVkbHknLAogICAgICAgICdmYWNlYm9va2V4dGVybmFsaGl0JywKICAgICAgICAnRmFjZWJvdCcsCiAgICAgICAgJ2ZlZWRmZXRjaGVyLWdvb2dsZScsCiAgICAgICAgJ2ZlZWRseScsCiAgICAgICAgJ0ZsaXBib2FyZFByb3h5JywKICAgICAgICAnZ29vZ2xlIHdlYiBwcmV2aWV3JywKICAgICAgICAnZ29vZ2xlYm90JywKICAgICAgICAnZ29vZ2xlYm90LW5ld3MnLAogICAgICAgICdnb29nbGUtaW5zcGVjdGlvbnRvb2wnLAogICAgICAgICdnb29nbGVvdGhlcicsCiAgICAgICAgJ0dyYXBlc2hvdENyYXdsZXInLAogICAgICAgICdsaW5rZWRpbmJvdCcsCiAgICAgICAgJ21haWwucnVfYm90JywKICAgICAgICAnbWVkaWFwYXJ0bmVycy1nb29nbGUnLAogICAgICAgICdtc25ib3RfbW9iaWxlJywKICAgICAgICAnbXNuYm90JywKICAgICAgICAnbXNuYm90JywKICAgICAgICAncGludGVyZXN0JywKICAgICAgICAnU2V6bmFtJywKICAgICAgICAnU2t5cGVVcmlQcmV2aWV3JywKICAgICAgICAnc2x1cnAnLAogICAgICAgICdzdG9yZWJvdC1nb29nbGUnLAogICAgICAgICdzdXBlcmZlZWRyIGJvdCcsCiAgICAgICAgJ3R1bWJscicsCiAgICAgICAgJ3R3aXR0ZXJib3QnLAogICAgICAgICd5YW5kZXgnLAogICAgICAgICdwcmVyZW5kZXInCiAgICAgIF07CiAgICAgIGNvbnN0IHJlZ0V4ID0gbmV3IFJlZ0V4cCgKICAgICAgICBgKCR7Y3Jhd2xlclVBLmpvaW4oJ3wnKS5yZXBsYWNlKCcuJywgJ1xcLicpLnJlcGxhY2UoJy0nLCAnXFwtJyl9KWAsCiAgICAgICAgJ2knLAogICAgICApOwoKICAgICAgcmV0dXJuICEhd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2gocmVnRXgpOwogICAgfQoKICAgIGZ1bmN0aW9uIGFkZFNjcmlwdChzcmMsIGRhdGFTZXQpIHsKICAgICAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgc2NyaXB0RWxlbWVudC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgIHNjcmlwdEVsZW1lbnQuc3JjID0gc3JjOwoKICAgICAgaWYgKGRhdGFTZXQpIHsKICAgICAgICBPYmplY3Qua2V5cyhkYXRhU2V0KS5mb3JFYWNoKChrZXkpID0+IHsKICAgICAgICAgIHNjcmlwdEVsZW1lbnQuZGF0YXNldFtrZXldID0gZGF0YVNldFtrZXldOwogICAgICAgIH0pOwogICAgICB9CgogICAgICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgICAgIGlmIChmaXJzdFNjcmlwdCkgewogICAgICAgIGZpcnN0U2NyaXB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHNjcmlwdEVsZW1lbnQsIGZpcnN0U2NyaXB0KTsKICAgICAgfQogICAgfQoKICAgIGlmIChpc0NyYXdsZXIoKSkgcmV0dXJuOwoKICAgICAgICBhZGRTY3JpcHQoCiAgICAgICdodHRwczovL2Nkbi5jb29raWVsYXcub3JnL3NjcmlwdHRlbXBsYXRlcy9vdFNES1N0dWIuanMnLCB7CiAgICAgICAgZG9tYWluU2NyaXB0OiAnZDMyNzBmMWYtMjRmMy00NDJhLWI4ZWUtZTY2ZjQyYjNiYjE5JywKICAgICAgICBkb2N1bWVudExhbmd1YWdlOiAndHJ1ZScKICAgICAgfQogICAgKTsKICB9KSgpOwoKICBmdW5jdGlvbiBPcHRhbm9uV3JhcHBlcigpIHsKICAgIC8qKgogICAgICogU2VuZGluZyBsb2NhdGlvbiBkYXRhIGZvciBibG9ja2luZyBHVE0gY29va2llcwogICAgICovCiAgICBvbmVUcnVzdFRyaWdnZXJlZCA9IHRydWU7CiAgICB2YXIgbG9jYXRpb24gPSBPbmVUcnVzdC5nZXRHZW9sb2NhdGlvbkRhdGEoKTsKICAgIGlmKHdpbmRvdyAmJiB3aW5kb3cuX2d0bSkgewogICAgICB3aW5kb3cuX2d0bS5wdXNoKGxvY2F0aW9uKTsKICAgIH0KICAgIC8qKgogICAgICogVGhpcyBpcyBuZWVkZWQgaW4gY2FzZSB0aGUgc2NyaXB0cyBsb2FkcyBiZWZvcmUgdGhlIG9uZXRydXN0IGJ0biBsb2FkcwogICAgICovCiAgICBpZihsb2NhdGlvbiAmJiBsb2NhdGlvbi5jb3VudHJ5ID09PSAnRlInICYmIGRvY3VtZW50LmhlYWQpIHsKICAgICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7CiAgICAgIHZhciBzdHlsZXNoZWV0ID0gc3R5bGUuc2hlZXQ7CiAgICAgIGlmIChzdHlsZXNoZWV0KSB7CiAgICAgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCcjb3Qtc2RrLWJ0biB7IGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9Jyk7CiAgICAgIH0KICAgIH0KICB9Cjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIC8vIEZpcnN0IElucHV0IERlbGF5IHRyYWNraW5nLiBIaWdoIHByaW9yaXR5IGxvYWRpbmcgdG8gbm90IG1pc3MgZXZlbnQKICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvZmlyc3QtaW5wdXQtZGVsYXkvYmxvYi9tYXN0ZXIvZGlzdC9maXJzdC1pbnB1dC1kZWxheS5taW4uanMKICAgICAgICAgICAgIWZ1bmN0aW9uKG4sZSl7dmFyIHQsbyxpLGM9W10sZj17cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSxyPW5ldyBEYXRlLGE9InBvaW50ZXJ1cCIsdT0icG9pbnRlcmNhbmNlbCI7ZnVuY3Rpb24gcChuLGMpe3R8fCh0PWMsbz1uLGk9bmV3IERhdGUsdyhlKSxzKCkpfWZ1bmN0aW9uIHMoKXtvPj0wJiZvPGktciYmKGMuZm9yRWFjaChmdW5jdGlvbihuKXtuKG8sdCl9KSxjPVtdKX1mdW5jdGlvbiBsKHQpe2lmKHQuY2FuY2VsYWJsZSl7dmFyIG89KHQudGltZVN0YW1wPjFlMTI/bmV3IERhdGU6cGVyZm9ybWFuY2Uubm93KCkpLXQudGltZVN0YW1wOyJwb2ludGVyZG93biI9PXQudHlwZT9mdW5jdGlvbih0LG8pe2Z1bmN0aW9uIGkoKXtwKHQsbykscigpfWZ1bmN0aW9uIGMoKXtyKCl9ZnVuY3Rpb24gcigpe2UoYSxpLGYpLGUodSxjLGYpfW4oYSxpLGYpLG4odSxjLGYpfShvLHQpOnAobyx0KX19ZnVuY3Rpb24gdyhuKXtbImNsaWNrIiwibW91c2Vkb3duIiwia2V5ZG93biIsInRvdWNoc3RhcnQiLCJwb2ludGVyZG93biJdLmZvckVhY2goZnVuY3Rpb24oZSl7bihlLGwsZil9KX13KG4pLHNlbGYucGVyZk1ldHJpY3M9c2VsZi5wZXJmTWV0cmljc3x8e30sc2VsZi5wZXJmTWV0cmljcy5vbkZpcnN0SW5wdXREZWxheT1mdW5jdGlvbihuKXtjLnB1c2gobikscygpfX0oYWRkRXZlbnRMaXN0ZW5lcixyZW1vdmVFdmVudExpc3RlbmVyKTsKICAgICAgICA8L3NjcmlwdD4KICAgICAgICA8c2NyaXB0PgogICAgICAgICAgLy8gQ3JlYXRlIFBlcmZvcm1hbmNlT2JzZXJ2ZXIgZm9yIHRyYWNraW5nIFRUSQogICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvdHRpLXBvbHlmaWxsCiAgICAgICAgICAhZnVuY3Rpb24oKXtpZignUGVyZm9ybWFuY2VMb25nVGFza1RpbWluZycgaW4gd2luZG93KXt2YXIgZz13aW5kb3cuX190dGk9e2U6W119OwogICAgICAgICAgZy5vPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGwpe2cuZT1nLmUuY29uY2F0KGwuZ2V0RW50cmllcygpKX0pOwogICAgICAgICAgZy5vLm9ic2VydmUoe2VudHJ5VHlwZXM6Wydsb25ndGFzayddfSl9fSgpOwogICAgICAgIDwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KaWYod2luZG93JiZ3aW5kb3cuZmV0Y2gmJi0xPT09d2luZG93LmZldGNoLnRvU3RyaW5nKCkuaW5kZXhPZigiUHJvZmlsaW5nIikmJi0xIT09ZG9jdW1lbnQuY29va2llLmluZGV4T2YoImxvZ3M9MSIpKXtjb25zdCBlPXdpbmRvdy5mZXRjaCxuPVsiYXBpLnZpbWVvLmNvbSIsInZpbWVvLmNvbSJdO3dpbmRvdy5mZXRjaD0oYXN5bmMoLi4udCk9PntsZXRbaSxvXT10O2NvbnN0IGQ9bmV3IFVSTChpLGRvY3VtZW50LmJhc2VVUkkpLmhvc3Q7cmV0dXJuIG8mJm8uaGVhZGVycyYmbi5pbmNsdWRlcyhkKSYmKG8uaGVhZGVycy5Qcm9maWxpbmc9MSksYXdhaXQgZShpLG8pfSl9Cjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KO3dpbmRvdy5OUkVVTXx8KE5SRVVNPXt9KTtOUkVVTS5pbml0PXtwcml2YWN5Ontjb29raWVzX2VuYWJsZWQ6dHJ1ZX19Owp3aW5kb3cuTlJFVU18fChOUkVVTT17fSksX19ucl9yZXF1aXJlPWZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKG4pe2lmKCFlW25dKXt2YXIgbz1lW25dPXtleHBvcnRzOnt9fTt0W25dWzBdLmNhbGwoby5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBvPXRbbl1bMV1bZV07cmV0dXJuIHIob3x8ZSl9LG8sby5leHBvcnRzKX1yZXR1cm4gZVtuXS5leHBvcnRzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBfX25yX3JlcXVpcmUpcmV0dXJuIF9fbnJfcmVxdWlyZTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylyKG5bb10pO3JldHVybiByfSh7MTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7dHJ5e2MuY29uc29sZSYmY29uc29sZS5sb2codCl9Y2F0Y2goZSl7fX12YXIgbyxpPXQoImVlIiksYT10KDI4KSxjPXt9O3RyeXtvPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJfX25yX2ZsYWdzIikuc3BsaXQoIiwiKSxjb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5sb2cmJihjLmNvbnNvbGU9ITAsby5pbmRleE9mKCJkZXYiKSE9PS0xJiYoYy5kZXY9ITApLG8uaW5kZXhPZigibnJfZGV2IikhPT0tMSYmKGMubnJEZXY9ITApKX1jYXRjaChzKXt9Yy5uckRldiYmaS5vbigiaW50ZXJuYWwtZXJyb3IiLGZ1bmN0aW9uKHQpe3IodC5zdGFjayl9KSxjLmRldiYmaS5vbigiZm4tZXJyIixmdW5jdGlvbih0LGUsbil7cihuLnN0YWNrKX0pLGMuZGV2JiYocigiTlIgQUdFTlQgSU4gREVWRUxPUE1FTlQgTU9ERSIpLHIoImZsYWdzOiAiK2EoYyxmdW5jdGlvbih0LGUpe3JldHVybiB0fSkuam9pbigiLCAiKSkpfSx7fV0sMjpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlLG4scixjKXt0cnl7bD9sLT0xOm8oY3x8bmV3IFVuY2F1Z2h0RXhjZXB0aW9uKHQsZSxuKSwhMCl9Y2F0Y2godSl7dHJ5e2koImllcnIiLFt1LHMubm93KCksITBdKX1jYXRjaChkKXt9fXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBmJiZmLmFwcGx5KHRoaXMsYShhcmd1bWVudHMpKX1mdW5jdGlvbiBVbmNhdWdodEV4Y2VwdGlvbih0LGUsbil7dGhpcy5tZXNzYWdlPXR8fCJVbmNhdWdodCBlcnJvciB3aXRoIG5vIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24iLHRoaXMuc291cmNlVVJMPWUsdGhpcy5saW5lPW59ZnVuY3Rpb24gbyh0LGUpe3ZhciBuPWU/bnVsbDpzLm5vdygpO2koImVyciIsW3Qsbl0pfXZhciBpPXQoImhhbmRsZSIpLGE9dCgyOSksYz10KCJlZSIpLHM9dCgibG9hZGVyIiksdT10KCJnb3MiKSxmPXdpbmRvdy5vbmVycm9yLGQ9ITEscD0ibnJAc2VlbkVycm9yIixsPTA7cy5mZWF0dXJlcy5lcnI9ITAsdCgxKSx3aW5kb3cub25lcnJvcj1yO3RyeXt0aHJvdyBuZXcgRXJyb3J9Y2F0Y2goaCl7InN0YWNrImluIGgmJih0KDEzKSx0KDEyKSwiYWRkRXZlbnRMaXN0ZW5lciJpbiB3aW5kb3cmJnQoNikscy54aHJXcmFwcGFibGUmJnQoMTQpLGQ9ITApfWMub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LGUsbil7ZCYmKGwrPTEpfSksYy5vbigiZm4tZXJyIixmdW5jdGlvbih0LGUsbil7ZCYmIW5bcF0mJih1KG4scCxmdW5jdGlvbigpe3JldHVybiEwfSksdGhpcy50aHJvd249ITAsbyhuKSl9KSxjLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKCl7ZCYmIXRoaXMudGhyb3duJiZsPjAmJihsLT0xKX0pLGMub24oImludGVybmFsLWVycm9yIixmdW5jdGlvbih0KXtpKCJpZXJyIixbdCxzLm5vdygpLCEwXSl9KX0se31dLDM6W2Z1bmN0aW9uKHQsZSxuKXt0KCJsb2FkZXIiKS5mZWF0dXJlcy5pbnM9ITB9LHt9XSw0OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe0wrKyxUPWcuaGFzaCx0aGlzW2ZdPXkubm93KCl9ZnVuY3Rpb24gbygpe0wtLSxnLmhhc2ghPT1UJiZpKDAsITApO3ZhciB0PXkubm93KCk7dGhpc1toXT1+fnRoaXNbaF0rdC10aGlzW2ZdLHRoaXNbZF09dH1mdW5jdGlvbiBpKHQsZSl7RS5lbWl0KCJuZXdVUkwiLFsiIitnLGVdKX1mdW5jdGlvbiBhKHQsZSl7dC5vbihlLGZ1bmN0aW9uKCl7dGhpc1tlXT15Lm5vdygpfSl9dmFyIGM9Ii1zdGFydCIscz0iLWVuZCIsdT0iLWJvZHkiLGY9ImZuIitjLGQ9ImZuIitzLHA9ImNiIitjLGw9ImNiIitzLGg9ImpzVGltZSIsbT0iZmV0Y2giLHY9ImFkZEV2ZW50TGlzdGVuZXIiLHc9d2luZG93LGc9dy5sb2NhdGlvbix5PXQoImxvYWRlciIpO2lmKHdbdl0mJnkueGhyV3JhcHBhYmxlKXt2YXIgeD10KDEwKSxiPXQoMTEpLEU9dCg4KSxSPXQoNiksTz10KDEzKSxOPXQoNyksUD10KDE0KSxNPXQoOSksUz10KCJlZSIpLEM9Uy5nZXQoInRyYWNlciIpO3QoMTYpLHkuZmVhdHVyZXMuc3BhPSEwO3ZhciBULEw9MDtTLm9uKGYsciksYi5vbihwLHIpLE0ub24ocCxyKSxTLm9uKGQsbyksYi5vbihsLG8pLE0ub24obCxvKSxTLmJ1ZmZlcihbZixkLCJ4aHItZG9uZSIsInhoci1yZXNvbHZlZCJdKSxSLmJ1ZmZlcihbZl0pLE8uYnVmZmVyKFsic2V0VGltZW91dCIrcywiY2xlYXJUaW1lb3V0IitjLGZdKSxQLmJ1ZmZlcihbZiwibmV3LXhociIsInNlbmQteGhyIitjXSksTi5idWZmZXIoW20rYyxtKyItZG9uZSIsbSt1K2MsbSt1K3NdKSxFLmJ1ZmZlcihbIm5ld1VSTCJdKSx4LmJ1ZmZlcihbZl0pLGIuYnVmZmVyKFsicHJvcGFnYXRlIixwLGwsImV4ZWN1dG9yLWVyciIsInJlc29sdmUiK2NdKSxDLmJ1ZmZlcihbZiwibm8tIitmXSksTS5idWZmZXIoWyJuZXctanNvbnAiLCJjYi1zdGFydCIsImpzb25wLWVycm9yIiwianNvbnAtZW5kIl0pLGEoUCwic2VuZC14aHIiK2MpLGEoUywieGhyLXJlc29sdmVkIiksYShTLCJ4aHItZG9uZSIpLGEoTixtK2MpLGEoTixtKyItZG9uZSIpLGEoTSwibmV3LWpzb25wIiksYShNLCJqc29ucC1lbmQiKSxhKE0sImNiLXN0YXJ0IiksRS5vbigicHVzaFN0YXRlLWVuZCIsaSksRS5vbigicmVwbGFjZVN0YXRlLWVuZCIsaSksd1t2XSgiaGFzaGNoYW5nZSIsaSwhMCksd1t2XSgibG9hZCIsaSwhMCksd1t2XSgicG9wc3RhdGUiLGZ1bmN0aW9uKCl7aSgwLEw+MSl9LCEwKX19LHt9XSw1OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXt9aWYod2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSl7dmFyIG89dCgiZWUiKSxpPXQoImhhbmRsZSIpLGE9dCgxMyksYz10KDEyKSxzPSJsZWFyUmVzb3VyY2VUaW1pbmdzIix1PSJhZGRFdmVudExpc3RlbmVyIixmPSJyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwiLGQ9ImJzdFJlc291cmNlIixwPSJyZXNvdXJjZSIsbD0iLXN0YXJ0IixoPSItZW5kIixtPSJmbiIrbCx2PSJmbiIraCx3PSJic3RUaW1lciIsZz0icHVzaFN0YXRlIix5PXQoImxvYWRlciIpO3kuZmVhdHVyZXMuc3RuPSEwLHQoOCksImFkZEV2ZW50TGlzdGVuZXIiaW4gd2luZG93JiZ0KDYpO3ZhciB4PU5SRVVNLm8uRVY7by5vbihtLGZ1bmN0aW9uKHQsZSl7dmFyIG49dFswXTtuIGluc3RhbmNlb2YgeCYmKHRoaXMuYnN0U3RhcnQ9eS5ub3coKSl9KSxvLm9uKHYsZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdO24gaW5zdGFuY2VvZiB4JiZpKCJic3QiLFtuLGUsdGhpcy5ic3RTdGFydCx5Lm5vdygpXSl9KSxhLm9uKG0sZnVuY3Rpb24odCxlLG4pe3RoaXMuYnN0U3RhcnQ9eS5ub3coKSx0aGlzLmJzdFR5cGU9bn0pLGEub24odixmdW5jdGlvbih0LGUpe2kodyxbZSx0aGlzLmJzdFN0YXJ0LHkubm93KCksdGhpcy5ic3RUeXBlXSl9KSxjLm9uKG0sZnVuY3Rpb24oKXt0aGlzLmJzdFN0YXJ0PXkubm93KCl9KSxjLm9uKHYsZnVuY3Rpb24odCxlKXtpKHcsW2UsdGhpcy5ic3RTdGFydCx5Lm5vdygpLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSl9KSxvLm9uKGcrbCxmdW5jdGlvbih0KXt0aGlzLnRpbWU9eS5ub3coKSx0aGlzLnN0YXJ0UGF0aD1sb2NhdGlvbi5wYXRobmFtZStsb2NhdGlvbi5oYXNofSksby5vbihnK2gsZnVuY3Rpb24odCl7aSgiYnN0SGlzdCIsW2xvY2F0aW9uLnBhdGhuYW1lK2xvY2F0aW9uLmhhc2gsdGhpcy5zdGFydFBhdGgsdGhpcy50aW1lXSl9KSx1IGluIHdpbmRvdy5wZXJmb3JtYW5jZSYmKHdpbmRvdy5wZXJmb3JtYW5jZVsiYyIrc10/d2luZG93LnBlcmZvcm1hbmNlW3VdKGYsZnVuY3Rpb24odCl7aShkLFt3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShwKV0pLHdpbmRvdy5wZXJmb3JtYW5jZVsiYyIrc10oKX0sITEpOndpbmRvdy5wZXJmb3JtYW5jZVt1XSgid2Via2l0IitmLGZ1bmN0aW9uKHQpe2koZCxbd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUocCldKSx3aW5kb3cucGVyZm9ybWFuY2VbIndlYmtpdEMiK3NdKCl9LCExKSksZG9jdW1lbnRbdV0oInNjcm9sbCIscix7cGFzc2l2ZTohMH0pLGRvY3VtZW50W3VdKCJrZXlwcmVzcyIsciwhMSksZG9jdW1lbnRbdV0oImNsaWNrIixyLCExKX19LHt9XSw2OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtmb3IodmFyIGU9dDtlJiYhZS5oYXNPd25Qcm9wZXJ0eShmKTspZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7ZSYmbyhlKX1mdW5jdGlvbiBvKHQpe2MuaW5QbGFjZSh0LFtmLGRdLCItIixpKX1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHRbMV19dmFyIGE9dCgiZWUiKS5nZXQoImV2ZW50cyIpLGM9dCgid3JhcC1mdW5jdGlvbiIpKGEsITApLHM9dCgiZ29zIiksdT1YTUxIdHRwUmVxdWVzdCxmPSJhZGRFdmVudExpc3RlbmVyIixkPSJyZW1vdmVFdmVudExpc3RlbmVyIjtlLmV4cG9ydHM9YSwiZ2V0UHJvdG90eXBlT2YiaW4gT2JqZWN0PyhyKGRvY3VtZW50KSxyKHdpbmRvdykscih1LnByb3RvdHlwZSkpOnUucHJvdG90eXBlLmhhc093blByb3BlcnR5KGYpJiYobyh3aW5kb3cpLG8odS5wcm90b3R5cGUpKSxhLm9uKGYrIi1zdGFydCIsZnVuY3Rpb24odCxlKXt2YXIgbj10WzFdLHI9cyhuLCJuckB3cmFwcGVkIixmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbi5oYW5kbGVFdmVudClyZXR1cm4gbi5oYW5kbGVFdmVudC5hcHBseShuLGFyZ3VtZW50cyl9dmFyIGU9e29iamVjdDp0LCJmdW5jdGlvbiI6bn1bdHlwZW9mIG5dO3JldHVybiBlP2MoZSwiZm4tIixudWxsLGUubmFtZXx8ImFub255bW91cyIpOm59KTt0aGlzLndyYXBwZWQ9dFsxXT1yfSksYS5vbihkKyItc3RhcnQiLGZ1bmN0aW9uKHQpe3RbMV09dGhpcy53cmFwcGVkfHx0WzFdfSl9LHt9XSw3OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbil7dmFyIHI9dFtlXTsiZnVuY3Rpb24iPT10eXBlb2YgciYmKHRbZV09ZnVuY3Rpb24oKXt2YXIgdD1pKGFyZ3VtZW50cyksZT17fTtvLmVtaXQobisiYmVmb3JlLXN0YXJ0IixbdF0sZSk7dmFyIGE7ZVttXSYmZVttXS5kdCYmKGE9ZVttXS5kdCk7dmFyIGM9ci5hcHBseSh0aGlzLHQpO3JldHVybiBvLmVtaXQobisic3RhcnQiLFt0LGFdLGMpLGMudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gby5lbWl0KG4rImVuZCIsW251bGwsdF0sYyksdH0sZnVuY3Rpb24odCl7dGhyb3cgby5lbWl0KG4rImVuZCIsW3RdLGMpLHR9KX0pfXZhciBvPXQoImVlIikuZ2V0KCJmZXRjaCIpLGk9dCgyOSksYT10KDI4KTtlLmV4cG9ydHM9bzt2YXIgYz13aW5kb3cscz0iZmV0Y2gtIix1PXMrImJvZHktIixmPVsiYXJyYXlCdWZmZXIiLCJibG9iIiwianNvbiIsInRleHQiLCJmb3JtRGF0YSJdLGQ9Yy5SZXF1ZXN0LHA9Yy5SZXNwb25zZSxsPWMuZmV0Y2gsaD0icHJvdG90eXBlIixtPSJuckBjb250ZXh0IjtkJiZwJiZsJiYoYShmLGZ1bmN0aW9uKHQsZSl7cihkW2hdLGUsdSkscihwW2hdLGUsdSl9KSxyKGMsImZldGNoIixzKSxvLm9uKHMrImVuZCIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKGUpe3ZhciByPWUuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIik7bnVsbCE9PXImJihuLnJ4U2l6ZT1yKSxvLmVtaXQocysiZG9uZSIsW251bGwsZV0sbil9ZWxzZSBvLmVtaXQocysiZG9uZSIsW3RdLG4pfSkpfSx7fV0sODpbZnVuY3Rpb24odCxlLG4pe3ZhciByPXQoImVlIikuZ2V0KCJoaXN0b3J5Iiksbz10KCJ3cmFwLWZ1bmN0aW9uIikocik7ZS5leHBvcnRzPXI7dmFyIGk9d2luZG93Lmhpc3RvcnkmJndpbmRvdy5oaXN0b3J5LmNvbnN0cnVjdG9yJiZ3aW5kb3cuaGlzdG9yeS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYT13aW5kb3cuaGlzdG9yeTtpJiZpLnB1c2hTdGF0ZSYmaS5yZXBsYWNlU3RhdGUmJihhPWkpLG8uaW5QbGFjZShhLFsicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIl0sIi0iKX0se31dLDk6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe2Z1bmN0aW9uIGUoKXtzLmVtaXQoImpzb25wLWVuZCIsW10scCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixlLCExKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixuLCExKX1mdW5jdGlvbiBuKCl7cy5lbWl0KCJqc29ucC1lcnJvciIsW10scCkscy5lbWl0KCJqc29ucC1lbmQiLFtdLHApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsZSwhMSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbiwhMSl9dmFyIHI9dCYmInN0cmluZyI9PXR5cGVvZiB0Lm5vZGVOYW1lJiYic2NyaXB0Ij09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihyKXt2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2YgdC5hZGRFdmVudExpc3RlbmVyO2lmKG8pe3ZhciBhPWkodC5zcmMpO2lmKGEpe3ZhciBmPWMoYSksZD0iZnVuY3Rpb24iPT10eXBlb2YgZi5wYXJlbnRbZi5rZXldO2lmKGQpe3ZhciBwPXt9O3UuaW5QbGFjZShmLnBhcmVudCxbZi5rZXldLCJjYi0iLHApLHQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZSwhMSksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbiwhMSkscy5lbWl0KCJuZXctanNvbnAiLFt0LnNyY10scCl9fX19fWZ1bmN0aW9uIG8oKXtyZXR1cm4iYWRkRXZlbnRMaXN0ZW5lciJpbiB3aW5kb3d9ZnVuY3Rpb24gaSh0KXt2YXIgZT10Lm1hdGNoKGYpO3JldHVybiBlP2VbMV06bnVsbH1mdW5jdGlvbiBhKHQsZSl7dmFyIG49dC5tYXRjaChwKSxyPW5bMV0sbz1uWzNdO3JldHVybiBvP2EobyxlW3JdKTplW3JdfWZ1bmN0aW9uIGModCl7dmFyIGU9dC5tYXRjaChkKTtyZXR1cm4gZSYmZS5sZW5ndGg+PTM/e2tleTplWzJdLHBhcmVudDphKGVbMV0sd2luZG93KX06e2tleTp0LHBhcmVudDp3aW5kb3d9fXZhciBzPXQoImVlIikuZ2V0KCJqc29ucCIpLHU9dCgid3JhcC1mdW5jdGlvbiIpKHMpO2lmKGUuZXhwb3J0cz1zLG8oKSl7dmFyIGY9L1s/Jl0oPzpjYWxsYmFja3xjYik9KFteJiNdKykvLGQ9LyguKilcLihbXi5dKykvLHA9L14oXHcrKShcLnwkKSguKikkLyxsPVsiYXBwZW5kQ2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJyZXBsYWNlQ2hpbGQiXTtOb2RlJiZOb2RlLnByb3RvdHlwZSYmTm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ/dS5pblBsYWNlKE5vZGUucHJvdG90eXBlLGwsImRvbS0iKToodS5pblBsYWNlKEhUTUxFbGVtZW50LnByb3RvdHlwZSxsLCJkb20tIiksdS5pblBsYWNlKEhUTUxIZWFkRWxlbWVudC5wcm90b3R5cGUsbCwiZG9tLSIpLHUuaW5QbGFjZShIVE1MQm9keUVsZW1lbnQucHJvdG90eXBlLGwsImRvbS0iKSkscy5vbigiZG9tLXN0YXJ0IixmdW5jdGlvbih0KXtyKHRbMF0pfSl9fSx7fV0sMTA6W2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj10KCJlZSIpLmdldCgibXV0YXRpb24iKSxvPXQoIndyYXAtZnVuY3Rpb24iKShyKSxpPU5SRVVNLm8uTU87ZS5leHBvcnRzPXIsaSYmKHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgaT9uZXcgaShvKHQsImZuLSIpKTppLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sTXV0YXRpb25PYnNlcnZlci5wcm90b3R5cGU9aS5wcm90b3R5cGUpfSx7fV0sMTE6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3ZhciBlPWkuY29udGV4dCgpLG49Yyh0LCJleGVjdXRvci0iLGUsbnVsbCwhMSkscj1uZXcgdShuKTtyZXR1cm4gaS5jb250ZXh0KHIpLmdldEN0eD1mdW5jdGlvbigpe3JldHVybiBlfSxyfXZhciBvPXQoIndyYXAtZnVuY3Rpb24iKSxpPXQoImVlIikuZ2V0KCJwcm9taXNlIiksYT10KCJlZSIpLmdldE9yU2V0Q29udGV4dCxjPW8oaSkscz10KDI4KSx1PU5SRVVNLm8uUFI7ZS5leHBvcnRzPWksdSYmKHdpbmRvdy5Qcm9taXNlPXIsWyJhbGwiLCJyYWNlIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT11W3RdO3VbdF09ZnVuY3Rpb24obil7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZnVuY3Rpb24oKXtpLmVtaXQoInByb3BhZ2F0ZSIsW251bGwsIW9dLGEsITEsITEpLG89b3x8IXR9fXZhciBvPSExO3MobixmdW5jdGlvbihlLG4pe1Byb21pc2UucmVzb2x2ZShuKS50aGVuKHIoImFsbCI9PT10KSxyKCExKSl9KTt2YXIgYT1lLmFwcGx5KHUsYXJndW1lbnRzKSxjPXUucmVzb2x2ZShhKTtyZXR1cm4gY319KSxbInJlc29sdmUiLCJyZWplY3QiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXVbdF07dVt0XT1mdW5jdGlvbih0KXt2YXIgbj1lLmFwcGx5KHUsYXJndW1lbnRzKTtyZXR1cm4gdCE9PW4mJmkuZW1pdCgicHJvcGFnYXRlIixbdCwhMF0sbiwhMSwhMSksbn19KSx1LnByb3RvdHlwZVsiY2F0Y2giXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKG51bGwsdCl9LHUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpyfX0pLHMoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModSksZnVuY3Rpb24odCxlKXt0cnl7cltlXT11W2VdfWNhdGNoKG4pe319KSxvLndyYXBJblBsYWNlKHUucHJvdG90eXBlLCJ0aGVuIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49by5hcmdzVG9BcnJheS5hcHBseSh0aGlzLGFyZ3VtZW50cykscj1hKGUpO3IucHJvbWlzZT1lLG5bMF09YyhuWzBdLCJjYi0iLHIsbnVsbCwhMSksblsxXT1jKG5bMV0sImNiLSIscixudWxsLCExKTt2YXIgcz10LmFwcGx5KHRoaXMsbik7cmV0dXJuIHIubmV4dFByb21pc2U9cyxpLmVtaXQoInByb3BhZ2F0ZSIsW2UsITBdLHMsITEsITEpLHN9fSksaS5vbigiZXhlY3V0b3Itc3RhcnQiLGZ1bmN0aW9uKHQpe3RbMF09Yyh0WzBdLCJyZXNvbHZlLSIsdGhpcyxudWxsLCExKSx0WzFdPWModFsxXSwicmVzb2x2ZS0iLHRoaXMsbnVsbCwhMSl9KSxpLm9uKCJleGVjdXRvci1lcnIiLGZ1bmN0aW9uKHQsZSxuKXt0WzFdKG4pfSksaS5vbigiY2ItZW5kIixmdW5jdGlvbih0LGUsbil7aS5lbWl0KCJwcm9wYWdhdGUiLFtuLCEwXSx0aGlzLm5leHRQcm9taXNlLCExLCExKX0pLGkub24oInByb3BhZ2F0ZSIsZnVuY3Rpb24odCxlLG4pe3RoaXMuZ2V0Q3R4JiYhZXx8KHRoaXMuZ2V0Q3R4PWZ1bmN0aW9uKCl7aWYodCBpbnN0YW5jZW9mIFByb21pc2UpdmFyIGU9aS5jb250ZXh0KHQpO3JldHVybiBlJiZlLmdldEN0eD9lLmdldEN0eCgpOnRoaXN9KX0pLHIudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIit1fSl9LHt9XSwxMjpbZnVuY3Rpb24odCxlLG4pe3ZhciByPXQoImVlIikuZ2V0KCJyYWYiKSxvPXQoIndyYXAtZnVuY3Rpb24iKShyKSxpPSJlcXVlc3RBbmltYXRpb25GcmFtZSI7ZS5leHBvcnRzPXIsby5pblBsYWNlKHdpbmRvdyxbInIiK2ksIm1velIiK2ksIndlYmtpdFIiK2ksIm1zUiIraV0sInJhZi0iKSxyLm9uKCJyYWYtc3RhcnQiLGZ1bmN0aW9uKHQpe3RbMF09byh0WzBdLCJmbi0iKX0pfSx7fV0sMTM6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuKXt0WzBdPWEodFswXSwiZm4tIixudWxsLG4pfWZ1bmN0aW9uIG8odCxlLG4pe3RoaXMubWV0aG9kPW4sdGhpcy50aW1lckR1cmF0aW9uPWlzTmFOKHRbMV0pPzA6K3RbMV0sdFswXT1hKHRbMF0sImZuLSIsdGhpcyxuKX12YXIgaT10KCJlZSIpLmdldCgidGltZXIiKSxhPXQoIndyYXAtZnVuY3Rpb24iKShpKSxjPSJzZXRUaW1lb3V0IixzPSJzZXRJbnRlcnZhbCIsdT0iY2xlYXJUaW1lb3V0IixmPSItc3RhcnQiLGQ9Ii0iO2UuZXhwb3J0cz1pLGEuaW5QbGFjZSh3aW5kb3csW2MsInNldEltbWVkaWF0ZSJdLGMrZCksYS5pblBsYWNlKHdpbmRvdyxbc10scytkKSxhLmluUGxhY2Uod2luZG93LFt1LCJjbGVhckltbWVkaWF0ZSJdLHUrZCksaS5vbihzK2YsciksaS5vbihjK2Ysbyl9LHt9XSwxNDpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlKXtkLmluUGxhY2UoZSxbIm9ucmVhZHlzdGF0ZWNoYW5nZSJdLCJmbi0iLGMpfWZ1bmN0aW9uIG8oKXt2YXIgdD10aGlzLGU9Zi5jb250ZXh0KHQpO3QucmVhZHlTdGF0ZT4zJiYhZS5yZXNvbHZlZCYmKGUucmVzb2x2ZWQ9ITAsZi5lbWl0KCJ4aHItcmVzb2x2ZWQiLFtdLHQpKSxkLmluUGxhY2UodCxnLCJmbi0iLGMpfWZ1bmN0aW9uIGkodCl7eS5wdXNoKHQpLGgmJihiP2IudGhlbihhKTp2P3YoYSk6KEU9LUUsUi5kYXRhPUUpKX1mdW5jdGlvbiBhKCl7Zm9yKHZhciB0PTA7dDx5Lmxlbmd0aDt0KyspcihbXSx5W3RdKTt5Lmxlbmd0aCYmKHk9W10pfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gZX1mdW5jdGlvbiBzKHQsZSl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dO3JldHVybiBlfXQoNik7dmFyIHU9dCgiZWUiKSxmPXUuZ2V0KCJ4aHIiKSxkPXQoIndyYXAtZnVuY3Rpb24iKShmKSxwPU5SRVVNLm8sbD1wLlhIUixoPXAuTU8sbT1wLlBSLHY9cC5TSSx3PSJyZWFkeXN0YXRlY2hhbmdlIixnPVsib25sb2FkIiwib25lcnJvciIsIm9uYWJvcnQiLCJvbmxvYWRzdGFydCIsIm9ubG9hZGVuZCIsIm9ucHJvZ3Jlc3MiLCJvbnRpbWVvdXQiXSx5PVtdO2UuZXhwb3J0cz1mO3ZhciB4PXdpbmRvdy5YTUxIdHRwUmVxdWVzdD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbCh0KTt0cnl7Zi5lbWl0KCJuZXcteGhyIixbZV0sZSksZS5hZGRFdmVudExpc3RlbmVyKHcsbywhMSl9Y2F0Y2gobil7dHJ5e2YuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLFtuXSl9Y2F0Y2gocil7fX1yZXR1cm4gZX07aWYocyhsLHgpLHgucHJvdG90eXBlPWwucHJvdG90eXBlLGQuaW5QbGFjZSh4LnByb3RvdHlwZSxbIm9wZW4iLCJzZW5kIl0sIi14aHItIixjKSxmLm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxlKXtyKHQsZSksaShlKX0pLGYub24oIm9wZW4teGhyLXN0YXJ0IixyKSxoKXt2YXIgYj1tJiZtLnJlc29sdmUoKTtpZighdiYmIW0pe3ZhciBFPTEsUj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShFKTtuZXcgaChhKS5vYnNlcnZlKFIse2NoYXJhY3RlckRhdGE6ITB9KX19ZWxzZSB1Lm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQpe3RbMF0mJnRbMF0udHlwZT09PXd8fGEoKX0pfSx7fV0sMTU6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe2lmKCFjKHQpKXJldHVybiBudWxsO3ZhciBlPXdpbmRvdy5OUkVVTTtpZighZS5sb2FkZXJfY29uZmlnKXJldHVybiBudWxsO3ZhciBuPShlLmxvYWRlcl9jb25maWcuYWNjb3VudElEfHwiIikudG9TdHJpbmcoKXx8bnVsbCxyPShlLmxvYWRlcl9jb25maWcuYWdlbnRJRHx8IiIpLnRvU3RyaW5nKCl8fG51bGwsdT0oZS5sb2FkZXJfY29uZmlnLnRydXN0S2V5fHwiIikudG9TdHJpbmcoKXx8bnVsbDtpZighbnx8IXIpcmV0dXJuIG51bGw7dmFyIGg9bC5nZW5lcmF0ZVNwYW5JZCgpLG09bC5nZW5lcmF0ZVRyYWNlSWQoKSx2PURhdGUubm93KCksdz17c3BhbklkOmgsdHJhY2VJZDptLHRpbWVzdGFtcDp2fTtyZXR1cm4odC5zYW1lT3JpZ2lufHxzKHQpJiZwKCkpJiYody50cmFjZUNvbnRleHRQYXJlbnRIZWFkZXI9byhoLG0pLHcudHJhY2VDb250ZXh0U3RhdGVIZWFkZXI9aShoLHYsbixyLHUpKSwodC5zYW1lT3JpZ2luJiYhZigpfHwhdC5zYW1lT3JpZ2luJiZzKHQpJiZkKCkpJiYody5uZXdyZWxpY0hlYWRlcj1hKGgsbSx2LG4scix1KSksd31mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIjAwLSIrZSsiLSIrdCsiLTAxIn1mdW5jdGlvbiBpKHQsZSxuLHIsbyl7dmFyIGk9MCxhPSIiLGM9MSxzPSIiLHU9IiI7cmV0dXJuIG8rIkBucj0iK2krIi0iK2MrIi0iK24rIi0iK3IrIi0iK3QrIi0iK2ErIi0iK3MrIi0iK3UrIi0iK2V9ZnVuY3Rpb24gYSh0LGUsbixyLG8saSl7dmFyIGE9ImJ0b2EiaW4gd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LmJ0b2E7aWYoIWEpcmV0dXJuIG51bGw7dmFyIGM9e3Y6WzAsMV0sZDp7dHk6IkJyb3dzZXIiLGFjOnIsYXA6byxpZDp0LHRyOmUsdGk6bn19O3JldHVybiBpJiZyIT09aSYmKGMuZC50az1pKSxidG9hKEpTT04uc3RyaW5naWZ5KGMpKX1mdW5jdGlvbiBjKHQpe3JldHVybiB1KCkmJnModCl9ZnVuY3Rpb24gcyh0KXt2YXIgZT0hMSxuPXt9O2lmKCJpbml0ImluIE5SRVVNJiYiZGlzdHJpYnV0ZWRfdHJhY2luZyJpbiBOUkVVTS5pbml0JiYobj1OUkVVTS5pbml0LmRpc3RyaWJ1dGVkX3RyYWNpbmcpLHQuc2FtZU9yaWdpbillPSEwO2Vsc2UgaWYobi5hbGxvd2VkX29yaWdpbnMgaW5zdGFuY2VvZiBBcnJheSlmb3IodmFyIHI9MDtyPG4uYWxsb3dlZF9vcmlnaW5zLmxlbmd0aDtyKyspe3ZhciBvPWgobi5hbGxvd2VkX29yaWdpbnNbcl0pO2lmKHQuaG9zdG5hbWU9PT1vLmhvc3RuYW1lJiZ0LnByb3RvY29sPT09by5wcm90b2NvbCYmdC5wb3J0PT09by5wb3J0KXtlPSEwO2JyZWFrfX1yZXR1cm4gZX1mdW5jdGlvbiB1KCl7cmV0dXJuImluaXQiaW4gTlJFVU0mJiJkaXN0cmlidXRlZF90cmFjaW5nImluIE5SRVVNLmluaXQmJiEhTlJFVU0uaW5pdC5kaXN0cmlidXRlZF90cmFjaW5nLmVuYWJsZWR9ZnVuY3Rpb24gZigpe3JldHVybiJpbml0ImluIE5SRVVNJiYiZGlzdHJpYnV0ZWRfdHJhY2luZyJpbiBOUkVVTS5pbml0JiYhIU5SRVVNLmluaXQuZGlzdHJpYnV0ZWRfdHJhY2luZy5leGNsdWRlX25ld3JlbGljX2hlYWRlcn1mdW5jdGlvbiBkKCl7cmV0dXJuImluaXQiaW4gTlJFVU0mJiJkaXN0cmlidXRlZF90cmFjaW5nImluIE5SRVVNLmluaXQmJk5SRVVNLmluaXQuZGlzdHJpYnV0ZWRfdHJhY2luZy5jb3JzX3VzZV9uZXdyZWxpY19oZWFkZXIhPT0hMX1mdW5jdGlvbiBwKCl7cmV0dXJuImluaXQiaW4gTlJFVU0mJiJkaXN0cmlidXRlZF90cmFjaW5nImluIE5SRVVNLmluaXQmJiEhTlJFVU0uaW5pdC5kaXN0cmlidXRlZF90cmFjaW5nLmNvcnNfdXNlX3RyYWNlY29udGV4dF9oZWFkZXJzfXZhciBsPXQoMjUpLGg9dCgxNyk7ZS5leHBvcnRzPXtnZW5lcmF0ZVRyYWNlUGF5bG9hZDpyLHNob3VsZEdlbmVyYXRlVHJhY2U6Y319LHt9XSwxNjpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7dmFyIGU9dGhpcy5wYXJhbXMsbj10aGlzLm1ldHJpY3M7aWYoIXRoaXMuZW5kZWQpe3RoaXMuZW5kZWQ9ITA7Zm9yKHZhciByPTA7cjxwO3IrKyl0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZFtyXSx0aGlzLmxpc3RlbmVyLCExKTtlLmFib3J0ZWR8fChuLmR1cmF0aW9uPWEubm93KCktdGhpcy5zdGFydFRpbWUsdGhpcy5sb2FkQ2FwdHVyZUNhbGxlZHx8NCE9PXQucmVhZHlTdGF0ZT9udWxsPT1lLnN0YXR1cyYmKGUuc3RhdHVzPTApOmkodGhpcyx0KSxuLmNiVGltZT10aGlzLmNiVGltZSxmLmVtaXQoInhoci1kb25lIixbdF0sdCksYygieGhyIixbZSxuLHRoaXMuc3RhcnRUaW1lXSkpfX1mdW5jdGlvbiBvKHQsZSl7dmFyIG49cyhlKSxyPXQucGFyYW1zO3IuaG9zdD1uLmhvc3RuYW1lKyI6IituLnBvcnQsci5wYXRobmFtZT1uLnBhdGhuYW1lLHQucGFyc2VkT3JpZ2luPXMoZSksdC5zYW1lT3JpZ2luPXQucGFyc2VkT3JpZ2luLnNhbWVPcmlnaW59ZnVuY3Rpb24gaSh0LGUpe3QucGFyYW1zLnN0YXR1cz1lLnN0YXR1czt2YXIgbj12KGUsdC5sYXN0U2l6ZSk7aWYobiYmKHQubWV0cmljcy5yeFNpemU9biksdC5zYW1lT3JpZ2luKXt2YXIgcj1lLmdldFJlc3BvbnNlSGVhZGVyKCJYLU5ld1JlbGljLUFwcC1EYXRhIik7ciYmKHQucGFyYW1zLmNhdD1yLnNwbGl0KCIsICIpLnBvcCgpKX10LmxvYWRDYXB0dXJlQ2FsbGVkPSEwfXZhciBhPXQoImxvYWRlciIpO2lmKGEueGhyV3JhcHBhYmxlKXt2YXIgYz10KCJoYW5kbGUiKSxzPXQoMTcpLHU9dCgxNSkuZ2VuZXJhdGVUcmFjZVBheWxvYWQsZj10KCJlZSIpLGQ9WyJsb2FkIiwiZXJyb3IiLCJhYm9ydCIsInRpbWVvdXQiXSxwPWQubGVuZ3RoLGw9dCgiaWQiKSxoPXQoMjEpLG09dCgyMCksdj10KDE4KSx3PXdpbmRvdy5YTUxIdHRwUmVxdWVzdDthLmZlYXR1cmVzLnhocj0hMCx0KDE0KSx0KDcpLGYub24oIm5ldy14aHIiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZS50b3RhbENicz0wLGUuY2FsbGVkPTAsZS5jYlRpbWU9MCxlLmVuZD1yLGUuZW5kZWQ9ITEsZS54aHJHdWlkcz17fSxlLmxhc3RTaXplPW51bGwsZS5sb2FkQ2FwdHVyZUNhbGxlZD0hMSx0LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKG4pe2koZSx0KX0sITEpLGgmJihoPjM0fHxoPDEwKXx8d2luZG93Lm9wZXJhfHx0LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixmdW5jdGlvbih0KXtlLmxhc3RTaXplPXQubG9hZGVkfSwhMSl9KSxmLm9uKCJvcGVuLXhoci1zdGFydCIsZnVuY3Rpb24odCl7dGhpcy5wYXJhbXM9e21ldGhvZDp0WzBdfSxvKHRoaXMsdFsxXSksdGhpcy5tZXRyaWNzPXt9fSksZi5vbigib3Blbi14aHItZW5kIixmdW5jdGlvbih0LGUpeyJsb2FkZXJfY29uZmlnImluIE5SRVVNJiYieHBpZCJpbiBOUkVVTS5sb2FkZXJfY29uZmlnJiZ0aGlzLnNhbWVPcmlnaW4mJmUuc2V0UmVxdWVzdEhlYWRlcigiWC1OZXdSZWxpYy1JRCIsTlJFVU0ubG9hZGVyX2NvbmZpZy54cGlkKTt2YXIgbj11KHRoaXMucGFyc2VkT3JpZ2luKTtpZihuKXt2YXIgcj0hMTtuLm5ld3JlbGljSGVhZGVyJiYoZS5zZXRSZXF1ZXN0SGVhZGVyKCJuZXdyZWxpYyIsbi5uZXdyZWxpY0hlYWRlcikscj0hMCksbi50cmFjZUNvbnRleHRQYXJlbnRIZWFkZXImJihlLnNldFJlcXVlc3RIZWFkZXIoInRyYWNlcGFyZW50IixuLnRyYWNlQ29udGV4dFBhcmVudEhlYWRlciksbi50cmFjZUNvbnRleHRTdGF0ZUhlYWRlciYmZS5zZXRSZXF1ZXN0SGVhZGVyKCJ0cmFjZXN0YXRlIixuLnRyYWNlQ29udGV4dFN0YXRlSGVhZGVyKSxyPSEwKSxyJiYodGhpcy5kdD1uKX19KSxmLm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm1ldHJpY3Mscj10WzBdLG89dGhpcztpZihuJiZyKXt2YXIgaT1tKHIpO2kmJihuLnR4U2l6ZT1pKX10aGlzLnN0YXJ0VGltZT1hLm5vdygpLHRoaXMubGlzdGVuZXI9ZnVuY3Rpb24odCl7dHJ5eyJhYm9ydCIhPT10LnR5cGV8fG8ubG9hZENhcHR1cmVDYWxsZWR8fChvLnBhcmFtcy5hYm9ydGVkPSEwKSwoImxvYWQiIT09dC50eXBlfHxvLmNhbGxlZD09PW8udG90YWxDYnMmJihvLm9ubG9hZENhbGxlZHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGUub25sb2FkKSkmJm8uZW5kKGUpfWNhdGNoKG4pe3RyeXtmLmVtaXQoImludGVybmFsLWVycm9yIixbbl0pfWNhdGNoKHIpe319fTtmb3IodmFyIGM9MDtjPHA7YysrKWUuYWRkRXZlbnRMaXN0ZW5lcihkW2NdLHRoaXMubGlzdGVuZXIsITEpfSksZi5vbigieGhyLWNiLXRpbWUiLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLmNiVGltZSs9dCxlP3RoaXMub25sb2FkQ2FsbGVkPSEwOnRoaXMuY2FsbGVkKz0xLHRoaXMuY2FsbGVkIT09dGhpcy50b3RhbENic3x8IXRoaXMub25sb2FkQ2FsbGVkJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5vbmxvYWR8fHRoaXMuZW5kKG4pfSksZi5vbigieGhyLWxvYWQtYWRkZWQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49IiIrbCh0KSshIWU7dGhpcy54aHJHdWlkcyYmIXRoaXMueGhyR3VpZHNbbl0mJih0aGlzLnhockd1aWRzW25dPSEwLHRoaXMudG90YWxDYnMrPTEpfSksZi5vbigieGhyLWxvYWQtcmVtb3ZlZCIsZnVuY3Rpb24odCxlKXt2YXIgbj0iIitsKHQpKyEhZTt0aGlzLnhockd1aWRzJiZ0aGlzLnhockd1aWRzW25dJiYoZGVsZXRlIHRoaXMueGhyR3VpZHNbbl0sdGhpcy50b3RhbENicy09MSl9KSxmLm9uKCJhZGRFdmVudExpc3RlbmVyLWVuZCIsZnVuY3Rpb24odCxlKXtlIGluc3RhbmNlb2YgdyYmImxvYWQiPT09dFswXSYmZi5lbWl0KCJ4aHItbG9hZC1hZGRlZCIsW3RbMV0sdFsyXV0sZSl9KSxmLm9uKCJyZW1vdmVFdmVudExpc3RlbmVyLWVuZCIsZnVuY3Rpb24odCxlKXtlIGluc3RhbmNlb2YgdyYmImxvYWQiPT09dFswXSYmZi5lbWl0KCJ4aHItbG9hZC1yZW1vdmVkIixbdFsxXSx0WzJdXSxlKX0pLGYub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LGUsbil7ZSBpbnN0YW5jZW9mIHcmJigib25sb2FkIj09PW4mJih0aGlzLm9ubG9hZD0hMCksKCJsb2FkIj09PSh0WzBdJiZ0WzBdLnR5cGUpfHx0aGlzLm9ubG9hZCkmJih0aGlzLnhockNiU3RhcnQ9YS5ub3coKSkpfSksZi5vbigiZm4tZW5kIixmdW5jdGlvbih0LGUpe3RoaXMueGhyQ2JTdGFydCYmZi5lbWl0KCJ4aHItY2ItdGltZSIsW2Eubm93KCktdGhpcy54aHJDYlN0YXJ0LHRoaXMub25sb2FkLGVdLGUpfSksZi5vbigiZmV0Y2gtYmVmb3JlLXN0YXJ0IixmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7dmFyIG49ITE7cmV0dXJuIGUubmV3cmVsaWNIZWFkZXImJih0LnNldCgibmV3cmVsaWMiLGUubmV3cmVsaWNIZWFkZXIpLG49ITApLGUudHJhY2VDb250ZXh0UGFyZW50SGVhZGVyJiYodC5zZXQoInRyYWNlcGFyZW50IixlLnRyYWNlQ29udGV4dFBhcmVudEhlYWRlciksZS50cmFjZUNvbnRleHRTdGF0ZUhlYWRlciYmdC5zZXQoInRyYWNlc3RhdGUiLGUudHJhY2VDb250ZXh0U3RhdGVIZWFkZXIpLG49ITApLG59dmFyIG4scj10WzFdfHx7fTsic3RyaW5nIj09dHlwZW9mIHRbMF0/bj10WzBdOnRbMF0mJnRbMF0udXJsP249dFswXS51cmw6d2luZG93LlVSTCYmdFswXSYmdFswXWluc3RhbmNlb2YgVVJMJiYobj10WzBdLmhyZWYpLG4mJih0aGlzLnBhcnNlZE9yaWdpbj1zKG4pLHRoaXMuc2FtZU9yaWdpbj10aGlzLnBhcnNlZE9yaWdpbi5zYW1lT3JpZ2luKTt2YXIgbz11KHRoaXMucGFyc2VkT3JpZ2luKTtpZihvJiYoby5uZXdyZWxpY0hlYWRlcnx8by50cmFjZUNvbnRleHRQYXJlbnRIZWFkZXIpKWlmKCJzdHJpbmciPT10eXBlb2YgdFswXXx8d2luZG93LlVSTCYmdFswXSYmdFswXWluc3RhbmNlb2YgVVJMKXt2YXIgaT17fTtmb3IodmFyIGEgaW4gcilpW2FdPXJbYV07aS5oZWFkZXJzPW5ldyBIZWFkZXJzKHIuaGVhZGVyc3x8e30pLGUoaS5oZWFkZXJzLG8pJiYodGhpcy5kdD1vKSx0Lmxlbmd0aD4xP3RbMV09aTp0LnB1c2goaSl9ZWxzZSB0WzBdJiZ0WzBdLmhlYWRlcnMmJmUodFswXS5oZWFkZXJzLG8pJiYodGhpcy5kdD1vKX0pfX0se31dLDE3OltmdW5jdGlvbih0LGUsbil7dmFyIHI9e307ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHQgaW4gcilyZXR1cm4gclt0XTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbj13aW5kb3cubG9jYXRpb24sbz17fTtlLmhyZWY9dCxvLnBvcnQ9ZS5wb3J0O3ZhciBpPWUuaHJlZi5zcGxpdCgiOi8vIik7IW8ucG9ydCYmaVsxXSYmKG8ucG9ydD1pWzFdLnNwbGl0KCIvIilbMF0uc3BsaXQoIkAiKS5wb3AoKS5zcGxpdCgiOiIpWzFdKSxvLnBvcnQmJiIwIiE9PW8ucG9ydHx8KG8ucG9ydD0iaHR0cHMiPT09aVswXT8iNDQzIjoiODAiKSxvLmhvc3RuYW1lPWUuaG9zdG5hbWV8fG4uaG9zdG5hbWUsby5wYXRobmFtZT1lLnBhdGhuYW1lLG8ucHJvdG9jb2w9aVswXSwiLyIhPT1vLnBhdGhuYW1lLmNoYXJBdCgwKSYmKG8ucGF0aG5hbWU9Ii8iK28ucGF0aG5hbWUpO3ZhciBhPSFlLnByb3RvY29sfHwiOiI9PT1lLnByb3RvY29sfHxlLnByb3RvY29sPT09bi5wcm90b2NvbCxjPWUuaG9zdG5hbWU9PT1kb2N1bWVudC5kb21haW4mJmUucG9ydD09PW4ucG9ydDtyZXR1cm4gby5zYW1lT3JpZ2luPWEmJighZS5ob3N0bmFtZXx8YyksIi8iPT09by5wYXRobmFtZSYmKHJbdF09byksb319LHt9XSwxODpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlKXt2YXIgbj10LnJlc3BvbnNlVHlwZTtyZXR1cm4ianNvbiI9PT1uJiZudWxsIT09ZT9lOiJhcnJheWJ1ZmZlciI9PT1ufHwiYmxvYiI9PT1ufHwianNvbiI9PT1uP28odC5yZXNwb25zZSk6InRleHQiPT09bnx8IiI9PT1ufHx2b2lkIDA9PT1uP28odC5yZXNwb25zZVRleHQpOnZvaWQgMH12YXIgbz10KDIwKTtlLmV4cG9ydHM9cn0se31dLDE5OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaSh0LFt1Lm5vdygpXS5jb25jYXQoYyhhcmd1bWVudHMpKSxlP251bGw6dGhpcyxuKSxlP3ZvaWQgMDp0aGlzfX12YXIgaT10KCJoYW5kbGUiKSxhPXQoMjgpLGM9dCgyOSkscz10KCJlZSIpLmdldCgidHJhY2VyIiksdT10KCJsb2FkZXIiKSxmPU5SRVVNOyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93Lm5ld3JlbGljJiYobmV3cmVsaWM9Zik7dmFyIGQ9WyJzZXRQYWdlVmlld05hbWUiLCJzZXRDdXN0b21BdHRyaWJ1dGUiLCJzZXRFcnJvckhhbmRsZXIiLCJmaW5pc2hlZCIsImFkZFRvVHJhY2UiLCJpbmxpbmVIaXQiLCJhZGRSZWxlYXNlIl0scD0iYXBpLSIsbD1wKyJpeG4tIjthKGQsZnVuY3Rpb24odCxlKXtmW2VdPW8ocCtlLCEwLCJhcGkiKX0pLGYuYWRkUGFnZUFjdGlvbj1vKHArImFkZFBhZ2VBY3Rpb24iLCEwKSxmLnNldEN1cnJlbnRSb3V0ZU5hbWU9byhwKyJyb3V0ZU5hbWUiLCEwKSxlLmV4cG9ydHM9bmV3cmVsaWMsZi5pbnRlcmFjdGlvbj1mdW5jdGlvbigpe3JldHVybihuZXcgcikuZ2V0KCl9O3ZhciBoPXIucHJvdG90eXBlPXtjcmVhdGVUcmFjZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj17fSxyPXRoaXMsbz0iZnVuY3Rpb24iPT10eXBlb2YgZTtyZXR1cm4gaShsKyJ0cmFjZXIiLFt1Lm5vdygpLHQsbl0sciksZnVuY3Rpb24oKXtpZihzLmVtaXQoKG8/IiI6Im5vLSIpKyJmbi1zdGFydCIsW3Uubm93KCkscixvXSxuKSxvKXRyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2F0Y2godCl7dGhyb3cgcy5lbWl0KCJmbi1lcnIiLFthcmd1bWVudHMsdGhpcyx0XSxuKSx0fWZpbmFsbHl7cy5lbWl0KCJmbi1lbmQiLFt1Lm5vdygpXSxuKX19fX07YSgiYWN0aW9uVGV4dCxzZXROYW1lLHNldEF0dHJpYnV0ZSxzYXZlLGlnbm9yZSxvbkVuZCxnZXRDb250ZXh0LGVuZCxnZXQiLnNwbGl0KCIsIiksZnVuY3Rpb24odCxlKXtoW2VdPW8obCtlKX0pLG5ld3JlbGljLm5vdGljZUVycm9yPWZ1bmN0aW9uKHQsZSl7InN0cmluZyI9PXR5cGVvZiB0JiYodD1uZXcgRXJyb3IodCkpLGkoImVyciIsW3QsdS5ub3coKSwhMSxlXSl9fSx7fV0sMjA6W2Z1bmN0aW9uKHQsZSxuKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aClyZXR1cm4gdC5sZW5ndGg7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZ0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJnQuYnl0ZUxlbmd0aClyZXR1cm4gdC5ieXRlTGVuZ3RoO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYiYmdCBpbnN0YW5jZW9mIEJsb2ImJnQuc2l6ZSlyZXR1cm4gdC5zaXplO2lmKCEoInVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YSYmdCBpbnN0YW5jZW9mIEZvcm1EYXRhKSl0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpLmxlbmd0aH1jYXRjaChlKXtyZXR1cm59fX19LHt9XSwyMTpbZnVuY3Rpb24odCxlLG4pe3ZhciByPTAsbz1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9GaXJlZm94W1wvXHNdKFxkK1wuXGQrKS8pO28mJihyPStvWzFdKSxlLmV4cG9ydHM9cn0se31dLDIyOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe3JldHVybiBjLmV4aXN0cyYmcGVyZm9ybWFuY2Uubm93P01hdGgucm91bmQocGVyZm9ybWFuY2Uubm93KCkpOihpPU1hdGgubWF4KChuZXcgRGF0ZSkuZ2V0VGltZSgpLGkpKS1hfWZ1bmN0aW9uIG8oKXtyZXR1cm4gaX12YXIgaT0obmV3IERhdGUpLmdldFRpbWUoKSxhPWksYz10KDMwKTtlLmV4cG9ydHM9cixlLmV4cG9ydHMub2Zmc2V0PWEsZS5leHBvcnRzLmdldExhc3RUaW1lc3RhbXA9b30se31dLDIzOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtyZXR1cm4hKCF0fHwhdC5wcm90b2NvbHx8ImZpbGU6Ij09PXQucHJvdG9jb2wpfWUuZXhwb3J0cz1yfSx7fV0sMjQ6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSl7dmFyIG49dC5nZXRFbnRyaWVzKCk7bi5mb3JFYWNoKGZ1bmN0aW9uKHQpeyJmaXJzdC1wYWludCI9PT10Lm5hbWU/ZCgidGltaW5nIixbImZwIixNYXRoLmZsb29yKHQuc3RhcnRUaW1lKV0pOiJmaXJzdC1jb250ZW50ZnVsLXBhaW50Ij09PXQubmFtZSYmZCgidGltaW5nIixbImZjcCIsTWF0aC5mbG9vcih0LnN0YXJ0VGltZSldKX0pfWZ1bmN0aW9uIG8odCxlKXt2YXIgbj10LmdldEVudHJpZXMoKTtuLmxlbmd0aD4wJiZkKCJsY3AiLFtuW24ubGVuZ3RoLTFdXSl9ZnVuY3Rpb24gaSh0KXt0LmdldEVudHJpZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuaGFkUmVjZW50SW5wdXR8fGQoImNscyIsW3RdKX0pfWZ1bmN0aW9uIGEodCl7aWYodCBpbnN0YW5jZW9mIGgmJiF2KXt2YXIgZT1NYXRoLnJvdW5kKHQudGltZVN0YW1wKSxuPXt0eXBlOnQudHlwZX07ZTw9cC5ub3coKT9uLmZpZD1wLm5vdygpLWU6ZT5wLm9mZnNldCYmZTw9RGF0ZS5ub3coKT8oZS09cC5vZmZzZXQsbi5maWQ9cC5ub3coKS1lKTplPXAubm93KCksdj0hMCxkKCJ0aW1pbmciLFsiZmkiLGUsbl0pfX1mdW5jdGlvbiBjKHQpe2QoInBhZ2VIaWRlIixbcC5ub3coKSx0XSl9aWYoISgiaW5pdCJpbiBOUkVVTSYmInBhZ2Vfdmlld190aW1pbmciaW4gTlJFVU0uaW5pdCYmImVuYWJsZWQiaW4gTlJFVU0uaW5pdC5wYWdlX3ZpZXdfdGltaW5nJiZOUkVVTS5pbml0LnBhZ2Vfdmlld190aW1pbmcuZW5hYmxlZD09PSExKSl7dmFyIHMsdSxmLGQ9dCgiaGFuZGxlIikscD10KCJsb2FkZXIiKSxsPXQoMjcpLGg9TlJFVU0uby5FVjtpZigiUGVyZm9ybWFuY2VPYnNlcnZlciJpbiB3aW5kb3cmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuUGVyZm9ybWFuY2VPYnNlcnZlcil7cz1uZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihyKTt0cnl7cy5vYnNlcnZlKHtlbnRyeVR5cGVzOlsicGFpbnQiXX0pfWNhdGNoKG0pe311PW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKG8pO3RyeXt1Lm9ic2VydmUoe2VudHJ5VHlwZXM6WyJsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnQiXX0pfWNhdGNoKG0pe31mPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGkpO3RyeXtmLm9ic2VydmUoe3R5cGU6ImxheW91dC1zaGlmdCIsYnVmZmVyZWQ6ITB9KX1jYXRjaChtKXt9fWlmKCJhZGRFdmVudExpc3RlbmVyImluIGRvY3VtZW50KXt2YXIgdj0hMSx3PVsiY2xpY2siLCJrZXlkb3duIiwibW91c2Vkb3duIiwicG9pbnRlcmRvd24iLCJ0b3VjaHN0YXJ0Il07dy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIodCxhLCExKX0pfWwoYyl9fSx7fV0sMjU6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7ZnVuY3Rpb24gdCgpe3JldHVybiBlPzE1JmVbbisrXToxNipNYXRoLnJhbmRvbSgpfDB9dmFyIGU9bnVsbCxuPTAscj13aW5kb3cuY3J5cHRvfHx3aW5kb3cubXNDcnlwdG87ciYmci5nZXRSYW5kb21WYWx1ZXMmJihlPXIuZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDMxKSkpO2Zvcih2YXIgbyxpPSJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLGE9IiIsYz0wO2M8aS5sZW5ndGg7YysrKW89aVtjXSwieCI9PT1vP2ErPXQoKS50b1N0cmluZygxNik6InkiPT09bz8obz0zJnQoKXw4LGErPW8udG9TdHJpbmcoMTYpKTphKz1vO3JldHVybiBhfWZ1bmN0aW9uIG8oKXtyZXR1cm4gYSgxNil9ZnVuY3Rpb24gaSgpe3JldHVybiBhKDMyKX1mdW5jdGlvbiBhKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbj8xNSZuW3IrK106MTYqTWF0aC5yYW5kb20oKXwwfXZhciBuPW51bGwscj0wLG89d2luZG93LmNyeXB0b3x8d2luZG93Lm1zQ3J5cHRvO28mJm8uZ2V0UmFuZG9tVmFsdWVzJiZVaW50OEFycmF5JiYobj1vLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgzMSkpKTtmb3IodmFyIGk9W10sYT0wO2E8dDthKyspaS5wdXNoKGUoKS50b1N0cmluZygxNikpO3JldHVybiBpLmpvaW4oIiIpfWUuZXhwb3J0cz17Z2VuZXJhdGVVdWlkOnIsZ2VuZXJhdGVTcGFuSWQ6byxnZW5lcmF0ZVRyYWNlSWQ6aX19LHt9XSwyNjpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlKXtpZighbylyZXR1cm4hMTtpZih0IT09bylyZXR1cm4hMTtpZighZSlyZXR1cm4hMDtpZighaSlyZXR1cm4hMTtmb3IodmFyIG49aS5zcGxpdCgiLiIpLHI9ZS5zcGxpdCgiLiIpLGE9MDthPHIubGVuZ3RoO2ErKylpZihyW2FdIT09blthXSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgbz1udWxsLGk9bnVsbCxhPS9WZXJzaW9uXC8oXFMrKVxzK1NhZmFyaS87aWYobmF2aWdhdG9yLnVzZXJBZ2VudCl7dmFyIGM9bmF2aWdhdG9yLnVzZXJBZ2VudCxzPWMubWF0Y2goYSk7cyYmYy5pbmRleE9mKCJDaHJvbWUiKT09PS0xJiZjLmluZGV4T2YoIkNocm9taXVtIik9PT0tMSYmKG89IlNhZmFyaSIsaT1zWzFdKX1lLmV4cG9ydHM9e2FnZW50Om8sdmVyc2lvbjppLG1hdGNoOnJ9fSx7fV0sMjc6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe2Z1bmN0aW9uIGUoKXt0KGEmJmRvY3VtZW50W2FdP2RvY3VtZW50W2FdOmRvY3VtZW50W29dPyJoaWRkZW4iOiJ2aXNpYmxlIil9ImFkZEV2ZW50TGlzdGVuZXIiaW4gZG9jdW1lbnQmJmkmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoaSxlLCExKX1lLmV4cG9ydHM9cjt2YXIgbyxpLGE7InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5oaWRkZW4/KG89ImhpZGRlbiIsaT0idmlzaWJpbGl0eWNoYW5nZSIsYT0idmlzaWJpbGl0eVN0YXRlIik6InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5tc0hpZGRlbj8obz0ibXNIaWRkZW4iLGk9Im1zdmlzaWJpbGl0eWNoYW5nZSIpOiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQud2Via2l0SGlkZGVuJiYobz0id2Via2l0SGlkZGVuIixpPSJ3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlIixhPSJ3ZWJraXRWaXNpYmlsaXR5U3RhdGUiKX0se31dLDI4OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUpe3ZhciBuPVtdLHI9IiIsaT0wO2ZvcihyIGluIHQpby5jYWxsKHQscikmJihuW2ldPWUocix0W3JdKSxpKz0xKTtyZXR1cm4gbn12YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1yfSx7fV0sMjk6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuKXtlfHwoZT0wKSwidW5kZWZpbmVkIj09dHlwZW9mIG4mJihuPXQ/dC5sZW5ndGg6MCk7Zm9yKHZhciByPS0xLG89bi1lfHwwLGk9QXJyYXkobzwwPzA6byk7KytyPG87KWlbcl09dFtlK3JdO3JldHVybiBpfWUuZXhwb3J0cz1yfSx7fV0sMzA6W2Z1bmN0aW9uKHQsZSxuKXtlLmV4cG9ydHM9e2V4aXN0czoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydH19LHt9XSxlZTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoKXt9ZnVuY3Rpb24gbyh0KXtmdW5jdGlvbiBlKHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2Ygcj90OnQ/dSh0LHMsYSk6YSgpfWZ1bmN0aW9uIG4obixyLG8saSxhKXtpZihhIT09ITEmJihhPSEwKSwhbC5hYm9ydGVkfHxpKXt0JiZhJiZ0KG4scixvKTtmb3IodmFyIGM9ZShvKSxzPW0obiksdT1zLmxlbmd0aCxmPTA7Zjx1O2YrKylzW2ZdLmFwcGx5KGMscik7dmFyIHA9ZFt5W25dXTtyZXR1cm4gcCYmcC5wdXNoKFt4LG4scixjXSksY319ZnVuY3Rpb24gaSh0LGUpe2dbdF09bSh0KS5jb25jYXQoZSl9ZnVuY3Rpb24gaCh0LGUpe3ZhciBuPWdbdF07aWYobilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPT09ZSYmbi5zcGxpY2UociwxKX1mdW5jdGlvbiBtKHQpe3JldHVybiBnW3RdfHxbXX1mdW5jdGlvbiB2KHQpe3JldHVybiBwW3RdPXBbdF18fG8obil9ZnVuY3Rpb24gdyh0LGUpe2YodCxmdW5jdGlvbih0LG4pe2U9ZXx8ImZlYXR1cmUiLHlbbl09ZSxlIGluIGR8fChkW2VdPVtdKX0pfXZhciBnPXt9LHk9e30seD17b246aSxhZGRFdmVudExpc3RlbmVyOmkscmVtb3ZlRXZlbnRMaXN0ZW5lcjpoLGVtaXQ6bixnZXQ6dixsaXN0ZW5lcnM6bSxjb250ZXh0OmUsYnVmZmVyOncsYWJvcnQ6YyxhYm9ydGVkOiExfTtyZXR1cm4geH1mdW5jdGlvbiBpKHQpe3JldHVybiB1KHQscyxhKX1mdW5jdGlvbiBhKCl7cmV0dXJuIG5ldyByfWZ1bmN0aW9uIGMoKXsoZC5hcGl8fGQuZmVhdHVyZSkmJihsLmFib3J0ZWQ9ITAsZD1sLmJhY2tsb2c9e30pfXZhciBzPSJuckBjb250ZXh0Iix1PXQoImdvcyIpLGY9dCgyOCksZD17fSxwPXt9LGw9ZS5leHBvcnRzPW8oKTtlLmV4cG9ydHMuZ2V0T3JTZXRDb250ZXh0PWksbC5iYWNrbG9nPWR9LHt9XSxnb3M6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuKXtpZihvLmNhbGwodCxlKSlyZXR1cm4gdFtlXTt2YXIgcj1uKCk7aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3Qua2V5cyl0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMX0pLHJ9Y2F0Y2goaSl7fXJldHVybiB0W2VdPXIscn12YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1yfSx7fV0saGFuZGxlOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbixyKXtvLmJ1ZmZlcihbdF0sciksby5lbWl0KHQsZSxuKX12YXIgbz10KCJlZSIpLmdldCgiaGFuZGxlIik7ZS5leHBvcnRzPXIsci5lZT1vfSx7fV0saWQ6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiF0fHwib2JqZWN0IiE9PWUmJiJmdW5jdGlvbiIhPT1lPy0xOnQ9PT13aW5kb3c/MDphKHQsaSxmdW5jdGlvbigpe3JldHVybiBvKyt9KX12YXIgbz0xLGk9Im5yQGlkIixhPXQoImdvcyIpO2UuZXhwb3J0cz1yfSx7fV0sbG9hZGVyOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe2lmKCFFKyspe3ZhciB0PWIuaW5mbz1OUkVVTS5pbmZvLGU9bC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07aWYoc2V0VGltZW91dCh1LmFib3J0LDNlNCksISh0JiZ0LmxpY2Vuc2VLZXkmJnQuYXBwbGljYXRpb25JRCYmZSkpcmV0dXJuIHUuYWJvcnQoKTtzKHksZnVuY3Rpb24oZSxuKXt0W2VdfHwodFtlXT1uKX0pO3ZhciBuPWEoKTtjKCJtYXJrIixbIm9ubG9hZCIsbitiLm9mZnNldF0sbnVsbCwiYXBpIiksYygidGltaW5nIixbImxvYWQiLG5dKTt2YXIgcj1sLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iuc3JjPSJodHRwczovLyIrdC5hZ2VudCxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsZSl9fWZ1bmN0aW9uIG8oKXsiY29tcGxldGUiPT09bC5yZWFkeVN0YXRlJiZpKCl9ZnVuY3Rpb24gaSgpe2MoIm1hcmsiLFsiZG9tQ29udGVudCIsYSgpK2Iub2Zmc2V0XSxudWxsLCJhcGkiKX12YXIgYT10KDIyKSxjPXQoImhhbmRsZSIpLHM9dCgyOCksdT10KCJlZSIpLGY9dCgyNiksZD10KDIzKSxwPXdpbmRvdyxsPXAuZG9jdW1lbnQsaD0iYWRkRXZlbnRMaXN0ZW5lciIsbT0iYXR0YWNoRXZlbnQiLHY9cC5YTUxIdHRwUmVxdWVzdCx3PXYmJnYucHJvdG90eXBlO2lmKGQocC5sb2NhdGlvbikpe05SRVVNLm89e1NUOnNldFRpbWVvdXQsU0k6cC5zZXRJbW1lZGlhdGUsQ1Q6Y2xlYXJUaW1lb3V0LFhIUjp2LFJFUTpwLlJlcXVlc3QsRVY6cC5FdmVudCxQUjpwLlByb21pc2UsTU86cC5NdXRhdGlvbk9ic2VydmVyfTt2YXIgZz0iIitsb2NhdGlvbix5PXtiZWFjb246ImJhbS5uci1kYXRhLm5ldCIsZXJyb3JCZWFjb246ImJhbS5uci1kYXRhLm5ldCIsYWdlbnQ6ImpzLWFnZW50Lm5ld3JlbGljLmNvbS9uci1zcGEtMTIwOC5taW4uanMifSx4PXYmJncmJndbaF0mJiEvQ3JpT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksYj1lLmV4cG9ydHM9e29mZnNldDphLmdldExhc3RUaW1lc3RhbXAoKSxub3c6YSxvcmlnaW46ZyxmZWF0dXJlczp7fSx4aHJXcmFwcGFibGU6eCx1c2VyQWdlbnQ6Zn07dCgxOSksdCgyNCksbFtoXT8obFtoXSgiRE9NQ29udGVudExvYWRlZCIsaSwhMSkscFtoXSgibG9hZCIsciwhMSkpOihsW21dKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLHBbbV0oIm9ubG9hZCIscikpLGMoIm1hcmsiLFsiZmlyc3RieXRlIixhLmdldExhc3RUaW1lc3RhbXAoKV0sbnVsbCwiYXBpIik7dmFyIEU9MH19LHt9XSwid3JhcC1mdW5jdGlvbiI6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSl7ZnVuY3Rpb24gbihlLG4scixzLHUpe2Z1bmN0aW9uIG5yV3JhcHBlcigpe3ZhciBpLGEsZixwO3RyeXthPXRoaXMsaT1kKGFyZ3VtZW50cyksZj0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yKGksYSk6cnx8e319Y2F0Y2gobCl7byhbbCwiIixbaSxhLHNdLGZdLHQpfWMobisic3RhcnQiLFtpLGEsc10sZix1KTt0cnl7cmV0dXJuIHA9ZS5hcHBseShhLGkpfWNhdGNoKGgpe3Rocm93IGMobisiZXJyIixbaSxhLGhdLGYsdSksaH1maW5hbGx5e2MobisiZW5kIixbaSxhLHBdLGYsdSl9fXJldHVybiBhKGUpP2U6KG58fChuPSIiKSxucldyYXBwZXJbcF09ZSxpKGUsbnJXcmFwcGVyLHQpLG5yV3JhcHBlcil9ZnVuY3Rpb24gcih0LGUscixvLGkpe3J8fChyPSIiKTt2YXIgYyxzLHUsZj0iLSI9PT1yLmNoYXJBdCgwKTtmb3IodT0wO3U8ZS5sZW5ndGg7dSsrKXM9ZVt1XSxjPXRbc10sYShjKXx8KHRbc109bihjLGY/cytyOnIsbyxzLGkpKX1mdW5jdGlvbiBjKG4scixpLGEpe2lmKCFofHxlKXt2YXIgYz1oO2g9ITA7dHJ5e3QuZW1pdChuLHIsaSxlLGEpfWNhdGNoKHMpe28oW3MsbixyLGldLHQpfWg9Y319cmV0dXJuIHR8fCh0PWYpLG4uaW5QbGFjZT1yLG4uZmxhZz1wLG59ZnVuY3Rpb24gbyh0LGUpe2V8fChlPWYpO3RyeXtlLmVtaXQoImludGVybmFsLWVycm9yIix0KX1jYXRjaChuKXt9fWZ1bmN0aW9uIGkodCxlLG4pe2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmtleXMpdHJ5e3ZhciByPU9iamVjdC5rZXlzKHQpO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19LHNldDpmdW5jdGlvbihlKXtyZXR1cm4gdFtuXT1lLGV9fSl9KSxlfWNhdGNoKGkpe28oW2ldLG4pfWZvcih2YXIgYSBpbiB0KWwuY2FsbCh0LGEpJiYoZVthXT10W2FdKTtyZXR1cm4gZX1mdW5jdGlvbiBhKHQpe3JldHVybiEodCYmdCBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZ0LmFwcGx5JiYhdFtwXSl9ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPWUodCk7cmV0dXJuIG5bcF09dCxpKHQsbixmKSxufWZ1bmN0aW9uIHModCxlLG4pe3ZhciByPXRbZV07dFtlXT1jKHIsbil9ZnVuY3Rpb24gdSgpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKWVbbl09YXJndW1lbnRzW25dO3JldHVybiBlfXZhciBmPXQoImVlIiksZD10KDI5KSxwPSJuckBvcmlnaW5hbCIsbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGg9ITE7ZS5leHBvcnRzPXIsZS5leHBvcnRzLndyYXBGdW5jdGlvbj1jLGUuZXhwb3J0cy53cmFwSW5QbGFjZT1zLGUuZXhwb3J0cy5hcmdzVG9BcnJheT11fSx7fV19LHt9LFsibG9hZGVyIiwyLDE2LDUsMyw0XSk7CjtOUkVVTS5sb2FkZXJfY29uZmlnPXthY2NvdW50SUQ6IjM5Mjg0Iix0cnVzdEtleToiMzkyODQiLGFnZW50SUQ6Ijc0NDc0NjgiLGxpY2Vuc2VLZXk6IjY4OWQ1YjQ1NjIiLGFwcGxpY2F0aW9uSUQ6IjIwMTEyMjQifQo7TlJFVU0uaW5mbz17YmVhY29uOiJiYW0tY2VsbC5uci1kYXRhLm5ldCIsZXJyb3JCZWFjb246ImJhbS1jZWxsLm5yLWRhdGEubmV0IixsaWNlbnNlS2V5OiI2ODlkNWI0NTYyIixhcHBsaWNhdGlvbklEOiIyMDExMjI0IixzYToxfQo8L3NjcmlwdD4KICAgICAgICA8c2NyaXB0PgogIGlmKHdpbmRvdy5uZXdyZWxpYyl7d2luZG93Lm5ld3JlbGljLnNldEN1c3RvbUF0dHJpYnV0ZSgnY29udHJvbGxlcl92aWV3JywgJ1ZpbWVvXENvbnRyb2xsZXJcQ2xpcENvbnRyb2xsZXJfbWFpbicpO3dpbmRvdy5uZXdyZWxpYy5zZXRDdXN0b21BdHRyaWJ1dGUoJ3VzZXJJZCcsICcwJyk7d2luZG93Lm5ld3JlbGljLnNldEN1c3RvbUF0dHJpYnV0ZSgnYWNjb3VudFR5cGUnLCAnVU5LTk9XTicpO3dpbmRvdy5uZXdyZWxpYy5zZXRDdXN0b21BdHRyaWJ1dGUoJ3RlYW1Pd25lcklkJywgJzAnKTt3aW5kb3cubmV3cmVsaWMuc2V0Q3VzdG9tQXR0cmlidXRlKCd0ZWFtT3duZXJBY2NvdW50VHlwZScsICdVTktOT1dOJyk7fTsKPC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvZ2xvYmFsL2ljb25fZm9udHNfNjhlZmYzOTQ3Mjk4MDYzMGM1YTA4MzJhMmQ0Mzk2YzYubWluLmNzcyI+CgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N0eWxlcy9jc3Nfb3B0L2NsaXBfYmV0YV9jb21iaW5lZF9mOTI2MTYxZGE3ZDNkYzk0MjU2YTgxMmU4YjYxNTcxYy5taW4uY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC90b3BuYXZfY2FydF9idXR0b25fZmRkYTViZWYxYTExNmYwODc4ZDhiMjFmZGExZDU4MTUubWluLmNzcyI+CgoKCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAKICAgICAgICB2YXIgcGxheWVyQXNzZXRVcmxzID0geyJiYXJlYm9uZV9qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvNC4yNS4xNFwvanNcL2JhcmVib25lLmpzIiwiY2hyb21lbGVzc19qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvNC4yNS4xNFwvanNcL2Nocm9tZWxlc3MuanMiLCJjaHJvbWVsZXNzX2NzcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvNC4yNS4xNFwvY3NzXC9jaHJvbWVsZXNzLmNzcyIsImNzcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvNC4yNS4xNFwvY3NzXC9wbGF5ZXIuY3NzIiwianMiOiJodHRwczpcL1wvZi52aW1lb2Nkbi5jb21cL3BcLzQuMjUuMTRcL2pzXC9wbGF5ZXIuanMiLCJwbGF5ZXJfdXJsIjoicGxheWVyLnZpbWVvLmNvbSJ9OwoKICAgICAgICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogICAgICAgICAgICB3aW5kb3cgPSBfZXh0ZW5kKHdpbmRvdywgeyJ2aW1lb19lc2kiOnsiY29uZmlnIjp7InJvdXRlIjoiVmltZW9cXENvbnRyb2xsZXJcXENsaXBDb250cm9sbGVyOm1haW4iLCJjb250cm9sbGVyIjoiVmltZW9cXENvbnRyb2xsZXJcXENsaXBDb250cm9sbGVyIiwiYXV0b2NvbXBsZXRlX2VuYWJsZWQiOnRydWUsIm9uc2l0ZV9yZWZlcnJlciI6ZmFsc2V9fSwiYWJsaW5jb2xuX2NvbmZpZyI6W10sInZpbWVvIjp7ImNvbmZpZyI6eyJjYXJ0Ijp7ImNhcnRfY29udGVudCI6eyJzdG9jayI6eyJzdG9yZSI6InN0b2NrIiwidmVyc2lvbiI6MSwicXVhbnRpdGllcyI6W10sIml0ZW1zIjpbXSwiYXR0cmlidXRlcyI6W10sImN1cnJlbmN5IjoiRVVSIiwiaXRlbXNfc29ydGVkX2J5X2luZGV4IjpbXSwiaXRlbXNfY291bnQiOjB9fX19fX0pOwo8L3NjcmlwdD4KCiAgICAgICAgCiAgICA8c2NyaXB0PgogICAgICAgIHZhciBhYmxpbmNvbG5fY29uZmlnID0gYWJsaW5jb2xuX2NvbmZpZyB8fCB7fTsKICAgICAgICBhYmxpbmNvbG5fY29uZmlnLnRlc3RzID0geyJKUy5XaXphcmQuRGVwcmVjYXRpb24iOnsiaWQiOjEwNzcsIm5hbWUiOiJKUy5XaXphcmQuRGVwcmVjYXRpb24iLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcL2NyZWF0ZVwvdGVtcGxhdGVzIiwiZXhwZXJpbWVudHMiOlt7ImlkIjozMTI2LCJuYW1lIjoic2hvd193aXphcmQiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0xMC0xNSAxMDowNToyNiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo1MDU3LCJuYW1lIjoic2hvd193aXphcmQiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0Ijo1MDB9LHsiaWQiOjUwNTgsIm5hbWUiOiJzaG93X3dpemFyZCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjUwMH1dLCJzZWdtZW50cyI6W119XX0sIkpTLlNlYXJjaC5QcmVjaXNpb24iOnsiaWQiOjEwNzYsIm5hbWUiOiJKUy5TZWFyY2guUHJlY2lzaW9uIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjMxMjEsIm5hbWUiOiJwcmVjaXNpb24gc2VhcmNoIiwiYnVja2V0cyI6NTAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0xMC0wNCAxNToyNjowNyIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo1MDQxLCJuYW1lIjoicHJlY2lzaW9uIiwiY2hvaWNlIjoiMCIsIndlaWdodCI6MX0seyJpZCI6NTA0MiwibmFtZSI6InByZWNpc2lvbiIsImNob2ljZSI6IjEiLCJ3ZWlnaHQiOjF9LHsiaWQiOjUwNDMsIm5hbWUiOiJwcmVjaXNpb24iLCJjaG9pY2UiOiIyIiwid2VpZ2h0IjoxfSx7ImlkIjo1MDQ0LCJuYW1lIjoicHJlY2lzaW9uIiwiY2hvaWNlIjoiMyIsIndlaWdodCI6MX0seyJpZCI6NTA0NSwibmFtZSI6InByZWNpc2lvbiIsImNob2ljZSI6IjgiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMTI1LCJuYW1lIjoicHJlY2lzaW9uIHNlYXJjaCA4MCUiLCJidWNrZXRzIjo1MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTEwLTExIDEyOjIyOjIwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjUwNTIsIm5hbWUiOiJwcmVjaXNpb24iLCJjaG9pY2UiOiIwIiwid2VpZ2h0IjoxfSx7ImlkIjo1MDUzLCJuYW1lIjoicHJlY2lzaW9uIiwiY2hvaWNlIjoiMSIsIndlaWdodCI6MX0seyJpZCI6NTA1NCwibmFtZSI6InByZWNpc2lvbiIsImNob2ljZSI6IjIiLCJ3ZWlnaHQiOjF9LHsiaWQiOjUwNTUsIm5hbWUiOiJwcmVjaXNpb24iLCJjaG9pY2UiOiIzIiwid2VpZ2h0IjoxfSx7ImlkIjo1MDU2LCJuYW1lIjoicHJlY2lzaW9uIiwiY2hvaWNlIjoiOCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLlNWVi5CcmVhZGNydW1icy5GaWxlQWN0aW9uc01lbnUiOnsiaWQiOjEwNzIsIm5hbWUiOiJKUy5TVlYuQnJlYWRjcnVtYnMuRmlsZUFjdGlvbnNNZW51IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MzA5OCwibmFtZSI6ImZpbGVfYWN0aW9uc19tZW51XzEwMCIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDktMjEgMDY6Mjg6NDkiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMTAtMjIgMDU6MDg6MzQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NTAxMiwibmFtZSI6ImZpbGVfYWN0aW9uc19tZW51XzEwMCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjUwMTMsIm5hbWUiOiJmaWxlX2FjdGlvbnNfbWVudV8xMDAiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo1MDE0LCJuYW1lIjoiZmlsZV9hY3Rpb25zX21lbnVfMTAwIiwiY2hvaWNlIjoidmFyaWFudDIiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMTI4LCJuYW1lIjoiZmlsZV9hY3Rpb25zX21lbnVfMTAwMDAwIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjIsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMTAtMjMgMDE6NTA6NTEiLCJwYXVzZWRfb24iOiIyMDIzLTEwLTIzIDAyOjQyOjUwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NTA2MSwibmFtZSI6ImZpbGVfYWN0aW9uc19tZW51XzEwMCIsImNob2ljZSI6InZhcmlhbnQyIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuRjJQLlBpbG90Ijp7ImlkIjoxMDcwLCJuYW1lIjoiSlMuRjJQLlBpbG90IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjMwOTYsIm5hbWUiOiIyJSAtIEYyUCBFeHBlcmltZW50IFJvbGxvdXQgLSBKUyIsImJ1Y2tldHMiOjIwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0xMC0wMyAwNTo0ODowNSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo1MDA4LCJuYW1lIjoiZjJwIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NTAwOSwibmFtZSI6ImYycCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMTE1LCJuYW1lIjoiKyA4JSAtIEYyUCBFeHBlcmltZW50IFJvbGxvdXQgLSBKUyIsImJ1Y2tldHMiOjgwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0xMC0wMyAxMToyOTo0MCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo1MDMyLCJuYW1lIjoiZjJwIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NTAzMywibmFtZSI6ImYycCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMTE5LCJuYW1lIjoiKyA0MCUgLSBGMlAgRXhwZXJpbWVudCBSb2xsb3V0IC0gSlMiLCJidWNrZXRzIjo0MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTEwLTA0IDE0OjMxOjUxIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjUwMzcsIm5hbWUiOiJmMnAiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo1MDM4LCJuYW1lIjoiZjJwIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjMxMjMsIm5hbWUiOiIrIDUwJSAtIEYyUCBFeHBlcmltZW50IFJvbGxvdXQgLSBKUyIsImJ1Y2tldHMiOjUwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMTAtMDUgMTk6MTY6MTUiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NTA0OCwibmFtZSI6ImYycCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjUwNDksIm5hbWUiOiJmMnAiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuRnJlZVRyaWFsLkV4Y2x1ZGVSZXN0cmljdGVkQ291bnRyaWVzIjp7ImlkIjoxMDY3LCJuYW1lIjoiSlMuRnJlZVRyaWFsLkV4Y2x1ZGVSZXN0cmljdGVkQ291bnRyaWVzIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjMwODgsIm5hbWUiOiJSdW4gVGVzdCBhdCAxMCUiLCJidWNrZXRzIjoxMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA5LTE4IDA4OjU5OjQxIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ5OTQsIm5hbWUiOiJleGNsdWRlX3Jlc3RyaWN0ZWRfY291bnRyaWVzIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDk5NSwibmFtZSI6ImV4Y2x1ZGVfcmVzdHJpY3RlZF9jb3VudHJpZXMiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MzA5OSwibmFtZSI6IiogUnVuIFRlc3QgYXQgOTAlIiwiYnVja2V0cyI6OTAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wOS0yMiAxNDozMzozMyIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo1MDE1LCJuYW1lIjoiZXhjbHVkZV9yZXN0cmljdGVkX2NvdW50cmllcyIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjUwMTYsIm5hbWUiOiJleGNsdWRlX3Jlc3RyaWN0ZWRfY291bnRyaWVzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLkNoZWNrb3V0LlBheVBhbC5EZWZhdWx0Rm9yRnJlZVRyaWFsIjp7ImlkIjoxMDU4LCJuYW1lIjoiSlMuQ2hlY2tvdXQuUGF5UGFsLkRlZmF1bHRGb3JGcmVlVHJpYWwiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcL3N0b3JlXC8qIiwiZXhwZXJpbWVudHMiOlt7ImlkIjozMDY2LCJuYW1lIjoiKiAxMCUiLCJidWNrZXRzIjoxMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA4LTIyIDE0OjE0OjQwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ5NjcsIm5hbWUiOiJkZWZhdWx0X3BheXBhbF9mb3JfZnJlZV90cmlhbCIsImNob2ljZSI6IjAiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ5NjgsIm5hbWUiOiJkZWZhdWx0X3BheXBhbF9mb3JfZnJlZV90cmlhbCIsImNob2ljZSI6IjEiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOlt7ImlkIjozNjQsInR5cGUiOiJsb2NhdGlvbiIsImluY2x1ZGUiOjEsInZhbHVlcyI6WyJBVSIsIkZSIiwiREUiLCJJVCIsIkdCIl19XX0seyJpZCI6MzA3MSwibmFtZSI6IiogOTAlIiwiYnVja2V0cyI6OTAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wOC0yNCAwOTowMToxMiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0OTc1LCJuYW1lIjoiZGVmYXVsdF9wYXlwYWxfZm9yX2ZyZWVfdHJpYWwiLCJjaG9pY2UiOiIwIiwid2VpZ2h0IjoxfSx7ImlkIjo0OTc2LCJuYW1lIjoiZGVmYXVsdF9wYXlwYWxfZm9yX2ZyZWVfdHJpYWwiLCJjaG9pY2UiOiIxIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbeyJpZCI6MzY1LCJ0eXBlIjoibG9jYXRpb24iLCJpbmNsdWRlIjoxLCJ2YWx1ZXMiOlsiQVUiLCJGUiIsIkRFIiwiSVQiLCJHQiJdfV19XX0sIkpTLkVkaXRvci5WMi5TdGFmZlJvbGxvdXQiOnsiaWQiOjEwNTUsIm5hbWUiOiJKUy5FZGl0b3IuVjIuU3RhZmZSb2xsb3V0IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MzA1OCwibmFtZSI6ImVkaXRvcl8yX3N0YWZmIiwiYnVja2V0cyI6MjAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wOC0xNSAxMDo0ODozMiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wOS0wMyAwNzoyMDoxMyIsInBhcmFtZXRlcnMiOlt7ImlkIjo0OTU2LCJuYW1lIjoiZWRpdG9yXzIiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjowfSx7ImlkIjo0OTU3LCJuYW1lIjoiZWRpdG9yXzIiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoyMDB9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMDgzLCJuYW1lIjoiKiBlZGl0b3JfMl9zdGFmZiIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA5LTAzIDA3OjI1OjM3IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ5OTEsIm5hbWUiOiJlZGl0b3JfMiIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjEwMDB9LHsiaWQiOjQ5OTIsIm5hbWUiOiJlZGl0b3JfMiIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjB9XSwic2VnbWVudHMiOltdfV19LCJKUy5MSUhQLkNyZWF0ZVF1aWNrbGlua0NUQVRlc3QiOnsiaWQiOjEwNDYsIm5hbWUiOiJKUy5MSUhQLkNyZWF0ZVF1aWNrbGlua0NUQVRlc3QiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6ImN1aWQiLCJ1cmwiOiJcLyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MzAyOCwibmFtZSI6IjEwJSByb2xsb3V0IC0gVXBkYXRlIENyZWF0ZSBvbmUgY2xpY2sgQ1RBIiwiYnVja2V0cyI6MjAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wOC0zMCAxMDoxNTozNyIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wOS0xOCAxMDowNzo1NSIsInBhcmFtZXRlcnMiOlt7ImlkIjo0OTE0LCJuYW1lIjoiY3JlYXRlX2N0YV9saW5rIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDkxNSwibmFtZSI6ImNyZWF0ZV9jdGFfbGluayIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMDc4LCJuYW1lIjoiNTAlIHJvbGxvdXQgLSBVcGRhdGUgQ3JlYXRlIG9uZSBjbGljayBDVEEiLCJidWNrZXRzIjo4MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA4LTMxIDEyOjI1OjM4IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA5LTE4IDEwOjA4OjA1IiwicGFyYW1ldGVycyI6W3siaWQiOjQ5ODYsIm5hbWUiOiJjcmVhdGVfY3RhX2xpbmsiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0OTg3LCJuYW1lIjoiY3JlYXRlX2N0YV9saW5rIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjMwOTUsIm5hbWUiOiIxMDAlIHJvbGxvdXQgLSBVcGRhdGUgQ3JlYXRlIG9uZSBjbGljayBDVEEiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wOS0xOCAxMDowODozNCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wOS0yNyAxMjo1NTo0OCIsInBhcmFtZXRlcnMiOltdLCJzZWdtZW50cyI6W119LHsiaWQiOjMxMDUsIm5hbWUiOiIxMDAlIHJvbGxvdXQgdGFrZSAyIC0gVXBkYXRlIENyZWF0ZSBvbmUgY2xpY2sgQ1RBIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDktMjcgMTI6NTY6MDQiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NTAyMiwibmFtZSI6ImNyZWF0ZV9jdGFfbGluayIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5TVlYuTmV3VHJpbW1lci5IaWRlVG91cnBvaW50cyI6eyJpZCI6MTA0MiwibmFtZSI6IkpTLlNWVi5OZXdUcmltbWVyLkhpZGVUb3VycG9pbnRzIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MzAxNiwibmFtZSI6ImhpZGVfdHZlX3RvdXJwb2ludHMiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNy0xOSAwODozNTozMiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0ODk3LCJuYW1lIjoiaGlkZV90dmVfdG91cnBvaW50cyIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjEwMH1dLCJzZWdtZW50cyI6W119XX0sIkpTLlNWVi5OZXdUcmltbWVyLlJvbGxvdXQiOnsiaWQiOjEwNDEsIm5hbWUiOiJKUy5TVlYuTmV3VHJpbW1lci5Sb2xsb3V0IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MzAxNSwibmFtZSI6Im5ld190cmltbWVyX3JvbGxvdXQiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNy0xOCAwNzozMzozMCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0ODk2LCJuYW1lIjoibmV3X3RyaW1tZXIiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxMDB9XSwic2VnbWVudHMiOltdfV19LCJKUy5yZWNvcmQuc3R1ZGlvLnJvbGxvdXQuZnJlZXVzZXJzIjp7ImlkIjoxMDQwLCJuYW1lIjoiSlMucmVjb3JkLnN0dWRpby5yb2xsb3V0LmZyZWV1c2VycyIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6Imh0dHBzOlwvXC92aW1lby5jb21cL3JlY29yZFwvc3RhcnQtcmVjb3JkaW5nIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyOTg0LCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0LmZyZWV1c2VycyIsImJ1Y2tldHMiOjIwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDctMDMgMTA6NTA6MTkiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDctMTEgMTA6NTQ6NDgiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDg2NCwibmFtZSI6InJlY29yZC5zdHVkaW8ucm9sbG91dC5mcmVlIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDg2NSwibmFtZSI6InJlY29yZC5zdHVkaW8ucm9sbG91dC5mcmVlIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjMwMTEsIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQuZnJlZXVzZXJzMSIsImJ1Y2tldHMiOjAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA3LTExIDEwOjU0OjU3IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA3LTE3IDA1OjA1OjUyIiwicGFyYW1ldGVycyI6W3siaWQiOjQ4ODgsIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQuZnJlZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ4ODksIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQuZnJlZSIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjozMDE3LCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0LmZyZWV1c2VyczIiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNy0xNyAwNTowNzozMSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0ODk4LCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0LmZyZWUiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjowfSx7ImlkIjo0ODk5LCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0LmZyZWUiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMucmVjb3JkLnN0dWRpby5yb2xsb3V0Ijp7ImlkIjoxMDMxLCJuYW1lIjoiSlMucmVjb3JkLnN0dWRpby5yb2xsb3V0IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiaHR0cHM6XC9cL3ZpbWVvLmNvbVwvcmVjb3JkXC9zdGFydC1yZWNvcmRpbmciLCJleHBlcmltZW50cyI6W3siaWQiOjI5NjUsIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQiLCJidWNrZXRzIjo0MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA2LTE0IDA4OjI2OjE0IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA2LTI3IDA4OjQ4OjQ3IiwicGFyYW1ldGVycyI6W3siaWQiOjQ4NDAsIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0ODQxLCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI5NzYsIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQyIiwiYnVja2V0cyI6NjAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wNi0xOCAwNDoxNDo1MiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wNi0yNyAwODo0OTowNiIsInBhcmFtZXRlcnMiOlt7ImlkIjo0ODU0LCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0IiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDg1NSwibmFtZSI6InJlY29yZC5zdHVkaW8ucm9sbG91dCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyOTg1LCJuYW1lIjoicmVjb3JkLnN0dWRpby5yb2xsb3V0MyIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA2LTI3IDA4OjQ5OjU1IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ4NjYsIm5hbWUiOiJyZWNvcmQuc3R1ZGlvLnJvbGxvdXQiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuU1ZWLlJldk1hbnVhbENhcHRpb25zIjp7ImlkIjoxMDIwLCJuYW1lIjoiSlMuU1ZWLlJldk1hbnVhbENhcHRpb25zIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MjkxOSwibmFtZSI6IlJldiBNYW51YWwgQ2FwdGlvbnMiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNi0xMyAwODo0NjoyNiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0Nzc4LCJuYW1lIjoicmV2X21hbnVhbF9jYXB0aW9ucyIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5Nb2JpbGUuQ2xpcC5CYW5uZXJKb2luUGF0aCI6eyJpZCI6MTAxNiwibmFtZSI6IkpTLk1vYmlsZS5DbGlwLkJhbm5lckpvaW5QYXRoIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC86Y2xpcElkIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyODk2LCJuYW1lIjoiTW9iaWxlIEpvaW4gQmFubmVyIGZvciBMb2dnZWQgT3V0IFVzZXJzIiwiYnVja2V0cyI6MCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDUtMTYgMTQ6MzI6NTkiLCJwYXVzZWRfb24iOiIyMDIzLTA1LTE2IDE2OjIyOjA1Iiwic3RvcHBlZF9vbiI6IjIwMjMtMDUtMTYgMTY6Mjk6MzUiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDc1MywibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDc1NCwibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjM0MiwidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MCwidmFsdWVzIjpbIkFUIiwiQkUiLCJIUiIsIkNaIiwiREsiLCJGSSIsIkZSIiwiREUiLCJHUiIsIkhVIiwiSVMiLCJJVCIsIkxWIiwiTEkiLCJMVCIsIkxVIiwiTVQiLCJOTCIsIk5PIiwiUEwiLCJQVCIsIlNLIiwiU0kiLCJFUyIsIlNFIiwiQ0giLCJHQiJdfV19LHsiaWQiOjI5MjcsIm5hbWUiOiJNb2JpbGUgSm9pbiBCYW5uZXIgZm9yIExvZ2dlZCBPdXQgVXNlcnMgLSAxMCUiLCJidWNrZXRzIjoxMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA1LTE2IDE2OjM3OjI2IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA2LTA1IDE2OjI0OjUwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ3ODcsIm5hbWUiOiJtb2JpbGVfY2xpcF9qb2luX2Jhbm5lciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ3ODgsIm5hbWUiOiJtb2JpbGVfY2xpcF9qb2luX2Jhbm5lciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOlt7ImlkIjozNDUsInR5cGUiOiJsb2NhdGlvbiIsImluY2x1ZGUiOjAsInZhbHVlcyI6WyJBTCIsIkFUIiwiQlkiLCJCRSIsIkhSIiwiQ1oiLCJESyIsIkZJIiwiRlIiLCJERSIsIkdSIiwiR0wiLCJJUyIsIklFIiwiSU0iLCJJVCIsIkxWIiwiTEkiLCJMVCIsIkxVIiwiTkwiLCJOTyIsIlBMIiwiU0siLCJTSSIsIkVTIiwiU0UiLCJDSCIsIlRSIiwiR0IiLCJWQSJdfV19LHsiaWQiOjI5MzksIm5hbWUiOiIqIE1vYmlsZSBKb2luIEJhbm5lciBmb3IgTG9nZ2VkIE91dCBVc2VycyAtIDI1JSIsImJ1Y2tldHMiOjE1MCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDUtMTkgMTE6MzU6MDAiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDYtMDUgMTY6MjU6MTEiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDgwNSwibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDgwNiwibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjM0NywidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MCwidmFsdWVzIjpbIkFMIiwiQVQiLCJCWSIsIkJFIiwiSFIiLCJDWiIsIkRLIiwiRkkiLCJGUiIsIkRFIiwiR1IiLCJHTCIsIklTIiwiSUUiLCJJTSIsIklUIiwiTFYiLCJMSSIsIkxVIiwiTkwiLCJOTyIsIlBMIiwiU0siLCJTSSIsIkVTIiwiU0UiLCJDSCIsIlRSIiwiR0IiLCJWQSJdfV19LHsiaWQiOjI5NDMsIm5hbWUiOiIgTW9iaWxlIEpvaW4gQmFubmVyIGZvciBMb2dnZWQgT3V0IFVzZXJzIC0gMTAwJSIsImJ1Y2tldHMiOjc1MCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDUtMjIgMTM6MTY6MTAiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDYtMDUgMTY6MjU6MjQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDgwOSwibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDgxMCwibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjM0OCwidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MCwidmFsdWVzIjpbIkFMIiwiQVQiLCJCWSIsIkJFIiwiSFIiLCJDWiIsIkRLIiwiRkkiLCJGUiIsIkRFIiwiR1IiLCJHTCIsIklTIiwiSUUiLCJJTSIsIklUIiwiTFYiLCJMSSIsIkxVIiwiTkwiLCJOTyIsIlBMIiwiU0siLCJFUyIsIlNFIiwiQ0giLCJUUiIsIkdCIiwiVkEiXX1dfSx7ImlkIjoyOTY0LCJuYW1lIjoiTW9iaWxlIEpvaW4gQmFubmVyIGZvciBMb2dnZWQgT3V0IFVzZXJzIC0tIDEwMCAlIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDYtMDUgMTY6Mjg6NDEiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDgzOSwibmFtZSI6Im1vYmlsZV9jbGlwX2pvaW5fYmFubmVyIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjM1MywidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MCwidmFsdWVzIjpbIkFMIiwiQVQiLCJCWSIsIkJFIiwiSFIiLCJDWiIsIkRLIiwiRkkiLCJGUiIsIkRFIiwiR1IiLCJHTCIsIklTIiwiSUUiLCJJTSIsIklUIiwiTFYiLCJMSSIsIkxVIiwiTkwiLCJOTyIsIlBMIiwiU0siLCJTSSIsIkVTIiwiU0UiLCJDSCIsIlRSIiwiR0IiLCJWQSJdfV19XX0sIkpTLkJ1aWxkZXIuVGVzdC4yMDIzLlYxIjp7ImlkIjoxMDEwLCJuYW1lIjoiSlMuQnVpbGRlci5UZXN0LjIwMjMuVjEiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJodHRwczpcL1wvdmltZW8uY29tXC9zdGFnaW5nLXRlc3RcL2FibGluY29sbi1sb2NhbGVzIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyODc4LCJuYW1lIjoiQnVpbGRlclNlZ21lbnRUZXN0IiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDQtMTMgMTM6MTQ6NDgiLCJwYXVzZWRfb24iOiIyMDIzLTA0LTEzIDE0OjA4OjE2Iiwic3RvcHBlZF9vbiI6IjIwMjMtMDQtMTMgMTQ6MDg6MjYiLCJwYXJhbWV0ZXJzIjpbXSwic2VnbWVudHMiOltdfSx7ImlkIjoyODgwLCJuYW1lIjoiQnVpbGRlclNlZ21lbnRUZXN0MiIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA0LTEzIDE0OjI5OjI5IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ3MzIsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjB9LHsiaWQiOjQ3MzMsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5SZWNvcmRFeHRlbnNpb24uT3ZlcmxheVZzSW5saW5lSW50ZWdyYXRpb25zIjp7ImlkIjo5OTUsIm5hbWUiOiJKUy5SZWNvcmRFeHRlbnNpb24uT3ZlcmxheVZzSW5saW5lSW50ZWdyYXRpb25zIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjI4MTgsIm5hbWUiOiJSZWNvcmQgRXh0ZW5zaW9uIElubGluZSB2cyBPdmVybGF5IEludGVncmF0aW9ucyB0ZXN0IiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDItMjcgMDc6NTE6MjUiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMjcgMDc6NTk6NDQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDY0MSwibmFtZSI6Im92ZXJyaWRlX3dpdGhfb3ZlcmxheSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ2NDIsIm5hbWUiOiJvdmVycmlkZV93aXRoX292ZXJsYXkiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjowfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjgxOSwibmFtZSI6IiogUmVjb3JkIEV4dGVuc2lvbiBJbmxpbmUgdnMgT3ZlcmxheSBJbnRlZ3JhdGlvbnMgdGVzdCIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAyLTI3IDA4OjAwOjAzIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTAzLTE1IDA1OjA0OjUyIiwicGFyYW1ldGVycyI6W3siaWQiOjQ2NDMsIm5hbWUiOiJvdmVycmlkZV93aXRoX292ZXJsYXkiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjowfSx7ImlkIjo0NjQ0LCJuYW1lIjoib3ZlcnJpZGVfd2l0aF9vdmVybGF5IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI4NTMsIm5hbWUiOiIqICogUmVjb3JkIEV4dGVuc2lvbiBJbmxpbmUgdnMgT3ZlcmxheSBJbnRlZ3JhdGlvbnMgdGVzdCIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAzLTIzIDE4OjA5OjU1IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ2OTcsIm5hbWUiOiJvdmVycmlkZV93aXRoX292ZXJsYXkiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0Njk4LCJuYW1lIjoib3ZlcnJpZGVfd2l0aF9vdmVybGF5IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLlJlY29yZEV4dGVuc2lvbi5QaG90b0F2YXRhciI6eyJpZCI6OTkyLCJuYW1lIjoiSlMuUmVjb3JkRXh0ZW5zaW9uLlBob3RvQXZhdGFyIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjI4MTcsIm5hbWUiOiJQQSIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAyLTI3IDA4OjM1OjQ4IiwicGF1c2VkX29uIjoiMjAyMy0wMi0yNyAwODozNjo1NCIsInN0b3BwZWRfb24iOiIyMDIzLTAyLTI3IDA4OjM3OjI4IiwicGFyYW1ldGVycyI6W3siaWQiOjQ2MzksIm5hbWUiOiJwaG90b19hdmF0YXIiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0NjQwLCJuYW1lIjoicGhvdG9fYXZhdGFyIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI4MjAsIm5hbWUiOiIqIFBBIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDItMjcgMDk6MDk6MzEiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMjcgMDk6MTE6NDYiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDY0NSwibmFtZSI6InBob3RvX2F2YXRhciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ2NDYsIm5hbWUiOiJwaG90b19hdmF0YXIiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjgyMSwibmFtZSI6IiogKiBQQSIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAzLTA2IDA5OjA4OjA4IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTAzLTEwIDA0OjEzOjA4IiwicGFyYW1ldGVycyI6W3siaWQiOjQ2NDcsIm5hbWUiOiJwaG90b19hdmF0YXIiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6Mjg1NiwibmFtZSI6IiogKiAqIFBBIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDMtMjMgMTg6MTE6MzMiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDY5OSwibmFtZSI6InBob3RvX2F2YXRhciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ3MDAsIm5hbWUiOiJwaG90b19hdmF0YXIiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuQ2hlY2tvdXQuVm9kU2FsZXNUYXguRW5hYmxlZCI6eyJpZCI6OTg2LCJuYW1lIjoiSlMuQ2hlY2tvdXQuVm9kU2FsZXNUYXguRW5hYmxlZCIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvKiIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MjgwMywibmFtZSI6IlZPRCBTYWxlcyBUYXggRmVhdHVyZSBGbGFnIGZvciBQcmVjYWxjIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDItMDcgMTA6MDg6NTUiLCJwYXVzZWRfb24iOiIyMDIzLTAzLTA3IDE2OjQ1OjM5Iiwic3RvcHBlZF9vbiI6IjIwMjMtMDMtMDkgMTI6MTg6MjQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDYyMCwibmFtZSI6InZvZF9zYWxlc190YXhfZW5hYmxlZCIsImNob2ljZSI6IjEiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyOTE4LCJuYW1lIjoiVk9EIFNhbGVzIFRheCBGZWF0dXJlIEZsYWcgZm9yIFByZWNhbGMgMiIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA1LTExIDEyOjQ5OjUwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA1LTE5IDA2OjAwOjAxIiwicGFyYW1ldGVycyI6W3siaWQiOjQ3NzcsIm5hbWUiOiJ2b2Rfc2FsZXNfdGF4X2VuYWJsZWQiLCJjaG9pY2UiOiIxIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjkzNCwibmFtZSI6IkVuYWJsZSBWT0QgVGF4ZXMiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNS0xOSAwNzoyMjo1NCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0ODAyLCJuYW1lIjoidm9kX3NhbGVzX3RheF9lbmFibGVkIiwiY2hvaWNlIjoiMSIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLlJlY29yZEV4dGVuc2lvbi5EZXNrdG9wUm9sbG91dCI6eyJpZCI6OTg1LCJuYW1lIjoiSlMuUmVjb3JkRXh0ZW5zaW9uLkRlc2t0b3BSb2xsb3V0IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC9yZWNvcmRcL2F1dGgtY29tcGxldGUiLCJleHBlcmltZW50cyI6W3siaWQiOjI4MDIsIm5hbWUiOiJEZXNrdG9wUm9sbG91dCIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAyLTIwIDE0OjU3OjE3IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA0LTIxIDE0OjAwOjI4IiwicGFyYW1ldGVycyI6W3siaWQiOjQ2MTgsIm5hbWUiOiJkZXNrdG9wX3JvbGxvdXQiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0NjE5LCJuYW1lIjoiZGVza3RvcF9yb2xsb3V0IiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI4ODksIm5hbWUiOiJEZXNrdG9wUm9sbG91dF8xMDAiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNC0yMSAxNDowMTo0MCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NzQ0LCJuYW1lIjoiZGVza3RvcF9yb2xsb3V0IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDc0NSwibmFtZSI6ImRlc2t0b3Bfcm9sbG91dCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjB9XSwic2VnbWVudHMiOltdfV19LCJKUy5FZGl0b3IuU21hcnRDcm9wIjp7ImlkIjo5ODIsIm5hbWUiOiJKUy5FZGl0b3IuU21hcnRDcm9wIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9jcmVhdGVcL2N1c3RvbWl6ZVwvIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNzk4LCJuYW1lIjoic21hcnRfY3JvcCIsImJ1Y2tldHMiOjIwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDItMTYgMDI6MzQ6MzgiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDYtMDQgMDk6NTg6MTEiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDYxMCwibmFtZSI6InNtYXJ0X2Nyb3AiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxMDB9LHsiaWQiOjQ2MTEsIm5hbWUiOiJzbWFydF9jcm9wIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MTAwfV0sInNlZ21lbnRzIjpbeyJpZCI6MzI5LCJ0eXBlIjoibG9jYXRpb24iLCJpbmNsdWRlIjowLCJ2YWx1ZXMiOlsiVVMiXX1dfSx7ImlkIjoyODgyLCJuYW1lIjoiKiBzbWFydF9jcm9wIiwiYnVja2V0cyI6ODAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wNC0xNiAwODozOToxOCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wNi0wNCAwOTo1ODoxOCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NzM2LCJuYW1lIjoic21hcnRfY3JvcCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjQwMH0seyJpZCI6NDczNywibmFtZSI6InNtYXJ0X2Nyb3AiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0Ijo0MDB9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyOTU1LCJuYW1lIjoiKiogc21hcnRfY3JvcCIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA2LTA0IDEyOjAzOjUwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ4MjksIm5hbWUiOiJzbWFydF9jcm9wIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLk1hcmtldGluZy5QcmljaW5nLk1vZHVsZS4yMDIzLlYxIjp7ImlkIjo5NzgsIm5hbWUiOiJKUy5NYXJrZXRpbmcuUHJpY2luZy5Nb2R1bGUuMjAyMy5WMSIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6Imh0dHBzOlwvXC92aW1lby5jb21cLyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6Mjc5NSwibmFtZSI6IjUwXC81MCBNYXJrZXRpbmcgUHJpY2luZyBNb2R1bGUgVGVzdCIsImJ1Y2tldHMiOjAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAzLTE1IDE2OjIwOjI4IiwicGF1c2VkX29uIjoiMjAyMy0wMy0xNSAxNzowMjo0OCIsInN0b3BwZWRfb24iOiIyMDIzLTAzLTE1IDE3OjAyOjU3IiwicGFyYW1ldGVycyI6W3siaWQiOjQ2MDEsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ2MDIsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6InZhcmlhbnRfcHJpY2luZ19tb2R1bGUiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyODQyLCJuYW1lIjoiNTBcLzUwIE1hcmtldGluZyBQcmljaW5nIE1vZHVsZSBUZXN0LlYxIiwiYnVja2V0cyI6MTAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAzLTE1IDE3OjA0OjUxIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTAzLTE2IDE1OjQ5OjMwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ2NzcsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ2NzgsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6InZhcmlhbnRfcHJpY2luZ19tb2R1bGUiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyODQ1LCJuYW1lIjoiNTBcLzUwIE1hcmtldGluZyBQcmljaW5nIE1vZHVsZSBUZXN0LlYyIiwiYnVja2V0cyI6MTAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wMy0xNyAwODo0NDo0MCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wMy0xNyAxMzoxMjo1NyIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NjgzLCJuYW1lIjoic2hvd19tb2R1bGUiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0Njg0LCJuYW1lIjoic2hvd19tb2R1bGUiLCJjaG9pY2UiOiJ2YXJpYW50X3ByaWNpbmdfbW9kdWxlIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbeyJpZCI6MzM1LCJ0eXBlIjoibGFuZ3VhZ2UiLCJpbmNsdWRlIjowLCJ2YWx1ZXMiOlsiZXMiLCJkZS1ERSIsImZyLUZSIiwiamEtSlAiLCJwdC1CUiIsImtvLUtSIl19XX0seyJpZCI6Mjg0NywibmFtZSI6IjUwXC81MCBNYXJrZXRpbmcgUHJpY2luZyBNb2R1bGUgVGVzdC5WMyIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDMtMTcgMTM6MTg6MjQiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDMtMTcgMTM6MjE6MDUiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDY4NSwibmFtZSI6InNob3dfbW9kdWxlIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDY4NiwibmFtZSI6InNob3dfbW9kdWxlIiwiY2hvaWNlIjoidmFyaWFudF9wcmljaW5nX21vZHVsZSIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjMzNiwidHlwZSI6Imxhbmd1YWdlIiwiaW5jbHVkZSI6MSwidmFsdWVzIjpbImVuIl19XX0seyJpZCI6Mjg2MSwibmFtZSI6IlByaWNpbmcgTW9kdWxlIC0gSDEgMjAyMyIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDQtMTAgMTM6NTU6MTgiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDQtMTAgMTY6MDc6NDEiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDcwOCwibmFtZSI6InNob3dfbW9kdWxlIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDcwOSwibmFtZSI6InNob3dfbW9kdWxlIiwiY2hvaWNlIjoidmFyaWFudF9wcmljaW5nX21vZHVsZSIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjMzOSwidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MSwidmFsdWVzIjpbIkFVIiwiR0IiLCJVUyJdfV19LHsiaWQiOjI4NjgsIm5hbWUiOiJQcmljaW5nIE1vZHVsZSAtIEgxIDIwMjMgLSB2MiIsImJ1Y2tldHMiOjkwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDQtMTAgMTU6MjM6MzMiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDQtMTAgMTY6MDc6MzIiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDcxOCwibmFtZSI6InNob3dfbW9kdWxlIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDcxOSwibmFtZSI6InNob3dfbW9kdWxlIiwiY2hvaWNlIjoidmFyaWFudF9wcmljaW5nX21vZHVsZSIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjM0MCwidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MSwidmFsdWVzIjpbIkFVIiwiR0IiLCJVUyJdfV19LHsiaWQiOjI4NjksIm5hbWUiOiJQcmljaW5nIE1vZHVsZSAtIEgxIDIwMjMgLSB2MyIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA0LTEwIDE2OjA5OjQ4IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA0LTEwIDE2OjE4OjA2IiwicGFyYW1ldGVycyI6W3siaWQiOjQ3MjAsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ3MjEsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6InZhcmlhbnRfcHJpY2luZ19tb2R1bGUiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyODc0LCJuYW1lIjoiUHJpY2luZyBNb2R1bGUgLSBIMSAyMDIzIC0gdjQiLCJidWNrZXRzIjoxMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA0LTEyIDE1OjA1OjQwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA2LTI4IDExOjIyOjUxIiwicGFyYW1ldGVycyI6W3siaWQiOjQ3MjgsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ3MjksIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6InZhcmlhbnRfcHJpY2luZ19tb2R1bGUiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyODc2LCJuYW1lIjoiUHJpY2luZyBNb2R1bGUgLSBIMSAyMDIzIC0gdjUiLCJidWNrZXRzIjo5MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTA0LTEzIDExOjE3OjQ4IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTA2LTI4IDExOjIzOjE2IiwicGFyYW1ldGVycyI6W3siaWQiOjQ3MzAsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ3MzEsIm5hbWUiOiJzaG93X21vZHVsZSIsImNob2ljZSI6InZhcmlhbnRfcHJpY2luZ19tb2R1bGUiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyOTkwLCJuYW1lIjoiUHJpY2luZyBNb2R1bGUgSDEtcm9sbCBvdXQiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMy0wNi0yOCAxMToyNDoxOCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0ODcyLCJuYW1lIjoic2hvd19tb2R1bGUiLCJjaG9pY2UiOiJ2YXJpYW50X3ByaWNpbmdfbW9kdWxlIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuRWRpdG9yLkRpc2FibGVUVkUiOnsiaWQiOjk3NiwibmFtZSI6IkpTLkVkaXRvci5EaXNhYmxlVFZFIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6Mjc3MSwibmFtZSI6ImRpc2FibGVfdHZlIiwiYnVja2V0cyI6MSwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjItMTItMTMgMDk6MDE6MTgiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDU2NCwibmFtZSI6ImRpc2FibGVfdHZlIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDU2NSwibmFtZSI6ImRpc2FibGVfdHZlIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MTAwMDAwMDAwMH1dLCJzZWdtZW50cyI6W119XX0sIkpTLkVkaXRvci5BZGRUZXh0U2lkZVBhbmVsIjp7ImlkIjo5NzMsIm5hbWUiOiJKUy5FZGl0b3IuQWRkVGV4dFNpZGVQYW5lbCIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoiY3VpZCIsInVybCI6IlwvY3JlYXRlXC9jdXN0b21pemVcLyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6Mjc2MiwibmFtZSI6InNob3dfYWRkX3RleHRfc2lkZV9wYW5lbCIsImJ1Y2tldHMiOjEsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTEyLTExIDEwOjE5OjM0IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTEyLTEyIDAzOjA0OjEzIiwicGFyYW1ldGVycyI6W3siaWQiOjQ1NDgsIm5hbWUiOiJzaG93X2FkZF90ZXh0X3NpZGVfcGFuZWwiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0NTQ5LCJuYW1lIjoic2hvd19hZGRfdGV4dF9zaWRlX3BhbmVsIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MH1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI3NzAsIm5hbWUiOiI0IGRlZmF1bHQgdGV4dCBzaXplIDIwMCIsImJ1Y2tldHMiOjIwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMTItMTIgMDM6MDU6MjQiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMTItMjYgMDI6MzM6MTkiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDU2MiwibmFtZSI6InNob3dfYWRkX3RleHRfc2lkZV9wYW5lbCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ1NjMsIm5hbWUiOiJzaG93X2FkZF90ZXh0X3NpZGVfcGFuZWwiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6Mjc3OSwibmFtZSI6IjQgZGVmYXVsdCB0ZXh0IHNpemUgMTAwMCIsImJ1Y2tldHMiOjgwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMTItMjAgMDY6NDk6NTkiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMTItMjYgMDI6MzM6MTQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDU3MywibmFtZSI6InNob3dfYWRkX3RleHRfc2lkZV9wYW5lbCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ1NzQsIm5hbWUiOiJzaG93X2FkZF90ZXh0X3NpZGVfcGFuZWwiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6Mjc4NCwibmFtZSI6IjQgZGVmYXVsdCB0ZXh0IHNpemUgMTAwMCB2YXJpYW50IiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjItMTItMjYgMDI6MzU6MjciLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDU3NiwibmFtZSI6InNob3dfYWRkX3RleHRfc2lkZV9wYW5lbCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5CdWlsZGVyaW8uQWJUZXN0Ijp7ImlkIjo5NzEsIm5hbWUiOiJKUy5CdWlsZGVyaW8uQWJUZXN0IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC9jbXMtYWJ0ZXN0IiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNzU5LCJuYW1lIjoiRGF0YSBmbG93IENNUyBBXC9CIHRlc3QiLCJidWNrZXRzIjo1MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTEyLTA1IDAwOjE0OjQzIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ1NDIsIm5hbWUiOiJzaG93X3BhZ2UiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0NTQzLCJuYW1lIjoic2hvd19wYWdlIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLkVkaXRvci5UZW1wbGF0ZXNJbnNwZWN0b3IiOnsiaWQiOjk2NiwibmFtZSI6IkpTLkVkaXRvci5UZW1wbGF0ZXNJbnNwZWN0b3IiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6ImN1aWQiLCJ1cmwiOiJcL2NyZWF0ZVwvY3VzdG9taXplXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjI3MjAsIm5hbWUiOiJzaG93X3RlbXBsYXRlc19pbnNwZWN0b3IiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMi0xMS0xMyAwNjozOToxMSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wMS0wMyAwOTowMzoxNSIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NDk4LCJuYW1lIjoic2hvd190ZW1wbGF0ZXNfaW5zcGVjdG9yIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDQ5OSwibmFtZSI6InNob3dfdGVtcGxhdGVzX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjB9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNzg2LCJuYW1lIjoic2hvd190ZW1wbGF0ZXNfaW5zcGVjdG9yXzIiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMy0wMS0wMyAwOTowNzoyMiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMy0wMS0wOCAwNDoxODoxNyIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NTc5LCJuYW1lIjoic2hvd190ZW1wbGF0ZXNfaW5zcGVjdG9yIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MH0seyJpZCI6NDU4MCwibmFtZSI6InNob3dfdGVtcGxhdGVzX2luc3BlY3RvciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNzg3LCJuYW1lIjoic2hvd190ZW1wbGF0ZXNfaW5zcGVjdG9yXzIwMCIsImJ1Y2tldHMiOjIwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDEtMDggMDQ6MTk6NDQiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMTMgMDI6MTc6NDIiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDU4MSwibmFtZSI6InNob3dfdGVtcGxhdGVzX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ1ODIsIm5hbWUiOiJzaG93X3RlbXBsYXRlc19pbnNwZWN0b3IiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6Mjc4OCwibmFtZSI6InNob3dfdGVtcGxhdGVzX2luc3BlY3Rvcl80MDAiLCJidWNrZXRzIjoyMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAxLTEwIDA1OjI5OjQ5IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIzLTAyLTEzIDAyOjE3OjMzIiwicGFyYW1ldGVycyI6W3siaWQiOjQ1ODMsIm5hbWUiOiJzaG93X3RlbXBsYXRlc19pbnNwZWN0b3IiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0NTg0LCJuYW1lIjoic2hvd190ZW1wbGF0ZXNfaW5zcGVjdG9yIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI3ODksIm5hbWUiOiJzaG93X3RlbXBsYXRlc19pbnNwZWN0b3JfMTAwMCIsImJ1Y2tldHMiOjYwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjMtMDEtMTEgMDM6MzE6MjEiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMTMgMDI6MTc6MjUiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDU4NSwibmFtZSI6InNob3dfdGVtcGxhdGVzX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ1ODYsIm5hbWUiOiJzaG93X3RlbXBsYXRlc19pbnNwZWN0b3IiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjgxMywibmFtZSI6InNob3dfdGVtcGxhdGVzX2luc3BlY3Rvcl9jbG9kZSBvbiB2YXJpYW50ICIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIzLTAyLTEzIDAyOjE4OjMwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ2MzEsIm5hbWUiOiJzaG93X3RlbXBsYXRlc19pbnNwZWN0b3IiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuU2V0dGluZ3MuTWVtYmVyc2hpcFBsYW4uRGlzYWJsZUF1dG9SZW5ld1JlZGVzaWduIjp7ImlkIjo5NTUsIm5hbWUiOiJKUy5TZXR0aW5ncy5NZW1iZXJzaGlwUGxhbi5EaXNhYmxlQXV0b1JlbmV3UmVkZXNpZ24iLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6ImN1aWQiLCJ1cmwiOiJcL3NldHRpbmdzXC9iaWxsaW5nXC9tZW1iZXJzaGlwX3BsYW4iLCJleHBlcmltZW50cyI6W3siaWQiOjI2OTcsIm5hbWUiOiJTaG93IHJlZGVzaWduZWQgRGlzYWJsZSBhdXRvIHJlbmV3IG1vZGFsIiwiYnVja2V0cyI6MjAwLCJzdGF0ZSI6MiwicHVibGlzaGVkX29uIjoiMjAyMi0xMS0wMSAxNTozNTozNyIsInBhdXNlZF9vbiI6IjIwMjMtMDItMTcgMTM6MTU6MTAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NDYwLCJuYW1lIjoiZGlzYWJsZV9hdXRvX3JlbmV3X3JlZGVzaWduIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDQ2MSwibmFtZSI6ImRpc2FibGVfYXV0b19yZW5ld19yZWRlc2lnbiIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOlt7ImlkIjozMDcsInR5cGUiOiJsb2NhdGlvbiIsImluY2x1ZGUiOjAsInZhbHVlcyI6WyJERSJdfV19XX0sIkpTLlZNLkludml0ZUluRW1wdHlTdGF0ZSI6eyJpZCI6OTQzLCJuYW1lIjoiSlMuVk0uSW52aXRlSW5FbXB0eVN0YXRlIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MjY1NiwibmFtZSI6Ikludml0ZSBpbiBFbXB0eSBTdGF0ZSBSb2xsb3V0IHRvIDEwJSIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjItMTAtMjAgMTI6NDA6NTIiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDM5MSwibmFtZSI6Imludml0ZV9pbl9lbXB0eV9zdGF0ZSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQzOTIsIm5hbWUiOiJpbnZpdGVfaW5fZW1wdHlfc3RhdGUiLCJjaG9pY2UiOiJ2YXJpYW50MSIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI3MDAsIm5hbWUiOiJJbnZpdGUgaW4gRW1wdHkgU3RhdGUgUm9sbG91dCB0byAxMDAlIiwiYnVja2V0cyI6OTAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMi0xMC0yOCAxMDowMjozMyIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMi0xMi0wNyAxNjo1MDowNyIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NDY0LCJuYW1lIjoiaW52aXRlX2luX2VtcHR5X3N0YXRlIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDQ2NSwibmFtZSI6Imludml0ZV9pbl9lbXB0eV9zdGF0ZSIsImNob2ljZSI6InZhcmlhbnQxIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuVXBsb2FkLlNob3dRdW90YVdhcm5pbmdUb0ZyZWVVc2VycyI6eyJpZCI6OTM5LCJuYW1lIjoiSlMuVXBsb2FkLlNob3dRdW90YVdhcm5pbmdUb0ZyZWVVc2VycyIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoiY3VpZCIsInVybCI6IlwvdXBsb2FkXC92aWRlb3MiLCJleHBlcmltZW50cyI6W3siaWQiOjI2NDksIm5hbWUiOiIqIFNob3cgcXVvdGEgd2FybmluZyB0byBGcmVlIHVzZXJzIG9uIHVwbG9hZCBwYWdlIiwiYnVja2V0cyI6MTAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMi0wOS0zMCAxMjoyODozMiIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMi0xMC0wNSAxNjoyMzo0MSIsInBhcmFtZXRlcnMiOlt7ImlkIjo0MzgxLCJuYW1lIjoicXVvdGFfd2FybmluZ19mcmVlX3VzZXJzIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDM4MiwibmFtZSI6InF1b3RhX3dhcm5pbmdfZnJlZV91c2VycyIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNjU1LCJuYW1lIjoiKzQwJSAtIFNob3cgcXVvdGEgd2FybmluZyB0byBGcmVlIHVzZXJzIG9uIHVwbG9hZCBwYWdlIiwiYnVja2V0cyI6NDAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMi0xMC0wMyAxMTo0NTo0MCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMi0xMC0wNSAxNjoyMzo0NyIsInBhcmFtZXRlcnMiOlt7ImlkIjo0Mzg5LCJuYW1lIjoicXVvdGFfd2FybmluZ19mcmVlX3VzZXJzIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDM5MCwibmFtZSI6InF1b3RhX3dhcm5pbmdfZnJlZV91c2VycyIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNjYwLCJuYW1lIjoiNTAlIC0gU2hvdyBxdW90YSB3YXJuaW5nIHRvIEZyZWUgdXNlcnMgb24gdXBsb2FkIHBhZ2UiLCJidWNrZXRzIjo1MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTEwLTA1IDE2OjIzOjM0IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ0MDAsIm5hbWUiOiJxdW90YV93YXJuaW5nX2ZyZWVfdXNlcnMiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0NDAxLCJuYW1lIjoicXVvdGFfd2FybmluZ19mcmVlX3VzZXJzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI3MDMsIm5hbWUiOiIrNTAlIC0gU2hvdyBxdW90YSB3YXJuaW5nIHRvIEZyZWUgdXNlcnMgb24gdXBsb2FkIHBhZ2UiLCJidWNrZXRzIjo1MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTEwLTMxIDEzOjAzOjUyIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ0NzAsIm5hbWUiOiJxdW90YV93YXJuaW5nX2ZyZWVfdXNlcnMiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0NDcxLCJuYW1lIjoicXVvdGFfd2FybmluZ19mcmVlX3VzZXJzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLkFWUy5TdW5zZXRBVlNQcml2YWN5Ijp7ImlkIjo5MzIsIm5hbWUiOiJKUy5BVlMuU3Vuc2V0QVZTUHJpdmFjeSIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoiY3VpZCIsInVybCI6IlwvbWFuYWdlXC86Y2xpcElkXC9hZHZhbmNlZCIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MjY0NCwibmFtZSI6IkFWUyBQcml2YWN5IE1pZ3JhdGlvbiIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDktMzAgMTA6MjQ6MTQiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMTAtMjQgMTE6MjE6NTQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDM3MiwibmFtZSI6Im1pZ3JhdGVfcHJpdmFjeV9zdnYiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0MzczLCJuYW1lIjoibWlncmF0ZV9wcml2YWN5X3N2diIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNjkyLCJuYW1lIjoiMTAwJSByYW1wIC0gQVZTIFByaXZhY3kgTWlncmF0aW9uIiwiYnVja2V0cyI6OTAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMi0xMC0yNCAxMToyMTo0OSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NDUxLCJuYW1lIjoibWlncmF0ZV9wcml2YWN5X3N2diIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ0NTIsIm5hbWUiOiJtaWdyYXRlX3ByaXZhY3lfc3Z2IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLkVkaXRvci5NZWRpYUluc3BlY3RvciI6eyJpZCI6OTI4LCJuYW1lIjoiSlMuRWRpdG9yLk1lZGlhSW5zcGVjdG9yIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9jcmVhdGVcL2N1c3RvbWl6ZVwvIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNjIyLCJuYW1lIjoic2hvd19tZWRpYV9pbnNwZWN0b3IgKDEwMCkiLCJidWNrZXRzIjoxMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA5LTE4IDEzOjA5OjMyIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA5LTIxIDA2OjI1OjQ1IiwicGFyYW1ldGVycyI6W3siaWQiOjQzMzQsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNjI4LCJuYW1lIjoic2hvd19tZWRpYV9pbnNwZWN0b3IgKDIwMCkiLCJidWNrZXRzIjoyMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA5LTIxIDA2OjI2OjQwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA5LTI5IDAzOjE3OjU3IiwicGFyYW1ldGVycyI6W3siaWQiOjQzNDUsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQzNDYsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNzA2LCJuYW1lIjoic2hvd19tZWRpYV9pbnNwZWN0b3IgKDIwMCluZXciLCJidWNrZXRzIjoyMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTExLTAyIDA1OjAyOjM3IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTExLTI3IDA2OjA1OjM4IiwicGFyYW1ldGVycyI6W3siaWQiOjQ0NzYsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ0NzcsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNzE4LCJuYW1lIjoic2hvd19tZWRpYV9pbnNwZWN0b3IgKDgwMCluZXciLCJidWNrZXRzIjo4MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTExLTEwIDA3OjQyOjQ5IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTExLTI3IDA2OjA1OjMyIiwicGFyYW1ldGVycyI6W3siaWQiOjQ0OTMsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQ0OTQsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNzQ2LCJuYW1lIjoic2hvd19tZWRpYV9pbnNwZWN0b3IgKHZhcmlhbnQpICIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTExLTI3IDA2OjA2OjMxIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ1MjcsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNzg1LCJuYW1lIjoic2hvd19tZWRpYV9pbnNwZWN0b3JfbmV3MiIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTEyLTI4IDA0OjMxOjM2IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ1NzcsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjB9LHsiaWQiOjQ1NzgsIm5hbWUiOiJzaG93X21lZGlhX2luc3BlY3RvciIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5TZXR0aW5ncy5NZW1iZXJzaGlwUGxhbi5TaG93Q29udGFjdFN1cHBvcnRMaW5rIjp7ImlkIjo5MTgsIm5hbWUiOiJKUy5TZXR0aW5ncy5NZW1iZXJzaGlwUGxhbi5TaG93Q29udGFjdFN1cHBvcnRMaW5rIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9zZXR0aW5nc1wvYmlsbGluZ1wvbWVtYmVyc2hpcF9wbGFuIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNjIxLCJuYW1lIjoiT2ZmZXIgYSBkb3duZ3JhZGUgb3B0aW9uIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDktMjIgMDc6NTQ6MDIiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDktMjIgMDc6NTQ6MzIiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDMzMSwibmFtZSI6ImFiX3Nob3dfY29udGFjdF9zdXBwb3J0X2xpbmsiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0MzMyLCJuYW1lIjoiYWJfc2hvd19jb250YWN0X3N1cHBvcnRfbGluayIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNjMzLCJuYW1lIjoiKiBPZmZlciBhIGRvd25ncmFkZSBvcHRpb24iLCJidWNrZXRzIjoyMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA5LTIyIDA3OjU0OjU2IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTEwLTI4IDExOjQ2OjI1IiwicGFyYW1ldGVycyI6W3siaWQiOjQzNTMsIm5hbWUiOiJhYl9zaG93X2NvbnRhY3Rfc3VwcG9ydF9saW5rIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDM1NCwibmFtZSI6ImFiX3Nob3dfY29udGFjdF9zdXBwb3J0X2xpbmsiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjcwMSwibmFtZSI6IkRvd25ncmFkZSBDVEEiLCJidWNrZXRzIjoyMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTEwLTI4IDExOjQ3OjAzIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQ0NjYsIm5hbWUiOiJzaG93X2NvbnRhY3Rfc3VwcG9ydF9saW5rIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDQ2NywibmFtZSI6InNob3dfY29udGFjdF9zdXBwb3J0X2xpbmsiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuRWRpdG9yLmhpZGVTdHlsZXMiOnsiaWQiOjkxNSwibmFtZSI6IkpTLkVkaXRvci5oaWRlU3R5bGVzIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9jcmVhdGVcL2N1c3RvbWl6ZVwvIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNTYwLCJuYW1lIjoiaGlkZVN0eWxlcyIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDgtMTQgMDI6NTA6MTEiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMTYgMDY6NTI6MzYiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDI0NiwibmFtZSI6ImhpZGVfc3R5bGVzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDI0NywibmFtZSI6ImhpZGVfc3R5bGVzIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI1NjMsIm5hbWUiOiJoaWRlU3R5bGVzIDIwMCIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDgtMTQgMTM6MDI6NDYiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMTYgMDY6NTI6NDYiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDI1MSwibmFtZSI6ImhpZGVfc3R5bGVzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDI1MiwibmFtZSI6ImhpZGVfc3R5bGVzIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI1NjQsIm5hbWUiOiJoaWRlU3R5bGVzIDUwMCIsImJ1Y2tldHMiOjMwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDktMDYgMDM6MDY6NDEiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjMtMDItMTYgMDY6NTI6NTQiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDI1MywibmFtZSI6ImhpZGVfc3R5bGVzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDI1NCwibmFtZSI6ImhpZGVfc3R5bGVzIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI1NzIsIm5hbWUiOiJoaWRlU3R5bGVzIDEwMDAiLCJidWNrZXRzIjo1MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA5LTA2IDA1OjU4OjE0IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQyNjUsIm5hbWUiOiJoaWRlX3N0eWxlcyIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQyNjYsIm5hbWUiOiJoaWRlX3N0eWxlcyIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5FZGl0b3IuVHJhbnNjcmlwdGlvblZpZGVvRWRpdG9yIjp7ImlkIjo5MTEsIm5hbWUiOiJKUy5FZGl0b3IuVHJhbnNjcmlwdGlvblZpZGVvRWRpdG9yIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9tYW5hZ2VcL3ZpZGVvcyIsImV4cGVyaW1lbnRzIjpbeyJpZCI6MjU0NywibmFtZSI6InRyYW5zY3JpcHRpb25fdmlkZW9fZWRpdG9yIiwiYnVja2V0cyI6MSwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDktMjggMDc6MDA6NTYiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDIyMCwibmFtZSI6InRyYW5zY3JpcHRpb25fdmlkZW9fZWRpdG9yIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6NDIyMSwibmFtZSI6InRyYW5zY3JpcHRpb25fdmlkZW9fZWRpdG9yIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MTAwMDAwMDAwMH1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI3NzgsIm5hbWUiOiJ0cmFuc2NyaXB0aW9uX3ZpZGVvX2VkaXRvcl9yZWxlYXNlIiwiYnVja2V0cyI6OTk5LCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMi0xMi0xNSAwNTowMToyMSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0NTcxLCJuYW1lIjoidHJhbnNjcmlwdGlvbl92aWRlb19lZGl0b3IiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0NTcyLCJuYW1lIjoidHJhbnNjcmlwdGlvbl92aWRlb19lZGl0b3IiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjowfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuRWRpdG9yLmRyYWdvbmZseSI6eyJpZCI6OTA4LCJuYW1lIjoiSlMuRWRpdG9yLmRyYWdvbmZseSIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoiY3VpZCIsInVybCI6IlwvbWFuYWdlXC92aWRlb3NcL2NyZWF0ZVwvY3VzdG9taXplIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNTMyLCJuYW1lIjoic2hvd19kcmFnb25mbHkiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMi0wNy0yNiAwODo1MzoyNSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMi0wNy0yOCAwMjoyMjoyMyIsInBhcmFtZXRlcnMiOlt7ImlkIjo0MTk3LCJuYW1lIjoic2hvd19kcmFnb25mbHkiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0MTk4LCJuYW1lIjoic2hvd19kcmFnb25mbHkiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjU0NCwibmFtZSI6InNob3dfZHJhZ29uZmx5IDEwMCUiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMi0wNy0yOCAwMjoyNDowOCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0MjE1LCJuYW1lIjoic2hvd19kcmFnb25mbHkiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuRWRpdG9yLnNob3dUb29sYmFyIjp7ImlkIjo4OTcsIm5hbWUiOiJKUy5FZGl0b3Iuc2hvd1Rvb2xiYXIiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6ImN1aWQiLCJ1cmwiOiJ2aW1lby5jb21cL2NyZWF0ZVwvY3VzdG9taXplIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNTE0LCJuYW1lIjoiU2hvdyB0b29sIGJhciAoMTAlKSIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDctMTEgMTU6MTY6NDUiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDctMjQgMDM6NTg6MTgiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDE2NywibmFtZSI6InNob3dfdG9vbGJhciIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQxNjgsIm5hbWUiOiJzaG93X3Rvb2xiYXIiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjUxNiwibmFtZSI6IlNob3cgdG9vbCBiYXIgKDkwJSkiLCJidWNrZXRzIjo5MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA3LTEzIDA0OjE5OjIwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA3LTI0IDAzOjU4OjI4IiwicGFyYW1ldGVycyI6W3siaWQiOjQxNzEsIm5hbWUiOiJzaG93X3Rvb2xiYXIiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0MTcyLCJuYW1lIjoic2hvd190b29sYmFyIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI1MzUsIm5hbWUiOiJTaG93IHRvb2wgYmFyIChjbG9zZSB0ZXN0KSIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA3LTI0IDAzOjU5OjI4IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQyMDMsIm5hbWUiOiJzaG93X3Rvb2xiYXIiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuU2V0dGluZ3MuQ2FuY2VsbGF0aW9uLkdlcm1hbnkiOnsiaWQiOjg5NSwibmFtZSI6IkpTLlNldHRpbmdzLkNhbmNlbGxhdGlvbi5HZXJtYW55IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJjdWlkIiwidXJsIjoiXC9zZXR0aW5nc1wvYmlsbGluZ1wvbWVtYmVyc2hpcF9wbGFuIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyNDg3LCJuYW1lIjoiR2VybWFueSBSZWdpb24iLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMi0wNy0wMSAwOTozODoxOCIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0MTI5LCJuYW1lIjoiY2FuY2VsX2luX3N1cnZleSIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjB9LHsiaWQiOjQxMzAsIm5hbWUiOiJjYW5jZWxfaW5fc3VydmV5IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W3siaWQiOjI4NiwidHlwZSI6ImxvY2F0aW9uIiwiaW5jbHVkZSI6MSwidmFsdWVzIjpbIkRFIl19XX1dfSwiSlMuTE9IUC5GdWxsUGFnZVJlZGVzaWduIjp7ImlkIjo4ODIsIm5hbWUiOiJKUy5MT0hQLkZ1bGxQYWdlUmVkZXNpZ24iLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJodHRwczpcL1wvdmltZW8uY29tXC8iLCJleHBlcmltZW50cyI6W3siaWQiOjI0NTYsIm5hbWUiOiJIb21lIHBhZ2UgLSBOZXcgVmVyc2lvbiAtIEFsbCBVc2VycyIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA2LTE0IDE2OjIxOjMwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA2LTI4IDAxOjE5OjM4IiwicGFyYW1ldGVycyI6W3siaWQiOjQwODUsIm5hbWUiOiJzaG93X3BhZ2UiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjQ4MywibmFtZSI6IkhvbWUgcGFnZSBNb2JpbGUgVGVzdCIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA2LTI4IDAxOjIwOjQyIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA4LTEyIDA5OjQzOjU4IiwicGFyYW1ldGVycyI6W3siaWQiOjQxMjMsIm5hbWUiOiJzaG93X3BhZ2UiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0MTI0LCJuYW1lIjoic2hvd19wYWdlIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI1NjEsIm5hbWUiOiJWYXJpYW50IHRvIDEwMCUgdXNlcnMiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMi0wOC0xMiAwOTo0NTowNyIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0MjQ4LCJuYW1lIjoic2hvd19wYWdlIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLlJlY29yZEV4dGVuc2lvbi5TaWduVXBXYWxsIjp7ImlkIjo4NDksIm5hbWUiOiJKUy5SZWNvcmRFeHRlbnNpb24uU2lnblVwV2FsbCIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyMzI1LCJuYW1lIjoiUmVjb3JkIEV4dGVuc2lvbiBTaWduVXAgV2FsbCIsImJ1Y2tldHMiOjAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA0LTI4IDA4OjUzOjUwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA0LTI4IDA4OjU1OjU2IiwicGFyYW1ldGVycyI6W3siaWQiOjM5MTIsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjozOTEzLCJuYW1lIjoiZm9yY2Vfc2lnbl91cF93YWxsIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjIzNTIsIm5hbWUiOiIqIFJlY29yZCBFeHRlbnNpb24gU2lnblVwIFdhbGwiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MywicHVibGlzaGVkX29uIjoiMjAyMi0wNC0yOCAwODo1NjoyOSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMjAyMi0wNC0yOSAxMDozNzo1MiIsInBhcmFtZXRlcnMiOlt7ImlkIjozOTM5LCJuYW1lIjoiZm9yY2Vfc2lnbl91cF93YWxsIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6Mzk0MCwibmFtZSI6ImZvcmNlX3NpZ25fdXBfd2FsbCIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjB9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNDM5LCJuYW1lIjoiUmVjb3JkIEV4dGVuc2lvbiBTaWduVXAgV2FsbCAtIHByb2QiLCJidWNrZXRzIjo1MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA2LTA3IDA1OjIwOjEwIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA2LTI5IDExOjAzOjU3IiwicGFyYW1ldGVycyI6W3siaWQiOjQwNjAsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0MDYxLCJuYW1lIjoiZm9yY2Vfc2lnbl91cF93YWxsIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI0ODYsIm5hbWUiOiJSZWNvcmQgRXh0ZW5zaW9uIFNpZ25VcCBXYWxsIFx1MDQzYzIgLSBwcm9kIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDYtMjkgMTE6MDY6MDQiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDctMDQgMTE6NDU6NDciLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDEyNywibmFtZSI6ImZvcmNlX3NpZ25fdXBfd2FsbCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQxMjgsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjUwMCwibmFtZSI6IlJlY29yZCBFeHRlbnNpb24gU2lnblVwIFdhbGwgdjIgLSBwcm9kIiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDctMDYgMTA6MjU6MTgiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDgtMDkgMDg6MDI6NDEiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDE0NywibmFtZSI6ImZvcmNlX3NpZ25fdXBfd2FsbCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQxNDgsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjU1NiwibmFtZSI6IlJlY29yZCBFeHRlbnNpb24gU2lnblVwIFdhbGwgdjIgLSBwcm9kIChBXC9BXC9CXC9CKSIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA4LTA5IDA4OjAzOjQ2IiwicGF1c2VkX29uIjoiMjAyMi0wOC0wOSAwODowMzo1NyIsInN0b3BwZWRfb24iOiIyMDIyLTA4LTA5IDA4OjA0OjU3IiwicGFyYW1ldGVycyI6W3siaWQiOjQyMzcsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjo0MjM4LCJuYW1lIjoiZm9yY2Vfc2lnbl91cF93YWxsIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjI1NTcsIm5hbWUiOiJSZWNvcmQgRXh0ZW5zaW9uIFNpZ25VcCBXYWxsIHYyIC0gcHJvZCAoQVwvQVwvQlwvQikgSSIsImJ1Y2tldHMiOjUwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDgtMDkgMDg6NTE6MDYiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDktMjIgMDc6NDk6MzIiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDI0MCwibmFtZSI6ImZvcmNlX3NpZ25fdXBfd2FsbCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQyNDEsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjU1OCwibmFtZSI6IlJlY29yZCBFeHRlbnNpb24gU2lnblVwIFdhbGwgdjIgLSBwcm9kIChBXC9BXC9CXC9CKSBJSSIsImJ1Y2tldHMiOjUwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDgtMDkgMDg6NTE6MTIiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDktMjIgMDc6NDk6MjciLCJwYXJhbWV0ZXJzIjpbeyJpZCI6NDI0MiwibmFtZSI6ImZvcmNlX3NpZ25fdXBfd2FsbCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9LHsiaWQiOjQyNDMsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjYzMiwibmFtZSI6IlJlY29yZCBFeHRlbnNpb24gU2lnblVwIFdhbGwgLSBSb2xsb3V0IiwiYnVja2V0cyI6MTAwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDktMjIgMDc6NTA6MDgiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDktMjIgMDg6NTE6NTEiLCJwYXJhbWV0ZXJzIjpbXSwic2VnbWVudHMiOltdfSx7ImlkIjoyNjM1LCJuYW1lIjoiKiBSZWNvcmQgRXh0ZW5zaW9uIFNpZ25VcCBXYWxsIC0gUm9sbG91dCIsImJ1Y2tldHMiOjEwMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA5LTIyIDA4OjUyOjE0IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQzNTcsIm5hbWUiOiJmb3JjZV9zaWduX3VwX3dhbGwiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX1dfSwiSlMuV2ViaW5hci5SZWdpc3RyYW50Q2FwRm9yUHJlbWl1bSI6eyJpZCI6ODIwLCJuYW1lIjoiSlMuV2ViaW5hci5SZWdpc3RyYW50Q2FwRm9yUHJlbWl1bSIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6InVwZ3JhZGUsIGNoZWNrb3V0IGFuZCBtYXJrZXRpbmcgcGFnZXMiLCJleHBlcmltZW50cyI6W3siaWQiOjIyNDMsIm5hbWUiOiJSb2xsb3V0IHRvIDEwJSB0cmFmZmljIiwiYnVja2V0cyI6MTAwLCJzdGF0ZSI6MiwicHVibGlzaGVkX29uIjoiMjAyMi0wNi0wMSAwNToyNzoxNyIsInBhdXNlZF9vbiI6IjIwMjItMDctMDEgMTQ6MzE6NDUiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjozODAzLCJuYW1lIjoic2hvd19wcmVtaXVtX3JlZ2lzdHJhbnRfY2FwIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6MzgwNCwibmFtZSI6InNob3dfcHJlbWl1bV9yZWdpc3RyYW50X2NhcCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNDM4LCJuYW1lIjoiKiBSb2xsb3V0IHRvIDQwJSB0cmFmZmljIiwiYnVja2V0cyI6NDAwLCJzdGF0ZSI6MiwicHVibGlzaGVkX29uIjoiMjAyMi0wNi0wNiAxMToxNDowMSIsInBhdXNlZF9vbiI6IjIwMjItMDctMDEgMTQ6MzE6NTgiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjo0MDU4LCJuYW1lIjoic2hvd19wcmVtaXVtX3JlZ2lzdHJhbnRfY2FwIiwiY2hvaWNlIjoiY29udHJvbCIsIndlaWdodCI6MX0seyJpZCI6NDA1OSwibmFtZSI6InNob3dfcHJlbWl1bV9yZWdpc3RyYW50X2NhcCIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyNDQ0LCJuYW1lIjoiKiAqIFJvbGxvdXQgdG8gNTAlIHRyYWZmaWMiLCJidWNrZXRzIjo1MDAsInN0YXRlIjoyLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA2LTA4IDAwOjA1OjMxIiwicGF1c2VkX29uIjoiMjAyMi0wNy0wMSAxNDozMjowNCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjQwNjksIm5hbWUiOiJzaG93X3ByZW1pdW1fcmVnaXN0cmFudF9jYXAiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjo0MDcwLCJuYW1lIjoic2hvd19wcmVtaXVtX3JlZ2lzdHJhbnRfY2FwIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLkVkaXRvci5NYXNrc0dyYWR1YWxSZWxlYXNlIjp7ImlkIjo4MDcsIm5hbWUiOiJKUy5FZGl0b3IuTWFza3NHcmFkdWFsUmVsZWFzZSIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoiY3VpZCIsInVybCI6Imh0dHBzOlwvXC92aW1lby5jb21cL2NyZWF0ZVwvY3VzdG9taXplIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoyMTY0LCJuYW1lIjoiTWFza3NHcmFkdWFsUmVsZWFzZSIsImJ1Y2tldHMiOjIwMCwic3RhdGUiOjMsInB1Ymxpc2hlZF9vbiI6IjIwMjItMDMtMzAgMDI6Mjk6MDciLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjIwMjItMDQtMjYgMDg6MDg6NDMiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6MzcwNywibmFtZSI6InN1cHBvcnRfbWFza3MiLCJjaG9pY2UiOiJ2YXJpYW50Iiwid2VpZ2h0IjoxfSx7ImlkIjozNzA4LCJuYW1lIjoic3VwcG9ydF9tYXNrcyIsImNob2ljZSI6ImNvbnRyb2wiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoyMjY4LCJuYW1lIjoiX01hc2tzR3JhZHVhbFJlbGVhc2UiLCJidWNrZXRzIjo4MDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIyLTA0LTA1IDA4OjQxOjI3IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIyLTA0LTI2IDA4OjA4OjMzIiwicGFyYW1ldGVycyI6W3siaWQiOjM4MzMsIm5hbWUiOiJzdXBwb3J0X21hc2tzIiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX0seyJpZCI6MzgzNCwibmFtZSI6InN1cHBvcnRfbWFza3MiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfV0sInNlZ21lbnRzIjpbXX0seyJpZCI6MjMzOSwibmFtZSI6Il9fX01hc2tzR3JhZHVhbFJlbGVhc2UiLCJidWNrZXRzIjoxMDAwLCJzdGF0ZSI6MSwicHVibGlzaGVkX29uIjoiMjAyMi0wNC0yNiAxNDo1NzoxNSIsInBhdXNlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJzdG9wcGVkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInBhcmFtZXRlcnMiOlt7ImlkIjozOTI4LCJuYW1lIjoic3VwcG9ydF9tYXNrcyIsImNob2ljZSI6InZhcmlhbnQiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19LCJKUy5DaGVja291dC5BcHBsZVBheURlZmF1bHRTZWxlY3RlZCI6eyJpZCI6NjEzLCJuYW1lIjoiSlMuQ2hlY2tvdXQuQXBwbGVQYXlEZWZhdWx0U2VsZWN0ZWQiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJwcm8sIHByZW1pdW0sIHBsdXMsIGJ1c2luZXNzIGNoZWNrb3V0IHBhZ2VzIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoxNjE4LCJuYW1lIjoiQXBwbGUgcGF5IHNlbGVjdGVkIGJ5IGRlZmF1bHQiLCJidWNrZXRzIjoxMDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIxLTAzLTMwIDExOjE1OjI2IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjI4MjcsIm5hbWUiOiJzZWxlY3RfYXBwbGVfcGF5X2J5X2RlZmF1bHQiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjoyODI4LCJuYW1lIjoic2VsZWN0X2FwcGxlX3BheV9ieV9kZWZhdWx0IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119LHsiaWQiOjE2OTksIm5hbWUiOiIrOTAlIC0gQXBwbGUgcGF5IHNlbGVjdGVkIGJ5IGRlZmF1bHQiLCJidWNrZXRzIjo5MDAsInN0YXRlIjoxLCJwdWJsaXNoZWRfb24iOiIyMDIxLTA0LTA1IDE3OjM4OjA1IiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwicGFyYW1ldGVycyI6W3siaWQiOjI5NTgsIm5hbWUiOiJzZWxlY3RfYXBwbGVfcGF5X2J5X2RlZmF1bHQiLCJjaG9pY2UiOiJjb250cm9sIiwid2VpZ2h0IjoxfSx7ImlkIjoyOTU5LCJuYW1lIjoic2VsZWN0X2FwcGxlX3BheV9ieV9kZWZhdWx0IiwiY2hvaWNlIjoidmFyaWFudCIsIndlaWdodCI6MX1dLCJzZWdtZW50cyI6W119XX0sIkpTLlJldmlldy5SZWdpc3RlclRvQ29tbWVudCI6eyJpZCI6NjAxLCJuYW1lIjoiSlMuUmV2aWV3LlJlZ2lzdGVyVG9Db21tZW50IiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC86dXNlcm5hbWVcL3Jldmlld1wvOmNsaXBJZFwvOmNsaXBIYXNoIiwiZXhwZXJpbWVudHMiOlt7ImlkIjoxNTg5LCJuYW1lIjoiUmVnaXN0ZXIgdG8gQ29tbWVudCAxMCUiLCJidWNrZXRzIjoxMDAsInN0YXRlIjozLCJwdWJsaXNoZWRfb24iOiIyMDIxLTAyLTExIDExOjE4OjQxIiwicGF1c2VkX29uIjoiMDAwMC0wMC0wMCAwMDowMDowMCIsInN0b3BwZWRfb24iOiIyMDIxLTAzLTAxIDExOjUxOjEwIiwicGFyYW1ldGVycyI6W3siaWQiOjI3ODcsIm5hbWUiOiJyZXF1aXJlX3JlZ2lzdHJhdGlvbiIsImNob2ljZSI6InRydWUiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfSx7ImlkIjoxNjIzLCJuYW1lIjoiUmVnaXN0ZXIgdG8gQ29tbWVudCAjMiIsImJ1Y2tldHMiOjEwMCwic3RhdGUiOjEsInB1Ymxpc2hlZF9vbiI6IjIwMjEtMDMtMDEgMTE6NTM6NTUiLCJwYXVzZWRfb24iOiIwMDAwLTAwLTAwIDAwOjAwOjAwIiwic3RvcHBlZF9vbiI6IjAwMDAtMDAtMDAgMDA6MDA6MDAiLCJwYXJhbWV0ZXJzIjpbeyJpZCI6MjgzNywibmFtZSI6InJlcXVpcmVfcmVnaXN0cmF0aW9uIiwiY2hvaWNlIjoidHJ1ZSIsIndlaWdodCI6MX0seyJpZCI6MjgzOCwibmFtZSI6InJlcXVpcmVfcmVnaXN0cmF0aW9uIiwiY2hvaWNlIjoiZmFsc2UiLCJ3ZWlnaHQiOjF9XSwic2VnbWVudHMiOltdfV19fTsKICAgIDwvc2NyaXB0Pgo8c2NyaXB0PgooZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2d0bSA9IFt7ImNsaXBfaWQiOjc4NDg4NDYsInBhZ2VfcGF0aCI6IlwvNzg0ODg0NiIsImNyZWF0b3JfaWQiOjE5NTU3NSwiY3JlYXRvcl91c2VyX3R5cGUiOiJiYXNpYyIsInZpZGVvX2NhdGVnb3JpZXMiOiIiLCJwcml2YWN5IjoiYW55Ym9keSIsInN0YWZmX3BpY2siOiJubyIsInVzZXJfaWQiOm51bGwsInBhZ2VfdHlwZSI6IlZpZGVvIiwibGFuZ3VhZ2UiOiJlbiIsInVzZXJfc3RhdHVzIjoibG9nZ2VkX291dCIsInVzZXJfdHlwZSI6Im5vbmUiLCJnYV91bml2ZXJzYWxfaWQiOiJVQS03NjY0MS04IiwiY29tc2NvcmVfc2l0ZV9pZCI6MTAzNDgyODl9XTsKCiAgICAgICAgdmFyIGdkcHJDb29raWUgPSAoZG9jdW1lbnQuY29va2llLm1hdGNoKC9eKD86Lio7KT9ccyp2aW1lb19nZHByX29wdGluXHMqPVxzKihbXjtdKykoPzouKik/JC8pfHxbLG51bGxdKVsxXTsKICAgIGlmIChnZHByQ29va2llID09PSAnLTEnKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICAgICB3aW5kb3cuX2d0bS5wdXNoKHsKICAgICAgICAndnVpZCc6IGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oPzooPzpefC4qO1xzKil2dWlkXHMqXD1ccyooW147XSopLiokKXxeLiokLywgIiQxIiksCiAgICAgICAgJ2d0bS5zdGFydCc6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLAogICAgICAgICdldmVudCc6ICdndG0uanMnCiAgICB9KTsKICAgICAgICAKICAgIHZhciBhY3RpdmVHcm91cHMgPSB3aW5kb3cuT25ldHJ1c3RBY3RpdmVHcm91cHMgfHwgJyc7CiAgICB2YXIgZ3RtcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLAogICAgICAgIG5vZGU7CiAgICBndG1zLmFzeW5jID0gdHJ1ZTsKICAgIGd0bXMudHlwZSA9IGFjdGl2ZUdyb3Vwcy5pbmRleE9mKCJDMDAwMiIpID09PSAtMSA/ICd0ZXh0L3BsYWluJyA6ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgZ3Rtcy5jbGFzc05hbWUgPSAib3B0YW5vbi1jYXRlZ29yeS1DMDAwMiI7CiAgICBndG1zLnNyYyA9ICcvL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9R1RNLVJCS0smbD1fZ3RtJzsKICAgIG5vZGUgPSBkb2N1bWVudC5oZWFkOwogICAgbm9kZS5hcHBlbmRDaGlsZChndG1zKTsKfSkoKTsKPC9zY3JpcHQ+CjxzY3JpcHQ+CiAgICB2YXIgZ29vZ2xldGFnID0gZ29vZ2xldGFnIHx8IHt9LAogICAgICAgIGdwdGFkc2xvdHMgPSBbXSwKICAgICAgICBsYW5ndWFnZSwKICAgICAgICBoYXNfdXBsb2FkZWQsCiAgICAgICAgY29ob3J0OwogICAgZ29vZ2xldGFnLmNtZCA9IGdvb2dsZXRhZy5jbWQgfHwgW107CgogICAgKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBnZHByQ29va2llID0gKGRvY3VtZW50LmNvb2tpZS5tYXRjaCgvXig/Oi4qOyk/XHMqdmltZW9fZ2Rwcl9vcHRpblxzKj1ccyooW147XSspKD86LiopPyQvKXx8WyxudWxsXSlbMV07CiAgICAgICAgaWYgKGdkcHJDb29raWUgPT09ICctMScpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgYWN0aXZlR3JvdXBzID0gd2luZG93Lk9uZXRydXN0QWN0aXZlR3JvdXBzIHx8ICcnOwogICAgICAgIHZhciBnYWRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksCiAgICAgICAgICAgIHVzZVNTTCA9ICdodHRwczonID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLAogICAgICAgICAgICBub2RlOwogICAgICAgIGdhZHMuYXN5bmMgPSB0cnVlOwogICAgICAgIGdhZHMudHlwZSA9IGFjdGl2ZUdyb3Vwcy5pbmRleE9mKCJDMDAwMiIpID09PSAtMSA/ICd0ZXh0L3BsYWluJyA6ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIGdhZHMuY2xhc3NOYW1lID0gIm9wdGFub24tY2F0ZWdvcnktQzAwMDIiOwogICAgICAgIGdhZHMuc3JjID0gKHVzZVNTTCA/ICdodHRwczonIDogJ2h0dHA6JykgKyAnLy93d3cuZ29vZ2xldGFnc2VydmljZXMuY29tL3RhZy9qcy9ncHQuanMnOwogICAgICAgIG5vZGUgPSBkb2N1bWVudC5oZWFkOwogICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZ2Fkcyk7CiAgICB9KSgpOwoKICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwdGFkc2xvdHNbMF0gPSBnb29nbGV0YWcuZGVmaW5lU2xvdCgnLy81NDU0OTU0NC9jbGlwcycsIFtbOTcwLDI1MF0sWzcyOCw5MF0sWzMwMCwyNTBdLCJmbHVpZCJdLCAnZGl2LWdwdC1hZC0xMjgzMjU1NTIyJykuc2V0VGFyZ2V0aW5nKCdwJywgWydCVEYnXSk7CgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBncHRhZHNsb3RzWzBdLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSA9IGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oPzooPzpefC4qO1xzKilsYW5ndWFnZVxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpOwogICAgICAgICAgICBoYXNfdXBsb2FkZWQgPSAoZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLyg/Oig/Ol58Lio7XHMqKWhhc191cGxvYWRlZFxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpKSA/ICdZJyA6ICdOJzsKICAgICAgICAgICAgY29uc2VudCA9IChkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopdmltZW9fZ2Rwcl9vcHRpblxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpKSA9PT0gJy0xJyA/IDEgOiAwOwogICAgICAgICAgICBjb2hvcnQgPSAnQSc7CiAgICAgICAgCiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnbGFuZ3VhZ2UnLCBbbGFuZ3VhZ2VdKTsKICAgICAgICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdpc191cGxvYWRlcicsIFtoYXNfdXBsb2FkZWRdKTsKICAgICAgICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb2hvcnQnLCBbY29ob3J0XSk7CiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnY29ob3J0X2EnLCBbKGNvaG9ydCA9PT0gJ0EnKSA/ICdZJyA6ICdOJ10pOwogICAgICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2NvaG9ydF9iJywgWyhjb2hvcnQgPT09ICdCJykgPyAnWScgOiAnTiddKTsKICAgICAgICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdwcm9kdWN0JywgWycnXSk7CiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnc3RvcmFnZScsIFsnTiddKTsKCiAgICAgICAgICAgICAgICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdzZWMnLCBbJ2ZhbHNlJ10pOwoKICAgICAgICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdsb2dnZWRfaW4nLCBbJ2ZhbHNlJ10pOwoKICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ3JwdicsIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwKSsxKS50b1N0cmluZygpKTsKCiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFJlcXVlc3ROb25QZXJzb25hbGl6ZWRBZHMoY29uc2VudCk7CiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLmVuYWJsZUFzeW5jUmVuZGVyaW5nKCk7CiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLmRpc2FibGVJbml0aWFsTG9hZCgpOwogICAgICAgIGdvb2dsZXRhZy5lbmFibGVTZXJ2aWNlcygpOwogICAgfSk7Cjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9hYmxpbmNvbG5fY29tYmluZWRfOTVhZjAzMzc5NGVjNTMxZjIxZjkzYWYzOTA2YWIzOGUubWluLmpzIj48L3NjcmlwdD4KCgoKICAgIDwvaGVhZD4KICAgIDxib2R5IGNsYXNzPSJvbnNpdGUgIj4KICAgICAgICA8ZGl2IGlkPSJ3cmFwIiBjbGFzcz0ib3V0ZXJfd3JhcCI+CiAgICAgICAgICAgIDxkaXYgaWQ9InRvcG5hdl9vdXRlcl93cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImNyZWF0ZS1mYWNlYm9vay1oZWFkZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWaW1lb0JyYW5kX0NvbG9yUmliYm9uICI+PC9kaXY+CgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKCjxzdHlsZT4KICAgIEAtd2Via2l0LWtleWZyYW1lcyByZWNvcmRfYW5pbWF0aW9uIHsKICAgICAgICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7CiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpOwogICAgICAgIH0KICAgICAgICA2MCUgewogICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTsKICAgICAgICB9CiAgICB9CgogICAgQGtleWZyYW1lcyByZWNvcmRfYW5pbWF0aW9uIHsKICAgICAgICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7CiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpOwogICAgICAgIH0KICAgICAgICA2MCUgewogICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTsKICAgICAgICB9CiAgICB9CgogICAgLmxvZ2dlZF9vdXRfcmVjb3JkX2FuaW1hdGlvbiB7CiAgICAgICAgYW5pbWF0aW9uOiByZWNvcmRfYW5pbWF0aW9uIDEuNXMgLjI1cyA1OwogICAgfQoKICAgIC5sb2dnZWRfaW5fcmVjb3JkX2FuaW1hdGlvbiB7CiAgICAgICAgYW5pbWF0aW9uOiByZWNvcmRfYW5pbWF0aW9uIDEuNXMgLjI1cyBpbmZpbml0ZTsKICAgIH0KCiAgICAubmV3X2xhYmVsIHsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBwYWRkaW5nOiAwIDJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9Cgo8L3N0eWxlPgoKPHNjcmlwdD4KICAgIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKPC9zY3JpcHQ+Cgo8ZGl2IGlkPSJ0b3BuYXZfZGVza3RvcCIgY2xhc3M9InRvcG5hdl9kZXNrdG9wICIgcm9sZT0iYmFubmVyIj4KICAgIDxkaXYgY2xhc3M9InRvcG5hdl9kZXNrdG9wX3dyYXBwZXIgIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbG9nbyIgaHJlZj0iLy92aW1lby5jb20iIGFsdD0iR28gdG8gVmltZW8gaG9tZSBwYWdlIiBhcmlhLWxhYmVsPSJHbyB0byBWaW1lbyBob21lIHBhZ2UiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnZpbWVvX2hvbWUiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2hvbWVfY2xpY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFsdD0iVmltZW8iIHdpZHRoPSIxMDAiIGhlaWdodD0iNDAiPjxwYXRoIGQ9Ik0yMi40NDggMTQuNTc1Yy0uMTA0IDIuMTctMS42MTggNS4xNDYtNC41NDQgOC45MTItMy4wMyAzLjk0Mi01LjU5IDUuOTEyLTcuNjg2IDUuOTEyLTEuMjk3IDAtMi4zOTctMS4yMDQtMy4zLTMuNi0uNi0yLjItMS4yMDItNC4zOTgtMS43OTQtNi41OTgtLjY2NC0yLjM5Ni0xLjM4LTMuNi0yLjE0Ny0zLjYtLjE2NiAwLS43NDcuMzU0LTEuNzUzIDEuMDVsLTEuMDQ4LTEuMzVjMS4xLS45NjUgMi4xOS0xLjkzIDMuMjU3LTIuOTA1IDEuNDYzLTEuMjY1IDIuNTczLTEuOTQgMy4zLTIuMDAyIDEuNzMyLS4xNjYgMi44IDEuMDE3IDMuMjA1IDMuNTU4LjQzNSAyLjc0LjczNiA0LjQ0LjkwMiA1LjExNS40OTggMi4yNyAxLjA0OCAzLjQwMiAxLjY1IDMuNDAyLjQ2NiAwIDEuMTcyLS43MzcgMi4xMDUtMi4yMS45MzQtMS40NzMgMS40MzItMi41OTMgMS41MDQtMy4zNy4xMzMtMS4yNzctLjM2NS0xLjkxLTEuNTA2LTEuOTEtLjUzIDAtMS4wOC4xMjUtMS42NS4zNjQgMS4xLTMuNTkgMy4xODYtNS4zMzMgNi4yNzctNS4yMyAyLjI3My4wNzMgMy4zNSAxLjU1NiAzLjIyNyA0LjQ2bTEzLjc1NSA3LjAzNGMtLjkzMyAxLjc2NC0yLjIyIDMuMzctMy44NiA0LjgwMy0yLjI0IDEuOTMtNC40NyAyLjkwNS02LjcgMi45MDUtMS4wMzcuMDAyLTEuODI2LS4zMy0yLjM3Ni0uOTk0LS41NS0uNjYzLS44MS0xLjUzNS0uNzc3LTIuNjAzLjAzLTEuMS4zNzItMi44IDEuMDI1LTUuMTA0LjY1NC0yLjMwMy45NzYtMy41MzcuOTc2LTMuNzAzIDAtLjg2LS4zLTEuMjk3LS45MDItMS4yOTctLjE5OCAwLS43Ny4zNTMtMS43MDIgMS4wNDhsLTEuMTUyLTEuMzVjMS4wNy0uOTYyIDIuMTM3LTEuOTI3IDMuMjA2LTIuOTAyIDEuNDMtMS4yNjYgMi41LTEuOTQgMy4yMDUtMi4wMDIgMS4xLS4xMDMgMS45MS4yMyAyLjQyOC45NzYuNTE4Ljc0Ny43MDUgMS43MjIuNTggMi45MTUtLjQzNSAyLjAzNC0uOTAyIDQuNjA3LTEuNCA3LjczLS4wMyAxLjQzLjQ4OCAyLjE0NiAxLjU1NiAyLjE0Ni40NjcgMCAxLjI5Ny0uNDk4IDIuNS0xLjQ4My45OTYtLjgyIDEuODE1LTEuNTk4IDIuNDUtMi4zMjRsLjk0MiAxLjI0NG0tNC4zNTctMTcuOGMtLjAzLjgzLS40NDYgMS42MjgtMS4yNTUgMi4zOTUtLjkuODYtMS45NyAxLjI5Ni0zLjIwNCAxLjI5Ni0xLjkgMC0yLjgyMi0uODMtMi43NS0yLjQ5LjAzMi0uODYuNTQtMS42OSAxLjUyNi0yLjQ5Ljk4NS0uNzk3IDIuMDc0LTEuMTkgMy4yNzgtMS4xOS43MDUgMCAxLjI4Ni4yNyAxLjc1My44Mi40NjcuNTQuNjg0IDEuMS42NTMgMS42Nm0zNS42MTIgMTcuOGMtLjkzMyAxLjc2My0yLjIyIDMuMzctMy44NiA0LjgwMi0yLjI0IDEuOTMtNC40NyAyLjkwNC02LjcgMi45MDQtMi4xNjguMDAyLTMuMjE2LTEuMjAyLTMuMTUzLTMuNTk4LjAzLTEuMDcuMjM4LTIuMzU1LjYyMi0zLjg1LjM4NC0xLjUwMy41OS0yLjY2NS42MjMtMy41MDUuMDMtMS4yNjUtLjM1My0xLjg5OC0xLjE1Mi0xLjg5OC0uODcgMC0xLjkxIDEuMDM2LTMuMTEyIDMuMS0xLjI3NiAyLjE2OC0xLjk2IDQuMjc0LTIuMDY0IDYuMzA4LS4wNzMgMS40My4wNzIgMi41NC40MjUgMy4yOTgtMi4zMjQuMDY0LTMuOTYzLS4zMi00Ljg4Ni0xLjE1LS44My0uNzM3LTEuMjEyLTEuOTUtMS4xNS0zLjY1Mi4wMy0xLjA2OC4xOTgtMi4xMzcuNDg4LTMuMjA1LjI5LTEuMDcuNDU3LTIuMDIzLjQ4OC0yLjg1My4wNjItMS4yMzQtLjM4NC0xLjg1Ny0xLjM1LTEuODU3LS44NCAwLTEuNzQuOTU1LTIuNzA2IDIuODUzLS45NjYgMS45LTEuNTA1IDMuODktMS42MSA1Ljk1Ni0uMDYgMS44NjcuMDUzIDMuMTc0LjM2NCAzLjktMi4yOTMuMDYyLTMuOTItLjQxNS00Ljg3Ni0xLjQ1Mi0uNzk4LS44Ni0xLjE2LTIuMTgtMS4xLTMuOTQyLjAzMi0uODYuMTg4LTIuMDc1LjQ1Ny0zLjYyLjI4LTEuNTQ2LjQyNS0yLjc1LjQ1Ny0zLjYyLjA2Mi0uNjAzLS4wODMtLjkwMy0uNDQ2LS45MDMtLjE5NyAwLS43NjguMzQtMS43MDIgMS4wMTVsLTEuMjAzLTEuMzQ4Yy4xNjgtLjEzNSAxLjIxNi0xLjEgMy4xNTYtMi45MDUgMS40LTEuMjk3IDIuMzU0LTEuOTcgMi44NTItMi4wMDIuODcyLS4wNzMgMS41NjcuMjkgMi4xMDYgMS4wOC41My43ODcuOCAxLjY5LjggMi43MjcgMCAuMzMyLS4wMzIuNjU0LS4xMDUuOTU0LjQ5Ny0uNzY2IDEuMDgtMS40MyAxLjc1Mi0yIDEuNTM3LTEuMzQgMy4yNi0yLjA4NiA1LjE1Ny0yLjI1MiAxLjY0LS4xMzUgMi44LjI1IDMuNTA1IDEuMTUyLjU3LjczNi44MyAxLjc4NC44IDMuMTUzLjIzNy0uMTk4LjQ4Ni0uNDE2Ljc0Ni0uNjU0Ljc2Ny0uOTAzIDEuNTE0LTEuNjIgMi4yNS0yLjE0OCAxLjIzNS0uOTAyIDIuNTItMS40IDMuODYtMS41MDQgMS41OTctLjEzNSAyLjc1LjI1IDMuNDU0IDEuMTUyLjYwMi43MjYuODcgMS43NzQuOCAzLjE0My0uMDMyLjkzMy0uMjYgMi4yOC0uNjc1IDQuMDY1LS40MTYgMS43NzMtLjYyNCAyLjgtLjYyNCAzLjA3LS4wMy42OTUuMDMgMS4xODIuMTk3IDEuNDQyLjE2Ni4yNy41Ny4zOTQgMS4yMDMuMzk0LjQ2NyAwIDEuMjk3LS40OTcgMi41LTEuNDgyLjk5Ni0uODIgMS44MTYtMS41OTggMi40NS0yLjMyNGwuOTYzIDEuMjU0bTE4Ljc2NS0uMDUyYy0uOTY1IDEuNTk4LTIuODc0IDMuMTk1LTUuNzA2IDQuNzkzLTMuNTM4IDIuMDMyLTcuMTI3IDMuMDUtMTAuNzU4IDMuMDUtMi43MDYgMC00LjYzNi0uOTA0LTUuODA4LTIuNy0uODMtMS4yMzMtMS4yMzQtMi42OTYtMS4yMDMtNC40MDcuMDMtMi42OTggMS4yMzQtNS4yNyAzLjYtNy43MSAyLjYwMy0yLjY2NSA1LjY3NC00LjAwMyA5LjIxLTQuMDAzIDMuMjcgMCA1IDEuMzI4IDUuMjA4IDMuOTk0LjEzNSAxLjcwMi0uNzk4IDMuNDQ1LTIuOCA1LjI0LTIuMTM3IDEuOTYtNC44MjQgMy4yMTUtOC4wNiAzLjc0NC42LjgzIDEuNTA0IDEuMjQ1IDIuNzA3IDEuMjQ1IDIuMzk2IDAgNS4wMi0uNjEzIDcuODYzLTEuODM3IDIuMDMzLS44NiAzLjYzLTEuNzUzIDQuODAzLTIuNjc2bC45NDUgMS4yNjVtLTExLjM2LTUuMjI4Yy4wMzItLjg5Mi0uMzMtMS4zNS0xLjEtMS4zNS0uOTk0IDAtMi4wMS42ODYtMy4wNDggMi4wNjYtMS4wMzggMS4zOC0xLjU2NyAyLjY5Ny0xLjU5OCAzLjk2Mi0uMDIgMC0uMDIuMjE4IDAgLjY0MyAxLjYzLS42IDMuMDUtMS41MTQgNC4yNDItMi43MzguOTY2LTEuMDU4IDEuNDYzLTEuOTIgMS41MDUtMi41ODNtMjQuOTQ2IDEuODY4Yy0uMTM1IDMuMDcyLTEuMjY1IDUuNzE3LTMuNDAyIDcuOTQ3LTIuMTM1IDIuMjMtNC43OSAzLjM1LTcuOTU1IDMuMzUtMi42MzUgMC00LjYzNy0uODUtNi4wMDYtMi41NS0uOTk3LTEuMjY3LTEuNTU3LTIuODU0LTEuNjUtNC43NTItLjE2Ni0yLjg2My44Ni01LjQ5OCAzLjEtNy44OTQgMi40MDgtMi42NjUgNS40MjctMy45OTMgOS4wNTctMy45OTMgMi4zMzQgMCA0LjA5OC43ODggNS4zIDIuMzQ0IDEuMTMyIDEuNDQzIDEuNjUgMy4yOSAxLjU1NyA1LjU1bS01LjY2NC0uMTg1Yy4wMy0uOTAzLS4wOTQtMS43MzMtLjM3NC0yLjQ4LS4yOC0uNzQ3LS42OTUtMS4xMy0xLjIyNC0xLjEzLTEuNzAyIDAtMy4xMDIuOTIzLTQuMjAyIDIuNzYtLjkzMyAxLjUwMy0xLjQzIDMuMTEtMS41MDQgNC44MTItLjAzLjg0LjExNCAxLjU3Ny40NDYgMi4yMS4zNjQuNzM2Ljg4MiAxLjEgMS41NTYgMS4xIDEuNTA1IDAgMi43OS0uODgzIDMuODYtMi42NTYuODkyLTEuNDcyIDEuMzgtMy4wMDggMS40NC00LjYxNWguMDAyeiIgZmlsbD0iIzExMjIzMyIvPjwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0idG9wbmF2X3N0b2NrX2xvZ28iIGhyZWY9Ii9zdG9jayI+CiAgICAgICAgICAgICAgICA8c3ZnIGFsdD0iVmltZW8iIHdpZHRoPSIxNzAiIGhlaWdodD0iNDAiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDc4MCAxMjAiPjxwYXRoIGQ9Ik00NzEuOSA3MC4zMWMtMTIuMTQtMi43NC0yNC4yOC0zLjktMjQuMjgtMTIgMC02LjUgOC44Mi03LjY2IDEzLjU5LTcuNjYgNy4yMiAwIDEzLjczIDIuMTcgMTUuMTcgMTBoMTcuMmMtMi0xNi42Mi0xNS45LTIzLTMxLjIyLTIzLTEzLjU4IDAtMzEuMjEgNS4wNS0zMS4yMSAyMS4zOCAwIDE1LjE3IDExLjg1IDE5LjUxIDI0IDIyLjExczI0IDMuNzYgMjQuNDIgMTIuNDNjLjQzIDguNTItMTAuNCA5LjgyLTE2LjYyIDkuODItOC44MSAwLTE2LTMuNDYtMTYuOS0xM2gtMTYuNDljLjI5IDE3LjYzIDE0LjMxIDI2IDMzLjA5IDI2IDE1LjQ2IDAgMzMuMzgtNi41IDMzLjM4LTI0LjI4LS4wMy0xNC43Mi0xMi4xNC0xOS4wNS0yNC4xMy0yMS44ek01MjUuNjYgMTcuMjhoLTE2LjQ4djIyLjRoLTEyLjQyVjUyaDEyLjQydjQ0Yy4yOSAxMi40MyAzLjQ3IDE5LjA4IDIwLjY3IDE5LjA4IDMuNjEgMCA3LjA4LS41OCAxMC42OS0uODd2LTEyLjY4YTI4LjUyIDI4LjUyIDAgMCAxLTYuOTQuNTdjLTcuMzcgMC03Ljk0LTMuNDctNy45NC0xMC4yNlY1MmgxNC44OFYzOS42OGgtMTQuODh6TTU4MC44NSAzNy42NmMtMjQgMC0zNy43MSAxNi40Ny0zNy43MSAzOS4zIDAgMjMgMTMuNzMgMzkuNDUgMzcuNzEgMzkuNDVTNjE4LjU3IDk5Ljk0IDYxOC41NyA3N2MwLTIyLjg3LTEzLjczLTM5LjM0LTM3LjcyLTM5LjM0em0wIDY1Ljc0Yy0xNC43MyAwLTIxLjI0LTEzLjQtMjEuMjQtMjYuNHM2LjUxLTI2LjMgMjEuMjQtMjYuM1M2MDIuMSA2NC4xIDYwMi4xIDc3cy02LjUxIDI2LjQtMjEuMjUgMjYuNHpNNjYyLjc5IDUwLjY2YzkuMSAwIDE1Ljc1IDQuOTEgMTcuMDUgMTRoMTYuNDdjLTEuNTktMTguMzUtMTYuMzMtMjctMzMuNjctMjctMjQuNTYgMC0zNi44NSAxNy42My0zNi44NSA0MC4xNyAwIDIyIDEyLjg2IDM4LjU4IDM2LjI3IDM4LjU4IDE5LjIyIDAgMzEuMjItMTAuNjkgMzQuMjUtMzAuMDZoLTE2LjQ3Yy0xLjU5IDEwLjctOC4yNCAxNy4wNS0xNy43OCAxNy4wNS0xNC4zIDAtMTkuNzktMTMuMTUtMTkuNzktMjUuNTcgMC0yMi42OSAxMS45OS0yNy4xNyAyMC41Mi0yNy4xN3pNNzQyLjI2IDY3LjEzbDI4LjYxLTI3LjQ1aC0yMC4yM2wtMjkuNzYgMzAuMlYxMS4yMUg3MDQuNHYxMDMuMThoMTYuNDhWODcuNjVsOS44Mi05LjUzIDIyLjgzIDM2LjI3aDIwLjA5bC0zMS4zNi00Ny4yNnoiIGZpbGw9IiNmZmYiPjwvcGF0aD48cGF0aCBkPSJNMTE3LjI1IDI2LjcyYTE4LjM3IDE4LjM3IDAgMCAwIDEzLjE0LTUuMzFxNC45Mi00LjY5IDUuMTMtOS44YTkuNjIgOS42MiAwIDAgMC0yLjY3LTYuODQgOS4wOCA5LjA4IDAgMCAwLTcuMTgtMy4zNyAyMC45MSAyMC45MSAwIDAgMC0xMy40NSA0LjlxLTYuMDYgNC45MS02LjI2IDEwLjIxLS40IDEwLjIyIDExLjI5IDEwLjIxek0zODYuMTIgMzguMjVxLTIyLjM4IDAtMzcuMTUgMTYuMzlRMzM1LjIgNjkuNCAzMzYuMjQgODdjLjA1Ljg2LjEyIDEuNy4yMiAyLjUzbC0xLjU0LjY4cS0xNy40NiA3LjUyLTMyLjIzIDcuNTEtNy40IDAtMTEuMDktNS4xMiAxOS45LTMuMjcgMzMtMTUuMzUgMTIuNC0xMS4wMyAxMS41NC0yMS40Ny0xLjIzLTE2LjM3LTIxLjM0LTE2LjM4LTIxLjggMC0zNy44IDE2LjQyLTE0LjU2IDE1LTE0Ljc3IDMxLjZhMzcuNTcgMzcuNTcgMCAwIDAgLjI3IDUuMzdjLTIuMjkgMS41MS00IDIuMjctNS4yIDIuMjdxLTMuOSAwLTQuOTItMS42M2MtLjY5LTEuMDktMS0zLjA2LS44My01LjkzcTAtMS42NCAyLjU3LTEyLjU3dDIuNzctMTYuNjdxLjQtOC4zNy0zLjI4LTEyLjg4LTQuMzItNS41Mi0xNC4xNy00LjdhMzAuNDIgMzAuNDIgMCAwIDAtMTUuOCA2LjE2IDU0LjU3IDU0LjU3IDAgMCAwLTkuMjMgOC44MmMtMS4xIDEtMi4xMiAxLjg2LTMuMDggMi42N3EuMTktOC40MS0zLjI4LTEyLjkzLTQuMzItNS41My0xNC4zOC00LjcyYTM2LjQ2IDM2LjQ2IDAgMCAwLTIxLjEzIDkuMjQgMzcuNjcgMzcuNjcgMCAwIDAtNy4xOSA4LjIxIDE4LjE1IDE4LjE1IDAgMCAwIC40MS0zLjlBMTkuNDIgMTkuNDIgMCAwIDAgMTYyLjUgNDNxLTMuMjgtNC44Mi04LjYyLTQuNDEtMy4wNy4yMS0xMS42OSA4LjIxLTExLjkxIDExLjA4LTEyLjkzIDExLjlsNC45MiA1LjU0YzMuODMtMi43NiA2LjE2LTQuMTUgNy00LjE1cTIuMjUgMCAxLjg1IDMuNjhhMTE0LjExIDExNC4xMSAwIDAgMS0xLjg5IDE0Ljg0Yy0uNyAzLjk0LTEuMiA3LjMzLTEuNTIgMTAuMTlsLS4xOC4xNXEtNy4zOSA2LjA4LTEwLjI2IDYuMDdjLTQuMzggMC02LjUtMi45Mi02LjM3LTguNzlxMy4wOC0xOS4yMiA1Ljc2LTMxLjY5LjgxLTcuMzYtMi4zNy0xMnQtMTAtNHEtNC4zMi40LTEzLjE0IDguMjFMOTcgNTIuMzljLS40MS05LjY4LTQuODItMTQuNjYtMTMuMjgtMTQuOTFxLTE5LS42LTI1Ljc0IDIxLjQ2YTE3LjE5IDE3LjE5IDAgMCAxIDYuNzYtMS41cTcgMCA2LjE2IDcuODQtLjQ2IDQuNzItNi4yIDEzLjgxdC04LjYyIDkuMDZxLTMuNjkgMC02Ljc3LTE0LTEtNC4xMS0zLjY5LTIxLTIuNDctMTUuNTQtMTMuMTQtMTQuNTJRMjggMzkgMTguOTQgNDYuODRxLTYuNTcgNi0xMy4zNCAxMS45bDQuMyA1LjU0UTE2LjA1IDYwIDE3LjA3IDYwcTQuNzEgMCA4LjgxIDE0Ljc2bDcuMzggMjcuMDZxNS41MiAxNC43NiAxMy41MSAxNC43NiAxMi45MiAwIDMxLjU1LTI0LjI0IDEzLjEtMTYuODQgMTctMjguNWMzLjQ0LTIuNTUgNS41Ny0zLjg0IDYuMzUtMy44NHEzLjY5IDAgMy42OSA1LjMzIDAgMS00IDE1LjE4dC00LjIgMjAuOTJxLS4yMSA2LjU3IDMuMTggMTAuNjZjMi4yNSAyLjc0IDUuNTEgNC4xMSA5Ljc1IDQuMTFxMTMuNzUgMCAyNy41LTExLjljLjgyLS43MSAxLjYxLTEuNDQgMi4zOS0yLjE4YTE2LjUxIDE2LjUxIDAgMCAwIDMuNzcgNy41NnE1LjkzIDYuMzQgMjAgNS45My0xLjg5LTQuNTItMS40Ny0xNmE1OS43IDU5LjcgMCAwIDEgNi41Ny0yNC40M3E2LTExLjY4IDExLjEtMTEuNyA2IDAgNS41NSA3LjU5YTUzLjEzIDUzLjEzIDAgMCAxLTIgMTEuNzEgNTUuMjMgNTUuMjMgMCAwIDAtMiAxMy4xM3EtLjQxIDEwLjQ3IDQuNzEgMTUgNS43MyA1LjEzIDIwLjA1IDQuNzItMi4xMy00LjcxLTEuNzItMTMuNTQuNi0xMi41MiA4LjQ0LTI1Ljg2IDcuNDEtMTIuNzIgMTIuNzYtMTIuNzMgNSAwIDQuNzQgNy44YTc0Ljk0IDc0Ljk0IDAgMCAxLTIuNTYgMTQuMzYgNzQuNjEgNzQuNjEgMCAwIDAtMi41NyAxNS43OXEtLjQxIDE0Ljc4IDEyLjk0IDE0Ljc3IDEzLjc0IDAgMjcuNS0xMS45bC40NC0uNGMuMzIuNTQuNjQgMS4wOCAxIDEuNnE3LjE5IDExLjA4IDIzLjgxIDExLjA4IDIyLjM2IDAgNDQuMTMtMTIuNWMxLjYzLS45MiAzLjE3LTEuODMgNC42NS0yLjc1YTI5LjQzIDI5LjQzIDAgMCAwIDMuMjQgNS4xOHE4LjQyIDEwLjQ1IDI0LjYzIDEwLjQ1IDE5LjUgMCAzMi42NC0xMy43M2E0OC43OSA0OC43OSAwIDAgMCAxNC0zMi41OHEuNjEtMTMuOTMtNi4zNi0yMi43NS03LjQ5LTkuNjUtMjEuODUtOS42N3ptLTk3Ljc2IDQ2LjU2YTExLjEyIDExLjEyIDAgMCAxIDAtMi42NnEuMTktNy43NSA2LjU1LTE2LjIzdDEyLjUtOC40OGMzLjE1IDAgNC42NSAxLjg1IDQuNTEgNS41MnEtLjE5IDQuMDgtNi4xNCAxMC42MmE0Ni4yNSA0Ni4yNSAwIDAgMS0xNy40MiAxMS4yM3pNMzkxIDY5Ljg1YTM5IDM5IDAgMCAxLTYgMTguOTJxLTYuNTcgMTAuOTEtMTUuODEgMTAuOS00LjExIDAtNi4zNi00LjUyYTE3LjY2IDE3LjY2IDAgMCAxLTEuODUtOS4wNSAzOS44MSAzOS44MSAwIDAgMSA2LjE2LTE5Ljc0cTYuODYtMTEuMzEgMTcuMzMtMTEuMzFjMi4xOSAwIDMuODYgMS41NCA1IDQuNjNBMjUuODIgMjUuODIgMCAwIDEgMzkxIDY5Ljg1eiIgZmlsbD0iIzAwYWRlZiI+PC9wYXRoPjwvc3ZnPgogICAgICAgICAgICA8L2E+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51ICIgcm9sZT0ibmF2aWdhdGlvbiIgYXJpYS1sYWJlbD0iTWFpbiBtZW51Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idG9wbmF2X21lbnVfZGVza3RvcF9tYWluIiByb2xlPSJtZW51YmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMgdG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19sZWZ0IiBkYXRhLW1lbnUtaWQ9InNvbHV0aW9ucyIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uLWltcHJlc3Npb249Y29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc19tZW51fGtleXdvcmQ6c29sdXRpb25zX2hvdmVyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC50YXJnZXQuYmx1cigpOyIgY2xhc3M9InRvcG5hdl9tZW51X25vX2xpbmsgdG9wbmF2X2hhc19kcm9wZG93biIgaHJlZj0iIyIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfc29sdXRpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb2x1dGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9kcm9wZG93bl9hcnJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDE1LjVhMSAxIDAgMCAxLS42Ny0uMjZsLTUtNC41IDEuMzQtMS40OEwxMiAxMy4xNWw0LjMzLTMuOSAxLjM0IDEuNDktNSA0LjVhMSAxIDAgMCAxLS42Ny4yNnoiIGZpbGw9IiM2NTc5ODciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93biByb3dfZmxleCIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJ0b3BuYXZfc29sdXRpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJyb3dfZWxlbWVudHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0tLW11bHRpbGV2ZWwgc29sdXRpb25zX21lbnUiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0gc29sdXRpb25zX21lbnUiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOnZpZGVvX21hcmtldGluZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdmlkZW9fbWFya2V0aW5nIiBjbGFzcz0ic29sdXRpb25zX21lbnUiIGhyZWY9Ii9zb2x1dGlvbnMvbWFya2V0aW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOnZpZGVvX21hcmtldGluZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdmlkZW9fbWFya2V0aW5nIiBjbGFzcz0ic29sdXRpb25zX21lbnUiICB0aXRsZT0iVmlkZW8gbWFya2V0aW5nIj5WaWRlbyBtYXJrZXRpbmc8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtX29wdGlvbiBkZXNjcmlwdGlvbiI+UG93ZXIgeW91ciBtYXJrZXRpbmcgc3RyYXRlZ3kgd2l0aCBwZXJmZWN0bHkgYnJhbmRlZCB2aWRlb3MgdG8gZHJpdmUgYmV0dGVyIFJPSS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJtZW51IiAgYXJpYS1oaWRkZW49InRydWUiID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0tLW11bHRpbGV2ZWwgc29sdXRpb25zX21lbnUiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0gc29sdXRpb25zX21lbnUiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOmV2ZW50X21hcmtldGluZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfZXZlbnRfbWFya2V0aW5nIiBjbGFzcz0ic29sdXRpb25zX21lbnUiIGhyZWY9Ii9zb2x1dGlvbnMvdmlydHVhbC1ldmVudHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6c29sdXRpb25zfGtleXdvcmQ6ZXZlbnRfbWFya2V0aW5nIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9ldmVudF9tYXJrZXRpbmciIGNsYXNzPSJzb2x1dGlvbnNfbWVudSIgIHRpdGxlPSJFdmVudCBtYXJrZXRpbmciPkV2ZW50IG1hcmtldGluZzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW1fb3B0aW9uIGRlc2NyaXB0aW9uIj5Ib3N0IHZpcnR1YWwgZXZlbnRzIGFuZCB3ZWJpbmFycyB0byBpbmNyZWFzZSBlbmdhZ2VtZW50IGFuZCBnZW5lcmF0ZSBsZWFkcy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJtZW51IiAgYXJpYS1oaWRkZW49InRydWUiID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0tLW11bHRpbGV2ZWwgc29sdXRpb25zX21lbnUiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0gc29sdXRpb25zX21lbnUiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOmVtcGxveWVlX2NvbW11bmljYXRpb25zIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9lbXBsb3llZV9jb21tdW5pY2F0aW9ucyIgY2xhc3M9InNvbHV0aW9uc19tZW51IiBocmVmPSIvc29sdXRpb25zL2NvbW11bmljYXRpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOmVtcGxveWVlX2NvbW11bmljYXRpb25zIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9lbXBsb3llZV9jb21tdW5pY2F0aW9ucyIgY2xhc3M9InNvbHV0aW9uc19tZW51IiAgdGl0bGU9IkVtcGxveWVlIGNvbW11bmljYXRpb24iPkVtcGxveWVlIGNvbW11bmljYXRpb248L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtX29wdGlvbiBkZXNjcmlwdGlvbiI+SW5zcGlyZSBlbXBsb3llZXMgd2l0aCBjb21wZWxsaW5nIGxpdmUgYW5kIG9uLWRlbWFuZCB2aWRlbyBleHBlcmllbmNlcy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJtZW51IiAgYXJpYS1oaWRkZW49InRydWUiID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0tLW11bHRpbGV2ZWwgc29sdXRpb25zX21lbnUiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0gc29sdXRpb25zX21lbnUiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOnZpZGVvX21vbmV0aXphdGlvbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdmlkZW9fbW9uZXRpemF0aW9uIiBjbGFzcz0ic29sdXRpb25zX21lbnUiIGhyZWY9Ii9zb2x1dGlvbnMvdmlkZW8tbW9uZXRpemF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOnZpZGVvX21vbmV0aXphdGlvbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdmlkZW9fbW9uZXRpemF0aW9uIiBjbGFzcz0ic29sdXRpb25zX21lbnUiICB0aXRsZT0iVmlkZW8gbW9uZXRpemF0aW9uIj5WaWRlbyBtb25ldGl6YXRpb248L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtX29wdGlvbiBkZXNjcmlwdGlvbiI+QnVpbGQgYSBzaXRlIGFuZCBnZW5lcmF0ZSBpbmNvbWUgZnJvbSBwdXJjaGFzZXMsIHN1YnNjcmlwdGlvbnMsIGFuZCBjb3Vyc2VzLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIHJvbGU9Im1lbnUiICBhcmlhLWhpZGRlbj0idHJ1ZSIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIHRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfbGVmdCIgZGF0YS1tZW51LWlkPSJmZWF0dXJlcyIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uLWltcHJlc3Npb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpmZWF0dXJlc19tZW51fGtleXdvcmQ6bGl2ZXN0cmVhbV9oaWdobGlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC50YXJnZXQuYmx1cigpOyIgY2xhc3M9InRvcG5hdl9tZW51X25vX2xpbmsgdG9wbmF2X2hhc19kcm9wZG93biIgZGF0YS1icC1ob3Zlcj0ibG9jYXRpb246Z2xvYmFsX25hdnxuYW1lOmV4cGFuZF9nbG9iYWxfbmF2X29wdGlvbnxjb3B5OmZlYXR1cmVzfGZlYXR1cmU6ZmVhdHVyZXMiIGhyZWY9IiMiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2ZlYXR1cmVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X2Ryb3Bkb3duX2Fycm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjIwcHgiIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTUuNWExIDEgMCAwIDEtLjY3LS4yNmwtNS00LjUgMS4zNC0xLjQ4TDEyIDEzLjE1bDQuMzMtMy45IDEuMzQgMS40OS01IDQuNWExIDEgMCAwIDEtLjY3LjI2eiIgZmlsbD0iIzY1Nzk4NyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIHJvd19mbGV4IiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl9mZWF0dXJlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icm93X2VsZW1lbnRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtLS1tdWx0aWxldmVsICIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyID5DcmVhdGU8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJtZW51IiAgYXJpYS1oaWRkZW49InRydWUiID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6aW50ZXJhY3RpdmVfdmlkZW8iIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy9pbnRlcmFjdGl2ZS12aWRlb3xjb3B5OkludGVyYWN0aXZlIHZpZGVvfGZlYXR1cmU6Y3JlYXRlX2ludGVyYWN0aXZlfHRhcmdldF9wYXRoOi9mZWF0dXJlcy9pbnRlcmFjdGl2ZS12aWRlbyIgaHJlZj0iL2ZlYXR1cmVzL2ludGVyYWN0aXZlLXZpZGVvIj5JbnRlcmFjdGl2ZSB2aWRlbzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6bGl2ZV9zdHJlYW1pbmciIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy9saXZlc3RyZWFtaW5nP21rYz0zNjhpcF9mY19saXZlfGNvcHk6TGl2ZSBzdHJlYW18ZmVhdHVyZTpjcmVhdGVfbGl2ZXx0YXJnZXRfcGF0aDovZmVhdHVyZXMvbGl2ZXN0cmVhbWluZz9ta2M9MzY4aXBfZmNfbGl2ZSIgaHJlZj0iL2ZlYXR1cmVzL2xpdmVzdHJlYW1pbmc/bWtjPTM2OGlwX2ZjX2xpdmUiPkxpdmUgc3RyZWFtPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDpzY3JlZW5fcmVjb3JkZXIiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXJ8Y29weTpTY3JlZW4gcmVjb3JkZXJ8ZmVhdHVyZTpjcmVhdGVfcmVjb3JkfHRhcmdldF9wYXRoOi9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXIiIGhyZWY9Ii9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXIiPlNjcmVlbiByZWNvcmRlcjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6Y3JlYXRlIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovY3JlYXRlfGNvcHk6Q3JlYXRlIHZpZGVvIG1ha2VyfGZlYXR1cmU6Y3JlYXRlX3ZpbWVvX2NyZWF0ZXx0YXJnZXRfcGF0aDovY3JlYXRlIiBocmVmPSIvY3JlYXRlIj5DcmVhdGUgdmlkZW8gbWFrZXI8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOnZpZGVvX2VkaXRvciIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L3ZpZGVvLWVkaXRvcnxjb3B5Ok9ubGluZSB2aWRlbyBlZGl0b3J8ZmVhdHVyZTpjcmVhdGVfZWRpdG9yfHRhcmdldF9wYXRoOi92aWRlby1lZGl0b3IiIGhyZWY9Ii92aWRlby1lZGl0b3IiPk9ubGluZSB2aWRlbyBlZGl0b3I8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmZvcl9oaXJlIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovZm9yLWhpcmV8Y29weTpIaXJlIGEgdmlkZW8gcHJvfGZlYXR1cmU6Y3JlYXRlX2hpcmV8dGFyZ2V0X3BhdGg6L2Zvci1oaXJlIiBocmVmPSIvZm9yLWhpcmUiPkhpcmUgYSB2aWRlbyBwcm88L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtLS1tdWx0aWxldmVsICIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyID5NYW5hZ2U8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJtZW51IiAgYXJpYS1oaWRkZW49InRydWUiID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6dmlkZW9fbGlicmFyeSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3ZpZGVvLWxpYnJhcnk/bWtjPTM2OGlwX2ZtX3ZsfGNvcHk6VmlkZW8gbGlicmFyeXxmZWF0dXJlOm1hbmFnZV9saWJyYXJ5fHRhcmdldF9wYXRoOi9mZWF0dXJlcy92aWRlby1saWJyYXJ5P21rYz0zNjhpcF9mbV92bCIgaHJlZj0iL2ZlYXR1cmVzL3ZpZGVvLWxpYnJhcnk/bWtjPTM2OGlwX2ZtX3ZsIj5WaWRlbyBsaWJyYXJ5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDp2aWRlb19wbGF5ZXIiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy92aWRlby1wbGF5ZXI/bWtjPTM2OGlwX2ZtX2FkZnJlZXxjb3B5OkFkLWZyZWUgcGxheWVyfGZlYXR1cmU6bWFuYWdlX2FkZF9mcmVlX3BsYXllcnx0YXJnZXRfcGF0aDovZmVhdHVyZXMvdmlkZW8tcGxheWVyP21rYz0zNjhpcF9mbV9hZGZyZWUiIGhyZWY9Ii9mZWF0dXJlcy92aWRlby1wbGF5ZXI/bWtjPTM2OGlwX2ZtX2FkZnJlZSI+QWQtZnJlZSBwbGF5ZXI8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmhvc3RpbmciIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy9vbmxpbmUtdmlkZW8taG9zdGluZz9ta2M9MzY4aXBfZm1faG9zdGluZ3xjb3B5OlZpZGVvIGhvc3Rpbmd8ZmVhdHVyZTptYW5hZ2VfdmlkZW9faG9zdGluZ3x0YXJnZXRfcGF0aDovZmVhdHVyZXMvb25saW5lLXZpZGVvLWhvc3Rpbmc/bWtjPTM2OGlwX2ZtX2hvc3RpbmciIGhyZWY9Ii9mZWF0dXJlcy9vbmxpbmUtdmlkZW8taG9zdGluZz9ta2M9MzY4aXBfZm1faG9zdGluZyI+VmlkZW8gaG9zdGluZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6cHJpdmFjeSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3ZpZGVvLXByaXZhY3k/bWtjPTM2OGlwX2ZtX3ByaXZhY3l8Y29weTpQcml2YWN5fGZlYXR1cmU6bWFuYWdlX3ByaXZhY3l8dGFyZ2V0X3BhdGg6L2ZlYXR1cmVzL3ZpZGVvLXByaXZhY3k/bWtjPTM2OGlwX2ZtX3ByaXZhY3kiIGhyZWY9Ii9mZWF0dXJlcy92aWRlby1wcml2YWN5P21rYz0zNjhpcF9mbV9wcml2YWN5Ij5Qcml2YWN5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbS0tbXVsdGlsZXZlbCAiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiA+R3JvdzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIHJvbGU9Im1lbnUiICBhcmlhLWhpZGRlbj0idHJ1ZSIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDpzbWFsbF9idXNpbmVzcyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L3NvbHV0aW9ucy9zbWFsbC1idXNpbmVzcy1zb2x1dGlvbnN8Y29weTpTbWFsbCBidXNpbmVzc3xmZWF0dXJlOmdyb3dfc21hbGxfYnVzaW5lc3N8dGFyZ2V0X3BhdGg6L3NvbHV0aW9ucy9zbWFsbC1idXNpbmVzcy1zb2x1dGlvbnMiIGhyZWY9Ii9zb2x1dGlvbnMvc21hbGwtYnVzaW5lc3Mtc29sdXRpb25zIj5TbWFsbCBidXNpbmVzczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6ZW50ZXJwcmlzZSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2VudGVycHJpc2U/bWtjPTM2OC1tZW51LWdyb3d8Y29weTpFbnRlcnByaXNlfGZlYXR1cmU6Z3Jvd19lbnRlcnByaXNlfHRhcmdldF9wYXRoOi9lbnRlcnByaXNlP21rYz0zNjgtbWVudS1ncm93IiBocmVmPSIvZW50ZXJwcmlzZT9ta2M9MzY4LW1lbnUtZ3JvdyI+RW50ZXJwcmlzZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6d2ViaW5hcnMiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy93ZWJpbmFyfGNvcHk6V2ViaW5hcnN8ZmVhdHVyZTpncm93X3dlYmluYXJzfHRhcmdldF9wYXRoOi9mZWF0dXJlcy93ZWJpbmFyIiBocmVmPSIvZmVhdHVyZXMvd2ViaW5hciI+V2ViaW5hcnM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmFuYWx5dGljcyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3ZpZGVvLWFuYWx5dGljcz9ta2M9MzY4aXBfZmdfYW5hbHl6ZXxjb3B5OlZpZGVvIGFuYWx5dGljc3xmZWF0dXJlOmdyb3dfYW5hbHl0aWNzfHRhcmdldF9wYXRoOi9mZWF0dXJlcy92aWRlby1hbmFseXRpY3M/bWtjPTM2OGlwX2ZnX2FuYWx5emUiIGhyZWY9Ii9mZWF0dXJlcy92aWRlby1hbmFseXRpY3M/bWtjPTM2OGlwX2ZnX2FuYWx5emUiPlZpZGVvIGFuYWx5dGljczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6bW9uZXRpemF0aW9uIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovb3R0P21rYz1lbnRwcnNifGNvcHk6VmlkZW8gbW9uZXRpemF0aW9ufGZlYXR1cmU6Z3Jvd19vdHR8dGFyZ2V0X3BhdGg6L290dD9ta2M9ZW50cHJzYiIgaHJlZj0iL290dD9ta2M9ZW50cHJzYiI+VmlkZW8gbW9uZXRpemF0aW9uPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGlnaGxpZ2h0c19iYW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iYmFubmVyX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PIFZJREVPUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImJhbm5lcl9tYWluX3RleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXQgdG8ga25vdyBldmVyeXRoaW5nIFZpbWVvIGNhbiBkbyBmb3IgeW91ciBidXNpbmVzcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2VudGVycHJpc2Uvd2F0Y2gtZGVtbz9ta2M9MzY4LXR2LXdkIiBjbGFzcz0iYmFubmVyX2J1dHRvbiBiYW5uZXJfYnV0dG9uX3RleHQiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OmZlYXR1cmVzX2hpZ2hsaWdodHxrZXl3b3JkOndhdGNoX2RlbW8iPldhdGNoIG5vdzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIHRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfbGVmdCIgZGF0YS1tZW51LWlkPSJyZXNvdXJjZXMiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbi1pbXByZXNzaW9uPWNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpyZXNvdXJjZXNfbWVudXxrZXl3b3JkOnJlc291cmNlc19ob3Zlcj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQudGFyZ2V0LmJsdXIoKTsiIGNsYXNzPSJ0b3BuYXZfbWVudV9ub19saW5rIHRvcG5hdl9oYXNfZHJvcGRvd24iIGRhdGEtYnAtaG92ZXI9ImxvY2F0aW9uOmdsb2JhbF9uYXZ8bmFtZTpleHBhbmRfZ2xvYmFsX25hdl9vcHRpb258Y29weTpyZXNvdXJjZXN8ZmVhdHVyZTpyZXNvdXJjZXMiIGhyZWY9IiMiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X3Jlc291cmNlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfZHJvcGRvd25fYXJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxNS41YTEgMSAwIDAgMS0uNjctLjI2bC01LTQuNSAxLjM0LTEuNDhMMTIgMTMuMTVsNC4zMy0zLjkgMS4zNCAxLjQ5LTUgNC41YTEgMSAwIDAgMS0uNjcuMjZ6IiBmaWxsPSIjNjU3OTg3Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24gcm93X2ZsZXgiIHJvbGU9Im1lbnUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBpZD0idG9wbmF2X3Jlc291cmNlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icm93X2VsZW1lbnRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtLS1tdWx0aWxldmVsICIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyID5MZWFybjwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIHJvbGU9Im1lbnUiICBhcmlhLWhpZGRlbj0idHJ1ZSIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omluc3BpcmF0aW9ufGtleXdvcmQ6YmxvZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfaW5zcGlyYXRpb25fYmxvZyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9yZXNvdXJjZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9ibG9nfGNvcHk6VmltZW8gYmxvZ3xmZWF0dXJlOmxlYXJuX2Jsb2d8dGFyZ2V0X3BhdGg6L2Jsb2ciIGhyZWY9Ii9ibG9nIj5WaW1lbyBibG9nPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omluc3BpcmF0aW9ufGtleXdvcmQ6dmlkZW9fc2Nob29sIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9pbnNwaXJhdGlvbl92aWRlb19zY2hvb2wiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfcmVzb3VyY2VzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovYmxvZy9jYXRlZ29yeS92aWRlby1zY2hvb2x8Y29weTpWaWRlbyBTY2hvb2x8ZmVhdHVyZTpsZWFybl92aWRlb19zY2hvb2x8dGFyZ2V0X3BhdGg6L2Jsb2cvY2F0ZWdvcnkvdmlkZW8tc2Nob29sIiBocmVmPSIvYmxvZy9jYXRlZ29yeS92aWRlby1zY2hvb2wiPlZpZGVvIFNjaG9vbDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpyZXNvdXJjZXNfbGVhcm58a2V5d29yZDpjdXN0b21lcl9zdG9yaWVzIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3Jlc291cmNlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2Jsb2cvY2F0ZWdvcnkvY2FzZS1zdHVkeXxjb3B5OkN1c3RvbWVyIHN0b3JpZXN8ZmVhdHVyZTpsZWFybl9jdXN0b21lcl9zdG9yaWVzfHRhcmdldF9wYXRoOi9ibG9nL2NhdGVnb3J5L2Nhc2Utc3R1ZHkiIGhyZWY9Ii9ibG9nL2NhdGVnb3J5L2Nhc2Utc3R1ZHkiPkN1c3RvbWVyIHN0b3JpZXM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cmVzb3VyY2VzX2xlYXJufGtleXdvcmQ6aW52ZXN0b3JfcmVsYXRpb25zIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3Jlc291cmNlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6aHR0cHM6Ly9pbnZlc3RvcnMudmltZW8uY29tfGNvcHk6SW52ZXN0b3IgUmVsYXRpb25zfGZlYXR1cmU6bGVhcm5faW52ZXN0b3JfcmVsYXRpb25zfHRhcmdldF9wYXRoOmh0dHBzOi8vaW52ZXN0b3JzLnZpbWVvLmNvbSIgaHJlZj0iaHR0cHM6Ly9pbnZlc3RvcnMudmltZW8uY29tIj5JbnZlc3RvciBSZWxhdGlvbnM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtLS1tdWx0aWxldmVsICIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyID5Db25uZWN0PC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgcm9sZT0ibWVudSIgIGFyaWEtaGlkZGVuPSJ0cnVlIiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cmVzb3VyY2VzX2Nvbm5lY3R8a2V5d29yZDpkZXZlbG9wZXJfdG9vbHMiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfcmVzb3VyY2VzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDpodHRwczovL2RldmVsb3Blci52aW1lby5jb20vfGNvcHk6RGV2ZWxvcGVyIHRvb2xzfGZlYXR1cmU6Y29ubmVjdF9kZXZlbG9wZXJfdG9vbHN8dGFyZ2V0X3BhdGg6aHR0cHM6Ly9kZXZlbG9wZXIudmltZW8uY29tLyIgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIudmltZW8uY29tLyI+RGV2ZWxvcGVyIHRvb2xzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnJlc291cmNlc19jb25uZWN0fGtleXdvcmQ6cGFydG5lcl9wcm9ncmFtIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3Jlc291cmNlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L3BhcnRuZXJzfGNvcHk6UGFydG5lciBwcm9ncmFtfGZlYXR1cmU6Y29ubmVjdF9wYXJ0bmVyX3Byb2dyYW18dGFyZ2V0X3BhdGg6L3BhcnRuZXJzIiBocmVmPSIvcGFydG5lcnMiPlBhcnRuZXIgcHJvZ3JhbTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpyZXNvdXJjZXNfY29ubmVjdHxrZXl3b3JkOmNyZWF0aXZlX2NvbW11bml0eSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9yZXNvdXJjZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9leHBlcnRzfGNvcHk6Q3JlYXRpdmUgY29tbXVuaXR5fGZlYXR1cmU6Y29ubmVjdF9jcmVhdGl2ZV9jb21tdW5pdHl8dGFyZ2V0X3BhdGg6L2V4cGVydHMiIGhyZWY9Ii9leHBlcnRzIj5DcmVhdGl2ZSBjb21tdW5pdHk8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cmVzb3VyY2VzX2Nvbm5lY3R8a2V5d29yZDpoZWxwX2NlbnRlciIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9yZXNvdXJjZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Omh0dHBzOi8vaGVscC52aW1lby5jb20vfGNvcHk6SGVscCBjZW50ZXJ8ZmVhdHVyZTpjb25uZWN0X2hlbHBfY2VudGVyfHRhcmdldF9wYXRoOmh0dHBzOi8vaGVscC52aW1lby5jb20vIiBocmVmPSJodHRwczovL2hlbHAudmltZW8uY29tLyI+SGVscCBjZW50ZXI8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMgdG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19sZWZ0IiBkYXRhLW1lbnUtaWQ9IndhdGNoIiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idG9wbmF2X2hhc19kcm9wZG93biIgZGF0YS1icC1ob3Zlcj0ibG9jYXRpb246Z2xvYmFsX25hdnxuYW1lOmV4cGFuZF9nbG9iYWxfbmF2X29wdGlvbnxjb3B5OndhdGNofGZlYXR1cmU6d2F0Y2giIGhyZWY9IiMiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X3dhdGNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X2Ryb3Bkb3duX2Fycm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjIwcHgiIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTUuNWExIDEgMCAwIDEtLjY3LS4yNmwtNS00LjUgMS4zNC0xLjQ4TDEyIDEzLjE1bDQuMzMtMy45IDEuMzQgMS40OS01IDQuNWExIDEgMCAwIDEtLjY3LjI2eiIgZmlsbD0iIzY1Nzk4NyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIGNvbHVtbl9mbGV4IiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl93YXRjaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY29sdW1uX2VsZW1lbnRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0nY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Ym90eScgZGF0YS1ndG0tY2xpY2s9J3RvcF9uYXZfd2F0Y2hfYm90eV9jbGljaycgZGF0YS1icC1jbGljaz0nbG9jYXRpb246Z2xvYmFsX25hdl93YXRjaHxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2Jlc3RvZnRoZXllYXJ8Y29weTpCZXN0IG9mIHRoZSBZZWFyfGZlYXR1cmU6YmVzdF9vZl90aGVfeWVhcnx0YXJnZXRfcGF0aDovYmVzdG9mdGhleWVhcicgaHJlZj0iL2Jlc3RvZnRoZXllYXIiPkJlc3Qgb2YgdGhlIFllYXI8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSd0b3BuYXZfd2F0Y2hfaXRlbScgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSdjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpicm93c2VfdmlkZW9zJyBkYXRhLWd0bS1jbGljaz0ndG9wX25hdl93YXRjaF9icm93c2VfdmlkZW9zX2NsaWNrJyBkYXRhLWJwLWNsaWNrPSdsb2NhdGlvbjpnbG9iYWxfbmF2X3dhdGNofG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovd2F0Y2h8Y29weTpCcm93c2UgVmlkZW9zfGZlYXR1cmU6YnJvd3NlX3ZpZGVvc3x0YXJnZXRfcGF0aDovd2F0Y2gnIGhyZWY9Ii93YXRjaCI+QnJvd3NlIFZpZGVvczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InRvcG5hdl93YXRjaF9pdGVtIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOnN0YWZmX3BpY2tzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9zdGFmZl9waWNrc19jbGljayIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl93YXRjaHxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2NoYW5uZWxzL3N0YWZmcGlja3N8Y29weTpTdGFmZiBQaWNrc3xmZWF0dXJlOnN0YWZmX3BpY2tzfHRhcmdldF9wYXRoOi9jaGFubmVscy9zdGFmZnBpY2tzIiBocmVmPSIvY2hhbm5lbHMvc3RhZmZwaWNrcyI+U3RhZmYgUGlja3M8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfd2F0Y2hfaXRlbSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpjYXRlZ29yaWVzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9jYXRlZ29yaWVzX2NsaWNrIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3dhdGNofG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovY2F0ZWdvcmllc3xjb3B5OkNhdGVnb3JpZXN8ZmVhdHVyZTpjYXRlZ29yaWVzfHRhcmdldF9wYXRoOi9jYXRlZ29yaWVzIiBocmVmPSIvY2F0ZWdvcmllcyI+Q2F0ZWdvcmllczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InRvcG5hdl93YXRjaF9pdGVtIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmNoYW5uZWxzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9jaGFubmVsc19jbGljayIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl93YXRjaHxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2NoYW5uZWxzfGNvcHk6Q2hhbm5lbHN8ZmVhdHVyZTpjaGFubmVsc3x0YXJnZXRfcGF0aDovY2hhbm5lbHMiIGhyZWY9Ii9jaGFubmVscyI+Q2hhbm5lbHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfd2F0Y2hfaXRlbSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpvbl9kZW1hbmQiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX2NsaWNrIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3dhdGNofG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovb25kZW1hbmR8Y29weTpPbiBEZW1hbmR8ZmVhdHVyZTpvbl9kZW1hbmR8dGFyZ2V0X3BhdGg6L29uZGVtYW5kIiBocmVmPSIvb25kZW1hbmQiPk9uIERlbWFuZDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyB0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2xlZnQiIGRhdGEtbWVudS1pZD0icHJpY2luZyIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfcHJpY2luZ19jbGljayIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJpY2luZyJkYXRhLWJwLWNsaWNrPWxvY2F0aW9uOmdsb2JhbF9uYXZ8dGFyZ2V0OnVwZ3JhZGVfcGFnZXxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnxjb3B5OnVwZ3JhZGV8ZmVhdHVyZTp1cGdyYWRlfHRhcmdldF9wYXRoOi91cGdyYWRlIGhyZWY9Ii91cGdyYWRlIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9wcmljaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmljaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyB0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2xlZnQiIGRhdGEtbWVudS1pZD0iY29udGFjdF9zYWxlcyIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY29udGFjdF9zYWxlc19jbGljayIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6Y29udGFjdF9zYWxlc3xrZXl3b3JkOmNvbnRhY3Rfc2FsZXMiIGhyZWY9Ii9lbnRlcnByaXNlL2NvbnRhY3QtdXM/bWtjPTM2OHRuYyIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfY29udGFjdF9zYWxlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGFjdCBTYWxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9uYXY+PCEtLSAvLnRvcG5hdl9kZXNrdG9wX21lbnUgLS0+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0b3BuYXZfbWVudV9zZWFyY2hfb21uaXNlYXJjaCIgY2xhc3M9InRvcG5hdl9tZW51X29tbmlzZWFyY2ggIiBkYXRhLXF1ZXJ5PSIiIGRhdGEtcGxhY2Vob2xkZXI9IlNlYXJjaCB2aWRlb3MsIHBlb3BsZSwgYW5kIG1vcmUiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9tZW51X3JpZ2h0ICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idG9wbmF2X21lbnVfZGVza3RvcF9tYWluIiByb2xlPSJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIHRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfcmlnaHQiIGRhdGEtbWVudS1pZD0ibG9naW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ianMtdG9wbmF2X21lbnVfYXV0aCIgb25jbGljaz0iKGZ1bmN0aW9uKGV2ZW50KSB7IGlmICh3aW5kb3cuaGFuZGxlSm9pbkxvZ2luRjJQKSB7IGhhbmRsZUpvaW5Mb2dpbkYyUChldmVudCwgYGxvZ19pbmAsIHRydWUpOyB9fSkoZXZlbnQpIiBkYXRhLWdhLWV2ZW50LWNsaWNrPSJ0b3BfbmF2fGxvZ2luIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpsb2dpbnx0YXJnZXQ6L2xvZ19pbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfbG9naW5fY2xpY2siIGhyZWY9Ii9sb2dfaW4iIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2xvZ2luIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZyBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMgdG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19yaWdodCIgZGF0YS1tZW51LWlkPSJqb2luIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InRvcG5hdl9tZW51X2pvaW4ganMtdG9wbmF2X21lbnVfYXV0aCIgb25jbGljaz0iKGZ1bmN0aW9uKGV2ZW50KSB7IGlmICh3aW5kb3cuaGFuZGxlSm9pbkxvZ2luRjJQKSB7IGhhbmRsZUpvaW5Mb2dpbkYyUChldmVudCwgYGpvaW5gLCB0cnVlKTsgfX0pKGV2ZW50KSIgZGF0YS1nYS1ldmVudC1jbGljaz0idG9wX25hdnxqb2luIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpqb2lufHRhcmdldDovam9pbiIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfam9pbl9jbGljayIgaHJlZj0iL2pvaW4iIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2pvaW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSm9pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icmVjb3JkX3RpcF93cmFwcGVyIiBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfdmlkZW9fcG9wb3ZlciIgb25Nb3VzZWVudGVyPSJ0cmFja05ld1ZpZGVvRHJvcGRvd25JbXByZXNzaW9uKCd2YXJpYW50X3NjcmVlbicpIj4KICAgIDxidXR0b24KICAgICAgICBpZD0ibmV3X3ZpZGVvX2Ryb3Bkb3duX2J1dHRvbiIKICAgICAgICBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfdmlkZW9fcG9wb3Zlcl9idXR0b24gaXJpc19idG4tLXByaW1hcnkiCiAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6bmV3X3ZpZGVvIgogICAgICAgIGRhdGEtYnAtY2xpY2s9J2xvY2F0aW9uOmdsb2JhbF9uYXZ8dGFyZ2V0OnVwbG9hZF9wYWdlfG5hbWU6bmV3X3ZpZGVvfGNvcHk6bmV3X3ZpZGVvfGZlYXR1cmU6Z2xvYmFsX25hdl9uZXdfdmlkZW98dGFyZ2V0X3BhdGg6L3VwbG9hZCcKICAgICAgICBkYXRhLWJwLWhvdmVyPSdsb2NhdGlvbjpnbG9iYWxfbmF2fG5hbWU6ZXhwYW5kX25ld192aWRlb19vcHRpb258Y29weTpuZXdfdmlkZW98ZmVhdHVyZTpuZXdfdmlkZW8nCiAgICAgICAgb25jbGljaz0iaGFuZGxlTmV3VmlkZW9DbGljaygpIgogICAgPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF92aWRlb19wb3BvdmVyX3NwYW5fd3JhcHBlciI+CiAgICAgICAgICAgIE5ldyB2aWRlbyAgICAgICAgICAgIDxzcGFuIGlkPSJyZWNvcmRfYW5pbWF0aW9uX3dyYXBwZXIiIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF92aWRlb19wb3BvdmVyX3NwYW5fdmFyaWFudCI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTEyIDE1LjVhMSAxIDAgMCAxLS42Ny0uMjZsLTUtNC41IDEuMzQtMS40OEwxMiAxMy4xNWw0LjMzLTMuOSAxLjM0IDEuNDktNSA0LjVhMSAxIDAgMCAxLS42Ny4yNnoiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9zcGFuPgogICAgPC9idXR0b24+CiAgICAKICAgICAgICAgICAgPHVsIGlkPSJuZXdfdmlkZW9fZHJvcGRvd25fdmFyaWFudCIgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24gY29sdW1uX2VsZW1lbnRzIHRvcG5hdl9kZXNrdG9wX3ZpZGVvX3BvcG92ZXJfZHJvcGRvd25fdmFyaWFudCIgcm9sZT0ibWVudSIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwYWRkaW5nOiB1bnNldDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbV92YXJpYW50IiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgICAgICAgICA8YSBvbmNsaWNrPSIoZnVuY3Rpb24oZXZlbnQpIHsgaWYgKHdpbmRvdy5oYW5kbGVVcGxvYWRCdXR0b25DbGljaykgeyBoYW5kbGVVcGxvYWRCdXR0b25DbGljayhldmVudCk7IH19KShldmVudCkiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om5ld192aWRlb3xrZXl3b3JkOnsnYWN0aW9uJzondXBsb2FkJ318dGFyZ2V0Oi91cGxvYWR8dHlwZTpjbGljayJkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X25ld192aWRlb3xuYW1lOnNlbGVjdF9uZXdfdmlkZW9fb3B0aW9ufHRhcmdldDp1cGxvYWRfcGFnZXxjb3B5OlVwbG9hZHxmZWF0dXJlOnVwbG9hZHx0YXJnZXRfcGF0aDovdXBsb2FkIiBpZD0idG9wbmF2X2Rlc2t0b3BfdXBsb2FkX2J1dHRvbiIgaHJlZj0iL3VwbG9hZCIgPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGlnbl90b3BuYXZfZHJvcGRvd25faWNvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMTggOC40OGE3LjE2IDcuMTYgMCAwIDAtMS44NC00Ljc2QTUuODEgNS44MSAwIDAgMCA2LjkyIDVhNS4yNCA1LjI0IDAgMCAwLTQuNjkgMy44NUE0LjkxIDQuOTEgMCAwIDAgMCAxM2E1LjEzIDUuMTMgMCAwIDAgNSA1aDEwYTUuMSA1LjEgMCAwIDAgNS00Ljk0IDUuODkgNS44OSAwIDAgMC0yLTQuNTh6TTE1IDE2aC00di0zLjU5bDEuMjkgMS4yOSAxLjQxLTEuNDEtMy43LTMuNy0zLjcxIDMuN0w3LjcgMTMuNyA5IDEyLjQxVjE2SDVhMy4xNiAzLjE2IDAgMCAxLTMtMyAyLjkxIDIuOTEgMCAwIDEgMS41Mi0yLjU4bC40LS4yLjA4LS40NEEzLjM4IDMuMzggMCAwIDEgNy41OSA3aC43bC4yNC0uNjZBMy42OSAzLjY5IDAgMCAxIDEyIDRhMy43MyAzLjczIDAgMCAxIDIuNzIgMS4xMkE1LjQ1IDUuNDUgMCAwIDEgMTYgOXYuNTRsLjQ1LjNBMy43OSAzLjc5IDAgMCAxIDE4IDEzLjA2IDMuMDkgMy4wOSAwIDAgMSAxNSAxNnoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iIzFhMmUzYiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfZHJvcGRvd25fbGFiZWxfd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X2Ryb3Bkb3duX2xhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtX3ZhcmlhbnQiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgIDxhIG9uY2xpY2s9ImhhbmRsZUNyZWF0ZVZpZGVvQ2xpY2soZXZlbnQpIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpuZXdfdmlkZW98a2V5d29yZDp7J2FjdGlvbic6J2NyZWF0ZSd9fHRhcmdldDovY3JlYXRlL3RlbXBsYXRlc3x0eXBlOmNsaWNrImRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfbmV3X3ZpZGVvfG5hbWU6c2VsZWN0X25ld192aWRlb19vcHRpb258dGFyZ2V0OmNyZWF0ZV9ob21lcGFnZXxjb3B5OmNyZWF0ZV92aWRlb3xmZWF0dXJlOnZpbWVvX2NyZWF0ZXx0YXJnZXRfcGF0aDovY3JlYXRlL3RlbXBsYXRlcyIgaWQ9InRvcG5hdl9kZXNrdG9wX2NyZWF0ZV92aWRlb19idXR0b24iIGhyZWY9Ii9jcmVhdGUvdGVtcGxhdGVzIiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsaWduX3RvcG5hdl9kcm9wZG93bl9pY29ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMy4yIDE2LjhsMy44LTEgMTAtMTBjLjItLjIuMi0uNSAwLS43TDE0LjkgM2MtLjItLjItLjUtLjItLjcgMGwtMi4xIDIuMSAyLjggMi44TDEzLjggOSAxMSA2LjIgNC4yIDEzbC0xIDMuOHptOS45LTE0LjljLjgtLjggMi0uOCAyLjggMEwxOC4xIDRjLjguOC44IDIgMCAyLjhMNy44IDE3LjJsLTUuNiAxLjVjLS41LjEtLjktLjItLjctLjdsMS40LTUuN0wxMy4xIDEuOXoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjMWEyZTNiIgogICAgICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfZHJvcGRvd25fbGFiZWxfd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X2Ryb3Bkb3duX2xhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIHZpZGVvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtX3ZhcmlhbnQiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om5ld192aWRlb3xrZXl3b3JkOnNjcmVlbl9yZWNvcmR8dHlwZTpjbGljayIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9uZXdfdmlkZW98bmFtZTpzZWxlY3RfbmV3X3ZpZGVvX29wdGlvbnx0YXJnZXQ6dmltZW9fcmVjb3JkfGNvcHk6cmVjb3JkX3NjcmVlbnxmZWF0dXJlOnJlY29yZHx0YXJnZXRfcGF0aDovZmVhdHVyZXMvc2NyZWVuLXJlY29yZGVyIiBkYXRhLXNjcmVlbi1yZWNvcmRlci1jdGE9IiIgaWQ9InRvcG5hdl9kZXNrdG9wX3JlY29yZF9zY3JlZW5fYnV0dG9uIiBocmVmPSIvZmVhdHVyZXMvc2NyZWVuLXJlY29yZGVyIiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsaWduX3RvcG5hdl9kcm9wZG93bl9pY29ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikljb24tMjRweCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJPdmFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci0yKSIgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIHN0cm9rZT0iIzFBMkUzQiIgc3Ryb2tlLXdpZHRoPSIyIiBjeD0iMTIiIGN5PSIxMiIgcj0iOSI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZSIgZmlsbD0iIzFBMkUzQiIgeD0iOCIgeT0iOCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjQiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L3N2Zz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X2Ryb3Bkb3duX2xhYmVsX3dyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9kcm9wZG93bl9sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY29yZCBzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW1fdmFyaWFudCIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6bmV3X3ZpZGVvfGtleXdvcmQ6bGl2ZV91bmlmaWVkX2V2ZW50X2VudHJ5ImRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfbmV3X3ZpZGVvfG5hbWU6c2VsZWN0X25ld192aWRlb19vcHRpb258dGFyZ2V0OmxpdmVfZXZlbnRfc2V0dGluZ3N8Y29weTpDcmVhdGUgRXZlbnR8ZmVhdHVyZTpsaXZlfHRhcmdldF9wYXRoOi8vdmltZW8uY29tL2xpdmUvc2VsZWN0P2xvY2F0aW9uPXRvcF9uYXZfY2xhc3NpY192bSIgaWQ9InRvcF9uYXZfdW5pZmllZF9jcmVhdGVfZXZlbnRfYnV0dG9uIiBocmVmPSIvL3ZpbWVvLmNvbS9saXZlL3NlbGVjdD9sb2NhdGlvbj10b3BfbmF2X2NsYXNzaWNfdm0iID4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxpZ25fdG9wbmF2X2Ryb3Bkb3duX2ljb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDIwIDE0IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4Ij4KICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgZD0iTTE5IDFoLTEuNDlhMSAxIDAgMDAtLjcyLjNMMTQgNC4xOFYyYTIgMiAwIDAwLTItMkgyYTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY5LjgybDIuOCAyLjg3YTEgMSAwIDAwLjcyLjNIMTlhMSAxIDAgMDAxLTFWMmExIDEgMCAwMC0xLTF6bS03IDExSDJWMmgxMHptNi0xaC0uMDZMMTQgN2wzLjg5LTRIMTh6IgogICAgICAgICAgICAgICAgICAgIGZpbGw9IiMxYTJlM2IiCiAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9zdmc+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9kcm9wZG93bl9sYWJlbF93cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfZHJvcGRvd25fbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgZXZlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY2FydF90b3BfbmF2IiBjbGFzcz0idG9wbmF2X2NhcnRfYnV0dG9uIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gLy50b3BuYXZfbWVudV9yaWdodCAtLT4KICAgICAgICAgICAgPC9kaXY+PCEtLSAvLnRvcG5hdl9kZXNrdG9wX3dyYXBwZXIgLS0+CjwvZGl2PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIGlzTW9iaWxlID0gL2lwaG9uZXxpcG9kfGFuZHJvaWR8d2Vib3N8YmxhY2tiZXJyeXx3aW5kb3dzIHBob25lL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwoKICAgICAgICAvLyBETyBOT1QgUkVNT1ZFLiBUaGlzIGlzIGEgY2FsbGJhY2sgZm9yIHRoZSBsb2dpbiAmIGpvaW4gYnV0dG9ucyBpbiBUb3BOYXZCdWlsZGVyLgogICAgICAgIGZ1bmN0aW9uIGNvbXBsZXRlVXNlckxvZ2luKHJlc3BvbnNlKSB7CiAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiAhcmVzcG9uc2Uuc2lnbnVwKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHRyYWNrSm9pbkxvZ2luQlAoYXV0aFR5cGUsIGV2ZW50TmFtZSwgYWN0aW9uVHlwZSwgaXNGaW5hbEFjdGlvbikgewogICAgICAgICAgICB2YXIgcmVmZXJyZXIgPSBkb2N1bWVudC5yZWZlcnJlcjsKICAgICAgICAgICAgaWYoQlAgJiYgQlAudHJhY2tFdmVudCkgewogICAgICAgICAgICAgICAgQlAudHJhY2tFdmVudCgndmltZW8uYXV0aF9mbG93X2FjdGlvbicsIDQsIHsKICAgICAgICAgICAgICAgICAgICBldmVudF9uYW1lOiBldmVudE5hbWUsCiAgICAgICAgICAgICAgICAgICAgYXV0aF90eXBlOiBhdXRoVHlwZSwKICAgICAgICAgICAgICAgICAgICBhY3Rpb25fdHlwZTogYWN0aW9uVHlwZSwKICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfdmVyc2lvbjogJ2xlZ2FjeScsCiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlX3R5cGU6ICdtb2RhbCcsCiAgICAgICAgICAgICAgICAgICAgaXNfZmluYWxfYWN0aW9uOiBpc0ZpbmFsQWN0aW9uLAogICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBgJHthdXRoVHlwZX1fbW9kYWxgLAogICAgICAgICAgICAgICAgICAgIGZlYXR1cmU6IGF1dGhUeXBlLAogICAgICAgICAgICAgICAgICAgIHJlZmVycmVyLAogICAgICAgICAgICAgICAgICAgIHJlZmVycmVyX3BhdGg6IHJlZmVycmVyID8gcmVmZXJyZXIucmVwbGFjZSgvXi4qXC9cL1teXC9dKy8sICcnKSA6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgY29weTogbnVsbCwKICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGg6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgdGhpcmRfcGFydHlfaW50ZWdyYXRpb246IG51bGwsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBsb2FkQ29va2llKGtleSkgewogICAgICAgICAgICBsZXQgY29va2llID0ge307CiAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7CiAgICAgICAgICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gZWwuc3BsaXQoJz0nKTsKICAgICAgICAgICAgICAgIGNvb2tpZVtrZXkudHJpbSgpXSA9IHZhbHVlOwogICAgICAgICAgICB9KQogICAgICAgICAgICByZXR1cm4gY29va2llW2tleV07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBzYXZlQ29va2llKG5hbWUsIHZhbHVlLCBkYXlzID0gbnVsbCkgewogICAgICAgICAgICBsZXQgY29va2llID0gYCR7bmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUpfWA7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF5cyA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICAgIGNvb2tpZSArPSBgOyBtYXgtYWdlPSR7KGRheXMgKiAyNCAqIDYwICogNjApfWA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gX2dldEYycFRlc3RBc3NpZ25tZW50KCkgewogICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5BQkxpbmNvbG4pIHsKICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuQUJMaW5jb2xuLmdldFRlc3QoJ0pTLkYyUC5QaWxvdCcpLmdldCgnZjJwJywgJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGhhbmRsZUpvaW5Mb2dpbkYyUChldmVudCwgdHlwZSwgY29tcGxldGVMb2dpbiA9IHRydWUsIHJlZGlyZWN0VXJsKSB7CiAgICAgICAgICAgIGlmKGV2ZW50KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB2YXIgRjJQX0JVQ0tFVF9DT09LSUUgPSAnZjJwX3BpbG90X2J1Y2tldCc7CiAgICAgICAgICAgIHZhciBmMnBDb29raWUgPSBsb2FkQ29va2llKEYyUF9CVUNLRVRfQ09PS0lFKTsKICAgICAgICAgICAgdmFyIGpvaW5fYnVja2V0OwogICAgICAgICAgICBpZiAoZjJwQ29va2llICYmIGYycENvb2tpZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGpvaW5fYnVja2V0ID0gZjJwQ29va2llOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGJ1Y2tldCA9IF9nZXRGMnBUZXN0QXNzaWdubWVudCgpOwogICAgICAgICAgICAgICAgaWYgKGJ1Y2tldCAhPT0gbnVsbCAmJiBidWNrZXQubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgc2F2ZUNvb2tpZShGMlBfQlVDS0VUX0NPT0tJRSwgYnVja2V0KTsKICAgICAgICAgICAgICAgICAgICBqb2luX2J1Y2tldCA9IGJ1Y2tldDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGpvaW5fYnVja2V0ID0gJ2NvbnRyb2wnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaChqb2luX2J1Y2tldCkgewogICAgICAgICAgICAgICAgY2FzZSAndmFyaWFudCc6CiAgICAgICAgICAgICAgICAgICAgb3BlblJlZ0F1dGhWYXJpYW50KHR5cGUsIHJlZGlyZWN0VXJsKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgb3BlbkF1dGhNb2RhbCh0eXBlLCBjb21wbGV0ZUxvZ2luLCByZWRpcmVjdFVybCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIG9wZW5SZWdBdXRoVmFyaWFudCh0eXBlLCByZWRpcmVjdFVybCkgewogICAgICAgICAgICAvLyBPcGVucyB0aGUgbmV3IHJlZyBhdXRoIG1vZGFsIGZvciBidWNrZXRlZCBsb2dnZWQgb3V0IHVzZXJzCiAgICAgICAgICAgIGlmICh3aW5kb3cudmltZW8gJiYgd2luZG93LnZpbWVvLk1vZGFsKSB7CiAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IGAvYXV0aC1tb2RhbD90eXBlPSR7dHlwZX1gOwogICAgICAgICAgICAgICAgaWYocmVkaXJlY3RVcmwpCiAgICAgICAgICAgICAgICAgICAgY29udGVudCArPSBgJnJlZGlyZWN0PSR7cmVkaXJlY3RVcmx9YDsKICAgICAgICAgICAgICAgIHZpbWVvLk1vZGFsLmNyZWF0ZSh7CiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJywKICAgICAgICAgICAgICAgICAgICBjb250ZW50LAogICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfaGFuZGxlcjogd2luZG93LnZpbWVvLk1vZGFsLklmcmFtZUNvbnRlbnRIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgIHdyYXBwZXJfY2xhc3NuYW1lOiAnaXJpc19tb2RhbC1ib3gtLXJlZ2lzdHJhdGlvbi1qb2luJywKICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1JlZ2lzdHJhdGlvbi1Kb2luLU1vZGFsJywKICAgICAgICAgICAgICAgICAgICBoaWRlX2hlYWRlcjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBjb250ZW50X2ZsdXNoOiB0cnVlLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIG9wZW5BdXRoTW9kYWwodHlwZSwgY29tcGxldGVMb2dpbiwgcmVkaXJlY3RVcmwpIHsKICAgICAgICAgICAgaWYgKHdpbmRvdy52aW1lbyAmJiB3aW5kb3cudmltZW8uTW9kYWwpIHsKICAgICAgICAgICAgICAgIHZhciBjb250ZW50ID0gYC8ke3R5cGV9P21vZGFsPW5ld2A7CiAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3RVcmwpCiAgICAgICAgICAgICAgICAgICAgY29udGVudCArPSBgJnJlZGlyZWN0PSR7cmVkaXJlY3RVcmx9YDsKICAgICAgICAgICAgICAgIHZhciBhdXRoX3R5cGUgPSB0eXBlID09PSAnbG9nX2luJyA/ICdsb2dpbicgOiAnam9pbic7CiAgICAgICAgICAgICAgICB2aW1lby5Nb2RhbC5jcmVhdGUoewogICAgICAgICAgICAgICAgICAgIHNpemU6ICd4c21hbGwnLAogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsCiAgICAgICAgICAgICAgICAgICAgb25fY2xvc2U6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICB0cmFja0pvaW5Mb2dpbkJQKGF1dGhfdHlwZSwgYGRpc21pc3NfJHthdXRoX3R5cGV9X21vZGFsYCwgJ2Rpc21pc3MnLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZUxvZ2luKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlVXNlckxvZ2luKHJlc3BvbnNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRyYWNrSm9pbkxvZ2luQlAoYXV0aF90eXBlLCBgJHthdXRoX3R5cGV9X21vZGFsX2ltcHJlc3Npb25gLCAnaW1wcmVzc2lvbicsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gaGFuZGxlVXBsb2FkQnV0dG9uQ2xpY2soZXZlbnQpIHsKICAgICAgICAgICAgLy8gT3BlbnMgdGhlIGF1dGggbW9kYWwgZm9yIGxvZ2dlZCBvdXQgdXNlcnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgd2luZG93LnZpbWVvCiAgICAgICAgICAgICAgICAmJiB3aW5kb3cudmltZW8uY29uZmlnCiAgICAgICAgICAgICAgICAmJiB3aW5kb3cudmltZW8uTW9kYWwKICAgICAgICAgICAgICAgICYmICF3aW5kb3cudmltZW8uY3VyX3VzZXIKICAgICAgICAgICAgKXsKICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBpc01vYmlsZSA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmPSIvdXBsb2FkIiA6IGhhbmRsZUpvaW5Mb2dpbkYyUChldmVudCwgJ2pvaW4nLCBmYWxzZSwgJy91cGxvYWQnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIDwvc2NyaXB0PgoKPHNjcmlwdD4KCiAgICB2YXIgaXNCcm93c2VySUUgPSAoZnVuY3Rpb24od2luZG93KSB7CiAgICAgICAgcmV0dXJuIC8oTVNJRXxUcmlkZW50fEVkZ2UpLy50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTsKICAgIH0pKHdpbmRvdyk7CgogICAgLy8gSUUgZml4IGZvciBEcm9wZG93biBtZW51CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGRyb3BEb3duU2VsZWN0b3IgPSAnLnRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24nOwogICAgICAgIHZhciBkcm9wRG93bkVsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZHJvcERvd25TZWxlY3Rvcik7CiAgICAgICAgaWYoaXNCcm93c2VySUUpIHsKICAgICAgICAgICAgZHJvcERvd25FbGUuY2xhc3NMaXN0LmFkZCgnY29sdW1uX2ZsZXgnKTsKICAgICAgICB9CiAgICB9KSgpOwoKICAgIGZ1bmN0aW9uIGhhbmRsZU5ld1ZpZGVvQ2xpY2soKSB7CiAgICAgICAgaWYgKHdpbmRvdy52aW1lbyAmJiB3aW5kb3cudmltZW8uY3VyX3VzZXIpIHsKICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSAhPT0gJy91cGxvYWQnKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvdXBsb2FkJzsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGhhbmRsZUpvaW5Mb2dpbkYyUCh1bmRlZmluZWQsICdqb2luJywgdHJ1ZSwgJy8nKTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaGFuZGxlQ3JlYXRlVmlkZW9DbGljayhlLCBpc1JlY29yZFNjcmVlbikgewogICAgICAgIGlmICh3aW5kb3cudmltZW8gJiYgIXdpbmRvdy52aW1lby5jdXJfdXNlciAmJiAhaXNSZWNvcmRTY3JlZW4pIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICAgICAgaGFuZGxlSm9pbkxvZ2luRjJQKGUsICdqb2luJywgdHJ1ZSwgZW5jb2RlVVJJQ29tcG9uZW50KCIvd2VsY29tZS1zdXJ2ZXk/dHlwZT1zZWdtZW50JnZpbWVvSHJlZj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCcvY3JlYXRlL3RlbXBsYXRlcycpKSk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHRyYWNrTmV3VmlkZW9Ecm9wZG93bkltcHJlc3Npb24ocmVjb3JkT3B0aW9uKSB7CiAgICAgICAgaWYgKHdpbmRvdy5fX2ZhKSB7CiAgICAgICAgICAgIHdpbmRvdy5fX2ZhLnB1c2goWyd0cmFja0V2ZW50JywgewogICAgICAgICAgICAgICAgdHlwZTogJ2ltcHJlc3Npb24nLAogICAgICAgICAgICAgICAgY29udGFpbmVyOiAndG9wX25hdicsCiAgICAgICAgICAgICAgICBjb21wb25lbnQ6ICduZXdfdmlkZW8nLAogICAgICAgICAgICB9XSk7CgogICAgICAgICAgICB3aW5kb3cuX19mYS5wdXNoKFsndHJhY2tFdmVudCcsIHsKICAgICAgICAgICAgICAgIHR5cGU6ICdpbXByZXNzaW9uJywKICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogJ3RvcF9uYXYnLAogICAgICAgICAgICAgICAgY29tcG9uZW50OiAnZ29fbGl2ZScsCiAgICAgICAgICAgICAgICBrZXl3b3JkOiAnc2hvd25fb3duZXInLAogICAgICAgICAgICB9XSk7CgogICAgICAgICAgICBpZiAocmVjb3JkT3B0aW9uKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuX19mYS5wdXNoKFsndHJhY2tFdmVudCcsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaW1wcmVzc2lvbicsCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiAndG9wX25hdicsCiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiAncmVjb3JkJywKICAgICAgICAgICAgICAgICAgICBrZXl3b3JkOiByZWNvcmRPcHRpb24sCiAgICAgICAgICAgICAgICB9XSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaGFuZGxlTGl2ZUJ1dHRvbkNsaWNrKGV2ZW50KSB7CiAgICAgICAgLy8gT3BlbnMgdGhlIGF1dGggbW9kYWwgZm9yIGxvZ2dlZCBvdXQgdXNlcnMKICAgICAgICBpZiAoCiAgICAgICAgICAgIHdpbmRvdy52aW1lbwogICAgICAgICAgICAmJiB3aW5kb3cudmltZW8uY29uZmlnCiAgICAgICAgICAgICYmIHdpbmRvdy52aW1lby5Nb2RhbAogICAgICAgICAgICAmJiAhd2luZG93LnZpbWVvLmN1cl91c2VyCiAgICAgICAgICAgICYmICFpc01vYmlsZQogICAgICAgICl7CiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGNvbnN0IGxpdmVIcmVmID0gJy9mZWF0dXJlcy9saXZlc3RyZWFtaW5nLyc7CiAgICAgICAgICAgIHZpbWVvLk1vZGFsLmNyZWF0ZSh7CiAgICAgICAgICAgICAgICBzaXplOiAneHNtYWxsJywKICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcvam9pbj9tb2RhbD1uZXcmcmVkaXJlY3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudChsaXZlSHJlZikKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGhhbmRsZUNyZWF0ZUV2ZW50KCkgewogICAgICAgIGlmICh3aW5kb3cudmltZW8gJiYgd2luZG93LnZpbWVvLmNvbmZpZyAmJiB3aW5kb3cudmltZW8uTW9kYWwgJiYgd2luZG93LnZpbWVvLmN1cl91c2VyKSB7CiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIHZpbWVvLk1vZGFsLmNyZWF0ZSh7CiAgICAgICAgICAgICAgICBjb250ZW50OiAnL2V2ZW50L2NyZWF0ZScsCiAgICAgICAgICAgICAgICBjb250ZW50X2hhbmRsZXI6IHdpbmRvdy52aW1lby5Nb2RhbC5JZnJhbWVDb250ZW50SGFuZGxlciwKICAgICAgICAgICAgICAgIHNpemU6ICdldmVudF9jcmVhdGlvbicsCiAgICAgICAgICAgICAgICB0aXRsZTogJ0NyZWF0ZSBFdmVudCcsCiAgICAgICAgICAgICAgICBjb250ZW50X2ZsdXNoOiB0cnVlLAogICAgICAgICAgICAgICAgYm9keV9sb2NrOiB0cnVlLAogICAgICAgICAgICAgICAgaGlkZV9oZWFkZXI6IHRydWUsCiAgICAgICAgICAgICAgICBjbG9zZV9vbl9jbGlja19vdXRzaWRlOiBmYWxzZSwKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQo8L3NjcmlwdD4KCiAgICA8c2NyaXB0PgogICAgICAgIHZhciBhcnJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWNvcmRfYW5pbWF0aW9uX3dyYXBwZXInKTsKICAgICAgICB2YXIgbmV3VmlkZW9CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjb3JkX3RpcF93cmFwcGVyJyk7CgogICAgICAgIGlmIChhcnJvdykgewogICAgICAgICAgICBhcnJvdy5jbGFzc0xpc3QuYWRkKCdub19hbmltYXRpb24nKTsKICAgICAgICB9CgogICAgICAgIHZhciBpc0hvdmVyZWQgPSBmYWxzZTsKCiAgICAgICAgaWYgKG5ld1ZpZGVvQnRuICYmIGZhbHNlKSB7CiAgICAgICAgICAgIG5ld1ZpZGVvQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmIChpc0hvdmVyZWQpIHJldHVybjsKCiAgICAgICAgICAgICAgICBpc0hvdmVyZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIGlmIChhcnJvdykgewogICAgICAgICAgICAgICAgICAgIGFycm93LmNsYXNzTGlzdC5yZW1vdmUoJ25vX2FuaW1hdGlvbicpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHN0b3JlX3JlY29yZF90aXBfc2V0dGluZ3MoMSk7CgogICAgICAgICAgICB9LCBmYWxzZSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBzdG9yZV9yZWNvcmRfdGlwX3NldHRpbmdzKHZhbHVlKSB7CiAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKCiAgICAgICAgICAgIHhoci5vcGVuKCdQT1NUJywgJy9zZXR0aW5ncy9uYXZfcmVjb3JkZXJfdGlwJyk7CiAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdYLVJlcXVlc3RlZC1XaXRoJywgJ1hNTEh0dHBSZXF1ZXN0Jyk7CiAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7CiAgICAgICAgICAgIHhoci5zZW5kKCdyZWNvcmRfc2NyZWVuX3RpcF9zdGF0ZT0nICsgdmFsdWUgKyAnJnRva2VuPScgKyB2aW1lby54c3JmdCk7CgogICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGhhbmRsZS4gV2UgaG9wZSBmb3IgdGhlIGJlc3QgaW4gdGhpcyBjYXNlCiAgICAgICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICB9OwogICAgPC9zY3JpcHQ+CgoKICAgIAo8IS0tIC8qIFJlc3BvbnNpdmUgVG9wIE5hdiAoRXhwbG9yZSwgTE9IUCwgV2F0Y2gsIHRjKSAqLS0+CjxuYXYgaWQ9InRvcG5hdl9tb2JpbGUiIGNsYXNzPSJ0b3BuYXZfbW9iaWxlICAgIG5hdl9iYXItLWxpIiByb2xlPSJiYW5uZXIiPgoKICAgIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGRhdGEtYWN0aW9uPSJtZW51Lm9wZW4iIGNsYXNzPSJuYXZiYXJfaGFtYnVyZ2VyIG5hdl9iYXJfaWNvbiB0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfbGVmdCBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+CiAgICAgICAgICAgICAgICA8dGl0bGU+TWVudTwvdGl0bGU+CiAgICAgICAgICAgICAgICA8cGF0aCBpZD0iUmVjdGFuZ2xlLTQiIGQ9Ik03LDhIMjVhMSwxLDAsMCwxLDEsMWgwYTEsMSwwLDAsMS0xLDFIN0ExLDEsMCwwLDEsNiw5SDZBMSwxLDAsMCwxLDcsOFoiIC8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNywxNUgyNWExLDEsMCwwLDEsMSwxaDBhMSwxLDAsMCwxLTEsMUg3YTEsMSwwLDAsMS0xLTFINkExLDEsMCwwLDEsNywxNVoiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDIySDI1YTEsMSwwLDAsMSwxLDFoMGExLDEsMCwwLDEtMSwxSDdhMSwxLDAsMCwxLTEtMUg2QTEsMSwwLDAsMSw3LDIyWiIvPgogICAgICAgICAgICA8L3N2Zz4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9hY3Rpb25fYnV0dG9ucyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3ZpbWVvLmNvbS9zZWFyY2giIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfcmlnaHQgdG9wbmF2X21vYmlsZV9oZWFkZXJfc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJuYXZfYmFyX3NlYXJjaF9pY29uIG5hdl9iYXJfaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIgMzIiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U2VhcmNoPC90aXRsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljc0LDI1LjMybC00LjUzLTQuNTNhMSwxLDAsMCwwLS4yMS0uMTRBOSw5LDAsMSwwLDIwLjY1LDIyYTEsMSwwLDAsMCwuMTQuMjFsNC41Myw0LjUzYTEsMSwwLDAsMCwxLjQxLTEuNDFaTTE1LDIyYTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE1LDIyWiIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImNhcnRfdG9wX25hdl9tb2JpbGUiIGNsYXNzPSJ0b3BuYXZfY2FydF9idXR0b24iPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSBWaW1lbyBMb2dvIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfYmFyX3RpdGxlIGpzLW5hdl9iYXJfdGl0bGUiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20iIGd0bS1kYXRhLWNsaWNrPSJtb2JpbGVfbmF2X2hvbWVfbG9nb19jbGljayI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQ0MSAxMjQuNjgyIiB3aWR0aD0iODZweCIgaGVpZ2h0PSIyN3B4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIwLjQ4MSwyNy4zMjZjNS40NjIsMCwxMC4xODgtMS45MSwxNC4xNzQtNS43MjhjMy41NDctMy4zNzksNS4zOTItNi45MDYsNS41NC0xMC41ODNjMC4xNDMtMi40OTItMC44MTUtNC45NTEtMi44OC03LjM3OEMxMzUuMjQ0LDEuMjE3LDEzMi42NjIsMCwxMjkuNTYyLDBjLTUuMzIsMC0xMC4xNTUsMS43NjctMTQuNTExLDUuMjg4Yy00LjM1NiwzLjUyNy02LjYwOCw3LjIwNC02Ljc1LDExLjAyMkMxMDguMDAyLDIzLjY1NiwxMTIuMDY3LDI3LjMyNiwxMjAuNDgxLDI3LjMyNnoiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzQuMDc5LDUwLjE2Yy01LjMxOS02LjkyNS0xMy4xNDUtMTAuMzk1LTIzLjQ3NS0xMC4zOTVjLTE2LjA5NywwLTI5LjQ1NSw1Ljg5Ni00MC4wODMsMTcuNjg4Yy05LjkwMiwxMC42MTQtMTQuNDc4LDIyLjI2NS0xMy43MzMsMzQuOTQ0YzAuMDQ5LDAuOTMyLDAuMTMyLDEuODQsMC4yMjksMi43MzhjLTAuNTU0LDAuMjQxLTEuMDkzLDAuNDgzLTEuNjYyLDAuNzI0Yy0xMi41NTYsNS40MTEtMjQuMTQ3LDguMTEtMzQuNzc1LDguMTFjLTUuMzIsMC05LjMwNy0xLjgzOS0xMS45Ni01LjUyMWMxNC4zMTYtMi4zNTUsMjYuMjA2LTcuODc2LDM1LjY2Mi0xNi41NjhjOC44NTQtNy45NTUsMTIuOTg5LTE1LjY4OSwxMi40LTIzLjE5N2MtMC44ODctMTEuNzgtOC41NjItMTcuNjc2LTIzLjAzNC0xNy42NzZjLTE1LjY1LDAtMjkuMjM1LDUuOTA5LTQwLjc1LDE3LjcxNGMtMTAuNDg0LDEwLjc4My0xNS44MDUsMjIuMTQ4LTE1Ljk0NywzNC4xMDNjLTAuMDQsMi4wMDUsMC4wNjYsMy45MzIsMC4zLDUuNzg5Yy0yLjQ3NywxLjYzMi00LjM1MiwyLjQ1Ni01LjYxMywyLjQ1NmMtMi44MSwwLTQuNTc2LTAuNTgyLTUuMzE0LTEuNzZjLTAuNzM3LTEuMTc4LTEuMDM1LTMuMzA4LTAuODg3LTYuNDAxYzAtMS4xNzgsMC45MTktNS42OTUsMi43NzEtMTMuNTY1YzEuODQ1LTcuODcsMi44NDEtMTMuODY0LDIuOTktMTcuOTg3YzAuMjkxLTYuMDI1LTAuODk0LTEwLjY2LTMuNTQ3LTEzLjg5NmMtMy4xMDEtMy45NzQtOC4xOTQtNS42NjMtMTUuMjgxLTUuMDc0Yy01LjkwMiwwLjQ0Ny0xMS41OTIsMi42Ni0xNy4wNTQsNi42NDdjLTMuMjQ5LDIuMzYzLTYuNTY5LDUuNTM0LTkuOTYxLDkuNTIxYy0xLjE4NSwxLjAzNi0yLjI5MSwyLTMuMzI3LDIuODhjMC4xNDMtNi4wNTEtMS4wMzYtMTAuNzA1LTMuNTQtMTMuOTU0Yy0zLjEwNy0zLjk4Ny04LjI3Mi01LjY4My0xNS41MDgtNS4wOTRjLTguNDE1LDAuNzM4LTE2LjAyLDQuMDY1LTIyLjgwOSw5Ljk2N2MtMi45NTgsMi41MTEtNS41NCw1LjQ2OS03Ljc1Myw4Ljg2MWMwLjI5MS0xLjMyNywwLjQ0LTIuNzMxLDAuNDQtNC4yMDdjMC00LjU3Ni0xLjE4NS04LjYwMi0zLjU0Ny0xMi4wNzFzLTUuNDYyLTUuMDU1LTkuMzAxLTQuNzU3Yy0yLjIxMywwLjE0OS02LjQyLDMuMTAxLTEyLjYyMSw4Ljg1NGMtOC41NjksNy45NzQtMTMuMjE2LDEyLjI1OS0xMy45NTQsMTIuODQxbDUuMzEzLDUuOThjNC4xMzYtMi45ODQsNi42NDctNC40NzksNy41MzQtNC40NzljMS42MTgsMCwyLjI4NSwxLjMyNywxLjk5NCwzLjk3NWMtMC4xNDMsMy44MzEtMC44MjIsOS4xNjQtMi4wMzksMTYuMDEyYy0wLjc1NCw0LjI0My0xLjI5OCw3LjkwNC0xLjYzOCwxMC45ODhjLTAuMDY2LDAuMDU1LTAuMTI5LDAuMTA5LTAuMTk2LDAuMTY0Yy01LjMyLDQuMzc1LTkuMDA5LDYuNTU2LTExLjA3NCw2LjU1NmMtNC43MjUsMC03LjAxNi0zLjE1OC02Ljg2Ny05LjQ4OGMyLjIxMy0xMy44MjQsNC4yODUtMjUuMjIyLDYuMjA3LTM0LjE5OWMwLjU4My01LjI5NC0wLjI2Ni05LjU5Mi0yLjU1LTEyLjkwNmMtMi4yOTEtMy4zMTQtNS44Ny00Ljc0NC0xMC43MzctNC4zMDRjLTMuMTA3LDAuMjk4LTcuODMyLDMuMjQ5LTE0LjE4MSw4Ljg2Yy0yLjIwNSwyLTQuNDEsMy45OTYtNi42MTUsNS45OTNjLTAuNDM3LTEwLjQ0Ny01LjIwNC0xNS44MjItMTQuMzI5LTE2LjA5Yy0xMy42NjktMC40NC0yMi45MzEsNy4yNzUtMjcuNzc5LDIzLjE1OGMyLjUwNC0xLjA3NCw0LjkzOC0xLjYxOCw3LjMwMS0xLjYxOGM1LjAxNiwwLDcuMjI5LDIuODIyLDYuNjQsOC40NTNjLTAuMjk3LDMuNDExLTIuNTExLDguMzc1LTYuNjQsMTQuODk5Yy00LjEzNiw2LjUyMy03LjIzNiw5Ljc4Ni05LjMwMSw5Ljc4NmMtMi42NiwwLTUuMDk0LTUuMDIzLTcuMzA3LTE1LjA4MWMtMC43NDUtMi45NTEtMi4wNzEtMTAuNDkxLTMuOTg3LTIyLjYxNGMtMS43NzMtMTEuMjM2LTYuNDk5LTE2LjQ4NS0xNC4xNzQtMTUuNzQ3Yy0zLjI0OSwwLjI5OC04LjEyMywzLjI0OS0xNC42MTQsOC44NkM5LjY2OSw1My4zMTgsNC44NjcsNTcuNTk3LDAsNjEuODc1bDQuNjQxLDUuOThjNC40Mi0zLjA5NCw3LjAwMy00LjY0Nyw3Ljc0MS00LjY0N2MzLjM4NSwwLDYuNTUsNS4zMTMsOS41MDEsMTUuOTI5YzIuNjUzLDkuNzMzLDUuMzA3LDE5LjQ2OCw3Ljk2MSwyOS4yMDJjMy45NzQsMTAuNjIxLDguODQxLDE1LjkyOSwxNC41ODgsMTUuOTI5YzkuMjgxLDAsMjAuNjI3LTguNzE5LDM0LjAzOC0yNi4xNTRDODcuODkyLDg1Ljk4Nyw5My45OSw3NS43NCw5Ni44LDY3LjM1NGMzLjcyLTIuNzQ4LDYuMDE4LTQuMTQ2LDYuODUzLTQuMTQ2YzIuNjUzLDAsMy45ODcsMS45MjIsMy45ODcsNS43NTRjMCwwLjczOC0xLjQ0Myw2LjItNC4zMjQsMTYuMzgxYy0yLjg4LDEwLjE4Mi00LjM5NSwxNy43MDktNC41MzcsMjIuNTc1Yy0wLjE0OSw0LjcyNiwwLjk5Nyw4LjU1NywzLjQzLDExLjUwOGMyLjQzNCwyLjk1Miw1Ljk0MSw0LjQyOCwxMC41MjQsNC40MjhjOS44OSwwLDE5Ljc3OS00LjI3OCwyOS42NzUtMTIuODM1YzAuODgxLTAuNzcyLDEuNzM4LTEuNTU3LDIuNTczLTIuMzUyYzAuNzgzLDMuMzEyLDIuMTI0LDYuMDQ1LDQuMDcsOC4xNWM0LjI1OSw0LjU2OSwxMS40NTYsNi43MDYsMjEuNTkyLDYuNDA4Yy0xLjM1My0zLjI0OS0xLjg4NC05LjAwMy0xLjU4Ni0xNy4yNzRjMC40NC05LjE1MiwyLjgwOS0xNy45NDEsNy4wOTQtMjYuMzU1czguMjc4LTEyLjYyNywxMS45OC0xMi42MjdjNC4yODUsMCw2LjI4NSwyLjczMSw1Ljk4Nyw4LjE5M2MtMC4xNDksMy42OTYtMC44NzQsNy45MDMtMi4xNzUsMTIuNjI4Yy0xLjMwNyw0LjcyNS0yLjAzMiw5LjQ0OS0yLjE3NCwxNC4xNzRjLTAuMjk4LDcuNTM0LDEuMzkyLDEyLjkxOSw1LjA4MSwxNi4xNjhjNC4xMTYsMy42ODksMTEuMzM0LDUuMzkyLDIxLjYzOCw1LjA5NGMtMS41NDEtMy4zOTItMi4xNjItOC4yNjYtMS44NjQtMTQuNjIxYzAuNDQtOS4wMDMsMy40ODItMTguMzA0LDkuMTEzLTI3LjkwMmM1LjMzMy05LjE1MSw5LjkyMi0xMy43MzMsMTMuNzcyLTEzLjczM2MzLjU2LDAsNS4yNjMsMi44MDksNS4xMTMsOC40MTRjLTAuMTQ4LDMuNjg4LTEuMDc0LDguODU0LTIuNzcxLDE1LjQ5NGMtMS42OTUsNi42NDEtMi42MjEsMTIuMzE2LTIuNzY0LDE3LjA0MWMtMC4yOTcsMTAuNjI4LDQuMzUsMTUuOTM2LDEzLjk1NSwxNS45MzZjOS44ODksMCwxOS43NzktNC4yNzgsMjkuNjc1LTEyLjgzNWMwLjE2NC0wLjE0NCwwLjMxNi0wLjI5MywwLjQ3OS0wLjQzOGMwLjM0LDAuNTg2LDAuNjg4LDEuMTY4LDEuMDY4LDEuNzMyYzUuMTY1LDcuOTY3LDEzLjczNCwxMS45NTQsMjUuNjk1LDExLjk1NGMxNi4wOSwwLDMxLjk2Ni00LjQ5Miw0Ny42MTYtMTMuNDg4YzEuNzU2LTAuOTksMy40MjItMS45NzksNS4wMTctMi45N2MwLjk4NiwxLjk5MSwyLjEzOCwzLjg2NiwzLjUwMiw1LjU5MWM2LjA1Miw3LjUyMSwxNC45MTIsMTEuMjgxLDI2LjU3NSwxMS4yODFjMTQuMDI1LDAsMjUuNzY3LTQuOTM4LDM1LjIxNi0xNC44MTVjOS40NDktOS44NzYsMTQuNDY2LTIxLjU5OCwxNS4wNjEtMzUuMTYzQzQ0MS4zODcsNjQuNjg0LDQzOS4xMDIsNTYuNTAzLDQzNC4wNzksNTAuMTZ6IE0zMDUuMTE4LDkwLjAwM2MtMC4wODQtMS45MDktMC4wODQtMi44NjcsMC0yLjg2N2MwLjE0My01LjU3OSwyLjUwNS0xMS40MTcsNy4wNzQtMTcuNTE0czkuMDYyLTkuMTQ2LDEzLjQ4OC05LjE0NmMzLjM5MiwwLDUuMDEsMS45ODcsNC44NjcsNS45NDhjLTAuMTQ5LDIuOTM4LTIuMzYyLDYuNzY0LTYuNjM0LDExLjQ2MkMzMTguNjA2LDgzLjMyNCwzMTIuMzQxLDg3LjM2MiwzMDUuMTE4LDkwLjAwM3ogTTQxNS45MTgsNzMuODY4Yy0wLjI5Nyw3LjEtMi40MzQsMTMuOTAyLTYuNDIsMjAuNDEzYy00LjcyNSw3Ljg0NS0xMC40MTQsMTEuNzYtMTcuMDU1LDExLjc2Yy0yLjk1OCwwLTUuMjQ5LTEuNjI0LTYuODY3LTQuODhjLTEuNDc2LTIuODA5LTIuMTQyLTYuMDY0LTEuOTkzLTkuNzY3YzAuMjkxLTcuNTQsMi41MDUtMTQuNjQsNi42NDctMjEuM2M0Ljg2Ni04LjEzNiwxMS4wNjctMTIuMjA3LDE4LjYwMS0xMi4yMDdjMi4zNTYsMCw0LjE2OCwxLjY3LDUuNDI0LDQuOTk3UzQxNi4wNjcsNjkuODc1LDQxNS45MTgsNzMuODY4eiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idG9wbmF2X21vYmlsZV9tZW51IGxvaHBfdG9wbmF2X21vYmlsZV9tZW51IGpzLXRvcG5hdl9tb2JpbGVfbWVudV9tYWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2hwLWZsZXgtd3JhcHBlciI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2JhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgZGF0YS1ndG0tY2xpY2s9Im1vYmlsZV9uYXZfbWVudV9jbG9zZV9jbGljayIgY2xhc3M9Im1lbnVfY2xvc2UgcHVsbF9sZWZ0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2Nsb3NlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIyMiIgaGVpZ2h0PSIxNyIgdmlld0JveD0iMCAwIDE4IDE3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBzdHJva2Utd2lkdGg9IjAuMSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEgMTYuMjE4TDE2LjYyNy41OWwuNzc4Ljc3OEwxLjc3OCAxNi45OTV6IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMS43NzguNTlsMTUuNjI3IDE1LjYyOC0uNzc4Ljc3N0wxIDEuMzY4eiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibG9ocF9sb2dvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA0NDEgMTI0LjY4MiIgd2lkdGg9Ijg2cHgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIyN3B4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0xMjAuNDgxLDI3LjMyNmM1LjQ2MiwwLDEwLjE4OC0xLjkxLDE0LjE3NC01LjcyOGMzLjU0Ny0zLjM3OSw1LjM5Mi02LjkwNiw1LjU0LTEwLjU4M2MwLjE0My0yLjQ5Mi0wLjgxNS00Ljk1MS0yLjg4LTcuMzc4QzEzNS4yNDQsMS4yMTcsMTMyLjY2MiwwLDEyOS41NjIsMGMtNS4zMiwwLTEwLjE1NSwxLjc2Ny0xNC41MTEsNS4yODhjLTQuMzU2LDMuNTI3LTYuNjA4LDcuMjA0LTYuNzUsMTEuMDIyQzEwOC4wMDIsMjMuNjU2LDExMi4wNjcsMjcuMzI2LDEyMC40ODEsMjcuMzI2eiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik00MzQuMDc5LDUwLjE2Yy01LjMxOS02LjkyNS0xMy4xNDUtMTAuMzk1LTIzLjQ3NS0xMC4zOTVjLTE2LjA5NywwLTI5LjQ1NSw1Ljg5Ni00MC4wODMsMTcuNjg4Yy05LjkwMiwxMC42MTQtMTQuNDc4LDIyLjI2NS0xMy43MzMsMzQuOTQ0YzAuMDQ5LDAuOTMyLDAuMTMyLDEuODQsMC4yMjksMi43MzhjLTAuNTU0LDAuMjQxLTEuMDkzLDAuNDgzLTEuNjYyLDAuNzI0Yy0xMi41NTYsNS40MTEtMjQuMTQ3LDguMTEtMzQuNzc1LDguMTFjLTUuMzIsMC05LjMwNy0xLjgzOS0xMS45Ni01LjUyMWMxNC4zMTYtMi4zNTUsMjYuMjA2LTcuODc2LDM1LjY2Mi0xNi41NjhjOC44NTQtNy45NTUsMTIuOTg5LTE1LjY4OSwxMi40LTIzLjE5N2MtMC44ODctMTEuNzgtOC41NjItMTcuNjc2LTIzLjAzNC0xNy42NzZjLTE1LjY1LDAtMjkuMjM1LDUuOTA5LTQwLjc1LDE3LjcxNGMtMTAuNDg0LDEwLjc4My0xNS44MDUsMjIuMTQ4LTE1Ljk0NywzNC4xMDNjLTAuMDQsMi4wMDUsMC4wNjYsMy45MzIsMC4zLDUuNzg5Yy0yLjQ3NywxLjYzMi00LjM1MiwyLjQ1Ni01LjYxMywyLjQ1NmMtMi44MSwwLTQuNTc2LTAuNTgyLTUuMzE0LTEuNzZjLTAuNzM3LTEuMTc4LTEuMDM1LTMuMzA4LTAuODg3LTYuNDAxYzAtMS4xNzgsMC45MTktNS42OTUsMi43NzEtMTMuNTY1YzEuODQ1LTcuODcsMi44NDEtMTMuODY0LDIuOTktMTcuOTg3YzAuMjkxLTYuMDI1LTAuODk0LTEwLjY2LTMuNTQ3LTEzLjg5NmMtMy4xMDEtMy45NzQtOC4xOTQtNS42NjMtMTUuMjgxLTUuMDc0Yy01LjkwMiwwLjQ0Ny0xMS41OTIsMi42Ni0xNy4wNTQsNi42NDdjLTMuMjQ5LDIuMzYzLTYuNTY5LDUuNTM0LTkuOTYxLDkuNTIxYy0xLjE4NSwxLjAzNi0yLjI5MSwyLTMuMzI3LDIuODhjMC4xNDMtNi4wNTEtMS4wMzYtMTAuNzA1LTMuNTQtMTMuOTU0Yy0zLjEwNy0zLjk4Ny04LjI3Mi01LjY4My0xNS41MDgtNS4wOTRjLTguNDE1LDAuNzM4LTE2LjAyLDQuMDY1LTIyLjgwOSw5Ljk2N2MtMi45NTgsMi41MTEtNS41NCw1LjQ2OS03Ljc1Myw4Ljg2MWMwLjI5MS0xLjMyNywwLjQ0LTIuNzMxLDAuNDQtNC4yMDdjMC00LjU3Ni0xLjE4NS04LjYwMi0zLjU0Ny0xMi4wNzFzLTUuNDYyLTUuMDU1LTkuMzAxLTQuNzU3Yy0yLjIxMywwLjE0OS02LjQyLDMuMTAxLTEyLjYyMSw4Ljg1NGMtOC41NjksNy45NzQtMTMuMjE2LDEyLjI1OS0xMy45NTQsMTIuODQxbDUuMzEzLDUuOThjNC4xMzYtMi45ODQsNi42NDctNC40NzksNy41MzQtNC40NzljMS42MTgsMCwyLjI4NSwxLjMyNywxLjk5NCwzLjk3NWMtMC4xNDMsMy44MzEtMC44MjIsOS4xNjQtMi4wMzksMTYuMDEyYy0wLjc1NCw0LjI0My0xLjI5OCw3LjkwNC0xLjYzOCwxMC45ODhjLTAuMDY2LDAuMDU1LTAuMTI5LDAuMTA5LTAuMTk2LDAuMTY0Yy01LjMyLDQuMzc1LTkuMDA5LDYuNTU2LTExLjA3NCw2LjU1NmMtNC43MjUsMC03LjAxNi0zLjE1OC02Ljg2Ny05LjQ4OGMyLjIxMy0xMy44MjQsNC4yODUtMjUuMjIyLDYuMjA3LTM0LjE5OWMwLjU4My01LjI5NC0wLjI2Ni05LjU5Mi0yLjU1LTEyLjkwNmMtMi4yOTEtMy4zMTQtNS44Ny00Ljc0NC0xMC43MzctNC4zMDRjLTMuMTA3LDAuMjk4LTcuODMyLDMuMjQ5LTE0LjE4MSw4Ljg2Yy0yLjIwNSwyLTQuNDEsMy45OTYtNi42MTUsNS45OTNjLTAuNDM3LTEwLjQ0Ny01LjIwNC0xNS44MjItMTQuMzI5LTE2LjA5Yy0xMy42NjktMC40NC0yMi45MzEsNy4yNzUtMjcuNzc5LDIzLjE1OGMyLjUwNC0xLjA3NCw0LjkzOC0xLjYxOCw3LjMwMS0xLjYxOGM1LjAxNiwwLDcuMjI5LDIuODIyLDYuNjQsOC40NTNjLTAuMjk3LDMuNDExLTIuNTExLDguMzc1LTYuNjQsMTQuODk5Yy00LjEzNiw2LjUyMy03LjIzNiw5Ljc4Ni05LjMwMSw5Ljc4NmMtMi42NiwwLTUuMDk0LTUuMDIzLTcuMzA3LTE1LjA4MWMtMC43NDUtMi45NTEtMi4wNzEtMTAuNDkxLTMuOTg3LTIyLjYxNGMtMS43NzMtMTEuMjM2LTYuNDk5LTE2LjQ4NS0xNC4xNzQtMTUuNzQ3Yy0zLjI0OSwwLjI5OC04LjEyMywzLjI0OS0xNC42MTQsOC44NkM5LjY2OSw1My4zMTgsNC44NjcsNTcuNTk3LDAsNjEuODc1bDQuNjQxLDUuOThjNC40Mi0zLjA5NCw3LjAwMy00LjY0Nyw3Ljc0MS00LjY0N2MzLjM4NSwwLDYuNTUsNS4zMTMsOS41MDEsMTUuOTI5YzIuNjUzLDkuNzMzLDUuMzA3LDE5LjQ2OCw3Ljk2MSwyOS4yMDJjMy45NzQsMTAuNjIxLDguODQxLDE1LjkyOSwxNC41ODgsMTUuOTI5YzkuMjgxLDAsMjAuNjI3LTguNzE5LDM0LjAzOC0yNi4xNTRDODcuODkyLDg1Ljk4Nyw5My45OSw3NS43NCw5Ni44LDY3LjM1NGMzLjcyLTIuNzQ4LDYuMDE4LTQuMTQ2LDYuODUzLTQuMTQ2YzIuNjUzLDAsMy45ODcsMS45MjIsMy45ODcsNS43NTRjMCwwLjczOC0xLjQ0Myw2LjItNC4zMjQsMTYuMzgxYy0yLjg4LDEwLjE4Mi00LjM5NSwxNy43MDktNC41MzcsMjIuNTc1Yy0wLjE0OSw0LjcyNiwwLjk5Nyw4LjU1NywzLjQzLDExLjUwOGMyLjQzNCwyLjk1Miw1Ljk0MSw0LjQyOCwxMC41MjQsNC40MjhjOS44OSwwLDE5Ljc3OS00LjI3OCwyOS42NzUtMTIuODM1YzAuODgxLTAuNzcyLDEuNzM4LTEuNTU3LDIuNTczLTIuMzUyYzAuNzgzLDMuMzEyLDIuMTI0LDYuMDQ1LDQuMDcsOC4xNWM0LjI1OSw0LjU2OSwxMS40NTYsNi43MDYsMjEuNTkyLDYuNDA4Yy0xLjM1My0zLjI0OS0xLjg4NC05LjAwMy0xLjU4Ni0xNy4yNzRjMC40NC05LjE1MiwyLjgwOS0xNy45NDEsNy4wOTQtMjYuMzU1czguMjc4LTEyLjYyNywxMS45OC0xMi42MjdjNC4yODUsMCw2LjI4NSwyLjczMSw1Ljk4Nyw4LjE5M2MtMC4xNDksMy42OTYtMC44NzQsNy45MDMtMi4xNzUsMTIuNjI4Yy0xLjMwNyw0LjcyNS0yLjAzMiw5LjQ0OS0yLjE3NCwxNC4xNzRjLTAuMjk4LDcuNTM0LDEuMzkyLDEyLjkxOSw1LjA4MSwxNi4xNjhjNC4xMTYsMy42ODksMTEuMzM0LDUuMzkyLDIxLjYzOCw1LjA5NGMtMS41NDEtMy4zOTItMi4xNjItOC4yNjYtMS44NjQtMTQuNjIxYzAuNDQtOS4wMDMsMy40ODItMTguMzA0LDkuMTEzLTI3LjkwMmM1LjMzMy05LjE1MSw5LjkyMi0xMy43MzMsMTMuNzcyLTEzLjczM2MzLjU2LDAsNS4yNjMsMi44MDksNS4xMTMsOC40MTRjLTAuMTQ4LDMuNjg4LTEuMDc0LDguODU0LTIuNzcxLDE1LjQ5NGMtMS42OTUsNi42NDEtMi42MjEsMTIuMzE2LTIuNzY0LDE3LjA0MWMtMC4yOTcsMTAuNjI4LDQuMzUsMTUuOTM2LDEzLjk1NSwxNS45MzZjOS44ODksMCwxOS43NzktNC4yNzgsMjkuNjc1LTEyLjgzNWMwLjE2NC0wLjE0NCwwLjMxNi0wLjI5MywwLjQ3OS0wLjQzOGMwLjM0LDAuNTg2LDAuNjg4LDEuMTY4LDEuMDY4LDEuNzMyYzUuMTY1LDcuOTY3LDEzLjczNCwxMS45NTQsMjUuNjk1LDExLjk1NGMxNi4wOSwwLDMxLjk2Ni00LjQ5Miw0Ny42MTYtMTMuNDg4YzEuNzU2LTAuOTksMy40MjItMS45NzksNS4wMTctMi45N2MwLjk4NiwxLjk5MSwyLjEzOCwzLjg2NiwzLjUwMiw1LjU5MWM2LjA1Miw3LjUyMSwxNC45MTIsMTEuMjgxLDI2LjU3NSwxMS4yODFjMTQuMDI1LDAsMjUuNzY3LTQuOTM4LDM1LjIxNi0xNC44MTVjOS40NDktOS44NzYsMTQuNDY2LTIxLjU5OCwxNS4wNjEtMzUuMTYzQzQ0MS4zODcsNjQuNjg0LDQzOS4xMDIsNTYuNTAzLDQzNC4wNzksNTAuMTZ6IE0zMDUuMTE4LDkwLjAwM2MtMC4wODQtMS45MDktMC4wODQtMi44NjcsMC0yLjg2N2MwLjE0My01LjU3OSwyLjUwNS0xMS40MTcsNy4wNzQtMTcuNTE0czkuMDYyLTkuMTQ2LDEzLjQ4OC05LjE0NmMzLjM5MiwwLDUuMDEsMS45ODcsNC44NjcsNS45NDhjLTAuMTQ5LDIuOTM4LTIuMzYyLDYuNzY0LTYuNjM0LDExLjQ2MkMzMTguNjA2LDgzLjMyNCwzMTIuMzQxLDg3LjM2MiwzMDUuMTE4LDkwLjAwM3ogTTQxNS45MTgsNzMuODY4Yy0wLjI5Nyw3LjEtMi40MzQsMTMuOTAyLTYuNDIsMjAuNDEzYy00LjcyNSw3Ljg0NS0xMC40MTQsMTEuNzYtMTcuMDU1LDExLjc2Yy0yLjk1OCwwLTUuMjQ5LTEuNjI0LTYuODY3LTQuODhjLTEuNDc2LTIuODA5LTIuMTQyLTYuMDY0LTEuOTkzLTkuNzY3YzAuMjkxLTcuNTQsMi41MDUtMTQuNjQsNi42NDctMjEuM2M0Ljg2Ni04LjEzNiwxMS4wNjctMTIuMjA3LDE4LjYwMS0xMi4yMDdjMi4zNTYsMCw0LjE2OCwxLjY3LDUuNDI0LDQuOTk3UzQxNi4wNjcsNjkuODc1LDQxNS45MTgsNzMuODY4eiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hY3Rpb249Im1lbnUuc2V0dGluZ3Mub3BlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJtb2JpbGVfbmF2X3NldHRpbmdzX2NsaWNrIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6c2V0dGluZ3MiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibWVudV9zZXR0aW5ncyBwdWxsX3JpZ2h0IGpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbmdzIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIxOC44NnB4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAwIDE4Ljg2IDIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxOC44NiAyMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJnZWFyXzFfIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iSWNvbl8xXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS4wMDAwMDAsIDUuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTEwXzFfIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD0iQ29tYmluZWQtU2hhcGVfMV8iIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNiMWIxYjE7c3Ryb2tlLXdpZHRoOjI7IiBkPSJNMTIsNC41OGwtMC41Ny0wLjI3VjEuOTljMC0wLjU0LTAuNDUtMC45OS0xLTAuOTloLTJjLTAuNTUsMC0xLDAuNDUtMSwwLjk5djIuMzEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMNi44Niw0LjU4Yy0wLjI5LDAuMTQtMC41NywwLjMtMC44NCwwLjQ4TDUuNSw1LjQyTDMuNDksNC4yNkMzLjAyLDMuOTksMi40MSw0LjE2LDIuMTQsNC42M2wtMSwxLjc0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQzAuODYsNi44NCwxLjAyLDcuNDYsMS40OSw3LjczTDMuNSw4Ljg5TDMuNDUsOS41MkMzLjQ0LDkuNjgsMy40Myw5Ljg0LDMuNDMsMTBzMC4wMSwwLjMyLDAuMDIsMC40OGwwLjA1LDAuNjNsLTIuMDEsMS4xNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtMC40NywwLjI3LTAuNjMsMC44OC0wLjM2LDEuMzZsMSwxLjc0YzAuMjcsMC40OCwwLjg5LDAuNjQsMS4zNiwwLjM3bDIuMDEtMS4xNmwwLjUyLDAuMzZjMC4yNywwLjE4LDAuNTUsMC4zNSwwLjg0LDAuNDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsMC41NywwLjI3djIuMzFjMCwwLjU0LDAuNDUsMC45OSwxLDAuOTloMmMwLjU1LDAsMS0wLjQ1LDEtMC45OXYtMi4zMUwxMiwxNS40MmMwLjI5LTAuMTQsMC41Ny0wLjMsMC44NC0wLjQ4bDAuNTItMC4zNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwyLjAxLDEuMTZjMC40NywwLjI3LDEuMDgsMC4xMSwxLjM2LTAuMzdsMS0xLjc0YzAuMjctMC40OCwwLjExLTEuMDktMC4zNi0xLjM2bC0yLjAxLTEuMTZsMC4wNS0wLjYzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzAuMDEtMC4xNiwwLjAyLTAuMzIsMC4wMi0wLjQ4cy0wLjAxLTAuMzItMC4wMi0wLjQ4bC0wLjA1LTAuNjNsMi4wMS0xLjE2YzAuNDctMC4yNywwLjYzLTAuODgsMC4zNi0xLjM2bC0xLTEuNzQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLTAuMjctMC40OC0wLjg5LTAuNjQtMS4zNi0wLjM3bC0yLjAxLDEuMTZsLTAuNTItMC4zNkMxMi41Nyw0Ljg4LDEyLjI5LDQuNzIsMTIsNC41OHoiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWxfMV8iIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNiMWIxYjE7c3Ryb2tlLXdpZHRoOjI7IiBjeD0iOS40MyIgY3k9IjEwIiByPSIyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDx1bCBpZD0ibWVudV9saXN0IiBjbGFzcz0ibWVudV9saXN0X2xvZ2dlZF9vdXQgbm90LXZpc2libGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9J21haW5faXRlbScgZGF0YS1icmVlemUtaWdub3JlIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OmpvaW58dGFyZ2V0Oi9qb2luIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9qb2luX2NsaWNrIiBpZD0ianMtam9pbi1saW5rIiBocmVmPSIvam9pbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpvaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9J21haW5faXRlbScgZGF0YS1icmVlemUtaWdub3JlIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OmxvZ2lufHRhcmdldDovbG9nX2luIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9sb2dpbl9jbGljayIgaWQ9ImpzLWxvZ2luLWxpbmsiIGhyZWY9Ii9sb2dfaW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2dpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duX2xpc3QiPgogICAgPGJ1dHRvbiBjbGFzcz0iZHJvcGRvd25fdG9nZ2xlX2J1dHRvbiBqcy10b3BuYXZfbW9iaWxlX21lbnVfdG9nZ2xlIj4KICAgICAgICA8c3BhbiBjbGFzcz0ibWFpbl9pdGVtIj5Tb2x1dGlvbnM8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3Bkb3duX2Fycm93IGpzLXRvcF9uYXZfdG9nZ2xlX2Fycm93Ij4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOCI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDUuOTE0TDUuOTE0IDYuNDUgNC40NzMgNS4wMDhsLTIuMDMtMi4wM0wuMzc4LjkxNCIgc3Ryb2tlPSIjMUEyRTNBIiBzdHJva2Utd2lkdGg9IjEuMiIKICAgICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiAvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L3NwYW4+CiAgICA8L2J1dHRvbj4KICAgIDxkaXYgYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJ0b2dnbGVfbGlzdCBqcy10b3BfbmF2X3RvZ2dsZV9saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOnZpZGVvX21hcmtldGluZyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfdmlkZW9fbWFya2V0aW5nIiBjbGFzcz0ic29sdXRpb25zX21lbnUiIGhyZWY9Ii9zb2x1dGlvbnMvbWFya2V0aW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWVudV9oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW8gbWFya2V0aW5nICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfZGVzY3JpcHRpb24iPlBvd2VyIHlvdXIgbWFya2V0aW5nIHN0cmF0ZWd5IHdpdGggcGVyZmVjdGx5IGJyYW5kZWQgdmlkZW9zIHRvIGRyaXZlIGJldHRlciBST0kuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPiAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6c29sdXRpb25zfGtleXdvcmQ6ZXZlbnRfbWFya2V0aW5nIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9ldmVudF9tYXJrZXRpbmciIGNsYXNzPSJzb2x1dGlvbnNfbWVudSIgaHJlZj0iL3NvbHV0aW9ucy92aXJ0dWFsLWV2ZW50cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50IG1hcmtldGluZyAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2Rlc2NyaXB0aW9uIj5Ib3N0IHZpcnR1YWwgZXZlbnRzIGFuZCB3ZWJpbmFycyB0byBpbmNyZWFzZSBlbmdhZ2VtZW50IGFuZCBnZW5lcmF0ZSBsZWFkcy48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpzb2x1dGlvbnN8a2V5d29yZDplbXBsb3llZV9jb21tdW5pY2F0aW9ucyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfZW1wbG95ZWVfY29tbXVuaWNhdGlvbnMiIGNsYXNzPSJzb2x1dGlvbnNfbWVudSIgaHJlZj0iL3NvbHV0aW9ucy9jb21tdW5pY2F0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcGxveWVlIGNvbW11bmljYXRpb24gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWVudV9kZXNjcmlwdGlvbiI+SW5zcGlyZSBlbXBsb3llZXMgd2l0aCBjb21wZWxsaW5nIGxpdmUgYW5kIG9uLWRlbWFuZCB2aWRlbyBleHBlcmllbmNlcy48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpzb2x1dGlvbnN8a2V5d29yZDp2aWRlb19tb25ldGl6YXRpb24iIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3ZpZGVvX21vbmV0aXphdGlvbiIgY2xhc3M9InNvbHV0aW9uc19tZW51IiBocmVmPSIvc29sdXRpb25zL3ZpZGVvLW1vbmV0aXphdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIG1vbmV0aXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2Rlc2NyaXB0aW9uIj5CdWlsZCBhIHNpdGUgYW5kIGdlbmVyYXRlIGluY29tZSBmcm9tIHB1cmNoYXNlcywgc3Vic2NyaXB0aW9ucywgYW5kIGNvdXJzZXMuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPiAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd25fbGlzdCI+CiAgICA8YnV0dG9uIGNsYXNzPSJkcm9wZG93bl90b2dnbGVfYnV0dG9uIGpzLXRvcG5hdl9tb2JpbGVfbWVudV90b2dnbGUiPgogICAgICAgIDxzcGFuIGNsYXNzPSJtYWluX2l0ZW0iPkZlYXR1cmVzPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wZG93bl9hcnJvdyBqcy10b3BfbmF2X3RvZ2dsZV9hcnJvdyI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjgiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTExLjQ1LjkxNEw1LjkxNCA2LjQ1IDQuNDczIDUuMDA4bC0yLjAzLTIuMDNMLjM3OC45MTQiIHN0cm9rZT0iIzFBMkUzQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9zcGFuPgogICAgPC9idXR0b24+CiAgICA8ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0idG9nZ2xlX2xpc3QganMtdG9wX25hdl90b2dnbGVfbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2hlYWRlciI+Q3JlYXRlPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmludGVyYWN0aXZlX3ZpZGVvIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovZmVhdHVyZXMvaW50ZXJhY3RpdmUtdmlkZW98Y29weTpJbnRlcmFjdGl2ZSB2aWRlb3xmZWF0dXJlOmNyZWF0ZV9pbnRlcmFjdGl2ZXx0YXJnZXRfcGF0aDovZmVhdHVyZXMvaW50ZXJhY3RpdmUtdmlkZW8iIGhyZWY9Ii9mZWF0dXJlcy9pbnRlcmFjdGl2ZS12aWRlbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmFjdGl2ZSB2aWRlbyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDpsaXZlX3N0cmVhbWluZyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL2xpdmVzdHJlYW1pbmc/bWtjPTM2OGlwX2ZjX2xpdmV8Y29weTpMaXZlIHN0cmVhbXxmZWF0dXJlOmNyZWF0ZV9saXZlfHRhcmdldF9wYXRoOi9mZWF0dXJlcy9saXZlc3RyZWFtaW5nP21rYz0zNjhpcF9mY19saXZlIiBocmVmPSIvZmVhdHVyZXMvbGl2ZXN0cmVhbWluZz9ta2M9MzY4aXBfZmNfbGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXZlIHN0cmVhbSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDpzY3JlZW5fcmVjb3JkZXIiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXJ8Y29weTpTY3JlZW4gcmVjb3JkZXJ8ZmVhdHVyZTpjcmVhdGVfcmVjb3JkfHRhcmdldF9wYXRoOi9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXIiIGhyZWY9Ii9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyZWVuIHJlY29yZGVyICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmNyZWF0ZSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2NyZWF0ZXxjb3B5OkNyZWF0ZSB2aWRlbyBtYWtlcnxmZWF0dXJlOmNyZWF0ZV92aW1lb19jcmVhdGV8dGFyZ2V0X3BhdGg6L2NyZWF0ZSIgaHJlZj0iL2NyZWF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgdmlkZW8gbWFrZXIgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6dmlkZW9fZWRpdG9yIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovdmlkZW8tZWRpdG9yfGNvcHk6T25saW5lIHZpZGVvIGVkaXRvcnxmZWF0dXJlOmNyZWF0ZV9lZGl0b3J8dGFyZ2V0X3BhdGg6L3ZpZGVvLWVkaXRvciIgaHJlZj0iL3ZpZGVvLWVkaXRvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmxpbmUgdmlkZW8gZWRpdG9yICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmZvcl9oaXJlIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovZm9yLWhpcmV8Y29weTpIaXJlIGEgdmlkZW8gcHJvfGZlYXR1cmU6Y3JlYXRlX2hpcmV8dGFyZ2V0X3BhdGg6L2Zvci1oaXJlIiBocmVmPSIvZm9yLWhpcmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlyZSBhIHZpZGVvIHBybyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfaGVhZGVyIj5NYW5hZ2U8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6dmlkZW9fbGlicmFyeSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3ZpZGVvLWxpYnJhcnk/bWtjPTM2OGlwX2ZtX3ZsfGNvcHk6VmlkZW8gbGlicmFyeXxmZWF0dXJlOm1hbmFnZV9saWJyYXJ5fHRhcmdldF9wYXRoOi9mZWF0dXJlcy92aWRlby1saWJyYXJ5P21rYz0zNjhpcF9mbV92bCIgaHJlZj0iL2ZlYXR1cmVzL3ZpZGVvLWxpYnJhcnk/bWtjPTM2OGlwX2ZtX3ZsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIGxpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6dmlkZW9fcGxheWVyIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X2ZlYXR1cmVzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovZmVhdHVyZXMvdmlkZW8tcGxheWVyP21rYz0zNjhpcF9mbV9hZGZyZWV8Y29weTpBZC1mcmVlIHBsYXllcnxmZWF0dXJlOm1hbmFnZV9hZGRfZnJlZV9wbGF5ZXJ8dGFyZ2V0X3BhdGg6L2ZlYXR1cmVzL3ZpZGVvLXBsYXllcj9ta2M9MzY4aXBfZm1fYWRmcmVlIiBocmVmPSIvZmVhdHVyZXMvdmlkZW8tcGxheWVyP21rYz0zNjhpcF9mbV9hZGZyZWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWQtZnJlZSBwbGF5ZXIgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6aG9zdGluZyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL29ubGluZS12aWRlby1ob3N0aW5nP21rYz0zNjhpcF9mbV9ob3N0aW5nfGNvcHk6VmlkZW8gaG9zdGluZ3xmZWF0dXJlOm1hbmFnZV92aWRlb19ob3N0aW5nfHRhcmdldF9wYXRoOi9mZWF0dXJlcy9vbmxpbmUtdmlkZW8taG9zdGluZz9ta2M9MzY4aXBfZm1faG9zdGluZyIgaHJlZj0iL2ZlYXR1cmVzL29ubGluZS12aWRlby1ob3N0aW5nP21rYz0zNjhpcF9mbV9ob3N0aW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIGhvc3RpbmcgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpwcm9kdWN0fGtleXdvcmQ6cHJpdmFjeSIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3ZpZGVvLXByaXZhY3k/bWtjPTM2OGlwX2ZtX3ByaXZhY3l8Y29weTpQcml2YWN5fGZlYXR1cmU6bWFuYWdlX3ByaXZhY3l8dGFyZ2V0X3BhdGg6L2ZlYXR1cmVzL3ZpZGVvLXByaXZhY3k/bWtjPTM2OGlwX2ZtX3ByaXZhY3kiIGhyZWY9Ii9mZWF0dXJlcy92aWRlby1wcml2YWN5P21rYz0zNjhpcF9mbV9wcml2YWN5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXZhY3kgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2hlYWRlciI+R3JvdzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDpzbWFsbF9idXNpbmVzcyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L3NvbHV0aW9ucy9zbWFsbC1idXNpbmVzcy1zb2x1dGlvbnN8Y29weTpTbWFsbCBidXNpbmVzc3xmZWF0dXJlOmdyb3dfc21hbGxfYnVzaW5lc3N8dGFyZ2V0X3BhdGg6L3NvbHV0aW9ucy9zbWFsbC1idXNpbmVzcy1zb2x1dGlvbnMiIGhyZWY9Ii9zb2x1dGlvbnMvc21hbGwtYnVzaW5lc3Mtc29sdXRpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNtYWxsIGJ1c2luZXNzICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmVudGVycHJpc2UiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfZmVhdHVyZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9lbnRlcnByaXNlP21rYz0zNjgtbWVudS1ncm93fGNvcHk6RW50ZXJwcmlzZXxmZWF0dXJlOmdyb3dfZW50ZXJwcmlzZXx0YXJnZXRfcGF0aDovZW50ZXJwcmlzZT9ta2M9MzY4LW1lbnUtZ3JvdyIgaHJlZj0iL2VudGVycHJpc2U/bWtjPTM2OC1tZW51LWdyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50ZXJwcmlzZSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByb2R1Y3R8a2V5d29yZDp3ZWJpbmFycyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3dlYmluYXJ8Y29weTpXZWJpbmFyc3xmZWF0dXJlOmdyb3dfd2ViaW5hcnN8dGFyZ2V0X3BhdGg6L2ZlYXR1cmVzL3dlYmluYXIiIGhyZWY9Ii9mZWF0dXJlcy93ZWJpbmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYmluYXJzICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOmFuYWx5dGljcyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2ZlYXR1cmVzL3ZpZGVvLWFuYWx5dGljcz9ta2M9MzY4aXBfZmdfYW5hbHl6ZXxjb3B5OlZpZGVvIGFuYWx5dGljc3xmZWF0dXJlOmdyb3dfYW5hbHl0aWNzfHRhcmdldF9wYXRoOi9mZWF0dXJlcy92aWRlby1hbmFseXRpY3M/bWtjPTM2OGlwX2ZnX2FuYWx5emUiIGhyZWY9Ii9mZWF0dXJlcy92aWRlby1hbmFseXRpY3M/bWtjPTM2OGlwX2ZnX2FuYWx5emUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW8gYW5hbHl0aWNzICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cHJvZHVjdHxrZXl3b3JkOm1vbmV0aXphdGlvbiIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9mZWF0dXJlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L290dD9ta2M9ZW50cHJzYnxjb3B5OlZpZGVvIG1vbmV0aXphdGlvbnxmZWF0dXJlOmdyb3dfb3R0fHRhcmdldF9wYXRoOi9vdHQ/bWtjPWVudHByc2IiIGhyZWY9Ii9vdHQ/bWtjPWVudHByc2IiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW8gbW9uZXRpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd25fbGlzdCI+CiAgICA8YnV0dG9uIGNsYXNzPSJkcm9wZG93bl90b2dnbGVfYnV0dG9uIGpzLXRvcG5hdl9tb2JpbGVfbWVudV90b2dnbGUiPgogICAgICAgIDxzcGFuIGNsYXNzPSJtYWluX2l0ZW0iPlJlc291cmNlczwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcGRvd25fYXJyb3cganMtdG9wX25hdl90b2dnbGVfYXJyb3ciPgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSI4Ij4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40NS45MTRMNS45MTQgNi40NSA0LjQ3MyA1LjAwOGwtMi4wMy0yLjAzTC4zNzguOTE0IiBzdHJva2U9IiMxQTJFM0EiIHN0cm9rZS13aWR0aD0iMS4yIgogICAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvc3Bhbj4KICAgIDwvYnV0dG9uPgogICAgPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9InRvZ2dsZV9saXN0IGpzLXRvcF9uYXZfdG9nZ2xlX2xpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWVudV9oZWFkZXIiPkxlYXJuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6aW5zcGlyYXRpb258a2V5d29yZDpibG9nIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9pbnNwaXJhdGlvbl9ibG9nIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3Jlc291cmNlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2Jsb2d8Y29weTpWaW1lbyBibG9nfGZlYXR1cmU6bGVhcm5fYmxvZ3x0YXJnZXRfcGF0aDovYmxvZyIgaHJlZj0iL2Jsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmltZW8gYmxvZyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omluc3BpcmF0aW9ufGtleXdvcmQ6dmlkZW9fc2Nob29sIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9pbnNwaXJhdGlvbl92aWRlb19zY2hvb2wiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfcmVzb3VyY2VzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovYmxvZy9jYXRlZ29yeS92aWRlby1zY2hvb2x8Y29weTpWaWRlbyBTY2hvb2x8ZmVhdHVyZTpsZWFybl92aWRlb19zY2hvb2x8dGFyZ2V0X3BhdGg6L2Jsb2cvY2F0ZWdvcnkvdmlkZW8tc2Nob29sIiBocmVmPSIvYmxvZy9jYXRlZ29yeS92aWRlby1zY2hvb2wiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW8gU2Nob29sICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cmVzb3VyY2VzX2xlYXJufGtleXdvcmQ6Y3VzdG9tZXJfc3RvcmllcyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9yZXNvdXJjZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9ibG9nL2NhdGVnb3J5L2Nhc2Utc3R1ZHl8Y29weTpDdXN0b21lciBzdG9yaWVzfGZlYXR1cmU6bGVhcm5fY3VzdG9tZXJfc3Rvcmllc3x0YXJnZXRfcGF0aDovYmxvZy9jYXRlZ29yeS9jYXNlLXN0dWR5IiBocmVmPSIvYmxvZy9jYXRlZ29yeS9jYXNlLXN0dWR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyIHN0b3JpZXMgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpyZXNvdXJjZXNfbGVhcm58a2V5d29yZDppbnZlc3Rvcl9yZWxhdGlvbnMiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfcmVzb3VyY2VzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDpodHRwczovL2ludmVzdG9ycy52aW1lby5jb218Y29weTpJbnZlc3RvciBSZWxhdGlvbnN8ZmVhdHVyZTpsZWFybl9pbnZlc3Rvcl9yZWxhdGlvbnN8dGFyZ2V0X3BhdGg6aHR0cHM6Ly9pbnZlc3RvcnMudmltZW8uY29tIiBocmVmPSJodHRwczovL2ludmVzdG9ycy52aW1lby5jb20iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52ZXN0b3IgUmVsYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWVudV9oZWFkZXIiPkNvbm5lY3Q8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpyZXNvdXJjZXNfY29ubmVjdHxrZXl3b3JkOmRldmVsb3Blcl90b29scyIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl9yZXNvdXJjZXN8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Omh0dHBzOi8vZGV2ZWxvcGVyLnZpbWVvLmNvbS98Y29weTpEZXZlbG9wZXIgdG9vbHN8ZmVhdHVyZTpjb25uZWN0X2RldmVsb3Blcl90b29sc3x0YXJnZXRfcGF0aDpodHRwczovL2RldmVsb3Blci52aW1lby5jb20vIiBocmVmPSJodHRwczovL2RldmVsb3Blci52aW1lby5jb20vIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmVsb3BlciB0b29scyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnJlc291cmNlc19jb25uZWN0fGtleXdvcmQ6cGFydG5lcl9wcm9ncmFtIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3Jlc291cmNlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L3BhcnRuZXJzfGNvcHk6UGFydG5lciBwcm9ncmFtfGZlYXR1cmU6Y29ubmVjdF9wYXJ0bmVyX3Byb2dyYW18dGFyZ2V0X3BhdGg6L3BhcnRuZXJzIiBocmVmPSIvcGFydG5lcnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFydG5lciBwcm9ncmFtICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6cmVzb3VyY2VzX2Nvbm5lY3R8a2V5d29yZDpjcmVhdGl2ZV9jb21tdW5pdHkiIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfcmVzb3VyY2VzfG5hbWU6c2VsZWN0X2dsb2JhbF9uYXZfb3B0aW9ufHRhcmdldDovZXhwZXJ0c3xjb3B5OkNyZWF0aXZlIGNvbW11bml0eXxmZWF0dXJlOmNvbm5lY3RfY3JlYXRpdmVfY29tbXVuaXR5fHRhcmdldF9wYXRoOi9leHBlcnRzIiBocmVmPSIvZXhwZXJ0cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGl2ZSBjb21tdW5pdHkgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpyZXNvdXJjZXNfY29ubmVjdHxrZXl3b3JkOmhlbHBfY2VudGVyIiBkYXRhLWJwLWNsaWNrPSJsb2NhdGlvbjpnbG9iYWxfbmF2X3Jlc291cmNlc3xuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6aHR0cHM6Ly9oZWxwLnZpbWVvLmNvbS98Y29weTpIZWxwIGNlbnRlcnxmZWF0dXJlOmNvbm5lY3RfaGVscF9jZW50ZXJ8dGFyZ2V0X3BhdGg6aHR0cHM6Ly9oZWxwLnZpbWVvLmNvbS8iIGhyZWY9Imh0dHBzOi8vaGVscC52aW1lby5jb20vIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHAgY2VudGVyICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd25fbGlzdCI+CiAgICA8YnV0dG9uIGNsYXNzPSJkcm9wZG93bl90b2dnbGVfYnV0dG9uIGpzLXRvcG5hdl9tb2JpbGVfbWVudV90b2dnbGUiPgogICAgICAgIDxzcGFuIGNsYXNzPSJtYWluX2l0ZW0iPldhdGNoPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wZG93bl9hcnJvdyBqcy10b3BfbmF2X3RvZ2dsZV9hcnJvdyI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjgiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTExLjQ1LjkxNEw1LjkxNCA2LjQ1IDQuNDczIDUuMDA4bC0yLjAzLTIuMDNMLjM3OC45MTQiIHN0cm9rZT0iIzFBMkUzQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgICAgICAgICAgZmlsbD0ibm9uZSIgLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9zcGFuPgogICAgPC9idXR0b24+CiAgICA8ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0idG9nZ2xlX2xpc3QganMtdG9wX25hdl90b2dnbGVfbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249J2NvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmJvdHknIGRhdGEtZ3RtLWNsaWNrPSd0b3BfbmF2X3dhdGNoX2JvdHlfY2xpY2snIGRhdGEtYnAtY2xpY2s9J2xvY2F0aW9uOmdsb2JhbF9uYXZfd2F0Y2h8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9iZXN0b2Z0aGV5ZWFyfGNvcHk6QmVzdCBvZiB0aGUgWWVhcnxmZWF0dXJlOmJlc3Rfb2ZfdGhlX3llYXJ8dGFyZ2V0X3BhdGg6L2Jlc3RvZnRoZXllYXInIGhyZWY9Ii9iZXN0b2Z0aGV5ZWFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWVudV9oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVzdCBvZiB0aGUgWWVhciAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2Rlc2NyaXB0aW9uIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ndG9wbmF2X3dhdGNoX2l0ZW0nIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0nY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6YnJvd3NlX3ZpZGVvcycgZGF0YS1ndG0tY2xpY2s9J3RvcF9uYXZfd2F0Y2hfYnJvd3NlX3ZpZGVvc19jbGljaycgZGF0YS1icC1jbGljaz0nbG9jYXRpb246Z2xvYmFsX25hdl93YXRjaHxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L3dhdGNofGNvcHk6QnJvd3NlIFZpZGVvc3xmZWF0dXJlOmJyb3dzZV92aWRlb3N8dGFyZ2V0X3BhdGg6L3dhdGNoJyBocmVmPSIvd2F0Y2giPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcm93c2UgVmlkZW9zICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfZGVzY3JpcHRpb24iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4gIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfd2F0Y2hfaXRlbSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpzdGFmZl9waWNrcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfc3RhZmZfcGlja3NfY2xpY2siIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfd2F0Y2h8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9jaGFubmVscy9zdGFmZnBpY2tzfGNvcHk6U3RhZmYgUGlja3N8ZmVhdHVyZTpzdGFmZl9waWNrc3x0YXJnZXRfcGF0aDovY2hhbm5lbHMvc3RhZmZwaWNrcyIgaHJlZj0iL2NoYW5uZWxzL3N0YWZmcGlja3MiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFmZiBQaWNrcyAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2Rlc2NyaXB0aW9uIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idG9wbmF2X3dhdGNoX2l0ZW0iIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6Y2F0ZWdvcmllcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2F0ZWdvcmllc19jbGljayIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl93YXRjaHxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L2NhdGVnb3JpZXN8Y29weTpDYXRlZ29yaWVzfGZlYXR1cmU6Y2F0ZWdvcmllc3x0YXJnZXRfcGF0aDovY2F0ZWdvcmllcyIgaHJlZj0iL2NhdGVnb3JpZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yaWVzICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfZGVzY3JpcHRpb24iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4gIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ0b3BuYXZfd2F0Y2hfaXRlbSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpjaGFubmVscyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfY2hhbm5lbHNfY2xpY2siIGRhdGEtYnAtY2xpY2s9ImxvY2F0aW9uOmdsb2JhbF9uYXZfd2F0Y2h8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258dGFyZ2V0Oi9jaGFubmVsc3xjb3B5OkNoYW5uZWxzfGZlYXR1cmU6Y2hhbm5lbHN8dGFyZ2V0X3BhdGg6L2NoYW5uZWxzIiBocmVmPSIvY2hhbm5lbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFubmVscyAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJtZW51X2Rlc2NyaXB0aW9uIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idG9wbmF2X3dhdGNoX2l0ZW0iIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OndhdGNofGtleXdvcmQ6b25fZGVtYW5kIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9jbGljayIgZGF0YS1icC1jbGljaz0ibG9jYXRpb246Z2xvYmFsX25hdl93YXRjaHxuYW1lOnNlbGVjdF9nbG9iYWxfbmF2X29wdGlvbnx0YXJnZXQ6L29uZGVtYW5kfGNvcHk6T24gRGVtYW5kfGZlYXR1cmU6b25fZGVtYW5kfHRhcmdldF9wYXRoOi9vbmRlbWFuZCIgaHJlZj0iL29uZGVtYW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWVudV9oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgT24gRGVtYW5kICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Ym1lbnVfZGVzY3JpcHRpb24iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4gIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSdtYWluX2l0ZW0nIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3ByaWNpbmdfY2xpY2siIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OnByaWNpbmciZGF0YS1icC1jbGljaz1sb2NhdGlvbjpnbG9iYWxfbmF2fHRhcmdldDp1cGdyYWRlX3BhZ2V8bmFtZTpzZWxlY3RfZ2xvYmFsX25hdl9vcHRpb258Y29weTp1cGdyYWRlfGZlYXR1cmU6dXBncmFkZXx0YXJnZXRfcGF0aDovdXBncmFkZSBocmVmPSIvdXBncmFkZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmljaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0nbWFpbl9pdGVtJyBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jb250YWN0X3NhbGVzX2NsaWNrIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpjb250YWN0X3NhbGVzfGtleXdvcmQ6Y29udGFjdF9zYWxlcyIgaHJlZj0iL2VudGVycHJpc2UvY29udGFjdC11cz9ta2M9MzY4dG5jIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRhY3QgU2FsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1haW5faXRlbSIgaHJlZj0iLy92aW1lby5jb20vc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJzZWFyY2hfaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIgMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U2VhcmNoPC90aXRsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljc0LDI1LjMybC00LjUzLTQuNTNhMSwxLDAsMCwwLS4yMS0uMTRBOSw5LDAsMSwwLDIwLjY1LDIyYTEsMSwwLDAsMCwuMTQuMjFsNC41Myw0LjUzYTEsMSwwLDAsMCwxLjQxLTEuNDFaTTE1LDIyYTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE1LDIyWiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21fYnV0dG9uc19jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvdXBsb2FkIiBjbGFzcz0iZGFya19idXR0b24iIGRhdGEtYnJlZXplLWlnbm9yZSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGtleXdvcmQ6dXBsb2FkIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl91cGxvYWRfY2xpY2siIGlkPSJqcy11cGxvYWQtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIyMyIgaGVpZ2h0PSIxNyIgdmlld0JveD0iMCAwIDMwIDIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTkuNTgzIDQuOTIzQTguMiA4LjIgMCAwMTI0Ljc3OCA5LjM5IDUuNyA1LjcgMCAwMTIyLjcgMjAuNGwtMTYtLjAwMUE1LjcgNS43IDAgMTE2LjcgOWgxLjY4MmE4LjE2MiA4LjE2MiAwIDAxMS4yLTQuMDc3em0tMy42MzYgNS4zNEE0LjUwMSA0LjUwMSAwIDAwNi43IDE5LjJoMTZhNC41IDQuNSAwIDAwLjc5OS04LjkzQTcgNyAwIDEwOS42NSAxMC4ySDYuN2E0LjUzIDQuNTMgMCAwMC0uNzUzLjA2M3ptOS42MzMuODU5VjE5LjJoLTF2LTguMDkzbC0zLjA0MyAzLjA0My0uNzA3LS43MDdMMTUuMDczIDkuMmw0LjI0MiA0LjI0My0uNzA3LjcwNy0zLjAyOC0zLjAyOHoiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlVwbG9hZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudSB0b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MgbG9ocF9tb2JpbGVfbWVudV9zZXR0aW5ncyBqcy10b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfYmFyIHN1Ym1lbnUiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfbGVmdCBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5zX2Nsb3NlIHRvcG5hdl9pY29uX21vYmlsZV9hcnJvd2xlZnRfYiI+IDwvYnV0dG9uPgogICAgICAgICAgICA8aDEgY2xhc3M9InRvcG5hdl9tb2JpbGVfaGVhZGVyX3RpdGxlIHN1Ym1lbnUiPk1vcmUgc3R1ZmY8L2gxPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8dWwgY2xhc3M9Im1lbnVfbGlzdF9zZXR0aW5nc19sb2dnZWRfb3V0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii90ZXJtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXJtcyBvZiBTZXJ2aWNlICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvcHJpdmFjeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YWN5IFBvbGljeSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtYWN0aW9uPSJtZW51LmNsb3NlIiBjbGFzcz0iICIgaHJlZj0iL2RtY2EiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvY29va2llX3BvbGljeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWVzICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1hY3Rpb249ImRlc2t0b3AiIG9uY2xpY2s9InZpbWVvLm1vYmlsZS5kZXNrdG9wX3NoYXJlZC5fczJkcygpOyByZXR1cm4gZmFsc2UiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNrdG9wIHNpdGUgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBsYW5ndWFnZSBocmVmPSIjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBvbmNoYW5nZT0idmltZW8ubW9iaWxlLmRlc2t0b3Bfc2hhcmVkLl9zMmwodGhpcykiIHRpdGxlPSJDaG9vc2UgYSBkaWZmZXJlbnQgbGFuZ3VhZ2UiIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3NfbGFuZ3VhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBjbGFzcz0ic2VsZWN0ZWQiIHNlbGVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ImVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmdsaXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJlcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNwYcOxb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ImRlLURFIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXV0c2NoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJmci1GUiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbsOnYWlzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJqYS1KUCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5pel5pys6KqeICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJwdC1CUiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydHVndcOqcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ia28tS1IiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIO2VnOq1reyWtCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Imh0dHBzOi8vdmltZW8uemVuZGVzay5jb20vaGMvZW4tdXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFRICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSJodHRwczovL3ZpbWVvLnplbmRlc2suY29tL2hjLyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KCgogICAgICAgIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudV9jb3B5cmlnaHQiPlRNICsgwqkgMjAyMyBWaW1lby5jb20sIEluYy48L2Rpdj4KICAgIDwvc2VjdGlvbj4KCgogICAgICAgIDwvbmF2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKHdpbmRvdywgZG9jdW1lbnQpewoKICAgIC8vIEdsb2JhbCB2YWx1ZXMKICAgIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKICAgIHZpbWVvLm1vYmlsZSA9IHZpbWVvLm1vYmlsZSB8fCB7fTsKICAgIFZpbWVvID0gdmltZW8ubW9iaWxlIHx8IHt9OwogICAgVmltZW8uZGVza3RvcF9zaGFyZWQgPSBWaW1lby5kZXNrdG9wX3NoYXJlZCB8fCB7fTsKCiAgICAvLyBERVNLVE9QIEhBTkRMRVJTCgogICAgdmFyIGRlc2t0b3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9wbmF2X2Rlc2t0b3AnKTsKCiAgICAvLyBQcmV2ZW50IHRvdWNoIGRldmljZSB0byBoaWd0bGlnaHQgdGhlIGFyZWEgdGFwcGVkCiAgICBkZXNrdG9wLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihlKXsKICAgICAgICAvLyBUYWtlIGludG8gY29uc2lkZXJhdGlvbiBhdmF0YXIgaW1nCiAgICAgICAgdmFyIHRhcmdldCA9IChlLnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbWcnKSA/IGUudGFyZ2V0LnBhcmVudE5vZGUgOiBlLnRhcmdldDsKCiAgICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3RvcG5hdl9oYXNfZHJvcGRvd24nKSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgfQogICAgfSwgZmFsc2UpOwoKICAgIC8vIEFkZCBsYXN0X3BhZ2UgY29va2llCiAgICB2YXIgbGlzdGVuID0gJ29udG91Y2hzdGFydCcgaW4gd2luZG93ID8gJ3RvdWNoc3RhcnQnIDogd2luZG93LlBvaW50ZXJFdmVudCA/ICdwb2ludGVyZG93bicgOiB3aW5kb3cuTVNQb2ludGVyRXZlbnQgPyAnTVNQb2ludGVyRG93bicgOiAnY2xpY2snOwogICAgZGVza3RvcC5hZGRFdmVudExpc3RlbmVyKGxpc3RlbiwgZnVuY3Rpb24oZSl7CiAgICAgICAgaWYgKGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnanMtdG9wbmF2X21lbnVfYXV0aCcpKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICdsYXN0X3BhZ2U9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpICsgJztwYXRoPVwnL1wnO21heC1hZ2U9MTgwMDsnOwogICAgICAgIH0KICAgIH0sIGZhbHNlKTsKCiAgICAvLyBNT0JJTEUgSEFORExFUlMKCiAgICAvLyBUcmlnZ2VyIGlPUyBVcGxvYWQgZmxvdwogICAgVmltZW8uZGVza3RvcF9zaGFyZWQuX3VwbG9hZCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAvLyBzaG93IGlUdW5lcyBvbmx5IGlmIHdlIGFyZSBpbiBpT1Mgd29ybGQKICAgICAgICBpZiAoL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpewogICAgICAgICAgICB2YXIgZGVlcGxpbmsgPSAndmltZW86Ly9hcHAudmltZW8uY29tL3VwbG9hZD9yZWY9bW9iaWxld2ViJywKICAgICAgICAgICAgICAgIGZhbGxiYWNrID0gJy91cGxvYWQnLAogICAgICAgICAgICAgICAgd2Via2l0SGlkZGVuQ2FsbGJhY2ssCiAgICAgICAgICAgICAgICBoaXRDYWxsYmFjazsKCiAgICAgICAgICAgIC8vIENhbGxiYWNrcwogICAgICAgICAgICB3ZWJraXRIaWRkZW5DYWxsYmFjayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgc3RpbGwgaGVyZSBvcGVuIHRoZSB1cmwgcGFnZS4KICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQud2Via2l0SGlkZGVuKSB7CiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gZmFsbGJhY2s7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CgogICAgICAgICAgICAvLyBUcnkgdG8gb3BlbiB0aGUgVmltZW8gQXBwCiAgICAgICAgICAgIGhpdENhbGxiYWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSBkZWVwbGluazsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQod2Via2l0SGlkZGVuQ2FsbGJhY2ssIDI1KTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGhpdENhbGxiYWNrKCk7CgogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICB3aW5kb3cubG9jYXRpb24gPSBlLmhyZWY7CgogICAgfQoKCi8vIEFGVEVSIE1PQklMRSBOQVYgVEVTVCBSRUNPTkNJTEUgV0lUSCBUSEUgYG1vYmlsZV9tZW51X3NjcmlwdC5waHRtbGAKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gU3dpdGNoIHRvIGRlc2t0b3Agc2l0ZQogICAgVmltZW8uZGVza3RvcF9zaGFyZWQuX3MyZHMgPSBmdW5jdGlvbigpIHsKICAgICAgICBkb2N1bWVudC5jb29raWU9J29wdF9vdXRfbW9iaWxlPTE7ZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVDtkb21haW49JyArIHZpbWVvLmRvbWFpbjsKICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICB9OwoKICAgIC8vIFN3aXRjaCB0byBsYW5ndWFnZQogICAgVmltZW8uZGVza3RvcF9zaGFyZWQuX3MybCA9IGZ1bmN0aW9uKHNlbCkgewogICAgICAgIHZhciBsYW5nID0gc2VsLnZhbHVlLAogICAgICAgICAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKCiAgICAgICAgeGhyLm9wZW4oJ1BPU1QnLCAnL3NldHRpbmdzL2xvY2FsZScpOwogICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdYLVJlcXVlc3RlZC1XaXRoJywgJ1hNTEh0dHBSZXF1ZXN0Jyk7CiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTsKICAgICAgICB4aHIuc2VuZCgnbG9jYWxlPScgKyBsYW5nICsgJyZ0b2tlbj0nICsgdmltZW8ueHNyZnQpOwogICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiBwb3N0KCkgewogICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfTsKCiAgICB2YXIgbW9iaWxlTWVudUVsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvJyk7CiAgICBpZiAobW9iaWxlTWVudUVsZSkgewogICAgICAgIG1vYmlsZU1lbnVFbGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CgogICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIC8vIE9wZW4gTWVudQogICAgICAgICAgICB2YXIgbW9iaWxlX21lbnVfbWFpbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX21lbnVfbWFpbicpOwogICAgICAgICAgICBtb2JpbGVfbWVudV9tYWluLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwoKICAgICAgICAgICAgLy8gQ2xvc2UgTWVudQogICAgICAgICAgICB2YXIgbW9iaWxlX2hlYWRlcl9jbG9zZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9jbG9zZScpOwogICAgICAgICAgICBtb2JpbGVfaGVhZGVyX2Nsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIHZhciB0b2dnbGVfbGlzdCA9IG1vYmlsZV9tZW51X21haW4ucXVlcnlTZWxlY3RvckFsbCgnLmpzLXRvcF9uYXZfdG9nZ2xlX2xpc3QnKTsKICAgICAgICAgICAgICAgIGlmKHRvZ2dsZV9saXN0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHRvZ2dsZV9saXN0LmZvckVhY2goZnVuY3Rpb24oZWwpewogICAgICAgICAgICAgICAgICAgICAgICBpZihlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2V4cGFuZCcpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdmFyIGFycm93X2xpc3QgPSBtb2JpbGVfbWVudV9tYWluLnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy10b3BfbmF2X3RvZ2dsZV9hcnJvdycpOwogICAgICAgICAgICAgICAgaWYoYXJyb3dfbGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBhcnJvd19saXN0LmZvckVhY2goZnVuY3Rpb24oZWwpewogICAgICAgICAgICAgICAgICAgICAgICBpZihlbC5jbGFzc0xpc3QuY29udGFpbnMoJ3JvdGF0ZScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCdyb3RhdGUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBtb2JpbGVfbWVudV9tYWluLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gVG9nZ2xlIFNldHRpbmdzCiAgICAgICAgICAgIHZhciBtb2JpbGVfbWVudV9zZXR0aW5ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MnKTsKICAgICAgICAgICAgdmFyIHRvcG5hdjIwMTVfbW9iaWxlX2hlYWRlcl9zZXR0aW5ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5ncycpOwogICAgICAgICAgICB0b3BuYXYyMDE1X21vYmlsZV9oZWFkZXJfc2V0dGluZ3MuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgbW9iaWxlX21lbnVfc2V0dGluZ3Muc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICBtb2JpbGVfbWVudV9tYWluLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICB2YXIgdG9wbmF2MjAxNV9tb2JpbGVfaGVhZGVyX3NldHRpbmdzX2Nsb3NlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbnNfY2xvc2UnKTsKICAgICAgICAgICAgICAgIHRvcG5hdjIwMTVfbW9iaWxlX2hlYWRlcl9zZXR0aW5nc19jbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICBtb2JpbGVfbWVudV9zZXR0aW5ncy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgIG1vYmlsZV9tZW51X21haW4uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvL0Ryb3Bkb3duCiAgICAgICAgICAgIHZhciBtb2JpbGVfZHJvcGRvd25fdG9nZ2xlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmpzLXRvcG5hdl9tb2JpbGVfbWVudV90b2dnbGUnKTsKICAgICAgICAgICAgbW9iaWxlX2Ryb3Bkb3duX3RvZ2dsZS5mb3JFYWNoKGZ1bmN0aW9uKGJ0bikgewogICAgICAgICAgICAgICAgYnRuLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGUudGFyZ2V0OwogICAgICAgICAgICAgICAgICAgIHZhciBhcnJvdyA9IGJ1dHRvbi5xdWVyeVNlbGVjdG9yKCcuanMtdG9wX25hdl90b2dnbGVfYXJyb3cnKTsKICAgICAgICAgICAgICAgICAgICBpZihhcnJvdykgewogICAgICAgICAgICAgICAgICAgICAgICBpZihhcnJvdy5jbGFzc0xpc3QuY29udGFpbnMoJ3JvdGF0ZScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJvdy5jbGFzc0xpc3QucmVtb3ZlKCdyb3RhdGUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycm93LmNsYXNzTGlzdC5hZGQoJ3JvdGF0ZScpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSBidXR0b24ucGFyZW50RWxlbWVudDsKICAgICAgICAgICAgICAgICAgICBpZihwYXJlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvZ2dsZV9saXN0ID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BfbmF2X3RvZ2dsZV9saXN0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRvZ2dsZV9saXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0b2dnbGVfbGlzdC5jbGFzc0xpc3QuY29udGFpbnMoJ2V4cGFuZCcpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlX2xpc3Quc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZV9saXN0LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVfbGlzdC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZV9saXN0LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sIGZhbHNlKTsKICAgIH07CgogICAgdmFyIG1vYmlsZUFsYnVtc0VsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9hbGJ1bXMnKTsKICAgIGlmIChtb2JpbGVBbGJ1bXNFbGUpIHsKICAgICAgICBtb2JpbGVBbGJ1bXNFbGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgdmFyIG1vYmlsZV9tZW51X2FsYnVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy10b3BuYXZfbW9iaWxlX2FsYnVtX2xpc3QnKTsKICAgICAgICAgICAgbW9iaWxlX21lbnVfYWxidW1zLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTsKCiAgICAgICAgICAgIC8vIENsb3NlCiAgICAgICAgICAgIHZhciBtb2JpbGVfYWxidW1zX2Nsb3NlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmpzLXRvcG5hdl9tb2JpbGVfYWxidW1fbGlzdF9jbG9zZScpOwogICAgICAgICAgICBpZiAobW9iaWxlX2FsYnVtc19jbG9zZSkgewogICAgICAgICAgICAgICAgbW9iaWxlX2FsYnVtc19jbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICBtb2JpbGVfbWVudV9hbGJ1bXMuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LCBmYWxzZSk7CiAgICB9Owp9KSh3aW5kb3csIGRvY3VtZW50KTsKCi8vIF5eXl5eXl5eXl5eXl5eXl5eXl5eCi8vIEFGVEVSIE1PQklMRSBOQVYgVEVTVCBSRUNPTkNJTEUgV0lUSCBUSEUgYG1vYmlsZV9tZW51X3NjcmlwdC5waHRtbGAKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo8L3NjcmlwdD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwX2NvbnRlbnQgdmFyaWFudC12MiI+CiAgICAgICAgICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJhcHBfYmFubmVyX2NvbnRhaW5lciI+CgogICAgPGRpdiBjbGFzcz0iYXBwX2Jhbm5lciBoaWRlIGpzLWFwcF9iYW5uZXIiPgoKICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcHBfYmFubmVyX2Nsb3NlIGpzLWFwcF9iYW5uZXJfY2xvc2UiPiZ0aW1lczs8L2J1dHRvbj4KCiAgICAgICAgPGRpdiBjbGFzcz0iYXBwX2Jhbm5lcl9pY29uX3dyYXBwZXIiPgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJhcHBfYmFubmVyX2ljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjQgNi42NDNDMjQgMTEuMjg2IDE1IDIyIDEwLjg3NSAyMiA2IDIyIDYgNy43MTQgMy4wMTMgNy43MTRjLS4zODggMC0xLjg4MyAxLjA3LTEuODgzIDEuMDdMMCA3LjM1OHM1LjI1LTUgNy41LTVjNC41IDAgMyAxMi41IDUuNjI1IDEyLjUgMS41IDAgNi43NS03Ljg1NyAyLjI1LTcuODU3LS43NSAwLTEuNS4zNTctMS41LjM1N0MxNSAzLjc4NyAxNy4yNSAyIDIwLjYyNSAyIDIyLjg3NSAyIDI0IDMuNzg2IDI0IDYuNjQzeiIvPjwvc3ZnPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJhcHBfYmFubmVyX2N0YSI+CiAgICAgICAgICAgIFdhdGNoIGluIG91ciBhcHAgICAgICAgIDwvZGl2PgoKICAgICAgICA8YQogICAgICAgICAgICBjbGFzcz0iYXBwX2Jhbm5lcl9idXR0b24ganMtYXBwX2Jhbm5lcl9vcGVuX2FwcCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL21vYmlsZXJlZGlyZWN0cz90eXBlPXN0b3JlJmFwcD12aW1lbyZhZl9hZD12aW1lb193YXRjaF9pbl9vdXJfYXBwX2JsdWUmYWZfYWRzZXQ9YXBwX2Jhbm5lcl9zbWFsbCZhZl9kcD12aW1lbyUzQSUyRiUyRnZpZGVvcyUyRjc4NDg4NDYmYWZfZm9yY2VfZGVlcGxpbms9dHJ1ZSZjPWNsaXBfcGFnZV9hcHBfYmFubmVyJnBpZD12aW1lb19tb2JpbGVfd2ViIiAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXBwX2Jhbm5lcl9idXR0b25fdGV4dCI+T3BlbiBpbiBhcHA8L3NwYW4+CiAgICAgICAgPC9hPgoKICAgIDwvZGl2PgoKPC9kaXY+CgoKPHNjcmlwdD4KICAgIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKCiAgICAKICAgIHdpbmRvdy52aW1lby5jbGlwX3BhZ2VfY29uZmlnID0geyJjbGlwIjp7ImlkIjo3ODQ4ODQ2LCJ0aXRsZSI6IklLT05TIC0gU0xPVyBMSUdIVCIsImRlc2NyaXB0aW9uIjoiPHAgY2xhc3M9XCJmaXJzdFwiPkFydGlzdDogSUtPTlMuPGJyPlxuVGl0bGU6IFNMT1cgTElHSFQuPGJyPlxuQ3JlYXRvcjogUGF0cmlrIEpvaGFuc3Nvbi48YnI+XG5MYWJlbDogU0VSVklDRS48YnI+XG48YSBocmVmPVwiaHR0cDpcL1wvd3d3LnNydmMuc2VcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyXCI+c3J2Yy5zZTxcL2E+PFwvcD5cbjxwPkFsYnVtICZxdW90O0lrb25zJnF1b3Q7IG91dCBub3cgQ0RcL0xQXC9TdHJlYW0gZnJvbSBTZXJ2aWNlPFwvcD4iLCJ1cGxvYWRlZF9vbiI6IjIwMDktMTEtMjcgMDY6MTk6MzkiLCJ1cGxvYWRlZF9vbl9yZWxhdGl2ZSI6IjE0IHllYXJzIGFnbyIsInVwbG9hZGVkX29uX2Z1bGwiOiJGcmlkYXksIE5vdmVtYmVyIDI3LCAyMDA5IGF0IDY6MTkgQU0gRVNUIiwiaXNfc3BhdGlhbCI6ZmFsc2UsImlzX2hkciI6ZmFsc2UsImlzX2hkcl8xMF9wbHVzIjpmYWxzZSwiaXNfZG9sYnlfdmlzaW9uIjpmYWxzZSwicHJpdmFjeSI6eyJpc19wdWJsaWMiOnRydWUsInR5cGUiOiJhbnlib2R5IiwiZGVzY3JpcHRpb24iOiJQdWJsaWMifSwiZHVyYXRpb24iOnsicmF3Ijo0OTQsImZvcm1hdHRlZCI6IjA4OjE0In0sImlzX2xpa2VkIjpmYWxzZSwiaXNfdW5hdmFpbGFibGUiOmZhbHNlLCJsaWtlc191cmwiOiJcLzc4NDg4NDZcL2xpa2VzIiwiaXNfbGl2ZSI6ZmFsc2UsInVubGlzdGVkX2hhc2giOm51bGx9LCJvd25lciI6eyJpZCI6MTk1NTc1LCJkaXNwbGF5X25hbWUiOiJTZXJ2aWNlIiwiaGFzX2FkdmFuY2VkX3N0YXRzIjpmYWxzZSwiaXNfcHJvX2xhcHNlZCI6ZmFsc2UsImlzX3BhaWQiOmZhbHNlLCJiYWRnZSI6bnVsbCwicG9ydHJhaXQiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTA1MTg2NV83NXg3NSIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzEwNTE4NjVfMTUweDE1MCJ9LCJpc19tb2QiOmZhbHNlLCJ1cmwiOiJcL3NlcnZpY2UiLCJ2ZXJpZmllZCI6dHJ1ZSwiaXNfZm9sbG93aW5nIjpmYWxzZSwiaXNfYXZhaWxhYmxlX2Zvcl9oaXJlIjpudWxsfSwib25kZW1hbmQiOm51bGwsImJyYW5kX2NoYW5uZWwiOm51bGwsImFwaV91cmwiOiJhcGkudmltZW8uY29tIiwiand0IjoiZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSVV6STFOaUo5LmV5SmxlSEFpT2pFMk9UZzBNemcwTWpBc0luVnpaWEpmYVdRaU9tNTFiR3dzSW1Gd2NGOXBaQ0k2TlRnME56a3NJbk5qYjNCbGN5STZJbkIxWW14cFl5QnpkR0YwY3lJc0luUmxZVzFmZFhObGNsOXBaQ0k2Ym5Wc2JIMC4tZGZpUkFXR21lQkVXdEJSMkZtOF9tTVFLVkhFNUdMTnZJN0lmM0tPbkpNIiwiY2hhdCI6bnVsbCwiY3VyX3VzZXIiOm51bGwsInN0YXR1cyI6eyJzdGF0ZSI6InJlYWR5In0sImNvcHlyaWdodF9zdGF0dXMiOnsiaXNfYmxvY2tlZCI6ZmFsc2V9LCJjb250ZW50X2Jsb2NrX3N0YXR1cyI6eyJpc19ibG9ja2VkIjpmYWxzZSwibWVzc2FnZSI6IlZpZGVvIGlzIG5vdCByYXRlZC4gTG9nIGluIHRvIHdhdGNoLiIsImNvbnRpbnVvdXNfcGxheV9lbmFibGVkIjpmYWxzZSwiYWxsb3dCeXBhc3MiOmZhbHNlLCJyZXF1aXJlTG9naW4iOnRydWUsInBvc3NpYmxlT2Zjb21CbG9jayI6dHJ1ZX0sInBsYXllciI6eyJjb25maWdfdXJsIjoiaHR0cHM6XC9cL3BsYXllci52aW1lby5jb21cL3ZpZGVvXC83ODQ4ODQ2XC9jb25maWc/YXV0b3BhdXNlPTEmYnlsaW5lPTAmY29sbGVjdGlvbnM9MSZjb250ZXh0PVZpbWVvJTVDQ29udHJvbGxlciU1Q0NsaXBDb250cm9sbGVyLm1haW4mZGVmYXVsdF90b19oZD0xJmg9NDY2ZWJkMmYzMyZvdXRybz1ub3RoaW5nJnBvcnRyYWl0PTAmc2hhcmU9MSZzcGVlZD0xJnRpdGxlPTAmd2F0Y2hfdHJhaWxlcj0wJnM9MmQzM2JkMjExNTQxNmYyYTkyNDkyY2RmMzgxY2NjMzY3MTg2MTIyY18xNjk4NDUyNzY5IiwicGxheWVyX3VybCI6InBsYXllci52aW1lby5jb20iLCJkaW1lbnNpb25zIjp7ImhlaWdodCI6NTQwLCJ3aWR0aCI6NzIwfSwicG9zdGVyIjp7InVybCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzM1MDE0NTg0LTQ0NjY1NjQyMWE5MzVmOWYyNTYzNzVmMWZhZTJkYzhhMmQ1MDAzMDMwOTk5YTIzNTYxYTc2YTRhZDVjZTFiZjEtZD9tdz0yMDAwJm1oPTEwODAmcT03MCJ9fSwic2hhcmVfZW5hYmxlZCI6dHJ1ZSwic2VuZF90b193aXBzdGVyX2VuYWJsZWQiOmZhbHNlLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvMzUwMTQ1ODQtNDQ2NjU2NDIxYTkzNWY5ZjI1NjM3NWYxZmFlMmRjOGEyZDUwMDMwMzA5OTlhMjM1NjFhNzZhNGFkNWNlMWJmMS1kXzE5MHgxMDciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC8zNTAxNDU4NC00NDY2NTY0MjFhOTM1ZjlmMjU2Mzc1ZjFmYWUyZGM4YTJkNTAwMzAzMDk5OWEyMzU2MWE3NmE0YWQ1Y2UxYmYxLWRfMzgweDIxNCIsIndpZHRoIjoxOTAsImhlaWdodCI6MTA3LCJpZCI6MzUwMTQ1ODR9LCJhZHMiOnsiaG91c2VfYWRzX2VuYWJsZWQiOnRydWUsInRoaXJkX3BhcnR5X2Fkc19lbmFibGVkIjpmYWxzZX0sImNvbnRlbnRfcmF0aW5nIjp7InR5cGUiOiJ1bnJhdGVkIiwibWVzc2FnZSI6Ik5vdCBZZXQgUmF0ZWQiLCJkZXNjcmlwdGlvbiI6IiJ9LCJjb250ZW50X2FkdmVydGlzZW1lbnRfd2FybmluZyI6bnVsbCwibm90aWZpY2F0aW9ucyI6W10sImNhdGVnb3JpZXNfY29uZmlnIjp7ImNhdGVnb3JpZXMiOltdLCJ0b3RhbF9jYXRlZ29yaWVzIjowfSwibXVzaWNfdHJhY2siOm51bGwsImNjX2xpY2Vuc2UiOm51bGwsImdvb2dsZV9hcHBfaWQiOiI1OTkxNjg4MDY2OTctMXZhaWxmMHY2YWkwajA5dmExaGdhMGtybmQwbjN0bHEuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJjcmVkaXRzIjp7InRvdGFsX2NyZWRpdHMiOnsicmF3IjowLCJmb3JtYXR0ZWQiOjB9fSwic3RyZWFtIjp7ImlkIjpudWxsLCJwb3MiOjB9LCJjb2xsZWN0aW9uX2FkZGVyIjp7ImVuYWJsZWQiOnRydWV9LCJyZWNhcHRjaGFfc2l0ZV9rZXkiOiI2TGVSQ0x3U0FBQUFBT0oxYmFfeHFkM05CT2xWNVBfWFJXSlZFUGR3IiwiY2xpcF9zdGF0cyI6eyJlbmFibGVkIjpmYWxzZX0sImRvd25sb2FkX2NvbmZpZyI6bnVsbCwiaGFzX3Jldmlld19tb2RlcyI6ZmFsc2UsImRhdGFfbGF5ZXIiOnsiY2xpcF9pZCI6Nzg0ODg0NiwicGFnZV9wYXRoIjoiXC83ODQ4ODQ2IiwiY3JlYXRvcl9pZCI6MTk1NTc1LCJjcmVhdG9yX3VzZXJfdHlwZSI6ImJhc2ljIiwidmlkZW9fY2F0ZWdvcmllcyI6IiIsInByaXZhY3kiOiJhbnlib2R5Iiwic3RhZmZfcGljayI6Im5vIiwidXNlcl9pZCI6bnVsbCwicGFnZV90eXBlIjoiVmlkZW8ifSwiY2FuX2FkZF9yZWFjdGlvbl9vbl9jbGlwIjpmYWxzZX07CgogICAgLy8gQXV0b3BsYXkgdGVzdCBmb3Igb25zaXRlIHJlZmVycmFscyB0byBjbGlwIHBhZ2UKICAgIChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGNsaXAgPSB3aW5kb3cudmltZW8uY2xpcF9wYWdlX2NvbmZpZzsKICAgICAgICB2YXIgaXNPd25lciA9IGNsaXAuY3VyX3VzZXIgPyBjbGlwLmN1cl91c2VyLmlkID09PSBjbGlwLm93bmVyLmlkIDogZmFsc2U7CiAgICAgICAgdmFyIGhhc0F1dG9wbGF5UGFyYW0gPSAvKFw/fCYpYXV0b3BsYXk9MSgmfCQpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKICAgICAgICB2YXIgaGFzT25zaXRlUmVmZXJyZXIgPSB3aW5kb3cudmltZW9fZXNpLmNvbmZpZy5vbnNpdGVfcmVmZXJyZXI7CgogICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYXV0b3BsYXkgcmVmcmVzaGVzIGFuZCBoaXN0b3J5IHRyYXZlcnNhbHMKICAgICAgICB2YXIgaXNOZXdQYWdlID0gd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSA9PT0gMDsKCiAgICAgICAgLy8gSWYgd2UgcGFzcyBhbGwgdGhlIGNvbmRpdGlvbnMgb3ZlcnJpZGUgcGxheWVyIGNvbmZpZyB3aXRoIG5ldyBvbmUgaW5jbHVkaW5nIGF1dG9wbGF5IHBhcmFtCiAgICAgICAgaWYgKGlzTmV3UGFnZSAmJiBoYXNPbnNpdGVSZWZlcnJlciAmJiAhaGFzQXV0b3BsYXlQYXJhbSAmJiAhaXNPd25lcikgewogICAgICAgICAgICB3aW5kb3cudmltZW8uY2xpcF9wYWdlX2NvbmZpZy5wbGF5ZXIgPSB7ImNvbmZpZ191cmwiOiJodHRwczpcL1wvcGxheWVyLnZpbWVvLmNvbVwvdmlkZW9cLzc4NDg4NDZcL2NvbmZpZz9hdXRvcGF1c2U9MSZhdXRvcGxheT0xJmJ5bGluZT0wJmNvbGxlY3Rpb25zPTEmY29udGV4dD1WaW1lbyU1Q0NvbnRyb2xsZXIlNUNDbGlwQ29udHJvbGxlci5tYWluJmRlZmF1bHRfdG9faGQ9MSZoPTQ2NmViZDJmMzMmb3V0cm89bm90aGluZyZwb3J0cmFpdD0wJnNoYXJlPTEmc3BlZWQ9MSZ0aXRsZT0wJndhdGNoX3RyYWlsZXI9MCZzPWZjZTljYzU3ZmI3N2E1ZGNlNGI0MWZlNzk5OWYwZjAzYzM1NjY5NTVfMTY5ODQ1Mjc2OSIsInBsYXllcl91cmwiOiJwbGF5ZXIudmltZW8uY29tIiwiZGltZW5zaW9ucyI6eyJoZWlnaHQiOjU0MCwid2lkdGgiOjcyMH0sInBvc3RlciI6eyJ1cmwiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC8zNTAxNDU4NC00NDY2NTY0MjFhOTM1ZjlmMjU2Mzc1ZjFmYWUyZGM4YTJkNTAwMzAzMDk5OWEyMzU2MWE3NmE0YWQ1Y2UxYmYxLWQ/bXc9MjAwMCZtaD0xMDgwJnE9NzAifX07CiAgICAgICAgfQogICAgfSgpKTsKPC9zY3JpcHQ+CgogICAgPHNjcmlwdD4KICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy52aW1lbyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy52aW1lby5jbGlwcyA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgd2luZG93LnZpbWVvID0gd2luZG93LnZpbWVvIHx8IHt9OwogICAgICAgICAgICB3aW5kb3cudmltZW8uY2xpcHMgPSB3aW5kb3cudmltZW8uY2xpcHMgfHwge307CiAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHdpbmRvdy52aW1lby5jbGlwX3BhZ2VfY29uZmlnLnBsYXllci5jb25maWdfdXJsICwgdHJ1ZSk7CiAgICAgICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy52aW1lby5jbGlwc1snNzg0ODg0NiddID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWU7CiAgICAgICAgICAgIHhoci5zZW5kKCk7CiAgICAgICAgfQogICAgPC9zY3JpcHQ+Cgo8IS0tW2lmIGx0ZSBJRSA5XT4KICAgIDxzY3JpcHQ+d2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uICsgJz9saXRlPTEnOzwvc2NyaXB0Pgo8IVtlbmRpZl0tLT4KCjxkaXYgaWQ9Im9uYm9hcmRpbmdfbW91bnQiPjwvZGl2PgoKPG1haW4gaWQ9Im1haW4iIGNsYXNzPSJpc19sb2FkaW5nIj4KICAgIDxkaXYgY2xhc3M9ImlyaXNfZ3JpZCBpcmlzX2dyaWRfZnA5NjAiPgogICAgICAgIDxkaXYgY2xhc3M9ImNsaXBfbWFpbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXllcl9hcmVhIj4KICAgICAgICAgICAgICAgIDxub3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS92aWRlby8zNTAxNDU4NC00NDY2NTY0MjFhOTM1ZjlmMjU2Mzc1ZjFmYWUyZGM4YTJkNTAwMzAzMDk5OWEyMzU2MWE3NmE0YWQ1Y2UxYmYxLWQ/bXc9MTkyMCZhbXA7bWg9MTA4MCZhbXA7cT03MCIgYWx0PSIiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIGF1dG87IG1heC1oZWlnaHQ6IDU0MHB4OyIgLz4KICAgICAgICAgICAgICAgIDwvbm9zY3JpcHQ+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPG5vc2NyaXB0PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xpcF9tYWluLWNvbnRlbnQgaXJpc19ncmlkLXdyYXBwZXItLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlyaXNfZ3JpZC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IHUtY29sbGFwc2UgY2xpcC1ub3RpZmljYXRpb24iIHN0eWxlPSJtYXJnaW4tdG9wOiAxZW07IG1hcmdpbi1ib3R0b206IDEuNWVtOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpcmlzX25vdGlmaWNhdGlvbiBpcmlzX25vdGlmaWNhdGlvbi1jbGlwIGlyaXNfbm90aWZpY2F0aW9uLWNsaXAtLWNhdXRpb24gaXJpc19ub3RpZmljYXRpb24tLW5vLWNsb3NlIGNsZWFyZml4IiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCB0byBleHBlcmllbmNlIFZpbWVvIGluIGFsbCBvZiBpdHMgZ2xvcnkuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXJpc19ncmlkLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xpcF9pbmZvLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsaXBfaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iY2xpcF9pbmZvLWhlYWRlciI+SUtPTlMgLSBTTE9XIExJR0hUPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGlwX2luZm8tc3VibGluZS0td2F0Y2ggY2xpcF9pbmZvLXN1YmxpbmUtLWlubGluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ1c2VyYnlsaW5lLXN1YmxpbmUgdXNlcmJ5bGluZS1zdWJsaW5lLS1sZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5mcm9tPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVzZXJsaW5rIHVzZXJsaW5rLS1tZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3NlcnZpY2UiPlNlcnZpY2U8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjbGlwX2luZm8tdGltZSI+PHRpbWUgZGF0ZXRpbWU9IjIwMDktMTEtMjdUMDY6MTk6MzktMDU6MDAiIHRpdGxlPSJGcmlkYXksIE5vdmVtYmVyIDI3LCAyMDA5IGF0IDY6MTkgQU0iPjE0IHllYXJzIGFnbzwvdGltZT48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsaXBfZGV0YWlscyBpcmlzX2RpdmlkZXItLWRhcmsgaXJpc19kaXZpZGVyLXRvcCBpcmlzX2RpdmlkZXItdG9wLS1tIGlyaXNfZGl2aWRlci1ib3QgaXJpc19kaXZpZGVyLWJvdC0tbSB1LWNvbGxhcHNlIGNsZWFyZml4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXJpc19ncmlkLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xpcF9kZXRhaWxzLWRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLXdyYXBwZXIgaXJpc19kZXNjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmlyc3QiPkFydGlzdDogSUtPTlMuPGJyPgpUaXRsZTogU0xPVyBMSUdIVC48YnI+CkNyZWF0b3I6IFBhdHJpayBKb2hhbnNzb24uPGJyPgpMYWJlbDogU0VSVklDRS48YnI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuc3J2Yy5zZSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIgbm9yZWZlcnJlciI+c3J2Yy5zZTwvYT48L3A+CjxwPkFsYnVtICZxdW90O0lrb25zJnF1b3Q7IG91dCBub3cgQ0QvTFAvU3RyZWFtIGZyb20gU2VydmljZTwvcD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvbm9zY3JpcHQ+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9tYWluPgoKPHNjcmlwdD4KICAgIHdpbmRvdy5jYW5fcHJlbG9hZCA9IHRydWU7CgogICAgPC9zY3JpcHQ+CgogICAgPGRpdiBjbGFzcz0iaGlkZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZ3B0X2FkIiByb2xlPSJjb21wbGVtZW50YXJ5Ij4KICAgIAogICAgPGRpdiBpZD0iZGl2LWdwdC1hZC0xMjgzMjU1NTIyIj48L2Rpdj4KPC9kaXY+CiAgICA8L2Rpdj4KCjxzY3JpcHQ+CmNvbnNvbGUubG9nKCclYyBcblwK4o6cICAgICAgIEBAQCYgICAgICAgQEBAQEBAXG5cCuKOnCAgICAjQEBAQEBAQCAgICAmQEBAQEBAQEBcblwK4o6cICAjQEBAQEBAQEBALiAgJSUmQEBAQEBAQFxuXArijpwgICAgICAmQEBAQEAlICAgICAoQEBAQEAoXG5cCuKOnCAgICAgICBAQEBAQEAgICAgIEBAQEBAQFxuXArijpwgICAgICAgJUBAQEBAKCAgLkBAQEBAKFxuXArijpwgICAgICAgIEBAQEBAQChAQEBAQEBcblwK4o6cICAgICAgICAvQEBAQEBAQEBAQCUgICAgICAgICAgICBMaWtlIHBsYXlpbmcgd2l0aCB0ZWNobm9sb2d5P1xuXArijpwgICAgICAgICAmQEBAQEBAQCUgICAgICAgICAgICAgIGh0dHBzOi8vdmltZW8uY29tL2pvYnNcblwK4o6cICAgICAgICAgIEBAQEBAI1xuXApcblwKJywgJ2NvbG9yOiAjMDBhZGVmOycpOwo8L3NjcmlwdD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPGZvb3RlciBjbGFzcz0iZm9vdGVyX3YyIGZvb3Rlcl92Mi0tcmVzcG9uc2l2ZSI+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fc2l0ZW1hcCI+CiAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2xvZ28iPgogICAgICAgIDxzdmcgYWx0PSJWaW1lbyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI0MCI+PHBhdGggZD0iTTIyLjQ0OCAxNC41NzVjLS4xMDQgMi4xNy0xLjYxOCA1LjE0Ni00LjU0NCA4LjkxMi0zLjAzIDMuOTQyLTUuNTkgNS45MTItNy42ODYgNS45MTItMS4yOTcgMC0yLjM5Ny0xLjIwNC0zLjMtMy42LS42LTIuMi0xLjIwMi00LjM5OC0xLjc5NC02LjU5OC0uNjY0LTIuMzk2LTEuMzgtMy42LTIuMTQ3LTMuNi0uMTY2IDAtLjc0Ny4zNTQtMS43NTMgMS4wNWwtMS4wNDgtMS4zNWMxLjEtLjk2NSAyLjE5LTEuOTMgMy4yNTctMi45MDUgMS40NjMtMS4yNjUgMi41NzMtMS45NCAzLjMtMi4wMDIgMS43MzItLjE2NiAyLjggMS4wMTcgMy4yMDUgMy41NTguNDM1IDIuNzQuNzM2IDQuNDQuOTAyIDUuMTE1LjQ5OCAyLjI3IDEuMDQ4IDMuNDAyIDEuNjUgMy40MDIuNDY2IDAgMS4xNzItLjczNyAyLjEwNS0yLjIxLjkzNC0xLjQ3MyAxLjQzMi0yLjU5MyAxLjUwNC0zLjM3LjEzMy0xLjI3Ny0uMzY1LTEuOTEtMS41MDYtMS45MS0uNTMgMC0xLjA4LjEyNS0xLjY1LjM2NCAxLjEtMy41OSAzLjE4Ni01LjMzMyA2LjI3Ny01LjIzIDIuMjczLjA3MyAzLjM1IDEuNTU2IDMuMjI3IDQuNDZtMTMuNzU1IDcuMDM0Yy0uOTMzIDEuNzY0LTIuMjIgMy4zNy0zLjg2IDQuODAzLTIuMjQgMS45My00LjQ3IDIuOTA1LTYuNyAyLjkwNS0xLjAzNy4wMDItMS44MjYtLjMzLTIuMzc2LS45OTQtLjU1LS42NjMtLjgxLTEuNTM1LS43NzctMi42MDMuMDMtMS4xLjM3Mi0yLjggMS4wMjUtNS4xMDQuNjU0LTIuMzAzLjk3Ni0zLjUzNy45NzYtMy43MDMgMC0uODYtLjMtMS4yOTctLjkwMi0xLjI5Ny0uMTk4IDAtLjc3LjM1My0xLjcwMiAxLjA0OGwtMS4xNTItMS4zNWMxLjA3LS45NjIgMi4xMzctMS45MjcgMy4yMDYtMi45MDIgMS40My0xLjI2NiAyLjUtMS45NCAzLjIwNS0yLjAwMiAxLjEtLjEwMyAxLjkxLjIzIDIuNDI4Ljk3Ni41MTguNzQ3LjcwNSAxLjcyMi41OCAyLjkxNS0uNDM1IDIuMDM0LS45MDIgNC42MDctMS40IDcuNzMtLjAzIDEuNDMuNDg4IDIuMTQ2IDEuNTU2IDIuMTQ2LjQ2NyAwIDEuMjk3LS40OTggMi41LTEuNDgzLjk5Ni0uODIgMS44MTUtMS41OTggMi40NS0yLjMyNGwuOTQyIDEuMjQ0bS00LjM1Ny0xNy44Yy0uMDMuODMtLjQ0NiAxLjYyOC0xLjI1NSAyLjM5NS0uOS44Ni0xLjk3IDEuMjk2LTMuMjA0IDEuMjk2LTEuOSAwLTIuODIyLS44My0yLjc1LTIuNDkuMDMyLS44Ni41NC0xLjY5IDEuNTI2LTIuNDkuOTg1LS43OTcgMi4wNzQtMS4xOSAzLjI3OC0xLjE5LjcwNSAwIDEuMjg2LjI3IDEuNzUzLjgyLjQ2Ny41NC42ODQgMS4xLjY1MyAxLjY2bTM1LjYxMiAxNy44Yy0uOTMzIDEuNzYzLTIuMjIgMy4zNy0zLjg2IDQuODAyLTIuMjQgMS45My00LjQ3IDIuOTA0LTYuNyAyLjkwNC0yLjE2OC4wMDItMy4yMTYtMS4yMDItMy4xNTMtMy41OTguMDMtMS4wNy4yMzgtMi4zNTUuNjIyLTMuODUuMzg0LTEuNTAzLjU5LTIuNjY1LjYyMy0zLjUwNS4wMy0xLjI2NS0uMzUzLTEuODk4LTEuMTUyLTEuODk4LS44NyAwLTEuOTEgMS4wMzYtMy4xMTIgMy4xLTEuMjc2IDIuMTY4LTEuOTYgNC4yNzQtMi4wNjQgNi4zMDgtLjA3MyAxLjQzLjA3MiAyLjU0LjQyNSAzLjI5OC0yLjMyNC4wNjQtMy45NjMtLjMyLTQuODg2LTEuMTUtLjgzLS43MzctMS4yMTItMS45NS0xLjE1LTMuNjUyLjAzLTEuMDY4LjE5OC0yLjEzNy40ODgtMy4yMDUuMjktMS4wNy40NTctMi4wMjMuNDg4LTIuODUzLjA2Mi0xLjIzNC0uMzg0LTEuODU3LTEuMzUtMS44NTctLjg0IDAtMS43NC45NTUtMi43MDYgMi44NTMtLjk2NiAxLjktMS41MDUgMy44OS0xLjYxIDUuOTU2LS4wNiAxLjg2Ny4wNTMgMy4xNzQuMzY0IDMuOS0yLjI5My4wNjItMy45Mi0uNDE1LTQuODc2LTEuNDUyLS43OTgtLjg2LTEuMTYtMi4xOC0xLjEtMy45NDIuMDMyLS44Ni4xODgtMi4wNzUuNDU3LTMuNjIuMjgtMS41NDYuNDI1LTIuNzUuNDU3LTMuNjIuMDYyLS42MDMtLjA4My0uOTAzLS40NDYtLjkwMy0uMTk3IDAtLjc2OC4zNC0xLjcwMiAxLjAxNWwtMS4yMDMtMS4zNDhjLjE2OC0uMTM1IDEuMjE2LTEuMSAzLjE1Ni0yLjkwNSAxLjQtMS4yOTcgMi4zNTQtMS45NyAyLjg1Mi0yLjAwMi44NzItLjA3MyAxLjU2Ny4yOSAyLjEwNiAxLjA4LjUzLjc4Ny44IDEuNjkuOCAyLjcyNyAwIC4zMzItLjAzMi42NTQtLjEwNS45NTQuNDk3LS43NjYgMS4wOC0xLjQzIDEuNzUyLTIgMS41MzctMS4zNCAzLjI2LTIuMDg2IDUuMTU3LTIuMjUyIDEuNjQtLjEzNSAyLjguMjUgMy41MDUgMS4xNTIuNTcuNzM2LjgzIDEuNzg0LjggMy4xNTMuMjM3LS4xOTguNDg2LS40MTYuNzQ2LS42NTQuNzY3LS45MDMgMS41MTQtMS42MiAyLjI1LTIuMTQ4IDEuMjM1LS45MDIgMi41Mi0xLjQgMy44Ni0xLjUwNCAxLjU5Ny0uMTM1IDIuNzUuMjUgMy40NTQgMS4xNTIuNjAyLjcyNi44NyAxLjc3NC44IDMuMTQzLS4wMzIuOTMzLS4yNiAyLjI4LS42NzUgNC4wNjUtLjQxNiAxLjc3My0uNjI0IDIuOC0uNjI0IDMuMDctLjAzLjY5NS4wMyAxLjE4Mi4xOTcgMS40NDIuMTY2LjI3LjU3LjM5NCAxLjIwMy4zOTQuNDY3IDAgMS4yOTctLjQ5NyAyLjUtMS40ODIuOTk2LS44MiAxLjgxNi0xLjU5OCAyLjQ1LTIuMzI0bC45NjMgMS4yNTRtMTguNzY1LS4wNTJjLS45NjUgMS41OTgtMi44NzQgMy4xOTUtNS43MDYgNC43OTMtMy41MzggMi4wMzItNy4xMjcgMy4wNS0xMC43NTggMy4wNS0yLjcwNiAwLTQuNjM2LS45MDQtNS44MDgtMi43LS44My0xLjIzMy0xLjIzNC0yLjY5Ni0xLjIwMy00LjQwNy4wMy0yLjY5OCAxLjIzNC01LjI3IDMuNi03LjcxIDIuNjAzLTIuNjY1IDUuNjc0LTQuMDAzIDkuMjEtNC4wMDMgMy4yNyAwIDUgMS4zMjggNS4yMDggMy45OTQuMTM1IDEuNzAyLS43OTggMy40NDUtMi44IDUuMjQtMi4xMzcgMS45Ni00LjgyNCAzLjIxNS04LjA2IDMuNzQ0LjYuODMgMS41MDQgMS4yNDUgMi43MDcgMS4yNDUgMi4zOTYgMCA1LjAyLS42MTMgNy44NjMtMS44MzcgMi4wMzMtLjg2IDMuNjMtMS43NTMgNC44MDMtMi42NzZsLjk0NSAxLjI2NW0tMTEuMzYtNS4yMjhjLjAzMi0uODkyLS4zMy0xLjM1LTEuMS0xLjM1LS45OTQgMC0yLjAxLjY4Ni0zLjA0OCAyLjA2Ni0xLjAzOCAxLjM4LTEuNTY3IDIuNjk3LTEuNTk4IDMuOTYyLS4wMiAwLS4wMi4yMTggMCAuNjQzIDEuNjMtLjYgMy4wNS0xLjUxNCA0LjI0Mi0yLjczOC45NjYtMS4wNTggMS40NjMtMS45MiAxLjUwNS0yLjU4M20yNC45NDYgMS44NjhjLS4xMzUgMy4wNzItMS4yNjUgNS43MTctMy40MDIgNy45NDctMi4xMzUgMi4yMy00Ljc5IDMuMzUtNy45NTUgMy4zNS0yLjYzNSAwLTQuNjM3LS44NS02LjAwNi0yLjU1LS45OTctMS4yNjctMS41NTctMi44NTQtMS42NS00Ljc1Mi0uMTY2LTIuODYzLjg2LTUuNDk4IDMuMS03Ljg5NCAyLjQwOC0yLjY2NSA1LjQyNy0zLjk5MyA5LjA1Ny0zLjk5MyAyLjMzNCAwIDQuMDk4Ljc4OCA1LjMgMi4zNDQgMS4xMzIgMS40NDMgMS42NSAzLjI5IDEuNTU3IDUuNTVtLTUuNjY0LS4xODVjLjAzLS45MDMtLjA5NC0xLjczMy0uMzc0LTIuNDgtLjI4LS43NDctLjY5NS0xLjEzLTEuMjI0LTEuMTMtMS43MDIgMC0zLjEwMi45MjMtNC4yMDIgMi43Ni0uOTMzIDEuNTAzLTEuNDMgMy4xMS0xLjUwNCA0LjgxMi0uMDMuODQuMTE0IDEuNTc3LjQ0NiAyLjIxLjM2NC43MzYuODgyIDEuMSAxLjU1NiAxLjEgMS41MDUgMCAyLjc5LS44ODMgMy44Ni0yLjY1Ni44OTItMS40NzIgMS4zOC0zLjAwOCAxLjQ0LTQuNjE1aC4wMDJ6IiBmaWxsPSIjMTEyMjMzIi8+PC9zdmc+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fbGlua3MiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2siIHR5cGU9ImNoZWNrYm94Ij4KICAgICAgICAgICAgPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPlVzZSBjYXNlczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDggOCI+PHBhdGggZD0iTTcuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwTDQgNC41ODYgMS43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDAtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgM2MuMzkuMzkgMS4wMjQuMzkgMS40MTQgMGwzLTNjLjM5LS4zOS4zOS0xLjAyNCAwLTEuNDE0eiIvPjwvc3ZnPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDQ+CiAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWxpc3QgZm9vdGVyX3YyX2FjY29yZGlvbl9fbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9lbnRlcnByaXNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dXNlX2Nhc2VzfGtleXdvcmQ6ZW50ZXJwcmlzZSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50ZXJwcmlzZSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvc29sdXRpb25zL3NtYWxsLWJ1c2luZXNzLXNvbHV0aW9ucyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnVzZV9jYXNlc3xrZXl3b3JkOnNtYWxsX2J1c2luZXNzIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbWFsbCBidXNpbmVzcyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvc29sdXRpb25zL2NyZWF0aXZlLXByb2Zlc3Npb25hbHMtc29sdXRpb25zIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dXNlX2Nhc2VzfGtleXdvcmQ6Y3JlYXRpdmVfcHJvZmVzc2lvbmFscyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRpdmUgcHJvZmVzc2lvbmFscyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvc29sdXRpb25zL2ZpdG5lc3Mtc29sdXRpb25zIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dXNlX2Nhc2VzfGtleXdvcmQ6Zml0bmVzcyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRml0bmVzcyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvc29sdXRpb25zL2ZhaXRoLXNvbHV0aW9ucyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnVzZV9jYXNlc3xrZXl3b3JkOmZhaXRoIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWl0aCAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvc29sdXRpb25zL2VkdWNhdGlvbi1zb2x1dGlvbnMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDp1c2VfY2FzZXN8a2V5d29yZDplZHVjYXRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkdWNhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvY3JlYXRlL2Vjb21tZXJjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnVzZV9jYXNlc3xrZXl3b3JkOmVjb21tZXJjZSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWNvbW1lcmNlICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9jcmVhdGUvcmVhbC1lc3RhdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDp1c2VfY2FzZXN8a2V5d29yZDpyZWFsX2VzdGF0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhbCBlc3RhdGUgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2siIHR5cGU9ImNoZWNrYm94Ij4KICAgICAgICAgICAgPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPlByb2R1Y3Q8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiPjxwYXRoIGQ9Ik03LjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMEw0IDQuNTg2IDEuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwLS4zOS4zOS0uMzkgMS4wMjQgMCAxLjQxNGwzIDNjLjM5LjM5IDEuMDI0LjM5IDEuNDE0IDBsMy0zYy4zOS0uMzkuMzktMS4wMjQgMC0xLjQxNHoiLz48L3N2Zz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2g0PgogICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvZmVhdHVyZXMvaW50ZXJhY3RpdmUtdmlkZW8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOmludGVyYWN0aXZlX3ZpZGVvIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmFjdGl2ZSBWaWRlbyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvdmlkZW8tZWRpdG9yIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dmlkZW9fZWRpdG9yfGtleXdvcmQ6dmlkZW9fZWRpdG9yIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmxpbmUgVmlkZW8gRWRpdG9yICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9mZWF0dXJlcy9hdXRvLWNhcHRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfYXV0b19jYXB0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOmF1dG9fY2MiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dG8gQ2FwdGlvbmluZyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvZmVhdHVyZXMvd2ViaW5hciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua193ZWJpbmFyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOndlYmluYXIiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYmluYXIgU29mdHdhcmUgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2ZlYXR1cmVzL3ZpcnR1YWwtZXZlbnRzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpcnR1YWxfZXZlbnRzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOmxpdmVfZXZlbnRzIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsIEV2ZW50cyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvZmVhdHVyZXMvdmlkZW8tcGxheWVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpZGVvX3BsYXllciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6ZmVhdHVyZXN8a2V5d29yZDp2aWRlb19wbGF5ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIFBsYXllciAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvZmVhdHVyZXMvdmlkZW8tbGlicmFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua192aWRlb19saWJyYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOnZpZGVvX2xpYnJhcnkiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2NyZWF0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19jcmVhdGlvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6c29sdXRpb25zfGtleXdvcmQ6Y3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgVmlkZW8gTWFrZXIgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2ZlYXR1cmVzL2xpdmVzdHJlYW1pbmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfbGl2ZV9zdHJlYW1pbmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmZlYXR1cmVzfGtleXdvcmQ6bGl2ZV9zdHJlYW1pbmciCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpdmUgU3RyZWFtaW5nICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9mZWF0dXJlcy9zY3JlZW4tcmVjb3JkZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfc2NyZWVuX3JlY29yZGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOnNjcmVlbl9yZWNvcmRlciIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyZWVuIFJlY29yZGVyICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9mZWF0dXJlcy92aWRlby1wcml2YWN5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ByaXZhY3kiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmZlYXR1cmVzfGtleXdvcmQ6cHJpdmFjeSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW8gUHJpdmFjeSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvZmVhdHVyZXMvdmlkZW8tY29sbGFib3JhdGlvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19jb2xsYWJvcmF0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmZWF0dXJlc3xrZXl3b3JkOmNvbGxhYm9yYXRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIENvbGxhYm9yYXRpb24gICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2ZlYXR1cmVzL3ZpZGVvLW1hcmtldGluZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19kaXN0cmlidXRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmZlYXR1cmVzfGtleXdvcmQ6ZGlzdHJpYnV0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlbyBNYXJrZXRpbmcgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL290dD9ta2M9ZW50cHJzYiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19tb25ldGl6YXRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmZlYXR1cmVzfGtleXdvcmQ6bW9uZXRpemF0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb25ldGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2ZlYXR1cmVzL3ZpZGVvLWFuYWx5dGljcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19hbmFseXRpY3MiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmZlYXR1cmVzfGtleXdvcmQ6YW5hbHl0aWNzIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlbyBBbmFseXRpY3MgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0naXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2ZlYXR1cmVzL29ubGluZS12aWRlby1ob3N0aW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2hvc3RpbmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmZlYXR1cmVzfGtleXdvcmQ6aG9zdGluZyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW8gSG9zdGluZyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSdpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvZm9yLWhpcmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZm9yX2hpcmUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnNvbHV0aW9uc3xrZXl3b3JkOmZvcl9oaXJlIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXJlIFZpZGVvIFByb3MgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rIGZvb3Rlcl92Ml9hY2NvcmRpb24iPgogICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX2NoZWNrIiB0eXBlPSJjaGVja2JveCI+CiAgICAgICAgICAgIDxoNCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlci10ZXh0Ij5SZXNvdXJjZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiPjxwYXRoIGQ9Ik03LjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMEw0IDQuNTg2IDEuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwLS4zOS4zOS0uMzkgMS4wMjQgMCAxLjQxNGwzIDNjLjM5LjM5IDEuMDI0LjM5IDEuNDE0IDBsMy0zYy4zOS0uMzkuMzktMS4wMjQgMC0xLjQxNHoiLz48L3N2Zz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2g0PgogICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3ZpbWVvLmNvbS9oZWxwL3plbmRlc2tfc3NvP3JlZGlyZWN0X3RvPWh0dHBzOi8vaGVscC52aW1lby5jb20vIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2hlbHBfY2VudGVyX2NsaWNrIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpyZXNvdXJjZXN8a2V5d29yZDpoZWxwX2NlbnRlciIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscCBDZW50ZXIgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vYmxvZy8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmltZW9fYmxvZ19jbGljayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6cmVzb3VyY2VzfGtleXdvcmQ6dmltZW9fYmxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxvZyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3ZpbWVvLmNvbS9jdXN0b21lcnMvZW50ZXJwcmlzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19vdXJfY3VzdG9tZXJzX2NsaWNrIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpyZXNvdXJjZXN8a2V5d29yZDpjdXN0b21lcl9sb2dvcyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3VyIEN1c3RvbWVycyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3ZpbWVvLmNvbS9ibG9nL2NhdGVnb3J5L3ZpZGVvLXNjaG9vbC8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmlkZW9fc2Nob29sX2NsaWNrIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpyZXNvdXJjZXN8a2V5d29yZDp2aWRlb19zY2hvb2wiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvIFNjaG9vbCAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3ZpbWVvLmNvbS9vdHQvcmVzb3VyY2VzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX290dF9yZXNvdXJjZXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnJlc291cmNlc3xrZXl3b3JkOm90dF9yZXNvdXJjZXMiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9UVCBSZXNvdXJjZXMgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIudmltZW8uY29tIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2RldmVsb3BlcnNfY2xpY2siCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnJlc291cmNlc3xrZXl3b3JkOmRldmVsb3BlcnMiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmVsb3BlcnMgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL3BhcnRuZXJzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3BhcnRuZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnJlc291cmNlc3xrZXl3b3JkOnBhcnRuZXIiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJlY29tZSBhIFBhcnRuZXIgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2V4cGVydHMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmltZW9fZXhwZXJ0cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6cmVzb3VyY2VzfGtleXdvcmQ6dmltZW9fZXhwZXJ0cyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSm9pbiBWaW1lbyBFeHBlcnRzICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9oZWxwL2d1aWRlbGluZXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmltZW9fZ3VpZGVsaW5lc19jbGljayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6cmVzb3VyY2VzfGtleXdvcmQ6dmltZW9fZ3VpZGVsaW5lcyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgR3VpZGVsaW5lcyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2siIHR5cGU9ImNoZWNrYm94Ij4KICAgICAgICAgICAgPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPkFwcHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiPjxwYXRoIGQ9Ik03LjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMEw0IDQuNTg2IDEuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwLS4zOS4zOS0uMzkgMS4wMjQgMCAxLjQxNGwzIDNjLjM5LjM5IDEuMDI0LjM5IDEuNDE0IDBsMy0zYy4zOS0uMzkuMzktMS4wMjQgMC0xLjQxNHoiLz48L3N2Zz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2g0PgogICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDEzNTY2ODY3NjM/cHQ9NDE3NzMxJmFtcDtjdD1sb2hwJmFtcDttdD04IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDphcHBzfGtleXdvcmQ6bWFjb3MiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpbWVvIGZvciBtYWNPUyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2FwcHMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDQyNTE5NDc1OT9wdD00MTc3MzEmYW1wO2N0PWVudGVycHJpc2VfbW9iaWxlX2NvbW1zX0xQJmFtcDttdD04IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDphcHBzfGtleXdvcmQ6aW9zIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaW1lbyBmb3IgaU9TICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1jb20udmltZW8uYW5kcm9pZC52aWRlb2FwcCZhbXA7aGw9ZW5fVVMmYW1wO2dsPVVTJmFtcDtwbGk9MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6YXBwc3xrZXl3b3JkOmFuZHJvaWQiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpbWVvIGZvciBBbmRyb2lkICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL3ZpbWVvL2lkNDI1MTk0NzU5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDphcHBzfGtleXdvcmQ6Y3JlYXRlX2lvcyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmltZW8gQ3JlYXRlIGZvciBpT1MgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS52aW1lby5hbmRyb2lkLnZpZGVvYXBwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDphcHBzfGtleXdvcmQ6Y3JlYXRlX2FuZHJvaWQiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpbWVvIENyZWF0ZSBmb3IgQW5kcm9pZCAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy5tYWdpc3RvLmNvbS8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OmFwcHN8a2V5d29yZDptYWdpc3RvIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWdpc3RvICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vYXBwcy5zaG9waWZ5LmNvbS92aW1lb19wcm9kdWN0X3ZpZGVvX21ha2VyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDphcHBzfGtleXdvcmQ6dmltZW9fc2hvcGlmeSIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmltZW8gZm9yIFNob3BpZnkgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL2ludGVncmF0aW9ucy96b29tIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDphcHBzfGtleXdvcmQ6dmltZW9fZm9yX3pvb20iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpbWVvIGZvciBab29tICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fbGluayBmb290ZXJfdjJfYWNjb3JkaW9uIj4KICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19jaGVjayIgdHlwZT0iY2hlY2tib3giPgogICAgICAgICAgICA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXItdGV4dCI+VmltZW88L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiPjxwYXRoIGQ9Ik03LjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMEw0IDQuNTg2IDEuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwLS4zOS4zOS0uMzkgMS4wMjQgMCAxLjQxNGwzIDNjLjM5LjM5IDEuMDI0LjM5IDEuNDE0IDBsMy0zYy4zOS0uMzkuMzktMS4wMjQgMC0xLjQxNHoiLz48L3N2Zz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2g0PgogICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvdXBncmFkZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19wcmljaW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDp2aW1lb3xrZXl3b3JkOnByaWNpbmciCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgUHJpY2luZyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvdXBsb2FkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3VwbG9hZF9jbGljayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dmltZW98a2V5d29yZDp1cGxvYWQiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9jaGFubmVscy9zdGFmZnBpY2tzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3N0YWZmX3BpY2tzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDp2aW1lb3xrZXl3b3JkOnN0YWZmX3BpY2tzIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIFN0YWZmIFBpY2tzICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9vbmRlbWFuZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19vbl9kZW1hbmRfY2xpY2siCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnZpbWVvfGtleXdvcmQ6b25fZGVtYW5kIgogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIE9uIERlbWFuZCAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvb3R0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3ZpbWVvX290dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dmltZW98a2V5d29yZDpvdHQiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgVmltZW8gT1RUICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9zaXRlX21hcCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19zaXRlX21hcF9jbGljayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dmltZW98a2V5d29yZDpzaXRlX21hcCIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICBTaXRlIG1hcCAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvYWJvdXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfYWJvdXRfY2xpY2siCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjpmb290ZXJ8Y29tcG9uZW50OnZpbWVvfGtleXdvcmQ6YWJvdXRfdmltZW8iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgQWJvdXQgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0wIGlyaXNfbGluay0tZm9vdGVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9pbnZlc3RvcnMudmltZW8uY29tIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2ludmVzdG9yX3JlbGF0aW9ucyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dmltZW98a2V5d29yZDppbnZlc3Rvcl9yZWxhdGlvbnMiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgSW52ZXN0b3IgUmVsYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMCBpcmlzX2xpbmstLWZvb3RlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vcHJlc3MudmltZW8uY29tLyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19wcmVzcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOmZvb3Rlcnxjb21wb25lbnQ6dmltZW98a2V5d29yZDpwcmVzcyIKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICBQcmVzcyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTAgaXJpc19saW5rLS1mb290ZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvY2FyZWVycyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19qb2JzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDp2aW1lb3xrZXl3b3JkOmpvYnMiCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgSm9icyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgo8c2NyaXB0PgogICAgY29uc3QgZm9vdGVyQWNjb3JkaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2snKTsKCiAgICBpZiAoZm9vdGVyQWNjb3JkaW9uKSB7CiAgICAgICAgd2luZG93Lm9udW5sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9vdGVyQWNjb3JkaW9uLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoZm9vdGVyQWNjb3JkaW9uW2ldLnR5cGUgPT09ICdjaGVja2JveCcpIHsKICAgICAgICAgICAgICAgICAgICBmb290ZXJBY2NvcmRpb25baV0uY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfTsKICAgICAgICB9OwogICAgfTsKPC9zY3JpcHQ+CiAgICAKICAgICAgICA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19hdXhpbGlhcnkgIj4KCiAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2F1eGlsaWFyeS1jb250ZW50Ij4KICAgICAgICAgICAgPHA+JmNvcHk7IDIwMjMgVmltZW8uY29tLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0Ij4KICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tb3BhcXVlIiBocmVmPSIvdGVybXMiIHRpdGxlPSJUZXJtcyAmYW1wOyBDb25kaXRpb25zIj4KICAgICAgICAgICAgICAgICAgICBUZXJtcyAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLW9wYXF1ZSIgaHJlZj0iL3ByaXZhY3kiIHRpdGxlPSJQcml2YWN5IFBvbGljeSI+CiAgICAgICAgICAgICAgICAgICAgUHJpdmFjeSAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaSBpZD0iZG8tbm90LXNlbGwtaXRlbSIgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIGhpZGRlbiI+CiAgICAgICAgICAgICAgICA8YSBpZD0iZG8tbm90LXNlbGwiIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1vcGFxdWUiIHRpdGxlPSJEbyBOb3QgU2VsbCBNeSBQZXJzb25hbCBJbmZvcm1hdGlvbiIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6Zm9vdGVyfGNvbXBvbmVudDpmb290ZXJ8a2V5d29yZDpkb19ub3Rfc2VsbF9teV9wZXJzb25hbF9pbmZvcm1hdGlvbnx0YXJnZXQ6dHJhbnNjZW5kX2RpYWxvZ3VlX2JveCI+CiAgICAgICAgICAgICAgICAgICAgRG8gTm90IFNlbGwgTXkgUGVyc29uYWwgSW5mb3JtYXRpb24gICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1vcGFxdWUiIGhyZWY9Ii9wcml2YWN5L2NhbGlmb3JuaWEtcHJpdmFjeSIgdGl0bGU9IkNBIFByaXZhY3kiPgogICAgICAgICAgICAgICAgICAgIENBIFByaXZhY3kgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1vcGFxdWUiIGhyZWY9Ii9kbWNhIiB0aXRsZT0iQ29weXJpZ2h0IEluZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1vcGFxdWUiIGhyZWY9Ii9jb29raWVfcG9saWN5IiB0aXRsZT0iTGVhcm4gbW9yZSBhYm91dCBob3cgVmltZW8gdXNlcyBjb29raWVzIj4KICAgICAgICAgICAgICAgICAgICBDb29raWVzICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZm9vdGVyX3YyX19maWx0ZXJzIGZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJsYW5ndWFnZSI+CiAgICAgICAgICAgIExhbmd1YWdlOgogICAgICAgICAgICA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tb3BhcXVlIiBocmVmPSIjbGFuZ3VhZ2UiIG9uY2xpY2s9InZpbWVvLk1vZGFsLmNyZWF0ZSh7Y29udGVudDogJy9zZXR0aW5ncy9sb2NhbGUnLCBzaXplOiAnc21hbGwnfSk7IHJldHVybiBmYWxzZTsiIHRpdGxlPSJDaG9vc2UgYSBkaWZmZXJlbnQgbGFuZ3VhZ2UiPkVuZ2xpc2g8L2E+CiAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyX3YyX19maWx0ZXIiPk1hdHVyZSBjb250ZW50IGZpbHRlcjogPC9zcGFuPjxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1vcGFxdWUgZm9vdGVyX3YyX19maWx0ZXJzX19sYW5nIGNvbnRlbnRmaWx0ZXIganMtZm9vdGVyX2NvbnRlbnRmaWx0ZXJfbGluayIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBvbmNsaWNrPSJ2aW1lby5Nb2RhbC5jcmVhdGUoe2NvbnRlbnQ6ICcvc2V0dGluZ3MvY29udGVudHJhdGluZyd9KSIgdGl0bGU9IkNoYW5nZSB5b3VyIG1hdHVyZSBjb250ZW50IGZpbHRlciI+Tm9uZTwvYT4KICAgICAgICAgICAgPC9kaXY+Cgo8L3NlY3Rpb24+CjwhLS0gRG8gbm90IHNlbGwgbGluayBidXR0b24gZm9yIENhbGlmb3JuaWEgdXNlcnMgLS0+CjxzY3JpcHQgZGF0YS1jZmFzeW5jPSJmYWxzZSIgZGF0YS1kaXNtaXNzZWQtdmlldy1zdGF0ZT0iSGlkZGVuIiBkYXRhLXRhbXBlci1yZXNpc3Q9Im9mZiIKICAgIHNyYz0iaHR0cHM6Ly9jZG4udHJhbnNjZW5kLmlvL2NtLzMxZTk3Y2JmLTM1NWMtNGYwZC04YmFkLTljZDk0NTEyMTUwOC9haXJnYXAuanMiPgo8L3NjcmlwdD4KPC9mb290ZXI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgICAgICBbeyJ1cmwiOiJodHRwczovL3ZpbWVvLmNvbS83ODQ4ODQ2IiwidGh1bWJuYWlsVXJsIjoiaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS92aWRlby8zNTAxNDU4NC00NDY2NTY0MjFhOTM1ZjlmMjU2Mzc1ZjFmYWUyZGM4YTJkNTAwMzAzMDk5OWEyMzU2MWE3NmE0YWQ1Y2UxYmYxLWQ/Zj13ZWJwIiwiZW1iZWRVcmwiOiJodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vNzg0ODg0Nj9oPTQ2NmViZDJmMzMiLCJuYW1lIjoiSUtPTlMgLSBTTE9XIExJR0hUIiwiZGVzY3JpcHRpb24iOiJBcnRpc3Q6IElLT05TLiBUaXRsZTogU0xPVyBMSUdIVC4gQ3JlYXRvcjogUGF0cmlrIEpvaGFuc3Nvbi4gTGFiZWw6IFNFUlZJQ0UuIHd3dy5zcnZjLnNlICBBbGJ1bSAmcXVvdDtJa29ucyZxdW90OyBvdXQgbm93IENEL0xQL1N0cmVhbSBmcm9tIFNlcnZpY2UiLCJoZWlnaHQiOjQ4MCwid2lkdGgiOjY0MCwicGxheWVyVHlwZSI6IkhUTUw1IEZsYXNoIiwidmlkZW9RdWFsaXR5IjoiU0QiLCJ1cGxvYWREYXRlIjoiMjAwOS0xMS0yN1QwNjoxOTozOS0wNTowMCIsImRhdGVNb2RpZmllZCI6IjIwMjItMDctMDFUMDY6MDU6MTAtMDQ6MDAiLCJ0aHVtYm5haWwiOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsInVybCI6Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vdmlkZW8vMzUwMTQ1ODQtNDQ2NjU2NDIxYTkzNWY5ZjI1NjM3NWYxZmFlMmRjOGEyZDUwMDMwMzA5OTlhMjM1NjFhNzZhNGFkNWNlMWJmMS1kP2Y9d2VicCIsIndpZHRoIjoxMjgwLCJoZWlnaHQiOjk2MH0sImF1dGhvciI6eyJAdHlwZSI6IlBlcnNvbiIsIm5hbWUiOiJTZXJ2aWNlIiwidXJsIjoiaHR0cHM6Ly92aW1lby5jb20vc2VydmljZSJ9LCJwb3RlbnRpYWxBY3Rpb24iOnsiQHR5cGUiOiJWaWV3QWN0aW9uIiwidGFyZ2V0IjoidmltZW86Ly9hcHAudmltZW8uY29tL3ZpZGVvcy83ODQ4ODQ2In0sImR1cmF0aW9uIjoiUFQwMEgwOE0xNFMiLCJAdHlwZSI6IlZpZGVvT2JqZWN0IiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZyJ9LHsiaXRlbUxpc3RFbGVtZW50IjpbeyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjEsIml0ZW0iOnsiQGlkIjoiaHR0cHM6Ly92aW1lby5jb20vc2VydmljZSIsIm5hbWUiOiJTZXJ2aWNlIn19LHsiQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoyLCJpdGVtIjp7IkBpZCI6Imh0dHBzOi8vdmltZW8uY29tL3NlcnZpY2UvdmlkZW9zIiwibmFtZSI6IlZpZGVvcyJ9fV0sIkB0eXBlIjoiQnJlYWRjcnVtYkxpc3QiLCJAY29udGV4dCI6Imh0dHA6Ly9zY2hlbWEub3JnIn1dICAgIDwvc2NyaXB0PgoKPHNjcmlwdD4KICAgIHZhciBfX2ZhID0gX19mYSB8fCBbXTsKICAgIC8qKgogICAgICogQmVjYXVzZSBzaW5nbGUgcGFnZSBhcHBsaWNhdGlvbnMgc3VjaCBhcyB0aGUgYXBwIHNoZWxsIHdpbGwgYmUgdHJhY2tpbmcKICAgICAqIEZhdGFsIEF0dHJhY3Rpb24gcGFnZSB2aWV3cyBvbiBSZWFjdCBsaWZlY3ljbGUgaG9va3MgKGNvbXBvbmVudERpZE1vdW50KQogICAgICogd2Ugd2FudCB0byBhdm9pZCBkaXNwYXRjaGluZyB0aGUgcGFnZXZpZXcgZXZlbnQgZnJvbSB0aGUgUEhQIHRlbXBsYXRlCiAgICAgKiBhbmQgZGVmZXIgdGhpcyBzb3J0IG9mIHRyYWNraW5nIGxvZ2ljIHRvIHRoZSBmcm9udCBlbmQuCiAgICAgKgogICAgICogVGhpcyBjaGVjayBhbGxvd3MgdXMgdG8gZGVjbGFyZSBpbiBhIGNvbnRyb2xsZXIgd2hldGhlciBvciBub3Qgd2UKICAgICAqIHdhbnQgdG8gZGlzcGF0Y2ggdGhhdCBwcmVsaW1pbmFyeSBwYWdldmlldy4KICAgICAqCiAgICAgKiBUaGUgcHJvcGVydHkgaXMgYWRkaXRpdmUgb25seSwgYXMgdG8gbm90IGFmZmVjdCBleGlzdGluZyBwYWdldmlld3MuCiAgICAgKi8KICAgICAgICAgICAgX19mYS5wdXNoKFsndHJhY2tQYWdldmlldyddKTsKICAgIAogICAgLyoqCiAgICAgKiBBZGQgc2VydmVyIHNpZGUgQUJMaW5jb2xuIGV4cGVyaW1lbnRzIHRvIEdUTSBkYXRhIGxheWVyLgogICAgICovCiAgICAKICAgICAgICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogICAgICAgIHZhciBDU1NfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvJywKICAgICAgICBKU19ESVIgPSAnaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvJywKICAgICAgICBJTUFHRV9ESVIgPSAnaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9pbWFnZXNfdjYvJywKICAgICAgICBGT05UX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL2ZvbnRzLycsCiAgICAgICAgU1ZHX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL3N2Zy8nLAogICAgICAgICAgICAgICAgQlVJTERfSEFTSCA9ICcyY2RiYSc7CgogICAgCiAgICAgICAgdmFyIHZpbWVvID0gX2V4dGVuZCgod2luZG93LnZpbWVvIHx8IHt9KSwgeyJhcHBfdmVyc2lvbiI6InY2IiwiZG9tYWluIjoidmltZW8uY29tIiwidXJsIjoidmltZW8uY29tIiwiY3VyX3VzZXIiOmZhbHNlLCJvcmlnaW5fdXNlcl9pZCI6bnVsbCwib3JpZ2luX3VzZXIiOmZhbHNlLCJpc19tb2JpbGUiOmZhbHNlLCJpc19yZWNvcmRfdG9vbF9zdXBwb3J0ZWQiOmZhbHNlfSk7CiAgICB2aW1lby5jb25maWcgPSBfZXh0ZW5kKCh2aW1lby5jb25maWcgfHwge30pLCB7InN0aWNreV90b3BuYXYiOnsiZXhjbHVkZWRfcGFnZXMiOlsiVmltZW9cXENvbnRyb2xsZXJcXEFib3V0Q29udHJvbGxlcjptYWluIiwiVmltZW9cXENvbnRyb2xsZXJcXEFib3V0Q29udHJvbGxlcjpwcm9mZXNzaW9uYWxzIiwiVmltZW9cXENvbnRyb2xsZXJcXEhvbWVDb250cm9sbGVyOnVwZ3JhZGUiLCJWaW1lb1xcQ29udHJvbGxlclxcU3RvcmVDb250cm9sbGVyOm1haW4iLCJWaW1lb1xcQ29udHJvbGxlclxcVXNlclxcU2V0dGluZ3MyQ29udHJvbGxlcjptYWluIiwiVmltZW9cXENvbnRyb2xsZXJcXFVzZXJcXFNldHRpbmdzMkNvbnRyb2xsZXI6dGVhbV9tZW1iZXJzIiwiVmltZW9cXENvbnRyb2xsZXJcXFVzZXJcXFNldHRpbmdzMkNvbnRyb2xsZXI6cGFzc3dvcmQiLCJWaW1lb1xcQ29udHJvbGxlclxcUHJvZmlsZUNvbnRyb2xsZXI6bWFpbiIsIlZpbWVvXFxDb250cm9sbGVyXFxDbGlwU3RhdHNDb250cm9sbGVyOm1haW4iLCJWaW1lb1xcQ29udHJvbGxlclxcQ2xpcFxcU2V0dGluZ3NcXEVtYmVkQ29udHJvbGxlcjplbWJlZCIsIlZpbWVvXFxDb250cm9sbGVyXFxWaWRlb01hbmFnZXJDb250cm9sbGVyIiwiVmltZW9cXENvbnRyb2xsZXJcXFZpZGVvUmV2aWV3Q29udHJvbGxlciIsIlZpbWVvXFxDb250cm9sbGVyXFxNZXNzYWdlc0NvbnRyb2xsZXIiLCJWaW1lb1xcQ29udHJvbGxlclxcU3RhdHNDb250cm9sbGVyIiwiVmltZW9cXENvbnRyb2xsZXJcXFVwbG9hZENvbnRyb2xsZXIiLCJWaW1lb1xcQ29udHJvbGxlclxcT25EZW1hbmRcXFNldHRpbmdzQ29udHJvbGxlciIsIlZpbWVvXFxDb250cm9sbGVyXFxDbGlwXFxTZXR0aW5nc0NvbnRyb2xsZXIiXSwic3RpY2t5X2luY2x1ZGVkX3BhZ2VzIjpbIlZpbWVvXFxDb250cm9sbGVyXFxTdG9ja1xcU3RvY2tIb21lUGFnZUNvbnRyb2xsZXIiLCJWaW1lb1xcQ29udHJvbGxlclxcU3RvY2tcXFN0b2NrRm9vdGFnZUNvbnRyb2xsZXIiLCJWaW1lb1xcQ29udHJvbGxlclxcU3RvY2tcXFN0b2NrU2VhcmNoQ29udHJvbGxlciIsIlZpbWVvXFxDb250cm9sbGVyXFxTdG9ja1xcU3RvY2tDb2xsZWN0aW9uc0NvbnRyb2xsZXIiLCJWaW1lb1xcQ29udHJvbGxlclxcQWxidW1Db250cm9sbGVyIl0sInRvcG5hdl93cmFwX3NlbGVjdG9yIjoiI3RvcG5hdl9vdXRlcl93cmFwIiwiY29udGVudF93cmFwX3NlbGVjdG9yIjoiLndyYXBfY29udGVudCJ9LCJsb2NhbGUiOiJlbiIsIm9tbmlzZWFyY2hfand0IjoiZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSVV6STFOaUo5LmV5SmxlSEFpT2pFMk9UZ3pOVEk1TWpBc0luVnpaWEpmYVdRaU9tNTFiR3dzSW1Gd2NGOXBaQ0k2TlRnME56a3NJbk5qYjNCbGN5STZJbkIxWW14cFl5QndjbWwyWVhSbElHUmxiR1YwWlNJc0luUmxZVzFmZFhObGNsOXBaQ0k2Ym5Wc2JIMC5LQjZFcHVUNGJjSnkyUmMwUFJCNGtWMXU4TE8yVWlnTUhKR1ZEbGJUTG53Iiwib21uaXNlYXJjaF91c2VyIjpudWxsLCJhcGlfdXJsIjoiYXBpLnZpbWVvLmNvbSIsIm1hZ2lzdG9fYXBpX2hvc3QiOiJ2aW1lby5tYWdpc3RvLmNvbSIsImhhc19wdWJsaWNfc2VhcmNoX2Rpc2FibGVkIjpmYWxzZSwiaGFzX2F1dG9fY2xvc2VkX2NhcHRpb25zIjpmYWxzZSwiaGFzX29jcl9zZWFyY2giOmZhbHNlLCJoYXNfdmlkZW9fbGlicmFyeSI6ZmFsc2UsImhhc19lbnRlcnByaXNlIjpmYWxzZSwiaGFzX3ByZWNpc2lvbl9hd2FyZV9zZWFyY2giOmZhbHNlLCJ0ZWFtX3VzZXIiOm51bGwsInNob3VsZE9wdEludG9NYXJrZXRpbmciOnRydWUsInNob3VsZFNob3dNYXJrZXRpbmdDaGVja2JveCI6ZmFsc2UsImlzUmVjb3JkVG9vbFN1cHBvcnRlZCI6ZmFsc2UsInRlYW0iOm51bGwsInJlZnJlc2hlZF9zc19saWhwIjpmYWxzZX0pOwoKICAgICAgICB2YXIgX19pMThuTG9jYWxlID0gJ2VuJzsKICAgIHZhciBsb2NhbGVDb25maWcgPSB7CiAgICAgICAgbGFuZzogJ2VuJywKICAgICAgICAnRGF0ZSc6IHsKICAgICAgICAgICAgbW9udGhzOiBbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sCiAgICAgICAgICAgIG1vbnRoc19hYmJyOiBbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLAogICAgICAgICAgICBkYXlzOiBbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sCiAgICAgICAgICAgIGRheXNfYWJicjogWyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwKCiAgICAgICAgICAgIC8vIEN1bHR1cmUncyBkYXRlIG9yZGVyOiBNTS9ERC9ZWVlZCiAgICAgICAgICAgIGRhdGVPcmRlcjogWydkYXRlJywgJ21vbnRoJywgJ3llYXInXSwKICAgICAgICAgICAgc2hvcnREYXRlOiAnJWQvJW0vJVknLAogICAgICAgICAgICBzaG9ydFRpbWU6ICclSTolTSVwJywKICAgICAgICAgICAgQU06ICdBTScsCiAgICAgICAgICAgIFBNOiAnUE0nLAogICAgICAgICAgICBmaXJzdERheU9mV2VlazogMCwKCiAgICAgICAgICAgIC8vIERhdGUuRXh0cmFzCiAgICAgICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uKGRheU9mTW9udGgpewogICAgICAgICAgICAgICAgcmV0dXJuIGRheU9mTW9udGg7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICdEYXRlUGlja2VyJzogewogICAgICAgICAgICBzZWxlY3RfYV90aW1lOiAiU2VsZWN0IGEgdGltZSIsCiAgICAgICAgICAgIHVzZV9tb3VzZV93aGVlbDogIlVzZSB0aGUgbW91c2Ugd2hlZWwgdG8gcXVpY2tseSBjaGFuZ2UgdmFsdWUiLAogICAgICAgICAgICB0aW1lX2NvbmZpcm1fYnV0dG9uOiAiT0siLAogICAgICAgICAgICBhcHBseV9yYW5nZTogIkFwcGx5IiwKICAgICAgICAgICAgY2FuY2VsOiAiQ2FuY2VsIiwKICAgICAgICAgICAgd2VlazogIldrIiAgICAgICAgfSwKICAgICAgICAgICAgICAgICdOdW1iZXInOiB7CiAgICAgICAgICAgIGRlY2ltYWw6ICcuJywKICAgICAgICAgICAgZ3JvdXA6ICcsJywKICAgICAgICAgICAgY3VycmVuY3k6IHsKICAgICAgICAgICAgICAgIHByZWZpeDogJyQnCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICdGb3JtVmFsaWRhdG9yJzogeyJyZXF1aXJlZCI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIiwicmVxdWlyZWRDaGsiOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9ICAgIH07CgogICAgdmFyIGZ1bGxMb2NhbGUgPSAnJzsKCiAgICAKICAgICAgICB2YXIgQ29weSA9IHt0cmFuc2xhdGU6ZnVuY3Rpb24odCxpLHUpe3ZhciBlPSdvYmplY3QnIT10eXBlb2YgdGhpcy5kaWN0W3RdP3RoaXMuZGljdFt0XTppP3RoaXMuZGljdFt0XS5wbHVyYWw6dGhpcy5kaWN0W3RdLnNpbmd1bGFyO3JldHVybidvYmplY3QnPT10eXBlb2YgdSYmKGU9dGhpcy5zdWJzdGl0dXRlKGUsdSkpLGV9LHN1YnN0aXR1dGU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gdm9pZCAwIT09dC5zdWJzdGl0dXRlP3Quc3Vic3RpdHV0ZShpKTp0LnJlcGxhY2UoL1xcP1x7KFtee31dKylcfS9nLGZ1bmN0aW9uKHQsdSl7cmV0dXJuJ1xcJz09dC5jaGFyQXQoMCk/dC5zbGljZSgxKTpudWxsIT1pW3VdP2lbdV06Jyd9KX0sZGljdDp7fX07CiAgICBDb3B5LmRpY3QgPSB7ImRpZF95b3VfbWVhbl9lbWFpbCI6IkRpZCB5b3UgbWVhbiA8ZW0+e1NVR0dFU1R9PFwvZW0+PyIsImVtYWlsX3Bhc3N3b3JkX21pc21hdGNoIjoiRW1haWwgYW5kIHBhc3N3b3JkIGRvIG5vdCBtYXRjaCIsIm9vcHNfdHJ5X2FnYWluIjoiT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uIiwianVzdF9ub3ciOiJqdXN0IG5vdyIsInNlY29uZHNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBzZWNvbmQgYWdvIiwicGx1cmFsIjoie0NPVU5UfSBzZWNvbmRzIGFnbyJ9LCJtaW51dGVzX2FnbyI6eyJzaW5ndWxhciI6IntDT1VOVH0gbWludXRlIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gbWludXRlcyBhZ28ifSwiaG91cnNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBob3VyIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gaG91cnMgYWdvIn0sIm9wZW5fY29tbWVudF9ib3giOiJBZGQgbmV3IGNvbW1lbnQgaW5zdGVhZCAmcmFxdW87IiwidXJsX3VuYXZhaWxhYmxlIjoiU29ycnksIHRoaXMgdXJsIGlzIHVuYXZhaWxhYmxlLiIsInVuc2F2ZWRfY2hhbmdlc19nZW5lcmljIjoiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLCBhcmUgeW91IHN1cmUgeW91IHdpc2ggdG8gbGVhdmU/IiwiYWRkIjoiQWRkIiwicmVtb3ZlIjoiUmVtb3ZlIiwic2VsZWN0IjoiU2VsZWN0Iiwibm9fZm9sbG93ZXJzX2Zvcl9sZXR0ZXIiOiJZb3UgZG9uJnJzcXVvO3QgZm9sbG93IGFueW9uZSB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciAmbGRxdW87e1BBR0VfTEVUVEVSfSZyZHF1bzsiLCJzaGFyZV9saW1pdF9yZWFjaGVkIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gc2hhcmUgd2l0aC4iLCJhdF9sZWFzdF9vbmUiOiJUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSB1c2VyLiIsImF2YWlsYWJsZSI6IkF2YWlsYWJsZSIsInVuYXZhaWxhYmxlIjoiVW5hdmFpbGFibGUiLCJicm93c2VfZXJyb3JfZ2VuZXJpYyI6IlNvcnJ5LCB0aGVyZSB3YXMgYW4gZXJyb3IiLCJicm93c2VfZXJyb3Jfbm9fdmlkZW9zIjoiU29ycnksIG5vIHZpZGVvcyBmb3VuZCIsImZvbGxvdyI6IkZvbGxvdyIsImZvbGxvd2luZyI6IkZvbGxvd2luZyIsInVuZm9sbG93IjoiVW5mb2xsb3ciLCJ1bmZvbGxvd2luZyI6IlVuZm9sbG93aW5nIiwiY291bnRfY29tbWVudHMiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IGNvbW1lbnQiLCJwbHVyYWwiOiJ7Q09VTlR9IGNvbW1lbnRzIn0sImZpcnN0X2NvbW1lbnQiOiJCZSB0aGUgZmlyc3QgdG8gY29tbWVudFx1MjAyNiIsIm5vX2NvbW1lbnRzX2Zvcl95b3UiOiJGb3JiaWRkZW4uIFlvdSBjYW5ub3QgcG9zdCBjb21tZW50cyBvbiB0aGlzIHBhZ2UuIiwib29wcyI6Ik9vcHMhIiwicGxheWVyX3RyeV9hZ2FpbiI6IlRoYXQgd2Fzbid0IHN1cHBvc2VkIHRvIGhhcHBlbi4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLiIsImR1cmF0aW9uX2lucHV0X21pbl9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHtNSU5fRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X21heF9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHtNQVhfRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X2ludmFsaWRfY2hhcmFjdGVycyI6IjAtOSBhbmQgOiBhcmUgdGhlIG9ubHkgYWNjZXB0YWJsZSBpbnB1dHMuIiwiY2xvc2UiOiJDbG9zZSIsImV4cGFuZCI6IkV4cGFuZCIsImxvYWRpbmciOiJMb2FkaW5nLi4uIiwidG9wIjoidG9wIiwiYWR2YW5jZWRfc2VhcmNoIjoiQWR2YW5jZWQgU2VhcmNoIiwibm9fc3VnZ2VzdGlvbnMiOiJObyBzdWdnZXN0aW9ucyIsInJlY2VudF9zZWFyY2hlcyI6IlJlY2VudCBTZWFyY2hlcyIsInNlYXJjaF9hbGwiOiJTZWFyY2ggQWxsIG9mIFZpbWVvIiwiZW1haWxfYW5kX3Bhc3N3b3JkIjoiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgYW5kIHBhc3N3b3JkIiwiZW1haWxfYWRkcmVzcyI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiLCJuYW1lX2VtYWlsX2FuZF9wYXNzd29yZCI6IlBsZWFzZSBlbnRlciB5b3VyIG5hbWUsIGVtYWlsLCBhbmQgcGFzc3dvcmQiLCJlbnRlcl92YWxpZF9vdHAiOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBjb2RlIn07Cjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9nbG9iYWwvcGxheWVyX21hbmFnZXJfN2U2N2JkMTUwNGVkOGRiMTBiNDQ5NmVlYWYzOGRiZjAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQ+CiAgICAgICAgaWYgKHR5cGVvZiBwbGF5ZXJBc3NldFVybHMgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGF5ZXJNYW5hZ2VyLnJ1bihwbGF5ZXJBc3NldFVybHMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgIDwvc2NyaXB0PgoKICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9zdGlja3lfdG9wbmF2X2NvbWJpbmVkXzkwMTIzMGQwYTM4NWRiMzVmZDUwNTJmY2I5OTIyOTM0Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvcmVhY3RfcHJvZF9jb21iaW5lZF9jY2I3ZDVjNGNmZjcyOGNlYWRiOTk5NmYzODViMmQwOS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L2NsaXBfY29tYmluZWRfZmI4ZWQ5N2JiOTgxMzNiNTFmODFjMGU1NmZhYjAwYWMubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC90b3BuYXZfY2FydF9idXR0b25fOGRlMDBlZjViNDIwZmYwMzQ5MjgxNzUwZTZmNTUyNGMubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9fYnVuZGxlcy9jbGlwLmNlYzJjZTliOTY1NjQ2MjhiNGY3LmJ1bmRsZS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L19idW5kbGVzL3BlbmRvX2NvbnRhaW5lci5kNmRhNDExMjdiYjY4N2ViYzRiMy5idW5kbGUubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9fYnVuZGxlcy90b3BuYXZfZGVza3RvcC5jY2QwNWEyMDM3ZTk4ZTA3MzY1My5idW5kbGUubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9fYnVuZGxlcy9icF90cmFja2luZy4zZTk5YTNmZGRjOGZiYjQzMWE1MS5idW5kbGUubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9nbG9iYWwvZG9fbm90X3NlbGxfMGE1Zjc1NGJlNzk5Yjk3OTFlNDk3ODVhZGI5NGY1ZmYubWluLmpzIj48L3NjcmlwdD4KCiAgICA8c2NyaXB0IGFzeW5jIHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvY2xpcF9iZXRhX2xpYnNfYXN5bmNfY29tYmluZWRfZGI2NzkzYzdmM2FhNDlkMzAyOWRiYWM0NWRlNzhkM2YubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgYXN5bmMgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9fYnVuZGxlcy9jcmVhdGVfZmFjZWJvb2tfaGVhZGVyLmQyYWNhYTdhMTZmNjdhYTJiYzNkLmJ1bmRsZS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgICAgICBmdW5jdGlvbiBvblZpbWVvRG9tUmVhZHkoZSkgewogICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2aW1lby5ieXBhc3NfcGxheWVyX3Jlc3BvbnNpdmVfZGVsZWdhdGVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcyA9IHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcyB8fCB7fTsKICAgICAgICAgICAgICAgICAgICAgICAgdmltZW8ucGxheWVyX3Jlc3BvbnNpdmVfZGVsZWdhdGVzLndpbGxPcGVuU2hhcmVPdmVybGF5ID0gdmltZW8ucGxheWVyX3Jlc3BvbnNpdmVfZGVsZWdhdGVzLndpbGxPcGVuU2hhcmVPdmVybGF5IHx8IGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxheWVyTWFuYWdlci5wYXVzZUFsbFBsYXllcnMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aW1lby5zaGFyZS5Qb3B1cChpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcy53aWxsT3BlbkxvZ2luRm9ybSA9IHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcy53aWxsT3BlbkxvZ2luRm9ybSB8fCBmdW5jdGlvbihpZCwgY29udGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2aW1lby5Nb2RhbCAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGF5ZXJNYW5hZ2VyLnBhdXNlQWxsUGxheWVycygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aW1lby5TZXNzaW9uLmNyZWF0ZSh7IHBsYXllcjogMSwgY2xpcF9pZDogaWQsIGNvbnRleHQ6IGNvbnRleHQgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aW1lby5TZXNzaW9uLmNyZWF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBsYXllck1hbmFnZXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYXllck1hbmFnZXIuc2V0RGVmYXVsdERlbGVnYXRlKHZpbWVvLnBsYXllcl9yZXNwb25zaXZlX2RlbGVnYXRlcyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChQbGF5ZXJNYW5hZ2VyKSB7CiAgICAgICAgICAgICAgICAgICAgUGxheWVyTWFuYWdlci5kaXNwYXRjaFJlYWR5U2lnbmFscygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KG9uVmltZW9Eb21SZWFkeSk7CiAgICAgICAgICAgIDwvc2NyaXB0PgoKICAgIDwvYm9keT4KPC9odG1sPgo= + recorded_at: Thu, 26 Oct 2023 20:26:09 GMT +- request: + method: head + uri: https://vimeo.com/7848846 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - VideoInfo/4.0.0 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 26 Oct 2023 20:26:10 GMT + Content-Type: + - text/html; charset=UTF-8 + Connection: + - keep-alive + Expires: + - Thu, 26 Oct 2023 20:36:10 GMT + X-Vimeo-Device: + - d + X-Ua-Compatible: + - IE=edge + X-Xss-Protection: + - 1; mode=block + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - sameorigin + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Content-Security-Policy-Report-Only: + - 'default-src https: data: blob: wss: ''unsafe-inline'' ''unsafe-eval''; report-uri + /_csp' + X-Bapp-Server: + - pweb-7cc5595cc8-wldtk + Via: + - 1.1 varnish (Varnish/6.0), 1.1 varnish, 1.1 varnish + Cache-Control: + - no-store, no-cache, must-revalidate, post-check=0, pre-check=0 + X-Varnish-Cache: + - '0' + X-Vserver: + - web-varnish-prod-varnish-6 + X-Backend-Proxy: + - webproxy7 + Age: + - '0' + X-Served-By: + - cache-iad-kjyo7100043-IAD, cache-fra-eddf8230082-FRA + X-Cache: + - MISS, MISS + X-Cache-Hits: + - 0, 0 + X-Timer: + - S1698351970.068029,VS0,VE379 + Vary: + - User-Agent,Accept-Encoding,x-http-method-override + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=7.BU3S1XxIM8yLm8vIzJGMvgNkWTfHkaJOFTznwc_ko-1698351970-0-ATiCRddLdtGVzes005f5OTkkWIKDvN7cLXciaK6q7klbyLHnLNJoCnKXjlrm/1okK1R/X/8L5ceLu4tUQx1KMm4=; + path=/; expires=Thu, 26-Oct-23 20:56:10 GMT; domain=.vimeo.com; HttpOnly; + Secure; SameSite=None + Server: + - cloudflare + Cf-Ray: + - 81c56ec4bb002a74-CDG + Content-Encoding: + - gzip + body: + encoding: UTF-8 + string: '' + recorded_at: Thu, 26 Oct 2023 20:26:10 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_7848846/stats/2_14_1_1.yml b/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_7848846/stats/2_14_1_1.yml new file mode 100644 index 00000000..73965317 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_7848846/stats/2_14_1_1.yml @@ -0,0 +1,85 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.vimeo.com/videos/7848846 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - VideoInfo/4.0.0 + Authorization: + - bearer vimeo_access_token + Accept: + - application/vnd.vimeo.*+json;version=3.2 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 27 Oct 2023 20:10:56 GMT + Content-Type: + - application/vnd.vimeo.video+json + Content-Length: + - '10572' + Connection: + - keep-alive + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Ratelimit-Limit: + - '50' + X-Ratelimit-Remaining: + - '48' + X-Ratelimit-Reset: + - '2023-10-27T20:11:55+00:00' + Cache-Control: + - no-store, no-cache, max-age=0 + Request-Hash: + - 3cd47982 + X-Bapp-Server: + - api-7475d7c8b6-wfjtn + X-Backend-Server: + - api-k8s + Via: + - 1.1 varnish, 1.1 varnish + Accept-Ranges: + - bytes + Age: + - '0' + X-Served-By: + - cache-iad-kiad7000159-IAD, cache-mrs10581-MRS + X-Cache: + - MISS, MISS + X-Cache-Hits: + - 0, 0 + X-Timer: + - S1698437456.607184,VS0,VE660 + Vary: + - x-http-method-override + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=FCQKxyzPuHqJIQK99J2zPmfxePkITfksvmCW72Sjh.k-1698437456-0-AeXOh5li1kCmT1NUhDITAJ24bpOs5c1UlNK2IvXStAXUd1VrvzxU5Dyr13JpOT2qv4nwfNS5yKthB9HIY0HiSy0=; + path=/; expires=Fri, 27-Oct-23 20:40:56 GMT; domain=.vimeo.com; HttpOnly; + Secure; SameSite=None + Server: + - cloudflare + Cf-Ray: + - 81cd95d15cee11c0-MRS + body: + encoding: UTF-8 + string: '{"uri":"/videos/7848846","name":"IKONS - SLOW LIGHT","description":"Artist: + IKONS.\nTitle: SLOW LIGHT.\nCreator: Patrik Johansson.\nLabel: SERVICE.\nwww.srvc.se\n\nAlbum + \"Ikons\" out now CD/LP/Stream from Service","type":"video","link":"https://vimeo.com/7848846","player_embed_url":"https://player.vimeo.com/video/7848846?h=466ebd2f33","duration":494,"width":640,"language":null,"height":480,"embed":{"html":"","badges":{"hdr":false,"live":{"streaming":false,"archived":false},"staff_pick":{"normal":false,"best_of_the_month":false,"best_of_the_year":false,"premiere":false},"vod":false,"weekend_challenge":false},"interactive":false},"created_time":"2009-11-27T11:19:39+00:00","modified_time":"2022-07-01T10:05:10+00:00","release_time":"2009-11-27T11:19:39+00:00","content_rating":["unrated"],"content_rating_class":"unrated","rating_mod_locked":false,"license":null,"privacy":{"view":"anybody","embed":"public","download":false,"add":true,"comments":"anybody"},"pictures":{"uri":"/videos/7848846/pictures/35014584","active":true,"type":"custom","base_link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d","sizes":[{"width":100,"height":75,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_100x75?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":200,"height":150,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_200x150?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":295,"height":166,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_295x166?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":640,"height":360,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_640x360?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":960,"height":540,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_960x540?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":1280,"height":720,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_1280x720?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"},{"width":1920,"height":1080,"link":"https://i.vimeocdn.com/video/35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_1920x1080?r=pad","link_with_play_button":"https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F35014584-446656421a935f9f256375f1fae2dc8a2d5003030999a23561a76a4ad5ce1bf1-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"}],"resource_key":"3a9299a824d2eb20f817bb10778905b1bcf1d4c0","default_picture":false},"tags":[],"stats":{"plays":null},"uploader":{"pictures":{"uri":"/users/195575/pictures/1051865","active":true,"type":"custom","base_link":"https://i.vimeocdn.com/portrait/1051865","sizes":[{"width":30,"height":30,"link":"https://i.vimeocdn.com/portrait/1051865_30x30"},{"width":72,"height":72,"link":"https://i.vimeocdn.com/portrait/1051865_72x72"},{"width":75,"height":75,"link":"https://i.vimeocdn.com/portrait/1051865_75x75"},{"width":100,"height":100,"link":"https://i.vimeocdn.com/portrait/1051865_100x100"},{"width":144,"height":144,"link":"https://i.vimeocdn.com/portrait/1051865_144x144"},{"width":216,"height":216,"link":"https://i.vimeocdn.com/portrait/1051865_216x216"},{"width":288,"height":288,"link":"https://i.vimeocdn.com/portrait/1051865_288x288"},{"width":300,"height":300,"link":"https://i.vimeocdn.com/portrait/1051865_300x300"},{"width":360,"height":360,"link":"https://i.vimeocdn.com/portrait/1051865_360x360"}],"resource_key":"c309e33692631ae18d6a7b27b217306c5939320f","default_picture":false}},"metadata":{"connections":{"comments":{"uri":"/videos/7848846/comments","options":["GET","POST"],"total":1},"credits":{"uri":"/videos/7848846/credits","options":["GET","POST"],"total":1},"likes":{"uri":"/videos/7848846/likes","options":["GET"],"total":44},"pictures":{"uri":"/videos/7848846/pictures","options":["GET","POST"],"total":1},"texttracks":{"uri":"/videos/7848846/texttracks","options":["GET","POST"],"total":0},"related":null,"albums":{"uri":"/videos/7848846/albums","options":["GET","PATCH"],"total":0},"available_albums":{"uri":"/videos/7848846/available_albums","options":["GET"],"total":0},"available_channels":{"uri":"/videos/7848846/available_channels","options":["GET"],"total":0}},"interactions":{"watchlater":{"uri":"/users/105561138/watchlater/7848846","options":["GET","PUT","DELETE"],"added":false,"added_time":null},"like":{"uri":"/users/105561138/likes/7848846","options":["GET","PUT","DELETE"],"added":false,"added_time":null},"report":{"uri":"/videos/7848846/report","options":["POST"],"reason":["pornographic","harassment","ripoff","incorrect + rating","spam","causes harm","csam"]},"can_update_privacy_to_public":{"uri":"/videos/7848846","options":["PATCH"]},"validate":{"uri":"/videos/7848846/validate","options":["PUT"]}},"is_vimeo_create":false,"is_screen_record":false},"user":{"uri":"/users/195575","name":"Service","link":"https://vimeo.com/service","capabilities":{"hasLiveSubscription":false,"hasEnterpriseLihp":false,"hasSvvTimecodedComments":false,"hasSimplifiedEnterpriseAccount":false},"location":"Sweden","gender":"f","bio":"http://www.srvc.se","short_bio":null,"created_time":"2007-05-18T12:12:35+00:00","pictures":{"uri":"/users/195575/pictures/1051865","active":true,"type":"custom","base_link":"https://i.vimeocdn.com/portrait/1051865","sizes":[{"width":30,"height":30,"link":"https://i.vimeocdn.com/portrait/1051865_30x30"},{"width":72,"height":72,"link":"https://i.vimeocdn.com/portrait/1051865_72x72"},{"width":75,"height":75,"link":"https://i.vimeocdn.com/portrait/1051865_75x75"},{"width":100,"height":100,"link":"https://i.vimeocdn.com/portrait/1051865_100x100"},{"width":144,"height":144,"link":"https://i.vimeocdn.com/portrait/1051865_144x144"},{"width":216,"height":216,"link":"https://i.vimeocdn.com/portrait/1051865_216x216"},{"width":288,"height":288,"link":"https://i.vimeocdn.com/portrait/1051865_288x288"},{"width":300,"height":300,"link":"https://i.vimeocdn.com/portrait/1051865_300x300"},{"width":360,"height":360,"link":"https://i.vimeocdn.com/portrait/1051865_360x360"}],"resource_key":"c309e33692631ae18d6a7b27b217306c5939320f","default_picture":false},"websites":[{"uri":"/users/195575/links/4603","name":null,"link":"http://www.srvc.se","type":"link","description":null}],"metadata":{"connections":{"activities":{"uri":"/users/195575/activities","options":["GET"]},"albums":{"uri":"/users/195575/albums","options":["GET"],"total":0},"appearances":{"uri":"/users/195575/appearances","options":["GET"],"total":0},"channels":{"uri":"/users/195575/channels","options":["GET"],"total":0},"feed":{"uri":"/users/195575/feed","options":["GET"]},"followers":{"uri":"/users/195575/followers","options":["GET"],"total":93},"following":{"uri":"/users/195575/following","options":["GET"],"total":0},"groups":{"uri":"/users/195575/groups","options":["GET"],"total":0},"likes":{"uri":"/users/195575/likes","options":["GET"],"total":0},"membership":{"uri":"/users/195575/membership/","options":["PATCH"]},"moderated_channels":{"uri":"/users/195575/channels?filter=moderated","options":["GET"],"total":0},"portfolios":{"uri":"/users/195575/portfolios","options":["GET"],"total":0},"videos":{"uri":"/users/195575/videos","options":["GET"],"total":20},"shared":{"uri":"/users/195575/shared/videos","options":["GET"],"total":61},"pictures":{"uri":"/users/195575/pictures","options":["GET","POST"],"total":1},"folders_root":{"uri":"/users/195575/folders/root","options":["GET"]},"teams":{"uri":"/users/195575/teams","options":["GET"],"total":1}},"interactions":{"follow":{"added":false,"added_time":null,"uri":"/users/105561138/following/195575","options":["GET","PUT","DELETE"]},"block":{"uri":"/me/block/195575","options":["PUT","DELETE"],"added":false,"added_time":null},"report":{"uri":"/users/195575/report","options":["POST"],"reason":["inappropriate + avatar","spammy","bad videos","creepy","not playing nice","impersonation","inappropriate + job post"]}}},"location_details":{"formatted_address":"Sweden","latitude":null,"longitude":null,"city":null,"state":null,"neighborhood":null,"sub_locality":null,"state_iso_code":null,"country":null,"country_iso_code":null},"skills":[],"available_for_hire":false,"can_work_remotely":false,"resource_key":"09a1089f005fa5924c94ec3cd495ec8ddd67b884","account":"basic","preferences":{"videos":{"privacy":null}}},"app":null,"play":{"status":"playable"},"status":"available","resource_key":"88d4a6ce576786d2f0a19f444f873f4fbc530d6f","upload":{"status":"complete","link":null,"upload_link":null,"form":null,"approach":null,"size":null,"redirect_url":null},"transcode":{"status":"complete"},"is_playable":true,"has_audio":false,"embed_presets":null}' + recorded_at: Fri, 27 Oct 2023 20:10:56 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/lib/video_info/providers/vimeo_spec.rb b/spec/lib/video_info/providers/vimeo_spec.rb index 15ae9813..f15ac230 100644 --- a/spec/lib/video_info/providers/vimeo_spec.rb +++ b/spec/lib/video_info/providers/vimeo_spec.rb @@ -336,5 +336,23 @@ its(:view_count) { should be nil } end end + + context "with video 7848846" do + subject { VideoInfo.new("https://vimeo.com/7848846") } + + its(:stats) { + if api_key + should eq({ + "plays" => nil, + }) + else + should eq({ + "plays" => nil, + "likes" => nil, + "comments" => nil + }) + end + } + end end end