--- http_interactions: - request: method: get uri: http://vk.com/videovk.com/video body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/1.5.0 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - '*/*' response: status: code: 404 message: Not Found headers: Server: - nginx/1.2.4 Date: - Tue, 22 Oct 2013 14:55:09 GMT Content-Type: - text/html Content-Length: - '397' Connection: - keep-alive body: encoding: UTF-8 string: | 404 Not Found http_version: recorded_at: Tue, 22 Oct 2013 14:55:09 GMT - request: method: get uri: http://vk.com/video39576223_108370515 body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/1.5.0 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - '*/*' response: status: code: 200 message: OK headers: Server: - nginx/1.2.4 Date: - Tue, 22 Oct 2013 14:56:59 GMT Content-Type: - text/html; charset=windows-1251 Content-Length: - '13748' Connection: - keep-alive X-Powered-By: - PHP/3.2868 Set-Cookie: - remixlang=0; expires=Sat, 18-Oct-2014 16:44:06 GMT; path=/; domain=.vk.com Pragma: - no-cache Cache-Control: - no-store body: encoding: ASCII-8BIT string: !binary |- PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg U3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv eGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6b2c9Imh0dHA6Ly9vZ3AubWUvbnMj IiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGh0dHAt ZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIgLz4K PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvaW1hZ2VzL2Zhdmlj b25uZXcuaWNvIiAvPgoKPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBl IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIiAv Pgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0i/fLuIMLH0NvC IMzOx8PAJiMzMzsmIzMzOyYjMzM7IM/w7vHy7iDu8uLg6yDh4Pjq6C4uLiIg Lz4KCjx0aXRsZT7fIPPy7vfq4CkpKSkpIHwgwsru7fLg6vLlPC90aXRsZT4K Cjxub3NjcmlwdD48bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50 PSIwOyBVUkw9L2JhZGJyb3dzZXIucGhwIj48L25vc2NyaXB0PgoKPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgdmsgPSB7CiAgYWRzX3Jv dGF0ZV9pbnRlcnZhbDogMTIwMDAwLAogIGFsOiBwYXJzZUludCgnNCcpIHx8 IDQsCiAgaWQ6IDAsCiAgaW50bmF0OiAnJyA/IHRydWUgOiBmYWxzZSwKICBo b3N0OiAndmsuY29tJywKICBsYW5nOiAwLAogIHJ0bDogcGFyc2VJbnQoJycp IHx8IDAsCiAgdmVyc2lvbjogMTQxMzQsCiAgc3REb21haW5zOiAzLAogIHpl cm86IGZhbHNlLAogIGNvbnRsZW46IDE2Mjg0LAogIGxvZ2luc2NoZW1lOiAn aHR0cHMnLAogIGlwX2g6ICdlZDI0ZDc2NGU3MDZmZDdkMTAnLAogIHZjX2g6 ICdiZDAyNzI0NzkxODliYTQ3ZjI1NGY4NGYxZTBlMTUxNCcsCiAgbmF2UHJl Zml4OiAnLycsCiAgZHQ6IHBhcnNlSW50KCcwJykgfHwgMCwKICBmczogcGFy c2VJbnQoJzExJykgfHwgMTEsCiAgdHM6IDEzODI0NTM4MTksCiAgcGQ6IDAs CiAgcGFkczogMSwKICB0aW1lOiBbMjAxMywgMTAsIDIyLCAxOCwgNTYsIDU5 XQp9Cgp3aW5kb3cubG9jRG9tYWluID0gdmsuaG9zdC5tYXRjaCgvW2EtekEt Wl0rXC5bYS16QS1aXStcLj8kLylbMF07CnZhciBfdWEgPSBuYXZpZ2F0b3Iu dXNlckFnZW50LnRvTG93ZXJDYXNlKCk7CmlmICgvb3BlcmEvaS50ZXN0KF91 YSkgfHwgIS9tc2llIDYvaS50ZXN0KF91YSkgfHwgZG9jdW1lbnQuZG9tYWlu ICE9IGxvY0RvbWFpbikgZG9jdW1lbnQuZG9tYWluID0gbG9jRG9tYWluOwp2 YXIgX19faHRlc3QgPSAobG9jYXRpb24udG9TdHJpbmcoKS5tYXRjaCgvIygu KikvKSB8fCB7fSlbMV0gfHwgJycsIF9fX3RvOwppZiAodmsuYWwgIT0gMSAm JiBfX19odGVzdC5sZW5ndGggJiYgX19faHRlc3Quc3Vic3RyKDAsIDEpID09 IHZrLm5hdlByZWZpeCkgewogIGlmICh2ay5hbCAhPSAzIHx8IHZrLm5hdlBy ZWZpeCAhPSAnIScpIHsKICAgIF9fX3RvID0gX19faHRlc3QucmVwbGFjZSgv XihcL3whKS8sICcnKTsKICAgIGlmIChfX190by5tYXRjaCgvXihbXlw/XSpc LnBocHxsb2dpbikoW15hLXowLTlcLl18JCkvKSkgX19fdG8gPSAnJzsKICAg IGxvY2F0aW9uLnJlcGxhY2UobG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsg bG9jYXRpb24uaG9zdCArICcvJyArIF9fX3RvKTsKICB9Cn0KCnZhciBTdGF0 aWNGaWxlcyA9IHsKICAnY29tbW9uLmpzJyA6IHt2OiAxMDk2fSwKICAnY29t bW9uLmNzcyc6IHt2OiA0MjV9LAogICdpZTYuY3NzJyAgIDoge3Y6IDI2fSwK ICAnaWU3LmNzcycgICA6IHt2OiAxOH0KICAsJ2xhbmcwXzAuanMnOnt2OjY1 MTR9LCd2aWRlby5jc3MnOnt2OjEwOX0sJ3ZpZGVvLmpzJzp7djoxMjd9LCdp bmRleGVyLmpzJzp7djoxOX0sJ3VpX2NvbnRyb2xzLmpzJzp7djoxNDd9LCd1 aV9jb250cm9scy5jc3MnOnt2OjQ3fSwndmlkZW92aWV3LmpzJzp7djoxOTR9 LCd2aWRlb3ZpZXcuY3NzJzp7djoxMTd9LCdwYWdlLmNzcyc6e3Y6NjI4fSwn cGFnZS5qcyc6e3Y6Nzg3fQp9Cjwvc2NyaXB0PgoKPGxpbmsgcmVsPSJzdHls ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL3N0MC52ay5t ZS9jc3MvYWwvY29tbW9uLmNzcz80MjUiIC8+CjwhLS1baWYgbHRlIElFIDZd PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+LyogPCFb Q0RBVEFbICovIEBpbXBvcnQgdXJsKGh0dHA6Ly9zdDAudmsubWUvY3NzL2Fs L2llNi5jc3M/MjYpOyAvKiBdXT4gKi88L3N0eWxlPjwhW2VuZGlmXS0tPgo8 IS0tW2lmIElFIDddPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNj cmVlbiI+LyogPCFbQ0RBVEFbICovIEBpbXBvcnQgdXJsKGh0dHA6Ly9zdDAu dmsubWUvY3NzL2FsL2llNy5jc3M/MTgpOyAvKiBdXT4gKi88L3N0eWxlPjwh W2VuZGlmXS0tPgo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNo ZWV0IiBocmVmPSJodHRwOi8vc3QwLnZrLm1lL2Nzcy9hbC92aWRlby5jc3M/ MTA5Ij48L2xpbms+PGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVz aGVldCIgaHJlZj0iaHR0cDovL3N0MC52ay5tZS9jc3MvdWlfY29udHJvbHMu Y3NzPzQ3Ij48L2xpbms+PGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5 bGVzaGVldCIgaHJlZj0iaHR0cDovL3N0MC52ay5tZS9jc3MvYWwvdmlkZW92 aWV3LmNzcz8xMTciPjwvbGluaz48bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs PSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vc3QwLnZrLm1lL2Nzcy9hbC9w YWdlLmNzcz82MjgiPjwvbGluaz4KPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxl IiBjb250ZW50PSLfIPPy7vfq4CkpKSkpIiAvPgo8bWV0YSBwcm9wZXJ0eT0i b2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9Iv3y7iDCx9DbwiDMzsfDwCYjMzM7 JiMzMzsmIzMzOyDP8O7x8u4g7vLi4Osg4eD46uguLi4iIC8+CjxtZXRhIHBy b3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ2aWRlbyI+CjxtZXRhIHByb3Bl cnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHA6Ly92ay5jb20vdmlkZW8zOTU3 NjIyM18xMDgzNzA1MTUiIC8+CjxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25h bWUiIGNvbnRlbnQ9IlZLIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2Ui IGNvbnRlbnQ9Imh0dHA6Ly92aWRlbzQzMy52a2FkcmUucnUvYXNzZXRzL3Ro dW1ibmFpbHMvODg2MTVjYTk4MTE5NjkwMy4zMjAudmsuanBnIiAvPgo8bWV0 YSBwcm9wZXJ0eT0ib2c6dmlkZW86ZHVyYXRpb24iIGNvbnRlbnQ9IjE4MyIg Lz4KCjxtZXRhIHByb3BlcnR5PSJvZzp2aWRlbyIgY29udGVudD0iaHR0cDov L3ZrLmNvbS92aWRlbz9hY3Q9Z2V0X3N3ZiZvaWQ9Mzk1NzYyMjMmdmlkPTEw ODM3MDUxNSZlbWJlZF9oYXNoPTE1MTg0ZGJkMDg1YzQ3YWYiIC8+CjxtZXRh IHByb3BlcnR5PSJvZzp2aWRlbzp0eXBlIiBjb250ZW50PSJhcHBsaWNhdGlv bi94LXNob2Nrd2F2ZS1mbGFzaCIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnZp ZGVvOndpZHRoIiBjb250ZW50PSI3MjAiIC8+CjxtZXRhIHByb3BlcnR5PSJv Zzp2aWRlbzpoZWlnaHQiIGNvbnRlbnQ9IjQxMCIgLz4KPHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2xvYWRlcl9uYXYxNDEzNF8w LmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg c3JjPSJodHRwOi8vc3QzLnZrLm1lL2pzL2FsL2NvbW1vbi5qcz8xMDk2XzMy Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj PSIvanMvbGFuZzBfMC5qcz82NTE0Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9 InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vc3QzLnZrLm1lL2pzL2Fs L3ZpZGVvLmpzPzEyNyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiIHNyYz0iaHR0cDovL3N0My52ay5tZS9qcy9hbC9pbmRleGVy LmpzPzE5Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw dCIgc3JjPSJodHRwOi8vc3QyLnZrLm1lL2pzL2xpYi91aV9jb250cm9scy5q cz8xNDciPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 IiBzcmM9Imh0dHA6Ly9zdDMudmsubWUvanMvYWwvdmlkZW92aWV3LmpzPzE5 NCI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy Yz0iaHR0cDovL3N0MS52ay5tZS9qcy9hbC9wYWdlLmpzPzc4NyI+PC9zY3Jp cHQ+Cgo8L2hlYWQ+Cgo8Ym9keSBvbnJlc2l6ZT0ib25Cb2R5UmVzaXplKCki IGNsYXNzPSJpc19ydGwgZm9udF9kZWZhdWx0IHBhZHMgIj4KICA8ZGl2IGlk PSJzeXN0ZW1fbXNnIiBjbGFzcz0iZml4ZWQiPjwvZGl2PgogIDxkaXYgaWQ9 InV0aWxzIj48L2Rpdj4KCiAgPGRpdiBpZD0ibGF5ZXJfYmciIGNsYXNzPSJm aXhlZCI+PC9kaXY+PGRpdiBpZD0ibGF5ZXJfd3JhcCIgY2xhc3M9InNjcm9s bF9maXhfd3JhcCBmaXhlZCI+PGRpdiBpZD0ibGF5ZXIiPjwvZGl2PjwvZGl2 PgogIDxkaXYgaWQ9ImJveF9sYXllcl9iZyIgY2xhc3M9ImZpeGVkIj48L2Rp dj48ZGl2IGlkPSJib3hfbGF5ZXJfd3JhcCIgY2xhc3M9InNjcm9sbF9maXhf d3JhcCBmaXhlZCI+PGRpdiBpZD0iYm94X2xheWVyIj48ZGl2IGlkPSJib3hf bG9hZGVyIj48ZGl2IGNsYXNzPSJsb2FkZXIiPjwvZGl2PjxkaXYgY2xhc3M9 ImJhY2siPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgoKICA8ZGl2IGlkPSJz dGxfbGVmdCI+PC9kaXY+PGRpdiBpZD0ic3RsX3NpZGUiPjwvZGl2PgoKICA8 c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9tU3RhcnRlZCgpOzwv c2NyaXB0PgoKICA8ZGl2IGNsYXNzPSJzY3JvbGxfZml4X3dyYXAiIGlkPSJw YWdlX3dyYXAiPjxkaXYgaWQ9InJlZ19iYXIiIGNsYXNzPSJ0b3BfaW5mb193 cmFwIGZpeGVkIj4KICA8ZGl2IGNsYXNzPSJzY3JvbGxfZml4Ij4KICAgIDxk aXYgaWQ9InJlZ19iYXJfY29udGVudCI+CiAgICAgIM/w6PHu5eTo7f/p8uXx /Cwg9/Lu4fsg4vHl4+TgIO7x8uDi4PL88f8g4iDq7u3y4Ory5SDxIOTw8+f8 /+zoIOgg4evo5+ro7OgKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uX2JsdWUi IGlkPSJyZWdfYmFyX2J1dHRvbiI+PGEgY2xhc3M9ImJ1dHRvbl9saW5rIiBo cmVmPSIvam9pbiIgb25jbGljaz0icmV0dXJuICFzaG93Qm94KCdqb2luLnBo cCcsIHthY3Q6ICdib3gnLCBmcm9tOiBuYXYuc3RyTG9jfSwge30sIGV2ZW50 KSI+PGJ1dHRvbiBpZD0icmVnX2Jhcl9idG4iPjxzcGFuIGlkPSJyZWdfYmFy X3dpdGhfYXJyIj7H4PDl4+jx8vDo8O7i4PL88f88L3NwYW4+PC9idXR0b24+ PC9hPjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2Pjxk aXYgY2xhc3M9InNjcm9sbF9maXgiPgogIDxkaXYgaWQ9InBhZ2VfbGF5b3V0 IiBzdHlsZT0id2lkdGg6IDc5MXB4OyI+CiAgICA8ZGl2IGlkPSJwYWdlX2hl YWRlciIgY2xhc3M9InBfaGVhZCBwX2hlYWRfbDAiPgogICAgICA8ZGl2IGNs YXNzPSJiYWNrIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVmdCI+PC9k aXY+CiAgICAgIDxkaXYgY2xhc3M9InJpZ2h0Ij48L2Rpdj4KICAgICAgPGRp diBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBpZD0idG9wX25hdiIg Y2xhc3M9ImhlYWRfbmF2Ij4KICA8ZGl2IGlkPSJ0b3BfbG9nb19kb3duIiBj bGFzcz0iZmxfbCI+PC9kaXY+CiAgPGEgaWQ9InRvcF9ob21lX2xpbmsiIGNs YXNzPSJ0b3BfaG9tZV9saW5rIGZsX2wiIGhyZWY9Ii8iIG9ubW91c2Vkb3du PSJhZGRDbGFzcygndG9wX2xvZ29fZG93bicsJ3RsZF9kJyk7IiBvbmNsaWNr PSJyZXR1cm4gbmF2LmdvKHRoaXMsIGV2ZW50KTsiPjwvYT4KICA8ZGl2IGlk PSJ0b3BfbGlua3MiPgogICAgPGRpdiBjbGFzcz0iZmxfciIgaWQ9InRvcF9t ZW51X3dyYXAiIHN0eWxlPSIiPgogICAgICA8YSBpZD0idG9wX3JlZ19saW5r IiBjbGFzcz0iZmxfciB0b3BfbmF2X2xpbmsiIGhyZWY9Ii9qb2luIiBzdHls ZT0iIiBvbmNsaWNrPSJyZXR1cm4gIXNob3dCb3goJ2pvaW4ucGhwJywge2Fj dDogJ2JveCcsIGZyb206IG5hdi5zdHJMb2N9LCB7fSwgZXZlbnQpIiBvbm1v dXNlZG93bj0idG5BY3RpdmUodGhpcykiPvDl4+jx8vDg9uj/PC9hPgogICAg ICA8YSBpZD0idG9wX3N3aXRjaF9sYW5nIiBjbGFzcz0iZmxfciB0b3BfbmF2 X2xpbmsiICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIG9uY2xpY2s9ImFqYXgu cG9zdCgnYWxfaW5kZXgucGhwJywge2FjdDogJ2NoYW5nZV9sYW5nJywgbGFu Z19pZDogMywgaGFzaDogJyd9KTsiIG9ubW91c2Vkb3duPSJ0bkFjdGl2ZSh0 aGlzKSI+U3dpdGNoIHRvIEVuZ2xpc2g8L2E+CiAgICA8L2Rpdj4KICAgIDxh IGNsYXNzPSJmbF9sIHRvcF9uYXZfbGluayIgaHJlZj0iIiBpZD0idG9wX2Jh Y2tfbGluayIgb25jbGljaz0icmV0dXJuIG5hdi5nbyh0aGlzLCBldmVudCwg e2JhY2s6IHRydWV9KSIgb25tb3VzZWRvd249InRuQWN0aXZlKHRoaXMpIj48 L2E+CiAgPC9kaXY+CjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoK ICAgIDxkaXYgaWQ9InNpZGVfYmFyIiBjbGFzcz0iZmxfbCIgc3R5bGU9IiI+ CiAgICAgIDxkaXYgaWQ9InF1aWNrX2xvZ2luIj4KICA8Zm9ybSBtZXRob2Q9 IlBPU1QiIG5hbWU9ImxvZ2luIiBpZD0icXVpY2tfbG9naW5fZm9ybSIgYWN0 aW9uPSJodHRwczovL2xvZ2luLnZrLmNvbS8/YWN0PWxvZ2luIiBvbnN1Ym1p dD0iaWYgKHZrbG9naW4pIHtyZXR1cm4gdHJ1ZX0gZWxzZSB7cXVpY2tfbG9n aW4oKTtyZXR1cm4gZmFsc2U7fSI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVu IiBuYW1lPSJhY3QiIHZhbHVlPSJsb2dpbiIgLz4KICAgIDxpbnB1dCB0eXBl PSJoaWRkZW4iIG5hbWU9InJvbGUiIHZhbHVlPSJhbF9mcmFtZSIgLz4KICAg IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV4cGlyZSIgaWQ9InF1aWNr X2V4cGlyZV9pbnB1dCIgdmFsdWU9IiIgLz4KICAgIDxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9ImNhcHRjaGFfc2lkIiBpZD0icXVpY2tfY2FwdGNoYV9z aWQiIHZhbHVlPSIiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJjYXB0Y2hhX2tleSIgaWQ9InF1aWNrX2NhcHRjaGFfa2V5IiB2YWx1ZT0i IiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX29yaWdpbiIg dmFsdWU9Imh0dHA6Ly92ay5jb20iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlk ZGVuIiBuYW1lPSJpcF9oIiB2YWx1ZT0iZWQyNGQ3NjRlNzA2ZmQ3ZDEwIiAv PgogICAgPGRpdiBjbGFzcz0ibGFiZWwiPtLl6+X07u0g6OvoIGVtYWlsPC9k aXY+CiAgICA8ZGl2IGNsYXNzPSJsYWJlbGVkIj48aW5wdXQgdHlwZT0idGV4 dCIgbmFtZT0iZW1haWwiIGNsYXNzPSJ0ZXh0IiBpZD0icXVpY2tfZW1haWwi IC8+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJsYWJlbCI+z+Dw7uv8PC9kaXY+ CiAgICA8ZGl2IGNsYXNzPSJsYWJlbGVkIj48aW5wdXQgdHlwZT0icGFzc3dv cmQiIG5hbWU9InBhc3MiIGNsYXNzPSJ0ZXh0IiBpZD0icXVpY2tfcGFzcyIg b25rZXl1cD0idG9nZ2xlKCdxdWlja19leHBpcmUnLCAhIXRoaXMudmFsdWUp O3RvZ2dsZSgncXVpY2tfZm9yZ290JywgIXRoaXMudmFsdWUpIiAvPjwvZGl2 PgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgLz4K ICA8L2Zvcm0+CiAgPGRpdiBjbGFzcz0iYnV0dG9uX2JsdWUgYnV0dG9uX3dp ZGUgYnV0dG9uX2JpZyIgaWQ9InF1aWNrX2F1dGhfYnV0dG9uIj48YnV0dG9u IGlkPSJxdWlja19sb2dpbl9idXR0b24iPsLu6fLoPC9idXR0b24+PC9kaXY+ CiAgPGRpdiBjbGFzcz0iYnV0dG9uX2JsdWUgYnV0dG9uX3dpZGUgYnV0dG9u X2JpZyIgaWQ9InF1aWNrX3JlZ19idXR0b24iIHN0eWxlPSIiPjxidXR0b24g b25jbGljaz0idG9wLnNob3dCb3goJ2pvaW4ucGhwJywge2FjdDogJ2JveCcs IGZyb206IG5hdi5zdHJMb2N9KSI+0OXj6PHy8OD26P88L2J1dHRvbj48L2Rp dj4KICA8ZGl2IGNsYXNzPSJjbGVhciBmb3Jnb3QiPjxhIGlkPSJxdWlja19m b3Jnb3QiIGhyZWY9Ii9yZXN0b3JlIiB0YXJnZXQ9Il90b3AiPsfg4fvr6CDv 4PDu6/w/PC9hPjxkaXYgY2xhc3M9ImNoZWNrYm94IHRhX2wiIGlkPSJxdWlj a19leHBpcmUiIG9uY2xpY2s9ImNoZWNrYm94KHRoaXMpO2dlKCdxdWlja19l eHBpcmVfaW5wdXQnKS52YWx1ZT1pc0NoZWNrZWQodGhpcyk/MTonJzsiPjxk aXY+PC9kaXY+1/Pm7ukg6u7s7/z+8uXwPC9kaXY+PC9kaXY+CjwvZGl2Pgog ICAgPC9kaXY+CgogICAgPGRpdiBpZD0icGFnZV9ib2R5IiBjbGFzcz0iZmxf ciIgc3R5bGU9IndpZHRoOiA2MzFweDsiPgogICAgICA8ZGl2IGlkPSJoZWFk ZXJfd3JhcDIiPgogICAgICAgIDxkaXYgaWQ9ImhlYWRlcl93cmFwMSI+CiAg ICAgICAgICA8ZGl2IGlkPSJoZWFkZXIiIHN0eWxlPSJkaXNwbGF5OiBub25l Ij4KICAgICAgICAgICAgPGgxIGlkPSJ0aXRsZSI+PC9oMT4KICAgICAgICAg IDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRp diBpZD0id3JhcF9iZXR3ZWVuIj48L2Rpdj4KICAgICAgPGRpdiBpZD0id3Jh cDMiPjxkaXYgaWQ9IndyYXAyIj4KICA8ZGl2IGlkPSJ3cmFwMSI+CiAgICA8 ZGl2IGlkPSJjb250ZW50Ij48ZGl2IGl0ZW1wcm9wPSJ2aWRlbyIgaXRlbXNj b3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9WaWRlb09iamVjdCI+ CiAgPGxpbmsgaXRlbXByb3A9InVybCIgaHJlZj0iaHR0cDovL3ZrLmNvbS92 aWRlbzM5NTc2MjIzXzEwODM3MDUxNSIgLz4KICA8bWV0YSBpdGVtcHJvcD0i bmFtZSIgY29udGVudD0i3yDz8u736uApKSkpKSIgLz4KICA8bWV0YSBpdGVt cHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Iv3y7iDCx9DbwiDMzsfDwCYj MzM7JiMzMzsmIzMzOyDP8O7x8u4g7vLi4Osg4eD46uguLi4iIC8+CiAgPG1l dGEgaXRlbXByb3A9ImR1cmF0aW9uIiBjb250ZW50PSJQVDNNM1MiIC8+CiAg PGxpbmsgaXRlbXByb3A9InRodW1ibmFpbFVybCIgaHJlZj0iaHR0cDovL3Zp ZGVvNDMzLnZrYWRyZS5ydS9hc3NldHMvdGh1bWJuYWlscy84ODYxNWNhOTgx MTk2OTAzLjQ2MC52ay5qcGciIC8+CiAgPHNwYW4gaXRlbXByb3A9InRodW1i bmFpbCIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9J bWFnZU9iamVjdCI+CiAgICA8bGluayBpdGVtcHJvcD0idXJsIiBocmVmPSJo dHRwOi8vdmlkZW80MzMudmthZHJlLnJ1L2Fzc2V0cy90aHVtYm5haWxzLzg4 NjE1Y2E5ODExOTY5MDMuMzIwLnZrLmpwZyIgLz4KICAgIDxtZXRhIGl0ZW1w cm9wPSJ3aWR0aCIgY29udGVudD0iMzIwIiAvPgogICAgPG1ldGEgaXRlbXBy b3A9ImhlaWdodCIgY29udGVudD0iMjQwIiAvPgogIDwvc3Bhbj4KPC9kaXY+ PGRpdiBjbGFzcz0idF9iYXIgY2xlYXJfZml4IiBpZD0idmlkZW9fdGFicyI+ CiAgPHVsIGNsYXNzPSJ0MCI+PGxpIGNsYXNzPSIgYWN0aXZlX2xpbmsiIGlk PSJ2aWRlb190YWJfYWxsIj4KICA8YSBocmVmPSIvdmlkZW9zMzk1NzYyMjMi IG9uY2xpY2s9InJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiIG9ubW91c2Vk b3duPSJyZXR1cm4gbmF2LmNoYW5nZSh7c2VjdGlvbjogJ2FsbCd9KTsiPgog ICAgPGIgY2xhc3M9InRsMSI+PGI+PC9iPjwvYj4KICAgIDxiIGNsYXNzPSJ0 bDIiPjwvYj4KICAgIDxiIGNsYXNzPSJ0YWJfd29yZCI+PG5vYnI+wvHlIOLo 5OXu5+Dv6PHoPC9ub2JyPjwvYj4KICA8L2E+CjwvbGk+PGxpIGNsYXNzPSJ2 aWRlb190YWJfaGlkZGVuIiBpZD0idmlkZW9fdGFiX2hpZGRlbiI+CiAgPGEg aHJlZj0iL3ZpZGVvczM5NTc2MjIzIiBvbmNsaWNrPSJyZXR1cm4gY2hlY2tF dmVudChldmVudCk7IiBvbm1vdXNlZG93bj0icmV0dXJuIGZhbHNlOyI+CiAg ICA8YiBjbGFzcz0idGwxIj48Yj48L2I+PC9iPgogICAgPGIgY2xhc3M9InRs MiI+PC9iPgogICAgPGIgY2xhc3M9InRhYl93b3JkIj48bm9icj48L25vYnI+ PC9iPgogIDwvYT4KPC9saT48bGkgY2xhc3M9InRfciI+PGRpdiBpZD0idmlk ZW9fdGFic19wcm9ncmVzcyIgY2xhc3M9InByb2dyZXNzIj48L2Rpdj48L2xp PjwvdWw+CjwvZGl2Pgo8ZGl2IGlkPSJ2aWRlb19jb250ZW50IiBjbGFzcz0i dmlkZW9fYWxidW1zX2hpZGRlbiB2aWRlb19ub19hbGJ1bXMiPgogIDxkaXYg aWQ9InZpZGVvX3NlYXJjaCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBjbGFz cz0idmlkZW9fc2VhcmNoIHRvcF9zZWFyY2hfd3JhcCBub192aWRlb191cGxv YWQiPgogICAgCiAgICA8ZGl2IGNsYXNzPSJ2aWRlb19sb2FkaW5nX2NvbnQi PgogICAgICA8ZGl2IGNsYXNzPSJ2aWRlb19sb2FkaW5nIj48L2Rpdj4KICAg IDwvZGl2PgogICAgPGRpdiBpZD0idmlkZW9fcmVzZXRfc2VhcmNoIiBjbGFz cz0idmlkZW9fcmVzZXRfc2VhcmNoIiBvbm1vdXNlb3Zlcj0ic2V0U3R5bGUo dGhpcywge29wYWNpdHk6IDF9KTsiIG9ubW91c2VvdXQ9InNldFN0eWxlKHRo aXMsIHtvcGFjaXR5OiAwLjZ9KTsiIG9uY2xpY2s9IlZpZGVvLnNlYXJjaFZp ZGVvcyhmYWxzZSk7Ij48L2Rpdj4KICAgIDxkaXYgaWQ9InZpZGVvX3NlYXJj aF9jb250cm9scyI+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVvX3NlYXJjaF9j b250Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlb19jaGVja2JveCBjaGVj a2JveCBmbF9sIiBpZD0idmlkZW9faGRfb3B0aW9uIiBvbmNsaWNrPSJjaGVj a2JveCh0aGlzKTsgVmlkZW8udG9nZ2xlSEQoMSk7Ij48ZGl2PjwvZGl2PsL7 8e7q7uUg6uD35fHy4u48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i dmlkZW9fY2hlY2tib3ggY2hlY2tib3ggb24gZmxfbCIgaWQ9InZpZGVvX2Fk dWx0X29wdGlvbiIgb25jbGljaz0iY2hlY2tib3godGhpcyk7IFZpZGVvLnRv Z2dsZUFkdWx0KCk7Ij48ZGl2PjwvZGl2PsHl5+7v4PHt++kg7+7o8eo8L2Rp dj4KICAgICAgICA8YSBpZD0idmlkZW9fbGVuZ3RoXzAiIGNsYXNzPSJ2aWRl b19sZW5ndGggdmlkZW9fbGVuZ3RoX3NlbCBmbF9yIiBvbmNsaWNrPSJyZXR1 cm4gVmlkZW8udG9nZ2xlTGVuZ3RoKHRoaXMsIDApOyI+y/7h++U8L2E+CiAg ICAgICAgPGEgaWQ9InZpZGVvX2xlbmd0aF8xIiBjbGFzcz0idmlkZW9fbGVu Z3RoIGZsX3IiIG9uY2xpY2s9InJldHVybiBWaWRlby50b2dnbGVMZW5ndGgo dGhpcywgMSk7Ij7K7vDu8uro5TwvYT4KICAgICAgICA8YSBpZD0idmlkZW9f bGVuZ3RoXzIiIGNsYXNzPSJ2aWRlb19sZW5ndGggZmxfciIgb25jbGljaz0i cmV0dXJuIFZpZGVvLnRvZ2dsZUxlbmd0aCh0aGlzLCAyKTsiPsTr6O3t++U8 L2E+CgogICAgICAgIDwvZGl2PgogICAgICAgIDxiciBjbGFzcz0iY2xlYXIi IC8+CiAgICA8L2Rpdj4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idl9z ZWFyY2giIG9ua2V5ZG93bj0iVmlkZW8udXBkYXRlTGlzdChldmVudCwgdGhp cyk7IiBvbnBhc3RlPSJWaWRlby51cGRhdGVMaXN0KGV2ZW50LCB0aGlzKTsi IG9uY3V0PSJWaWRlby51cGRhdGVMaXN0KGV2ZW50LCB0aGlzKTsiIGNsYXNz PSJ0ZXh0IHZpZGVvX3NlYXJjaF9pbnB1dCB0b3Bfc2VhcmNoX2lucCIgcGxh Y2Vob2xkZXI9Is/u6PHqIO/uIOLo5OXu5+Dv6PH/7CIgb25mb2N1cz0iYWRk Q2xhc3MoY3VyLnZMaXN0LCAnc2VhcmNoX2ZvY3VzJyk7IiBvbmJsdXI9InJl bW92ZUNsYXNzKGN1ci52TGlzdCwgJ3NlYXJjaF9mb2N1cycpOyIgLz4KICA8 L2Rpdj4KICA8ZGl2IGlkPSJ2aWRlb19hbGJ1bXNfbGlzdCIgc3R5bGU9IiIg Y2xhc3M9IiI+CgogICAgPGRpdiBjbGFzcz0ic3VtbWFyeV93cmFwIj4KICAg ICAgPGRpdiBjbGFzcz0iY2xlYXJfZml4Ij4KICAgICAgICA8YSBpZD0idmlk ZW9fY3JlYXRlX2FsYnVtIiBjbGFzcz0iZmxfciIgb25jbGljaz0iVmlkZW8u Y3JlYXRlQWxidW0oKSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij7N7uL76SDg 6/zh7uw8L2E+CiAgICAgICAgPGRpdiBpZD0idmlkZW9fYWxidW1zX3N1bW1h cnkiIGNsYXNzPSJzdW1tYXJ5ICI+0yDA6+Xq8eDt5PDgIDAg4Ov84e7s7uI8 L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9 InZpZGVvX2FsYnVtc19jb250IiBpZD0idmlkZW9fYWxidW1zX2NvbnQiPgog ICAgICAKICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InN1bW1h cnlfd3JhcCB2aWRlb19tYWluX3N1bW1hcnkiPgogICAgPGRpdiBjbGFzcz0i Y2xlYXJfZml4Ij4KICAgICAgPGEgaWQ9InZpZGVvX2NvbW1lbnRzX2xpbmsi IHN0eWxlPSIiIGhyZWY9Ii92aWRlb3MzOTU3NjIyMz9zZWN0aW9uPWNvbW1l bnRzIiBjbGFzcz0iZmxfciIgb25jbGljaz0icmV0dXJuIG5hdi5jaGFuZ2Uo e3NlY3Rpb246ICdjb21tZW50cyd9KTsiPs7h5+7wIOru7Ozl7fLg8Ojl4jwv YT4KICAgICAgPGRpdiBpZD0idmlkZW9fc3VtbWFyeSIgY2xhc3M9InN1bW1h cnkgZmxfbCI+NSDi6OTl7ufg7+jx5ek8L2Rpdj4KICAgICAgCiAgICA8L2Rp dj4KICA8L2Rpdj4KICA8ZGl2IGlkPSJ2aWRlb19saXN0IiBjbGFzcz0idmlk ZW9fbGlzdCI+CiAgICA8ZGl2IGlkPSJ2aWRlb19yb3dzIiBjbGFzcz0iY2xl YXJfYWxsICI+PGRpdiBpZD0idmlkZW9fY29udDM5NTc2MjIzXzE2NjMxNTU0 MyIgY2xhc3M9InZpZGVvX3Jvd19jb250Ij48ZGl2IGNsYXNzPSJ2aWRlb19y b3dfaW5uZXJfY29udCI+PGEgaHJlZj0iL3ZpZGVvMzk1NzYyMjNfMTY2MzE1 NTQzIiBjbGFzcz0idmlkZW9fcm93X3JlbGF0aXZlIiBpZD0idmlkZW9fcm93 Mzk1NzYyMjNfMTY2MzE1NTQzIiBvbm1vdXNlb3Zlcj0iVmlkZW8ucm93T3Zl cih0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLnJvd091dCh0aGlzKSIgb25j bGljaz0iaWYgKGN1ci5jYW5jZWxDbGljaykgcmV0dXJuIChjdXIuY2FuY2Vs Q2xpY2sgPSBmYWxzZSk7IHJldHVybiBWaWRlby5zaG93KGV2ZW50LCAnMzk1 NzYyMjNfMTY2MzE1NTQzJywge30sIHRoaXMpOyI+CiAgICAKICAgIDxkaXYg Y2xhc3M9InZpZGVvX3Jvd19pbmZvX2xpbmUiPjxkaXYgY2xhc3M9InZpZGVv X3Jhd19pbmZvX25hbWUiPtDl6uvg7OAgJnF1b3Q7zOXt8u7xJnF1b3Q7ICjv 8Ojq7uspPC9kaXY+PGRpdiBjbGFzcz0idmlkZW9fcm93X2R1cmF0aW9uIj4w OjI5PC9kaXY+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaW5m b19wbGF5Ij48L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0idmlkZW9fcm93 X2NvbnRyb2xzIj4KICAgICAgPGRpdiBjbGFzcz0idmlkZW9fcm93X2ljb25f ZWRpdCBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0aXZhdGUodGhpcyk7 IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRoaXMpOyIgb25jbGlj az0icmV0dXJuIHZpZGVvdmlldy5zaG93RWRpdEJveCgxNjYzMTU1NDMsIDM5 NTc2MjIzLCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaWNvbiI+ PC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVvX3Jvd19pY29u X2RlbGV0ZSBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0aXZhdGUodGhp cyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRoaXMpOyIgb25j bGljaz0icmV0dXJuIFZpZGVvLm9uRGVsZXRlQ2xpY2soMTY2MzE1NTQzLCAz OTU3NjIyMywgJ19hMGEzNmI2Y2EzYjI1MDBkYWUnLCB0aGlzLCBldmVudCk7 Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaWNvbiI+PC9kaXY+PC9kaXY+CiAg ICAgIDxiciBjbGFzcz0iY2xlYXIiIC8+CiAgICA8L2Rpdj4KICAgIDxkaXYg Y2xhc3M9InZpZGVvX2ltYWdlX2RpdiIgc3R5bGU9ImJhY2tncm91bmQtaW1h Z2U6IHVybCgnaHR0cDovL3ZpZGVvNDQ4LnZrYWRyZS5ydS9hc3NldHMvdGh1 bWJuYWlscy8zZWRhYmZjNTc3MDMxNTgwLjMyMC52ay5qcGcnKTsiPjwvZGl2 PgogIDwvYT48L2Rpdj4KPC9kaXY+PGRpdiBpZD0idmlkZW9fY29udDM5NTc2 MjIzXzE2NTYwNzQ0NSIgY2xhc3M9InZpZGVvX3Jvd19jb250Ij48ZGl2IGNs YXNzPSJ2aWRlb19yb3dfaW5uZXJfY29udCI+PGEgaHJlZj0iL3ZpZGVvMzk1 NzYyMjNfMTY1NjA3NDQ1IiBjbGFzcz0idmlkZW9fcm93X3JlbGF0aXZlIiBp ZD0idmlkZW9fcm93Mzk1NzYyMjNfMTY1NjA3NDQ1IiBvbm1vdXNlb3Zlcj0i VmlkZW8ucm93T3Zlcih0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLnJvd091 dCh0aGlzKSIgb25jbGljaz0iaWYgKGN1ci5jYW5jZWxDbGljaykgcmV0dXJu IChjdXIuY2FuY2VsQ2xpY2sgPSBmYWxzZSk7IHJldHVybiBWaWRlby5zaG93 KGV2ZW50LCAnMzk1NzYyMjNfMTY1NjA3NDQ1Jywge30sIHRoaXMpOyI+CiAg ICAKICAgIDxkaXYgY2xhc3M9InZpZGVvX3Jvd19pbmZvX2xpbmUiPjxkaXYg Y2xhc3M9InZpZGVvX3Jhd19pbmZvX25hbWUiPvUv9CAmcXVvdDvR5ezl6e3u 5SDk5evuJnF1b3Q7PC9kaXY+PGRpdiBjbGFzcz0idmlkZW9fcm93X2R1cmF0 aW9uIj4yOjQwPC9kaXY+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ2aWRlb19y b3dfaW5mb19wbGF5Ij48L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0idmlk ZW9fcm93X2NvbnRyb2xzIj4KICAgICAgPGRpdiBjbGFzcz0idmlkZW9fcm93 X2ljb25fZWRpdCBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0aXZhdGUo dGhpcyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRoaXMpOyIg b25jbGljaz0icmV0dXJuIHZpZGVvdmlldy5zaG93RWRpdEJveCgxNjU2MDc0 NDUsIDM5NTc2MjIzLCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3df aWNvbiI+PC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVvX3Jv d19pY29uX2RlbGV0ZSBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0aXZh dGUodGhpcyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRoaXMp OyIgb25jbGljaz0icmV0dXJuIFZpZGVvLm9uRGVsZXRlQ2xpY2soMTY1NjA3 NDQ1LCAzOTU3NjIyMywgJ185MzQ5ZjFiNDUwMTRmNjc0ZGUnLCB0aGlzLCBl dmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaWNvbiI+PC9kaXY+PC9k aXY+CiAgICAgIDxiciBjbGFzcz0iY2xlYXIiIC8+CiAgICA8L2Rpdj4KICAg IDxkaXYgY2xhc3M9InZpZGVvX2ltYWdlX2RpdiIgc3R5bGU9ImJhY2tncm91 bmQtaW1hZ2U6IHVybCgnaHR0cDovL2NzMTI5NDcudmsubWUvdTI3MDkxNDgv dmlkZW8vbF83Y2FlYjE1ZS5qcGcnKTsiPjwvZGl2PgogIDwvYT48L2Rpdj4K PC9kaXY+PGRpdiBpZD0idmlkZW9fY29udDM5NTc2MjIzXzE2NTU1Mzc2NiIg Y2xhc3M9InZpZGVvX3Jvd19jb250Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3df aW5uZXJfY29udCI+PGEgaHJlZj0iL3ZpZGVvMzk1NzYyMjNfMTY1NTUzNzY2 IiBjbGFzcz0idmlkZW9fcm93X3JlbGF0aXZlIiBpZD0idmlkZW9fcm93Mzk1 NzYyMjNfMTY1NTUzNzY2IiBvbm1vdXNlb3Zlcj0iVmlkZW8ucm93T3Zlcih0 aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLnJvd091dCh0aGlzKSIgb25jbGlj az0iaWYgKGN1ci5jYW5jZWxDbGljaykgcmV0dXJuIChjdXIuY2FuY2VsQ2xp Y2sgPSBmYWxzZSk7IHJldHVybiBWaWRlby5zaG93KGV2ZW50LCAnMzk1NzYy MjNfMTY1NTUzNzY2Jywge30sIHRoaXMpOyI+CiAgICAKICAgIDxkaXYgY2xh c3M9InZpZGVvX3Jvd19pbmZvX2xpbmUiPjxkaXYgY2xhc3M9InZpZGVvX3Jh d19pbmZvX25hbWUiPtHo7O/x7u37IC8gVGhlIFNpbXBzb25zIDI0IPHl5+7t IDE3IPHl8Oj/PC9kaXY+PGRpdiBjbGFzcz0idmlkZW9fcm93X2R1cmF0aW9u Ij4yMTo1MjwvZGl2PjwvZGl2PgogICAgPGRpdiBjbGFzcz0idmlkZW9fcm93 X2luZm9fcGxheSI+PC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InZpZGVv X3Jvd19jb250cm9scyI+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVvX3Jvd19p Y29uX2VkaXQgZmxfbCIgb25tb3VzZW92ZXI9IlZpZGVvLmFjdGl2YXRlKHRo aXMpOyIgb25tb3VzZW91dD0iVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTsiIG9u Y2xpY2s9InJldHVybiB2aWRlb3ZpZXcuc2hvd0VkaXRCb3goMTY1NTUzNzY2 LCAzOTU3NjIyMywgZXZlbnQpOyI+PGRpdiBjbGFzcz0idmlkZW9fcm93X2lj b24iPjwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWRlb19yb3df aWNvbl9kZWxldGUgZmxfbCIgb25tb3VzZW92ZXI9IlZpZGVvLmFjdGl2YXRl KHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTsi IG9uY2xpY2s9InJldHVybiBWaWRlby5vbkRlbGV0ZUNsaWNrKDE2NTU1Mzc2 NiwgMzk1NzYyMjMsICdfZmM5ZjBmOGZjMTRhNjMyOTQyJywgdGhpcywgZXZl bnQpOyI+PGRpdiBjbGFzcz0idmlkZW9fcm93X2ljb24iPjwvZGl2PjwvZGl2 PgogICAgICA8YnIgY2xhc3M9ImNsZWFyIiAvPgogICAgPC9kaXY+CiAgICA8 ZGl2IGNsYXNzPSJ2aWRlb19pbWFnZV9kaXYiIHN0eWxlPSJiYWNrZ3JvdW5k LWltYWdlOiB1cmwoJ2h0dHA6Ly9jczUyNjQwNC52ay5tZS91ODYzMzIwNzYv dmlkZW8vbF9iMDAxYjdlMy5qcGcnKTsiPjwvZGl2PgogIDwvYT48L2Rpdj4K PC9kaXY+PGRpdiBpZD0idmlkZW9fY29udDM5NTc2MjIzXzE2MTU5ODU0NCIg Y2xhc3M9InZpZGVvX3Jvd19jb250Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3df aW5uZXJfY29udCI+PGEgaHJlZj0iL3ZpZGVvMzk1NzYyMjNfMTYxNTk4NTQ0 IiBjbGFzcz0idmlkZW9fcm93X3JlbGF0aXZlIiBpZD0idmlkZW9fcm93Mzk1 NzYyMjNfMTYxNTk4NTQ0IiBvbm1vdXNlb3Zlcj0iVmlkZW8ucm93T3Zlcih0 aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLnJvd091dCh0aGlzKSIgb25jbGlj az0iaWYgKGN1ci5jYW5jZWxDbGljaykgcmV0dXJuIChjdXIuY2FuY2VsQ2xp Y2sgPSBmYWxzZSk7IHJldHVybiBWaWRlby5zaG93KGV2ZW50LCAnMzk1NzYy MjNfMTYxNTk4NTQ0Jywge30sIHRoaXMpOyI+CiAgICAKICAgIDxkaXYgY2xh c3M9InZpZGVvX3Jvd19pbmZvX2xpbmUiPjxkaXYgY2xhc3M9InZpZGVvX3Jh d19pbmZvX25hbWUiPkhhcnJ5IFBhcnRyaWRnZSAtIFNreXJpbSAo8PPx8erg /yDu5+Lz9+rgKTwvZGl2PjxkaXYgY2xhc3M9InZpZGVvX3Jvd19kdXJhdGlv biI+MToyNTwvZGl2PjwvZGl2PgogICAgPGRpdiBjbGFzcz0idmlkZW9fcm93 X2luZm9fcGxheSI+PC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InZpZGVv X3Jvd19jb250cm9scyI+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVvX3Jvd19p Y29uX2VkaXQgZmxfbCIgb25tb3VzZW92ZXI9IlZpZGVvLmFjdGl2YXRlKHRo aXMpOyIgb25tb3VzZW91dD0iVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTsiIG9u Y2xpY2s9InJldHVybiB2aWRlb3ZpZXcuc2hvd0VkaXRCb3goMTYxNTk4NTQ0 LCAzOTU3NjIyMywgZXZlbnQpOyI+PGRpdiBjbGFzcz0idmlkZW9fcm93X2lj b24iPjwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWRlb19yb3df aWNvbl9kZWxldGUgZmxfbCIgb25tb3VzZW92ZXI9IlZpZGVvLmFjdGl2YXRl KHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTsi IG9uY2xpY2s9InJldHVybiBWaWRlby5vbkRlbGV0ZUNsaWNrKDE2MTU5ODU0 NCwgMzk1NzYyMjMsICdfN2NjMTU0MjI2ZWYxMjU4MDYyJywgdGhpcywgZXZl bnQpOyI+PGRpdiBjbGFzcz0idmlkZW9fcm93X2ljb24iPjwvZGl2PjwvZGl2 PgogICAgICA8YnIgY2xhc3M9ImNsZWFyIiAvPgogICAgPC9kaXY+CiAgICA8 ZGl2IGNsYXNzPSJ2aWRlb19pbWFnZV9kaXYiIHN0eWxlPSJiYWNrZ3JvdW5k LWltYWdlOiB1cmwoJ2h0dHA6Ly9jczQ2NDkudmsubWUvdTU1MTg0MDAvdmlk ZW8vbF82ZWQ4NWRlMC5qcGcnKTsiPjwvZGl2PgogIDwvYT48L2Rpdj4KPC9k aXY+PGRpdiBpZD0idmlkZW9fY29udDM5NTc2MjIzXzEwODM3MDUxNSIgY2xh c3M9InZpZGVvX3Jvd19jb250Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaW5u ZXJfY29udCI+PGEgaHJlZj0iL3ZpZGVvMzk1NzYyMjNfMTA4MzcwNTE1IiBj bGFzcz0idmlkZW9fcm93X3JlbGF0aXZlIiBpZD0idmlkZW9fcm93Mzk1NzYy MjNfMTA4MzcwNTE1IiBvbm1vdXNlb3Zlcj0iVmlkZW8ucm93T3Zlcih0aGlz KTsiIG9ubW91c2VvdXQ9IlZpZGVvLnJvd091dCh0aGlzKSIgb25jbGljaz0i aWYgKGN1ci5jYW5jZWxDbGljaykgcmV0dXJuIChjdXIuY2FuY2VsQ2xpY2sg PSBmYWxzZSk7IHJldHVybiBWaWRlby5zaG93KGV2ZW50LCAnMzk1NzYyMjNf MTA4MzcwNTE1Jywge30sIHRoaXMpOyI+CiAgICAKICAgIDxkaXYgY2xhc3M9 InZpZGVvX3Jvd19pbmZvX2xpbmUiPjxkaXYgY2xhc3M9InZpZGVvX3Jhd19p bmZvX25hbWUiPt8g8/Lu9+rgKSkpKSk8L2Rpdj48ZGl2IGNsYXNzPSJ2aWRl b19yb3dfZHVyYXRpb24iPjM6MDM8L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xh c3M9InZpZGVvX3Jvd19pbmZvX3BsYXkiPjwvZGl2PgogICAgCiAgICA8ZGl2 IGNsYXNzPSJ2aWRlb19yb3dfY29udHJvbHMiPgogICAgICA8ZGl2IGNsYXNz PSJ2aWRlb19yb3dfaWNvbl9lZGl0IGZsX2wiIG9ubW91c2VvdmVyPSJWaWRl by5hY3RpdmF0ZSh0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0aXZh dGUodGhpcyk7IiBvbmNsaWNrPSJyZXR1cm4gdmlkZW92aWV3LnNob3dFZGl0 Qm94KDEwODM3MDUxNSwgMzk1NzYyMjMsIGV2ZW50KTsiPjxkaXYgY2xhc3M9 InZpZGVvX3Jvd19pY29uIj48L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFz cz0idmlkZW9fcm93X2ljb25fZGVsZXRlIGZsX2wiIG9ubW91c2VvdmVyPSJW aWRlby5hY3RpdmF0ZSh0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0 aXZhdGUodGhpcyk7IiBvbmNsaWNrPSJyZXR1cm4gVmlkZW8ub25EZWxldGVD bGljaygxMDgzNzA1MTUsIDM5NTc2MjIzLCAnXzNhNTlhOTliOTg0OWQ4ZTdl MScsIHRoaXMsIGV2ZW50KTsiPjxkaXYgY2xhc3M9InZpZGVvX3Jvd19pY29u Ij48L2Rpdj48L2Rpdj4KICAgICAgPGJyIGNsYXNzPSJjbGVhciIgLz4KICAg IDwvZGl2PgogICAgPGRpdiBjbGFzcz0idmlkZW9faW1hZ2VfZGl2IiBzdHls ZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwOi8vdmlkZW80MzMudmth ZHJlLnJ1L2Fzc2V0cy90aHVtYm5haWxzLzg4NjE1Y2E5ODExOTY5MDMuMzIw LnZrLmpwZycpOyI+PC9kaXY+CiAgPC9hPjwvZGl2Pgo8L2Rpdj48L2Rpdj4K ICAgIDxkaXYgaWQ9InZpZGVvX3NlYXJjaF9zdW1tYXJ5IiBjbGFzcz0ic3Vt bWFyeV93cmFwIGNsZWFyIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9kaXY+ CiAgICA8YSBpZD0idmlkZW9fc29ydF9kZCIgY2xhc3M9ImRkX2xpbmsgZmxf ciI+z+4g8OXr5eLg7fLt7vHy6DwvYT4KICAgIDxkaXYgaWQ9InZpZGVvX3Nl YXJjaF9yb3dzIj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0ic2hvd19tb3Jl IiBjbGFzcz0ic2hvd19tb3JlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgog ICAgICA8YSBocmVmPSIiIG9uY2xpY2s9IlZpZGVvLnNob3dNb3JlKCk7IHJl dHVybiBmYWxzZTsiIGNsYXNzPSJtb3JlIj4KICAgICAgICDP7urg5+Dy/CDl +bgKICAgICAgPC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjbGVh ciI+CiAgICAgIDxkaXYgaWQ9Im5vdF9mb3VuZCIgY2xhc3M9InZpZGVvX2lu Zm9fbXNnICIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICA8c3BhbiBjbGFz cz0idmlkZW9fZW1wdHkiPs3l8iDt6CDu5O3u6SDi6OTl7ufg7+jx6C48L3Nw YW4+CiAgPHNwYW4gY2xhc3M9InZpZGVvX2J5X3NlYXJjaCI+z+4g5+Dv8O7x 8yA8Yj48c3BhbiBpZD0ic2VhcmNoX3BoIj48L3NwYW4+PC9iPiDt5SDt4Onk 5e3uIO3oIO7k7e7pIOLo5OXu5+Dv6PHoPC9zcGFuPgogIDxzcGFuIGNsYXNz PSJ2aWRlb19lbXB0eV9hbGJ1bSI+wiD98u7sIODr/OHu7OUg5fm4IO3l8iDi 6OTl7ufg7+jx5ekuPC9zcGFuPgo8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2 Pgo8L2Rpdj4KPGRpdiBpZD0icGFnZV9lbmQiPjwvZGl2PjwvZGl2PgogIDwv ZGl2Pgo8L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImZv b3Rlcl93cmFwIiBjbGFzcz0iZmxfciIgc3R5bGU9IndpZHRoOiA2NjFweDsi PgogICAgICA8ZGl2IGlkPSJib3R0b21fbmF2Ij4KICA8YSBjbGFzcz0iYm5h dl9hIiBocmVmPSIvYWJvdXQiPu4g8eDp8uU8L2E+CiAgPGEgY2xhc3M9ImJu YXZfYSIgaHJlZj0iL3N1cHBvcnQ/YWN0PW5ldyIgb25jbGljaz0icmV0dXJu IG5hdi5nbyh0aGlzLCBldmVudCk7IiBzdHlsZT0iZGlzcGxheTogbm9uZTsi Pu/u7O75/DwvYT4KICA8YSBjbGFzcz0iYm5hdl9hIiBocmVmPSIvdGVybXMi Pu/w4OLo6+A8L2E+CiAgPGEgY2xhc3M9ImJuYXZfYSIgaHJlZj0iL2FkcyI+ 8OXq6+Ds4DwvYT4KICA8YSBjbGFzcz0iYm5hdl9hIiBocmVmPSIvcGVvcGxl Ij7r/uToPC9hPjxhIGNsYXNzPSJibmF2X2EiIGhyZWY9Ii9jb21tdW5pdGll cyI+8e7u4fnl8fLi4DwvYT4KICA8YSBjbGFzcz0iYm5hdl9hIiBocmVmPSIv ZGV2Ij7w4Ofw4OHu8vfo6uDsPC9hPgogIDxhIGNsYXNzPSJibmF2X2EiIGhy ZWY9Ii9qb2JzLnBocCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij7i4Org7fHo 6DwvYT4KPC9kaXY+CjxkaXYgaWQ9ImZvb3RlciIgY2xhc3M9ImNsZWFyIj4K ICA8ZGl2IGNsYXNzPSJjb3B5X2xhbmciPjxhIGhyZWY9Ii9hYm91dCI+wsru 7fLg6vLlPC9hPiAmY29weTsgMjAxMyA8YSBjbGFzcz0iYm5hdl9sYW5nIiBv bmNsaWNrPSJhamF4LnBvc3QoJ2FsX2luZGV4LnBocCcsIHthY3Q6ICdjaGFu Z2VfbGFuZycsIGxhbmdfaWQ6IDMsIGhhc2g6ICc0MzU2MDJlNmU4MDhlMWZl ODUnfSkiPkVuZ2xpc2g8L2E+PGEgY2xhc3M9ImJuYXZfbGFuZyIgb25jbGlj az0iYWpheC5wb3N0KCdhbF9pbmRleC5waHAnLCB7YWN0OiAnY2hhbmdlX2xh bmcnLCBsYW5nX2lkOiAwLCBoYXNoOiAnNDM1NjAyZTZlODA4ZTFmZTg1J30p Ij7Q8/Hx6ujpPC9hPjxhIGNsYXNzPSJibmF2X2xhbmciIG9uY2xpY2s9ImFq YXgucG9zdCgnYWxfaW5kZXgucGhwJywge2FjdDogJ2NoYW5nZV9sYW5nJywg bGFuZ19pZDogMSwgaGFzaDogJzQzNTYwMmU2ZTgwOGUxZmU4NSd9KSI+0+rw 4L/t8fzq4DwvYT48YSBjbGFzcz0iYm5hdl9sYW5nIiBvbmNsaWNrPSJzaG93 Qm94KCdsYW5nLnBocCcsIHthY3Q6ICdsYW5nX2RpYWxvZyd9LCB7bm9yZWxv YWQ6IHRydWV9KSI+4vHlIP/n++roICZyYXF1bzs8L2E+PC9kaXY+CiAgCiAg PGRpdj4KICAgIAogICAgCiAgPC9kaXY+CjwvZGl2PgogICAgPC9kaXY+CiAg ICA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CiAgPC9kaXY+CjwvZGl2Pjwv ZGl2PjwvZGl2PgogIDxkaXYgY2xhc3M9InByb2dyZXNzIiBpZD0iZ2xvYmFs X3ByZyI+PC9kaXY+CgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij4KICAgIGlmIChwYXJlbnQgJiYgcGFyZW50ICE9IHdpbmRvdyAmJiAoYnJv d3Nlci5tc2llIHx8IGJyb3dzZXIub3BlcmEgfHwgYnJvd3Nlci5tb3ppbGxh IHx8IGJyb3dzZXIuY2hyb21lIHx8IGJyb3dzZXIuc2FmYXJpIHx8IGJyb3dz ZXIuaXBob25lKSkgewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn TmFtZSgnYm9keScpWzBdLmlubmVySFRNTCA9ICcnOwogICAgfSBlbHNlIHsK ICAgICAgZG9tUmVhZHkoKTsKICAgICAgdXBkYXRlTW9uZXkoMCk7CmdTZWFy Y2guaW5pdCgpOwppZiAod2luZG93LnFBcnIgJiYgcUFycls1XSkgcUFycls1 XSA9IFs1LCAi7+4g8u7i4PDg7CIsICIiLCAiZ29vZHMiLCAweDAwMDAwMTAw XTsKaWYgKGJyb3dzZXIuaXBob25lIHx8IGJyb3dzZXIuaXBhZCB8fCBicm93 c2VyLmlwb2QpIHsKICBzZXRTdHlsZShib2R5Tm9kZSwge3dlYmtpdFRleHRT aXplQWRqdXN0OiAnbm9uZSd9KTsKfXZhciBxZiA9IGdlKCdxdWlja19sb2dp bl9mb3JtJyksIHFsID0gZ2UoJ3F1aWNrX2xvZ2luJyksIHFlID0gZ2UoJ3F1 aWNrX2VtYWlsJyksIHFwID0gZ2UoJ3F1aWNrX3Bhc3MnKTsKdmFyIHFsYiA9 IGdlKCdxdWlja19sb2dpbl9idXR0b24nKSwgcHJnQnRuID0gcWxiOwoKdmFy IHFpbml0ID0gZnVuY3Rpb24oKSB7CiAgc2V0VGltZW91dChmdW5jdGlvbigp IHsKICAgIHFsLmluc2VydEJlZm9yZShjZSgnZGl2Jywge2lubmVySFRNTDog JzxpZnJhbWUgY2xhc3M9InVwbG9hZF9mcmFtZSIgaWQ9InF1aWNrX2xvZ2lu X2ZyYW1lIiBuYW1lPSJxdWlja19sb2dpbl9mcmFtZSI+PC9pZnJhbWU+J30p LCBxZik7CiAgICBxZi50YXJnZXQgPSAncXVpY2tfbG9naW5fZnJhbWUnOwog IH0sIDEpOwp9CgppZiAod2luZG93LnRvcCAmJiB3aW5kb3cudG9wICE9IHdp bmRvdykgewogIHdpbmRvdy5vbmxvYWQgPSBxaW5pdDsKfSBlbHNlIHsKICBz ZXRUaW1lb3V0KHFpbml0LCAwKTsKfQoKcWYub25zdWJtaXQgPSBmdW5jdGlv bigpIHsKICBpZiAoIWdlKCdxdWlja19sb2dpbl9mcmFtZScpKSByZXR1cm4g ZmFsc2U7CiAgaWYgKCF0cmltKHFlLnZhbHVlKSkgewogICAgbm90YUJlbmUo cWUpOwogICAgcmV0dXJuIGZhbHNlOwogIH0gZWxzZSBpZiAoIXRyaW0ocXAu dmFsdWUpKSB7CiAgICBub3RhQmVuZShxcCk7CiAgICByZXR1cm4gZmFsc2U7 CiAgfQogIGxvY2tCdXR0b24od2luZG93Ll9fcWZCdG4gPSBwcmdCdG4pOwog IHByZ0J0biA9IHFsYjsKICBjbGVhclRpbWVvdXQoX19xbFRpbWVyKTsKICBf X3FsVGltZXIgPSBzZXRUaW1lb3V0KGxvZ2luU3VibWl0RXJyb3IsIDMwMDAw KTsKICBkb21GQyhkb21QUyhxZikpLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewog ICAgY2xlYXJUaW1lb3V0KF9fcWxUaW1lcik7CiAgICBfX3FsVGltZXIgPSBz ZXRUaW1lb3V0KGxvZ2luU3VibWl0RXJyb3IsIDI1MDApOwogIH0KICByZXR1 cm4gdHJ1ZTsKfQoKd2luZG93LmxvZ2luU3VibWl0RXJyb3IgPSBmdW5jdGlv bigpIHsKICBzaG93RmFzdEJveCgnz/Dl5PPv8OXm5OXt6GUnLCAnzeUg8+Tg 5fLx/yDv8O7p8ugg4OLy7vDo5+D26P4g7+4g5+D56Pnl7e3u7PMg8e7l5Ojt 5e3o/i4g1+D55SDi8eXj7iD98u4g7/Du6PH17uTo8iwg6u7j5OAg7eAgwuD4 5ewg6u7s7/z+8uXw5SDz8fLg7e7i6+Xt4CDt5e/w4OLo6/zt4P8g8uXq8/ng /yDk4PLgIOgg4vDl7P8uIM/u5uDr8+nx8uAsIO/w7uLl8Pzy5SDt4PHy8O7p 6ugg5ODy+yDoIOLw5ezl7egg4iDx6PHy5ezlIOgg7+Xw5efg7/Px8ujy5SDh 8ODz5+XwLicpOwp9CndpbmRvdy5mb2N1c0xvZ2luSW5wdXQgPSBmdW5jdGlv bigpIHsKICBzY3JvbGxUb1RvcCgwKTsKICBub3RhQmVuZSgncXVpY2tfZW1h aWwnKTsKfQp3aW5kb3cuY2hhbmdlUXVpY2tSZWdCdXR0b24gPSBmdW5jdGlv bihub1Nob3cpIHsKICBpZiAobm9TaG93KSB7CiAgICBoaWRlKCd0b3BfcmVn X2xpbmsnLCAncXVpY2tfcmVnX2J1dHRvbicpOwogICAgc2hvdygndG9wX3Nl YXJjaF9saW5rJyk7CiAgfSBlbHNlIHsKICAgIGhpZGUoJ3RvcF9zZWFyY2hf bGluaycpOwogICAgc2hvdygndG9wX3JlZ19saW5rJywgJ3F1aWNrX3JlZ19i dXR0b24nKTsKICB9CiAgdG9nZ2xlKCd0b3Bfc3dpdGNoX2xhbmcnLCBub1No b3cgJiYgd2luZG93LmxhbmdDb25maWcgJiYgd2luZG93LmxhbmdDb25maWcu aWQgIT0gMyk7Cn0Kd2luZG93LnN1Ym1pdFF1aWNrTG9naW5Gb3JtID0gZnVu Y3Rpb24oZW1haWwsIHBhc3MsIG9wdHMpIHsKICBzZXRRdWlja0xvZ2luRGF0 YShlbWFpbCwgcGFzcywgb3B0cyk7CiAgaWYgKG9wdHMgJiYgb3B0cy5wcmcp IHByZ0J0biA9IG9wdHMucHJnOwogIGlmIChxZi5vbnN1Ym1pdCgpKSBxZi5z dWJtaXQoKTsKfQp3aW5kb3cuc2V0UXVpY2tMb2dpbkRhdGEgPSBmdW5jdGlv bihlbWFpbCwgcGFzcywgb3B0cykgewogIGlmIChlbWFpbCAhPT0gdW5kZWZp bmVkKSBnZSgncXVpY2tfZW1haWwnKS52YWx1ZSA9IGVtYWlsOwogIGlmIChw YXNzICE9PSB1bmRlZmluZWQpIGdlKCdxdWlja19wYXNzJykudmFsdWUgPSBw YXNzOwogIHZhciBwYXJhbXMgPSBvcHRzICYmIG9wdHMucGFyYW1zIHx8IHt9 OwogIGZvciAodmFyIGkgaW4gcGFyYW1zKSB7CiAgICB2YXIgZWwgPSBnZSgn cXVpY2tfbG9naW5fJyArIGkpOwogICAgaWYgKGVsKSB7CiAgICAgIHZhbChl bCwgcGFyYW1zW2ldKTsKICAgIH0gZWxzZSB7CiAgICAgIHFmLmFwcGVuZENo aWxkKGNlKCdpbnB1dCcsIHt0eXBlOiAnaGlkZGVuJywgbmFtZTogaSwgaWQ6 ICdxdWlja19sb2dpbl8nICsgaSwgdmFsdWU6IHBhcmFtc1tpXX0pKTsKICAg IH0KICB9Cn0KCmlmIChxbGIpIHsKICBxbGIub25jbGljayA9IGZ1bmN0aW9u KCkgeyBpZiAocWYub25zdWJtaXQoKSkgcWYuc3VibWl0KCk7IH07Cn0KCmlm IChicm93c2VyLm9wZXJhX21vYmlsZSkgc2hvdygncXVpY2tfZXhwaXJlJyk7 CgppZiAoMSkgewogIGhpZGUoJ3N1cHBvcnRfbGlua190ZCcpOwp9CnZhciB0 c19pbnB1dCA9IGdlKCd0c19pbnB1dCcpLCBvbGRGRiA9IGJyb3dzZXIubW96 aWxsYSAmJiBwYXJzZUludChicm93c2VyLnZlcnNpb24pIDwgODsKaWYgKGJy b3dzZXIubW96aWxsYSAmJiAhb2xkRkYpIHsKICBzZXRTdHlsZSh0c19pbnB1 dCwge3BhZGRpbmc6ICh2ay5ydGwgPyAnM3B4IDIwcHggNnB4IDQwcHgnIDog JzNweCA0MXB4IDZweCAyMHB4Jyl9KTsKfQpwbGFjZWhvbGRlclNldHVwKHRz X2lucHV0LCB7YmFjazogZmFsc2UsIHJlbG9hZDogdHJ1ZX0pOwppZiAoYnJv d3Nlci5vcGVyYSB8fCBicm93c2VyLm1zaWUgfHwgYnJvd3Nlci5tb3ppbGxh KSB7CiAgc2V0U3R5bGUodHNfaW5wdXQsIHtwYWRkaW5nOiAodmsucnRsID8g JzRweCAyMHB4IDVweCA0MHB4JyA6ICc0cHggNDFweCA1cHggMjBweCcpfSk7 Cn0KaWYgKGJyb3dzZXIuY2hyb21lKSB7CiAgc2V0U3R5bGUodHNfaW5wdXQs IHtwYWRkaW5nOiAodmsucnRsID8gJzRweCAyMXB4IDVweCA0MHB4JyA6ICc0 cHggNDBweCA1cHggMjFweCcpfSk7Cn0KClRvcFNlYXJjaC5pbml0KCk7Cmlm IChicm93c2VyLm1zaWU4IHx8IGJyb3dzZXIubXNpZTcpIHsKICB2YXIgc3Qg PSB7Ym9yZGVyOiAnMXB4IHNvbGlkICNhNmI2YzYnfTsKICBpZiAoaGFzQ2xh c3MoZ2UoJ3RzX3dyYXAnKSwgJ3ZrJykpIHsKICAgIGlmICh2ay5ydGwpIHN0 LmxlZnQgPSAnMXB4JzsKICAgIGVsc2Ugc3QucmlnaHQgPSAnMHB4JzsKICB9 IGVsc2UgewogICAgaWYgKHZrLnJ0bCkgc3QucmlnaHQgPSAnMTQ2cHgnOwog ICAgZWxzZSBzdC5sZWZ0ID0gJzE0NnB4JzsKICB9CiAgc2V0U3R5bGUoZ2Uo J3RzX2NvbnRfd3JhcCcpLCBzdCk7Cn0Kd2luZG93LnRzSGludHNFbmFibGVk ID0gMTsKc2V0VGltZW91dCh6TmF2LnBiaW5kKFtdLCB7cXVldWU6MX0pLCAw KTsKaGFuZGxlUGFnZVBhcmFtcyh7ImlkIjowLCJwYWRzIjoxLCJub19hZHMi OjEsImxvYyI6Ij9hY3Q9cyZvaWQ9Mzk1NzYyMjMmdmlkPTEwODM3MDUxNSIs IndyYXBfcGFnZSI6MSwid2lkdGgiOjc5MSwid2lkdGhfZGVjIjoxNjAsIndp ZHRoX2RlY19mb290ZXIiOjEzMCwiY291bnRlcnMiOiIiLCJwdmJpZyI6MCwi cHZkYXJrIjoxfSk7c2hvd0JhY2tMaW5rKCcvZHJha21haWwnLCAnwOvl6vHg 7eTwIMzg8evu4icpO2FkZEV2ZW50KGRvY3VtZW50LCAnY2xpY2snLCBvbkRv Y3VtZW50Q2xpY2spO1ZpZGVvLmluaXQoZXh0ZW5kKHsKICB2aWRlb0xpc3Q6 IHsnYWxsJzogW1szOTU3NjIyMywgMTY2MzE1NTQzLCAnaHR0cDovL3ZpZGVv NDQ4LnZrYWRyZS5ydS9hc3NldHMvdGh1bWJuYWlscy8zZWRhYmZjNTc3MDMx NTgwLjMyMC52ay5qcGcnLCAn0OXq6+Ds4CAmcXVvdDvM5e3y7vEmcXVvdDsg KO/w6Oru6yknLCAnJywgJzAnLCAwLCAwLCAwLCAnMDoyOScsICcwJywgJ19h MGEzNmI2Y2EzYjI1MDBkYWUnLCAnJ10sWzM5NTc2MjIzLCAxNjU2MDc0NDUs ICdodHRwOi8vY3MxMjk0Ny52ay5tZS91MjcwOTE0OC92aWRlby9sXzdjYWVi MTVlLmpwZycsICf1L/QgJnF1b3Q70eXs5ent7uUg5OXr7iZxdW90OycsICcn LCAnMCcsIDAsIDAsIDAsICcyOjQwJywgJzMnLCAnXzkzNDlmMWI0NTAxNGY2 NzRkZScsICcnXSxbMzk1NzYyMjMsIDE2NTU1Mzc2NiwgJ2h0dHA6Ly9jczUy NjQwNC52ay5tZS91ODYzMzIwNzYvdmlkZW8vbF9iMDAxYjdlMy5qcGcnLCAn 0ejs7/Hu7fsgLyBUaGUgU2ltcHNvbnMgMjQg8eXn7u0gMTcg8eXw6P8nLCAn JywgJzAnLCAwLCAwLCAwLCAnMjE6NTInLCAnMycsICdfZmM5ZjBmOGZjMTRh NjMyOTQyJywgJyddLFszOTU3NjIyMywgMTYxNTk4NTQ0LCAnaHR0cDovL2Nz NDY0OS52ay5tZS91NTUxODQwMC92aWRlby9sXzZlZDg1ZGUwLmpwZycsICdI YXJyeSBQYXJ0cmlkZ2UgLSBTa3lyaW0gKPDz8fHq4P8g7ufi8/fq4CknLCAn JywgJzAnLCAwLCAwLCAwLCAnMToyNScsICcwJywgJ183Y2MxNTQyMjZlZjEy NTgwNjInLCAnJ10sWzM5NTc2MjIzLCAxMDgzNzA1MTUsICdodHRwOi8vdmlk ZW80MzMudmthZHJlLnJ1L2Fzc2V0cy90aHVtYm5haWxzLzg4NjE1Y2E5ODEx OTY5MDMuMzIwLnZrLmpwZycsICffIPPy7vfq4CkpKSkpJywgJycsICcwJywg MCwgMiwgMCwgJzM6MDMnLCAnMCcsICdfM2E1OWE5OWI5ODQ5ZDhlN2UxJywg JyddXX0sCiAgc2hvd246IDUsCiAgdmlkZW9UcGw6IGZ1bmN0aW9uKHYsIGNh bmVkaXQpIHsKdmFyIHRhZ0xhYmVsID0gJycsIHRhZ3MgPSAnJywgdmlkZW9S YXcgPSB2WzBdICsgJ18nICsgdlsxXTsKCmlmICh2WzhdICYgMikgewogIHRh Z0xhYmVsID0gJzxkaXYgY2xhc3M9InZpZGVvX3RhZ19sYWJlbCI+JytnZXRM YW5nKCd2aWRlb19uZXdfdGFnJykrJzwvZGl2Pic7Cn0KaWYgKHZbMTBdKSB7 CiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gdlsxMF07IGkrKykgewogICAgdmFy IGxhYmVsID0gJyc7CiAgICBzd2l0Y2ggKGkpIHsKICAgICAgY2FzZSAzOiBs YWJlbCA9IDcyMDsgYnJlYWs7CiAgICAgIGNhc2UgMjogbGFiZWwgPSA0ODA7 IGJyZWFrOwogICAgICBkZWZhdWx0OiBsYWJlbCA9IDM2MDsgYnJlYWs7CiAg ICB9CiAgICB0YWdzICs9ICc8YSBjbGFzcz0icXVhbGl0eSBmbF9sIiBocmVm PSIvdmlkZW8nICsgdmlkZW9SYXcgKyAnIiBvbmNsaWNrPSJyZXR1cm4gVmlk ZW8uc2hvdyhldmVudCwgXCcnICsgdmlkZW9SYXcgKyAnXCcsIHtwYXJhbXM6 IHthY3Q6IFwnc2hvd1wnLCB2aWRlbzogXCcnICsgdmlkZW9SYXcgKyAnXCcs IGZvcmNlX2hkOiBcJycgKyBpICsgJ1wnLCBhdXRvcGxheTogMX19KTsiPicg KyBsYWJlbCArICc8L2E+JzsKICB9CiAgaWYgKHRhZ3MpIHRhZ3MgPSAnPGRp diBjbGFzcz0idmlkZW9fcXVhbGl0eSBjbGVhcl9maXgiPicgKyB0YWdzICsg JzwvZGl2Pic7Cn0KaWYgKHZbNV0gJiAxKSB7CiAgdlszXSArPSAnPHNwYW4g Y2xhc3M9InZpZGVvX2lzX3ByaXZhdGUiIG9ubW91c2VvdmVyPSJyZXR1cm4g VmlkZW8ucHJpdmF0ZVRvb2x0aXAodGhpcyk7IiBvbmNsaWNrPSJyZXR1cm4g VmlkZW8ucHJpdmF0ZUNsaWNrKHRoaXMsIGV2ZW50KTsiPjwvc3Bhbj4nOwp9 CnZhciBhZGRCdG4gPSAnJzsKaWYgKCFjYW5lZGl0ICYmIHZrLmlkICYmIHZr LmlkICE9IHZbMF0pIHsKICBhZGRCdG4gPSAnPGRpdiBjbGFzcz0idmlkZW9f cm93X2FkZCI+PGRpdiBjbGFzcz0idmlkZW9fcm93X2ljb25fYWRkIGZsX2wi IG9ubW91c2VvdmVyPSJWaWRlby5hY3RpdmF0ZSh0aGlzLCBcJ2FkZF90dFwn LCAxKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0aXZhdGUodGhpcyk7IiBv bmNsaWNrPSJyZXR1cm4gVmlkZW8uYWRkRnJvbUxpc3QoXCcnK3ZbMF0rJ18n K3ZbMV0rJ1wnLCBcJycrdlsxMV0uc3Vic3RyKDEpKydcJywgZXZlbnQpOyI+ PGRpdiBjbGFzcz0idmlkZW9fcm93X2ljb24iPjwvZGl2PjwvZGl2PjwvZGl2 Pic7Cn0KcmV0dXJuIHJzKGN1ci52aWRlb1RwbEhUTUwsIHsKICBvaWQ6IHZb MF0sCiAgdmlkOiB2WzFdLAogIHRodW1iOiB2WzJdLAogIHRpdGxlOiB2WzNd LAogIGR1cmF0aW9uOiB2WzldLAogIGRlc2NyOiB2WzRdLAogIGFkdWx0OiB2 WzEzXSB8fCAnJywKICBsaW5rY2xhc3M6IHZbMTJdLAogIGhhc2g6IHZbMTFd LAogIGNhbmVkaXQ6IGNhbmVkaXQsCiAgcm93X2FjdHM6ICcnLAogIGFjdHM6 ICcnLAogIG5ld3RhZ3M6IHRhZ0xhYmVsLAogIGFkZGJ0bjogYWRkQnRuLAp9 KTsKfSwKICBhbGJ1bXNUcGw6IGZ1bmN0aW9uKGFpZCwgdiwgdCkgewogIHJl dHVybiBycyhjdXIuYWxidW1zVHBsSFRNTCwgewogICAgYWxidW1faWQ6IGFp ZCwKICAgIG1haW5faHJlZjogJy92aWRlb3MzOTU3NjIyMycsCiAgICBzZWN0 aW9uX25hbWU6IChhaWQgPT0gLTEpID8gJ3RhZ2dlZCcgOiAnYWxidW1fJyth aWQsCiAgICB0aXRsZTogdCwKICAgIHRodW1iOiB2WzJdLAogICAgY291bnQ6 IHZbM10sCiAgICBuZXdfdGFnczogKGFpZCA9PSAtMSAmJiBjdXIubmV3X3Rh Z3Nfc3RyKSA/IGN1ci5uZXdfdGFnc19zdHIgOiAnJywKICAgIGNsYXNzX25h bWU6IChhaWQgPT0gLTEpID8gJycgOiAnIHZpZGVvX2FsYnVtX2NhbmRyb3An LAogICAgbm9kcmFnOiAoYWlkID09IC0xKSA/ICdub2RyYWc9IjEiJyA6ICcn CiAgfSk7Cn0sCiAgdmlkZW9UcGxIVE1MOiAiPGRpdiBpZD1cInZpZGVvX2Nv bnQlb2lkJV8ldmlkJVwiIGNsYXNzPVwidmlkZW9fcm93X2NvbnRcIj48ZGl2 IGNsYXNzPVwidmlkZW9fcm93X2lubmVyX2NvbnQlY2FuZWRpdCVcIj48YSBo cmVmPVwiXC92aWRlbyVvaWQlXyV2aWQlXCIgY2xhc3M9XCJ2aWRlb19yb3df cmVsYXRpdmUlbGlua2NsYXNzJVwiIGlkPVwidmlkZW9fcm93JW9pZCVfJXZp ZCVcIiBvbm1vdXNlb3Zlcj1cIlZpZGVvLnJvd092ZXIodGhpcyk7XCIgb25t b3VzZW91dD1cIlZpZGVvLnJvd091dCh0aGlzKVwiIG9uY2xpY2s9XCJpZiAo Y3VyLmNhbmNlbENsaWNrKSByZXR1cm4gKGN1ci5jYW5jZWxDbGljayA9IGZh bHNlKTsgcmV0dXJuIFZpZGVvLnNob3coZXZlbnQsICclb2lkJV8ldmlkJScs IHt9LCB0aGlzKTtcIj5cbiAgICAlbmV3dGFncyUlYWR1bHQlXG4gICAgPGRp diBjbGFzcz1cInZpZGVvX3Jvd19pbmZvX2xpbmVcIj48ZGl2IGNsYXNzPVwi dmlkZW9fcmF3X2luZm9fbmFtZVwiPiV0aXRsZSU8XC9kaXY+PGRpdiBjbGFz cz1cInZpZGVvX3Jvd19kdXJhdGlvblwiPiVkdXJhdGlvbiU8XC9kaXY+PFwv ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2aWRlb19yb3dfaW5mb19wbGF5XCI+ PFwvZGl2PlxuICAgICVhZGRidG4lXG4gICAgPGRpdiBjbGFzcz1cInZpZGVv X3Jvd19jb250cm9sc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInZpZGVvX3Jv d19pY29uX2VkaXQgZmxfbFwiIG9ubW91c2VvdmVyPVwiVmlkZW8uYWN0aXZh dGUodGhpcyk7XCIgb25tb3VzZW91dD1cIlZpZGVvLmRlYWN0aXZhdGUodGhp cyk7XCIgb25jbGljaz1cInJldHVybiB2aWRlb3ZpZXcuc2hvd0VkaXRCb3go JXZpZCUsICVvaWQlLCBldmVudCk7XCI+PGRpdiBjbGFzcz1cInZpZGVvX3Jv d19pY29uXCI+PFwvZGl2PjxcL2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2 aWRlb19yb3dfaWNvbl9kZWxldGUgZmxfbFwiIG9ubW91c2VvdmVyPVwiVmlk ZW8uYWN0aXZhdGUodGhpcyk7XCIgb25tb3VzZW91dD1cIlZpZGVvLmRlYWN0 aXZhdGUodGhpcyk7XCIgb25jbGljaz1cInJldHVybiBWaWRlby5vbkRlbGV0 ZUNsaWNrKCV2aWQlLCAlb2lkJSwgJyVoYXNoJScsIHRoaXMsIGV2ZW50KTtc Ij48ZGl2IGNsYXNzPVwidmlkZW9fcm93X2ljb25cIj48XC9kaXY+PFwvZGl2 PlxuICAgICAgPGJyIGNsYXNzPVwiY2xlYXJcIiBcLz5cbiAgICA8XC9kaXY+ XG4gICAgPGRpdiBjbGFzcz1cInZpZGVvX2ltYWdlX2RpdlwiIHN0eWxlPVwi YmFja2dyb3VuZC1pbWFnZTogdXJsKCcldGh1bWIlJyk7XCI+PFwvZGl2Plxu ICA8XC9hPjxcL2Rpdj5cbjxcL2Rpdj4iLAogIGFsYnVtc1RwbEhUTUw6ICI8 YSBpZD1cInZpZGVvX2FsYnVtXyVhbGJ1bV9pZCVcIiBocmVmPVwiJW1haW5f aHJlZiU/c2VjdGlvbj0lc2VjdGlvbl9uYW1lJVwiIG9uY2xpY2s9XCJpZiAo Y3VyLmNhbmNlbENsaWNrKSByZXR1cm4gKGN1ci5jYW5jZWxDbGljayA9IGZh bHNlKTsgcmV0dXJuIG5hdi5jaGFuZ2Uoe3NlY3Rpb246JyVzZWN0aW9uX25h bWUlJ30pO1wiIGNsYXNzPVwidmlkZW9fYWxidW0lY2xhc3NfbmFtZSVcIiBv bm1vdXNlb3Zlcj1cIlZpZGVvLmFsYnVtT3Zlcih0aGlzKTtcIiBvbm1vdXNl b3V0PVwiVmlkZW8uYWxidW1PdXQodGhpcylcIiAlbm9kcmFnJT48ZGl2IGNs YXNzPVwidmlkZW9fYWxidW1fcm93X2lubmVyXCI+XG4gICVuZXdfdGFncyVc biAgPGRpdiBjbGFzcz1cInZpZGVvX2FsYnVtX2NvbnRyb2xzXCI+XG4gICAg PGRpdiBjbGFzcz1cInZpZGVvX3Jvd19pY29uX2VkaXQgZmxfbFwiIG9ubW91 c2VvdmVyPVwiVmlkZW8uYWN0aXZhdGUodGhpcyk7XCIgb25tb3VzZW91dD1c IlZpZGVvLmRlYWN0aXZhdGUodGhpcyk7XCIgb25jbGljaz1cInJldHVybiBW aWRlby5lZGl0QWxidW0oJWFsYnVtX2lkJSwgZXZlbnQpO1wiPjxkaXYgY2xh c3M9XCJ2aWRlb19yb3dfaWNvblwiPjxcL2Rpdj48XC9kaXY+XG4gICAgPGRp diBjbGFzcz1cInZpZGVvX3Jvd19pY29uX2RlbGV0ZSBmbF9sXCIgb25tb3Vz ZW92ZXI9XCJWaWRlby5hY3RpdmF0ZSh0aGlzKTtcIiBvbm1vdXNlb3V0PVwi VmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTtcIiBvbmNsaWNrPVwicmV0dXJuIFZp ZGVvLmRlbGV0ZUFsYnVtKCdhbGJ1bV8lYWxidW1faWQlJywgZXZlbnQpO1wi PjxkaXYgY2xhc3M9XCJ2aWRlb19yb3dfaWNvblwiPjxcL2Rpdj48XC9kaXY+ XG4gICAgPGJyIGNsYXNzPVwiY2xlYXJcIiBcLz5cbiAgPFwvZGl2PlxuICA8 ZGl2IGNsYXNzPVwidmlkZW9fYWxidW1faW5mb1wiPjxkaXYgY2xhc3M9XCJ2 aWRlb19hbGJ1bV90ZXh0IGZsX2xcIj4ldGl0bGUlPFwvZGl2PjxkaXYgY2xh c3M9XCJ2aWRlb19hbGJ1bV9jb3VudCBmbF9yXCI+PGRpdiBjbGFzcz1cInZp ZGVvX3Jvd19pY29uIHZpZGVvX2FsYnVtX2NvdW50X2ljb25cIj48XC9kaXY+ JWNvdW50JTxcL2Rpdj48YnIgY2xhc3M9XCJjbGVhclwiIFwvPjxcL2Rpdj5c biAgPGRpdiBjbGFzcz1cInZpZGVvX2FsYnVtX2JnXCIgc3R5bGU9XCJiYWNr Z3JvdW5kLWltYWdlOiB1cmwoJyV0aHVtYiUnKVwiPjxcL2Rpdj48XC9kaXY+ XG48XC9hPiIsCiAgbGFuZzogeyJ2aWRlb19OX3ZpZXdzIjpbIiIsIjxiPiVz PFwvYj4g7/Du8ezu8vAiLCI8Yj4lczxcL2I+IO/w7vHs7vLw4CIsIjxiPiVz PFwvYj4g7/Du8ezu8vDu4iJdLCJ2aWRlb19uZXdfdGFnIjoize7i4P8g7vLs 5fLq4CIsImdsb2JhbF9OX2NvbW1lbnRzIjpbIiIsIiVzIOru7Ozl7fLg8Ojp IiwiJXMg6u7s7OXt8uDw6P8iLCIlcyDq7uzs5e3y4PDo5eIiXSwidmlkZW9m aWxlX251bSI6WyIiLCLi6OTl7ufg7+jx/CIsIuLo5OXu5+Dv6PHoIiwi4ujk 5e7n4O/o8eXpIl0sInZpZGVvX251bV9mb3VuZF9maWxlcyI6WyIiLCLN4Onk 5e0gJXMg4ujk5e704OnrIiwizeDp5OXt7iAlcyDi6OTl7vTg6evgIiwizeDp 5OXt7iAlcyDi6OTl7vTg6evu4iJdLCJ2aWRlb19ub3ZpZGVvIjoizeXyIOLo 5OXu5+Dv6PHl6SIsInZpZGVvX2RlbGV0ZV90YWciOiLT5ODr6PL8IO7y7OXy 6vMiLCJ2aWRlb19zdW1hcnlfdG9fdXNlcl9wYWdlIjoiPGEgaHJlZj1cIlwv ZHJha21haWxcIj7qIPHy8ODt6PblIMDr5erx4O3k8OA8XC9hPiIsInZpZGVv X1hfY29tbXMiOlsiIiwiJXMg6u7s7OXt8uDw6OkiLCIlcyDq7uzs5e3y4PDo /yIsIiVzIOru7Ozl7fLg8Ojl4iJdLCJ2aWRlb19ub19jb21tZW50cyI6Is3l 8iDq7uzs5e3y4PDo5eIuIiwidmlkZW9fZGVsZXRlX2FsYnVtIjoi0+Tg6+jy /CDg6/zh7uwiLCJ2aWRlb19ub19hbGJ1bSI6IuHl5yDg6/zh7uzgIiwidmlk ZW9fYWRkX3RvX2FsYnVtIjoi5O7h4OLo8vwg4iDg6/zh7uwiLCJ2aWRlb19j aGFuZ2VfYWxidW0iOiJ7bGlua33A6/zh7ux7XC9saW5rfToge3RpdGxlfSIs InZpZGVvX3JlbW92ZV9hbGxfdGFncyI6ItPk4Ovo8vwg7e7i++Ug7vLs5fLq 6CIsInZpZGVvX3RpdGxlX1hfdmlkZW9zIjpbIiIsIiVzIOLo5OXu5+Dv6PH8 IiwiJXMg4ujk5e7n4O/o8egiLCIlcyDi6OTl7ufg7+jx5ekiXSwidmlkZW9f dGl0bGVfWF92aWRlb3NfdGFnZ2VkIjpbIiIsIiVzIOLo5OXu5+Dv6PH8IPEg e3VzZXJ9IiwiJXMg4ujk5e7n4O/o8egg8SB7dXNlcn0iLCIlcyDi6OTl7ufg 7+jx5ekg8SB7dXNlcn0iXSwidmlkZW9fdGl0bGVfc2VhcmNoIjoiz+7o8eog 4ujk5e7n4O/o8eXpIO/uIOfg7/Du8fMge3F9IiwidmlkZW9fdGl0bGVfc2Vh cmNoX1hfZm91bmQiOlsiIiwiJXMg8OXn8+v88uDyIiwiJXMg8OXn8+v88uDy 4CIsIiVzIPDl5/Pr/PLg8u7iIl0sInZpZGVvX2FkdWx0X2JveF90aXRsZSI6 IsHl5+7v4PHt++kg7+7o8eoiLCJ2aWRlb19hZHVsdF9ib3hfdGV4dCI6IsHl 5+7v4PHt++kg7+7o8eog8erw++Lg5fIg4ujk5e7n4O/o8egsIOru8u7w++Ug 7+7r/Ofu4uDy5evoIPH36PLg/vIg7ODy5fDo4Ovg7Ogg5Ov/IOLn8O7x6/v1 Ljxicj48YnI+zvLq6/734P8g9Ojr/PLw4Pbo/iwgwvsg7+7k8uLl8Obk4OXy 5Swg9/LuIOTu8fLo4+voIO3l7uH17uTo7O7j7iDk6/8g7/Du8ezu8vDgIPLg 6uj1IOfg7+jx5ekg4u7n8ODx8uAuIiwidmlkZW9fY2xhaW1zX25vX3VwbG9h ZCI6IsL7IOHu6/z45SDt5SDs7ubl8uUg5+Dj8PPm4PL8IO3u4vvlIOLo5OXu 5+Dv6PHoLCDv7vHq7uv86vMg7eAgwuDxIO/u8fLz7+jr7iDs7e7j7iDm4Ovu 4SDu8iDv8ODi7u7h6+Dk4PLl6+XpLiIsInZpZGVvX25vX3VwbG9hZF90aXRs ZSI6Isfg4/Dz5+rgIO3l4u7n7O7m7eAiLCJ2aWRlb19kcm9wX3RvX21vdmUi OiLO8u/z8fLo8uUsIPfy7uH7IO/l8OXs5fHy6PL8IOIg4Ov84e7sIiwidmlk ZW9fYWxidW1zX2ZvdW5kX3N1bW1hcnkiOlsiIiwiJXMg4Ov84e7sIiwiJXMg 4Ov84e7s4CIsIiVzIODr/OHu7O7iIl0sInZpZGVvX2FsYnVtc19zdW1tYXJ5 IjpbIiIsItMgwOvl6vHg7eTw4CAlcyDg6/zh7uwiLCLTIMDr5erx4O3k8OAg JXMg4Ov84e7s4CIsItMgwOvl6vHg7eTw4CAlcyDg6/zh7uzu4iJdLCJ2aWRl b19zaG93X2FsbF9hbGJ1bXMiOlsiIiwiz+7q4Ofg8vwg4vHlICVzIODr/OHu 7CIsIs/u6uDn4PL8IOLx5SAlcyDg6/zh7uzgIiwiz+7q4Ofg8vwg4vHlICVz IODr/OHu7O7iIl0sInZpZGVvX2NvbW1lbnRzX3JldmlldyI6Is7h5+7wIOru 7Ozl7fLg8Ojl4iIsInZpZGVvX2lzX3ByaXZhdGVfdHQiOiLC6OTl7ufg7+jx /CDn4Pno+eXt4CDv8Oji4PLt7vHy/P4iLCJ2aWRlb19hZGRfdHQiOiLE7uHg 4ujy/CDiIOzu6CDi6OTl7ufg7+jx6CIsInZpZGVvX3BsZWFzZV9zaWduX2lu Ijoiz+7m4Ovz6fHy4Cwg4u7p5Ojy5SDo6+ggPGEgaHJlZj1cIlwvam9pblwi IG9uY2xpY2s9XCJyZXR1cm4gIXNob3dCb3goJ2pvaW4ucGhwJywge2FjdDog J2JveCcsIGZyb206IG5hdi5zdHJMb2N9LCB7fSwgZXZlbnQpXCI+5+Dw5ePo 8fLw6PDz6fLl8fw8XC9hPiwg9/Lu4fsg7/Du8ezu8vDl8vwg/fLzIOLo5OXu 5+Dv6PH8LiJ9LAogIG9pZDogMzk1NzYyMjMsCiAgdlNlY3Rpb246ICdhbGwn Cn0sIHsicGVyUGFnZSI6MjAsImhhc2giOiJmMjk1ZDBmMTczNjI4YmE3NzUi LCJ2aWRlb0NvdW50Ijo1LCJzZWN0aW9ucyI6W10sInVwbG9hZEJhbm5lZCI6 ZmFsc2UsImh0aXRsZV92aWRlb3MiOiLC6OTl7ufg7+jx6CDA6+Xq8eDt5PDg IMzg8evu4uAiLCJodGl0bGVfY29tbWVudHMiOiLK7uzs5e3y4PDo6CDqIOLo 5OXu5+Dv6PH/7CDA6+Xq8eDt5PDgIMzg8evu4uAiLCJodGl0bGVfdGFnZ2Vk X3VzZXIiOiLA6+Xq8eDt5PDu7CIsInZTdHIiOiJcIlwiIiwibW92ZUhhc2gi OiIwMTgzNTI0NTIxMGI0YzBmMjEifSkpOwp3aW5kb3cucmFkaW9CdG5zWyds ZW5ndGgnXSA9IHsKICBlbHM6IEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBs eShnZUJ5Q2xhc3MoJ3JhZGlvYnRuJywgZ2UoJ3ZpZGVvX2xlbmd0aF9maWx0 ZXInKSkpLAogIHZhbDogMAp9Owp2YXIgZmlsdGVyVHlwZXMgPSBbWzIsICfP 7iDw5evl4uDt8u3u8fLoJ10sIFswLCAnz+4g5ODy5SDk7uHg4uvl7ej/J10s IFsxLCAnz+4g5Ovo8uXr/O3u8fLoJ11dOwppZiAoY3VyLnNvcnRERCkgewog IHJlKGN1ci5zb3J0REQuY29udGFpbmVyKTsKfQpjdXIuc29ydEREID0gbmV3 IERyb3Bkb3duTWVudShmaWx0ZXJUeXBlcywgewogIHRhcmdldDogZ2UoJ3Zp ZGVvX3NvcnRfZGQnKSwKICB2YWx1ZTogMiwKICBmYWRlU3BlZWQ6IDAsCiAg b25TZWxlY3Q6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBpZiAoZXZlbnQpIFZp ZGVvLnRvZ2dsZU9yZGVyKGV2ZW50LnRhcmdldC5pbmRleCB8fCAwKTsKICB9 Cn0pOwppZiAoZ2UoJ3ZpZGVvX2V4dGVybmFsX2RkJykpIHsKICB2YXIgZXh0 VHlwZXMgPSBbWzAsICfC8eUg4ujk5e7n4O/o8egnXSwgWy0xLCAnwsru7fLg 6vLlJ10sIFsxLCAnWW91dHViZSddLCBbMiwgJ1ZpbWVvJ10sIFszLCAnUnVU dWJlJ10sIFszMiwgJ0tpbm9wb2lzayddLCBbMzMsICdNb2xvZGVqai50didd LCBbMzQsICdDYXJhbWJhVFYnXV07CiAgY3VyLmV4dEREID0gbmV3IERyb3Bk b3duTWVudShleHRUeXBlcywgewogICAgdGFyZ2V0OiBnZSgndmlkZW9fZXh0 ZXJuYWxfZGQnKSwKICAgIHZhbHVlOiAwLAogICAgZmFkZVNwZWVkOiAwLAog ICAgb25TZWxlY3Q6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgIGlmIChldmVu dCkgVmlkZW8udG9nZ2xlRXh0KGV2ZW50LnRhcmdldC5pbmRleCB8fCAwKTsK ICAgIH0KICB9KTsKfQoKYWpheC5wcmVsb2FkKCdhbF92aWRlby5waHAnLCB7 ImFjdCI6InNob3ciLCJ2aWRlbyI6IjM5NTc2MjIzXzEwODM3MDUxNSJ9LCBb It8g8/Lu9+rgKSkpKSkiLCI8ZGl2IGNsYXNzPVwidmlkZW9fYm94XCI+XG4g IDxkaXYgY2xhc3M9XCJ3cmFwXCI+XG4gICAgPGRpdiBpZD1cInZpZGVvX2Jh Y2tncm91bmQzOTU3NjIyM18xMDgzNzA1MTVcIiBhbGlnbj1cImNlbnRlclwi PlxuICAgICAgPGltZyBzcmM9XCJodHRwOlwvXC92aWRlbzQzMy52a2FkcmUu cnVcL2Fzc2V0c1wvdGh1bWJuYWlsc1wvODg2MTVjYTk4MTE5NjkwMy4zMjAu dmsuanBnXCIgc3R5bGU9XCJ3aWR0aDogNDgwcHg7IGhlaWdodDogMzYwcHg7 XCIgXC8+XG4gICAgPFwvZGl2PlxuICAgIDxkaXYgaWQ9XCJ2aWRlb19ib3hf d3JhcDM5NTc2MjIzXzEwODM3MDUxNVwiIGNsYXNzPVwidmlkZW9fYm94X3dy YXBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYWdlX25vX2ZsYXNoX3dyYXBc Ij5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvX25vX2ZsYXNoXCI+XG4g ICAgICAgICAgPGRpdj7E6/8g7/Du8ezu8vDgIO3l7uH17uTo7CA8YSBocmVm PVwiaHR0cDpcL1wvZ2V0LmFkb2JlLmNvbVwvZmxhc2hcIj5GbGFzaCBQbGF5 ZXI8XC9hPiDv7vHr5eTt5ekg4uXw8ejoLjxcL2Rpdj5cbiAgICAgICAgPFwv ZGl2PlxuICAgICAgPFwvZGl2PlxuICAgIDxcL2Rpdj5cbiAgPFwvZGl2Plxu PFwvZGl2PiIsImN1ci5hZGRNZVZpZGVvID0gZnVuY3Rpb24oKSB7XG4gIGlm IChpc1Zpc2libGUoYm94LnByb2dyZXNzKSkgcmV0dXJuO1xuXG4gIHZhciB0 b1JlcGxhY2UgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVu dHMubGVuZ3RoOyArK2kpIHtcbiAgICB0b1JlcGxhY2UucHVzaChhcmd1bWVu dHNbaV0pO1xuICB9XG4gIGN1ci5yZWxvYWRBZnRlckNsb3NlID0gdHJ1ZTtc biAgYWpheC5wb3N0KCd2aWRlby5waHAnLCB7YWN0OiAnYV9hZGQnLCB2aWRl bzogJzM5NTc2MjIzXzEwODM3MDUxNScsIGhhc2g6ICczYTU5YTk5Yjk4NDlk OGU3ZTEnLCBmcm9tOiBjdXIuc2VjdGlvbn0sIHtcbiAgICBvbkRvbmU6IGZ1 bmN0aW9uKCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b1JlcGxh Y2UubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGVsID0gZ2UodG9SZXBs YWNlW2ldKTtcbiAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgaWYgKGkg PCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBlbC5wYXJlbnRO b2RlLmlubmVySFRNTCA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICB9IGVs c2Uge1xuICAgICAgICAgICAgaGlkZShlbCk7XG4gICAgICAgICAgfVxuICAg ICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBzaG93UHJvZ3Jlc3M6IGJv eC5zaG93UHJvZ3Jlc3MsXG4gICAgaGlkZVByb2dyZXNzOiBib3guaGlkZVBy b2dyZXNzXG4gIH0pO1xufVxuXG53aW5kb3cuaW5jVmlld0NvdW50ZXIgPSBm dW5jdGlvbihvaWQsIHZpZCwgaGFzaCkge1xuICBhamF4LnBvc3QoJ2FsX3Zp ZGVvLnBocCcsIHthY3Q6ICdpbmNfdmlld19jb3VudGVyJywgb2lkOiBvaWQs IHZpZDogdmlkLCBoYXNoOiBoYXNofSwge1xuICAgIG9uRG9uZTogZnVuY3Rp b24odCkge31cbiAgfSk7XG59XG5cbndpbmRvdy5yb3RhdGVWaWRlbyA9IGZ1 bmN0aW9uKG9pZCwgdmlkLCBhbmdsZSwgaGFzaCkge1xuICBcL1wvIGFqYXgu cG9zdCgnYWxfdmlkZW8ucGhwJywge2FjdDogJ3JvdGF0ZV92aWRlbycsIG9p ZDogb2lkLCB2aWQ6IHZpZCwgYW5nbGU6IGFuZ2xlLCBoYXNoOiBoYXNofSwg e1xuICBcL1wvICAgb25Eb25lOiBmdW5jdGlvbih0KSB7fVxuICBcL1wvIH0p O1xufVxuXG53aW5kb3cuY2hhbmdlQ2FudmFzU2l6ZSA9IGZ1bmN0aW9uKHcs IGgpIHtcbiAgaWYgKHR5cGVvZihtdmN1cikgIT0gJ3VuZGVmaW5lZCcgJiYg bXZjdXIuY2hhbmdlQ2FudmFzU2l6ZSkge1xuICAgIG12Y3VyLmNoYW5nZUNh bnZhc1NpemUoKTtcbiAgfVxuICBpZiAoIWJyb3dzZXIub3BlcmEgfHwgaW50 dmFsKGJyb3dzZXIudmVyc2lvbikgPj0gMTApIHtcbiAgICBoaWRlKCd2aWRl b19iYWNrZ3JvdW5kMzk1NzYyMjNfMTA4MzcwNTE1Jyk7XG4gICAgc2V0U3R5 bGUoZ2UoJ3ZpZGVvX3BsYXllcicpLCB7d2lkdGg6IHcsIGhlaWdodDogaH0p O1xuICAgIHNldFN0eWxlKGdlKCd2aWRlb19ib3hfd3JhcDM5NTc2MjIzXzEw ODM3MDUxNScpLCB7d2lkdGg6IHcsIGhlaWdodDogaH0pO1xuICAgIGlmIChi b3gpIHtcbiAgICAgIGJveC5zZXRPcHRpb25zKHt3aWR0aDogdyArIDIyfSk7 XG4gICAgfVxuICB9XG59O1xuXG52YXIgX24gPSB3aW5kb3cuTm90aWZpZXI7 XG5pZiAoX24pIHtcbiAgX24uYWRkUmVjdkNsYmsoJ2F1ZGlvX3N0YXJ0Jywg J3ZpZGVvJywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBpZiAoZ2UoJ3ZpZGVv X3BsYXllcicpICYmIGdlKCd2aWRlb19wbGF5ZXInKS5wbGF5VmlkZW8pIGdl KCd2aWRlb19wbGF5ZXInKS5wbGF5VmlkZW8oZmFsc2UpO1xuICB9KTtcbiAg X24uYWRkUmVjdkNsYmsoJ3ZpZGVvX3N0YXJ0JywgJ3ZpZGVvJywgZnVuY3Rp b24gKGRhdGEpIHtcbiAgICBpZiAoZ2UoJ3ZpZGVvX3BsYXllcicpICYmIGdl KCd2aWRlb19wbGF5ZXInKS5wbGF5VmlkZW8pIGdlKCd2aWRlb19wbGF5ZXIn KS5wbGF5VmlkZW8oZmFsc2UpO1xuICB9KTtcbiAgX24uYWRkUmVjdkNsYmso J3ZpZGVvY2FsbF9zdGFydCcsICd2aWRlbycsIGZ1bmN0aW9uIChkYXRhKSB7 XG4gICAgaWYgKGdlKCd2aWRlb19wbGF5ZXInKSAmJiBnZSgndmlkZW9fcGxh eWVyJykucGxheVZpZGVvKSBnZSgndmlkZW9fcGxheWVyJykucGxheVZpZGVv KGZhbHNlKTtcbiAgfSk7XG59XG52YXIgdmFycyA9IHtcInVpZFwiOlwiMFwi LFwidmlkXCI6MTA4MzcwNTE1LFwib2lkXCI6Mzk1NzYyMjMsXCJob3N0XCI6 XCJ2aWRlbzQzMy52a2FkcmUucnVcIixcInZ0YWdcIjpcIjg0Y2M2YjRiOWQ4 Mi1cIixcImx0YWdcIjpcIjg4NjE1Y2E5XCIsXCJ2a2lkXCI6ODExOTY5MDMs XCJtZF90aXRsZVwiOlwi3yDz8u736uApKSkpKVwiLFwibWRfYXV0aG9yXCI6 XCLA6+Xq8eDt5PAgzODx6+7iXCIsXCJoZFwiOjAuMDAwMDAwLFwibm9fZmx2 XCI6MCxcImhkX2RlZlwiOi0xLFwiZGJnX29uXCI6MCxcInRcIjpcIlwiLFwi YW5nbGVcIjowLjAwMDAwMCxcImltZ19hbmdsZVwiOjAuMDAwMDAwLFwicmVw ZWF0XCI6MCxcInNob3dfYWRzXCI6MCxcInB1aWQxXCI6MixcInB1aWQyMlwi OjE0LFwicHVpZDM3XCI6XCJcIixcInB1aWQzOFwiOlwiXCIsXCJjYW5fcm90 YXRlXCI6MSxcImhhc2hcIjpcIjU0MDk1YWUxNGMwMWMxMDc4ZTMyYjQwOTVj ZjAzZjNjXCIsXCJoYXNoMlwiOlwiMTUxODRkYmQwODVjNDdhZlwiLFwiaXNf dmtcIjpcIjFcIixcImlzX2V4dFwiOlwiMFwiLFwicmVmZXJyZXJcIjpcIlwi LFwibGFuZ19hZGRcIjpcIsTu4eDi6PL8IOog8eXh5VwiLFwibGFuZ19hZGRl ZFwiOlwixO7h4OLr5e3uIOog8eXh5VwiLFwibGFuZ19zaGFyZVwiOlwi0ODx 8erg5+Dy/CDk8PPn/P/sXCIsXCJsYW5nX2xpa2VcIjpcIszt5SDt8ODi6PLx /1wiLFwibGFuZ192b2x1bWVfb25cIjpcIsLq6/736PL8IOfi8+pcIixcImxh bmdfdm9sdW1lX29mZlwiOlwi0+Hw4PL8IOfi8+pcIixcImxhbmdfdm9sdW1l XCI6XCLD8O7s6u7x8vxcIixcImxhbmdfaGRzZFwiOlwi0ezl7ejy/CDq4Pfl 8fLi7lwiLFwibGFuZ19mdWxsc2NyZWVuXCI6XCLN4CDi5fH8IP3q8ODtXCIs XCJsYW5nX3dpbmRvd1wiOlwi0eLl8O3z8vxcIixcImxhbmdfcm90YXRlXCI6 XCLP7uLl8O3z8vxcIixcImxhbmdfYWRzX2xpbmtcIjpcItHg6fIg8OXq6+Ds 7uTg8uXr/1wiLFwibGFuZ19hZHNcIjpcItDl6uvg7OBcIixcImxhbmdfYWRz X3NraXBcIjpcIs/w7u/z8fLo8vwg8OXq6+Ds81wiLFwibGFuZ19hZHNfc2tp cF90aW1lXCI6XCLP8O7v8/Hy6PL8IPDl6uvg7PMg9+Xw5ecge3RpbWV9XCIs XCJsYW5nX3JlcG9ydF9wcm9ibGVtXCI6XCLR7u7h+ejy/CDuIO/w7uHr5ezl Li4uXCIsXCJ2aWRlb19wbGF5X2hkXCI6XCLR7O7y8OXy/CDiIOL78e7q7uwg 6uD35fHy4uVcIixcInZpZGVvX3N0b3BfbG9hZGluZ1wiOlwizvHy4O3u4ujy /CDn4OPw8+fq81wiLFwidmlkZW9fcGxheWVyX3ZlcnNpb25cIjpcIsLK7u3y 4Ory5SDi6OTl7iDv6+Xl8CBcIixcInZpZGVvX3BsYXllcl9hdXRob3JcIjpc IsDi8u7wIO/r5eXw4CAtIMDr5erx5ekg1eDw/Oru4lwiLFwiZ290b19vcmln X3ZpZGVvXCI6XCLP5fDl6fLoIOog4ujk5e7n4O/o8ehcIixcInZpZGVvX2dl dF92aWRlb19jb2RlXCI6XCLK7u/o8O7i4PL8IOru5CDi6OTl7lwiLFwidmlk ZW9fbG9hZF9lcnJvclwiOlwiwujk5e704OnrIOX55SDt5SDn4OPw8+fo6/H/ IOjr6CDx5fDi5fAg8SDi6OTl7vTg6evu7CDi8OXs5e3t7iDt5eTu8fLz7+Xt XCIsXCJ2aWRlb19nZXRfY3VycmVudF91cmxcIjpcIsru7+jw7uLg8vwg8fH7 6+rzIO3gIOrg5PBcIixcInVybDI0MFwiOlwiaHR0cDpcXFwvXFxcL3ZpZGVv NDMzLnZrYWRyZS5ydVxcXC9hc3NldHNcXFwvdmlkZW9cXFwvODRjYzZiNGI5 ZDgyLTgxMTk2OTAzLnZrLmZsdlwiLFwiY2FjaGUyNDBcIjpcImh0dHA6XFxc L1xcXC9jczEtMzh2NC52ay5tZVxcXC9wOVxcXC81MjY2YmE2OGNiMTQ1YWE0 ZWQ3ZS5mbHZcIixcImpwZ1wiOlwiaHR0cDpcXFwvXFxcL3ZpZGVvNDMzLnZr YWRyZS5ydVxcXC9hc3NldHNcXFwvdGh1bWJuYWlsc1xcXC84ODYxNWNhOTgx MTk2OTAzLjMyMC52ay5qcGdcIixcImlwX3N1Ym1cIjoxLFwibm9sb2dvXCI6 MSxcImxpa2VkXCI6MCxcImFkZF9oYXNoXCI6XCIzYTU5YTk5Yjk4NDlkOGU3 ZTFcIixcImFkZGVkXCI6MX07XG52YXIgYWxsb3dfaHRtbDUgPSAwO1xudmFy IGNoZWNrSHRtbDVWaWRlbyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgdiA9IGNl KCd2aWRlbycpLCBjYW5QbGF5ID0gdi5jYW5QbGF5VHlwZSgndmlkZW9cL21w NCcpO1xuICByZXR1cm4gKGNhblBsYXkgIT0gJ25vJykgJiYgKGNhblBsYXkg IT0gJycpO1xufVxubG9hZEh0bWw1UGxheWVyID0gZnVuY3Rpb24oKSB7XG4g IGlmICghY2hlY2tIdG1sNVZpZGVvKCkgfHwgIXZhcnMubm9fZmx2KSB7XG4g ICAgc3RNYW5hZ2VyLmFkZCgncGFnZS5jc3MnKTtcbiAgICByZXR1cm47XG4g IH1cbiAgdmFyIHBsYXllcldyYXAgPSBnZSgndmlkZW9fYm94X3dyYXAzOTU3 NjIyM18xMDgzNzA1MTUnKTtcbiAgaWYgKHBhcnNlSW50KCcwJykpIHtcbiAg ICB2YXIgc2l6ZSA9IGdldFNpemUocGxheWVyV3JhcC5wYXJlbnROb2RlKTtc biAgfSBlbHNlIHtcbiAgICB2YXIgc2l6ZSA9IFs3MjAsIDQxMF07XG4gIH1c biAgaGlkZSgndmlkZW9fYmFja2dyb3VuZDM5NTc2MjIzXzEwODM3MDUxNScp O1xuICBwbGF5ZXJXcmFwLmlubmVySFRNTCA9ICcnO1xuICBzdE1hbmFnZXIu YWRkKFsnaHRtbDV2aWRlby5qcycsICdodG1sNXZpZGVvLmNzcyddLCBmdW5j dGlvbigpIHtcbiAgICBodG1sNXZpZGVvLmluaXRIVE1MNVZpZGVvKHZhcnMs IHNpemVbMF0sIHNpemVbMV0pO1xuICB9KTtcbn1cbndpbmRvdy52aWRlb19i b3hfaWQgPSAndmlkZW9fYm94X3dyYXAzOTU3NjIyM18xMDgzNzA1MTUnO1xu XG52YXIgb3B0cyA9IHtcbiAgdXJsOiAnXC9zd2ZcL3ZpZGVvLnN3Zj8xNScs XG4gIGlkOiAndmlkZW9fcGxheWVyJyxcbiAgd2lkdGg6IDcyMCxcbiAgaGVp Z2h0OiA0MTAsXG4gIHZlcnNpb246IDEwXG59XG5cbmlmIChicm93c2VyLmZs YXNoIDwgMTApIHtcbiAgbG9hZEh0bWw1UGxheWVyKCk7XG4gIHJldHVybjtc bn1cblxudmFyIHBsYXllcldyYXAgPSBnZSgndmlkZW9fYm94X3dyYXAzOTU3 NjIyM18xMDgzNzA1MTUnKTtcbmhpZGUoJ3ZpZGVvX2JhY2tncm91bmQzOTU3 NjIyM18xMDgzNzA1MTUnKTtcbnBsYXllcldyYXAuaW5uZXJIVE1MID0gJyc7 XG5cbnZhciBwYXJhbXMgPSB7XG4gIGFsbG93ZnVsbHNjcmVlbjogJ3RydWUn LFxuICBhbGxvd3NjcmlwdGFjY2VzczogJ2Fsd2F5cydcbn1cblwvXC9pZiAo YnJvd3Nlci5tc2llIHx8IGJyb3dzZXIuY2hyb21lKSB7XG4gIG9wdHMucHJl dmVudGhpZGUgPSAxO1xuICBwYXJhbXMud21vZGUgPSAnb3BhcXVlJztcblwv XC99XG5zZXRTdHlsZShwbGF5ZXJXcmFwLCB7d2lkdGg6IG9wdHMud2lkdGgs IGhlaWdodDogb3B0cy5oZWlnaHR9KTtcblxud2luZG93LnZpZGVvX2hvc3Qg PSB2YXJzLmhvc3Q7XG53aW5kb3cudmlkZW9fdWlkID0gdmFycy51aWQ7XG53 aW5kb3cudmlkZW9fdnRhZyA9IHZhcnMudnRhZztcbndpbmRvdy52aWRlb19u b19mbHYgPSB2YXJzLm5vX2ZsdjtcbndpbmRvdy52aWRlb19tYXhfaGQgPSB2 YXJzLmhkO1xud2luZG93LnZpZGVvX3RpdGxlID0gdmFycy5tZF90aXRsZTtc bndpbmRvdy52aWRlb19hdXRob3IgPSB2YXJzLm1kX2F1dGhvcjtcbndpbmRv dy5maXhlZF9wbGF5ZXJfc2l6ZSA9IHRydWU7XG5cbnJlbmRlckZsYXNoKHBs YXllcldyYXAsIG9wdHMsIHBhcmFtcywgdmFycyk7XG5tdmN1ci5tdkRhdGEu YWRkZWRWaWRlbyA9ICczOTU3NjIyM18xMDgzNzA1MTUnOyBcbm12Y3VyLm12 RGF0YS5hZGRlZFZpZGVvSGFzaCA9ICczOTZlYjVlZGJmY2JjM2M5M2MnOyBc bm12Y3VyLm12RGF0YS5hZGRlZFZpZGVvU2hhcmVIYXNoID0gJzAzODE2Y2I4 YTM2ZDgwZTA1MSc7XG5tdmN1ci5tdkRhdGEubmVlZHNOZXcgPSAxOyIsIjxk aXYgaWQ9XCJtdl9kZXNjcmlwdGlvblwiIGNsYXNzPVwibXZfZGVzY1wiPv3y 7iDCx9DbwiDMzsfDwCYjMzM7JiMzMzsmIzMzOzxicj7P8O7x8u4g7vLi4Osg 4eD46uguLi48XC9kaXY+PGRpdiBpZD1cIm12X2FjdGlvbl9pbmZvXCIgc3R5 bGU9XCJkaXNwbGF5OiBub25lO1wiPjxcL2Rpdj48ZGl2IGlkPVwibXZfdGFn c1wiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj7N4CDi6OTl7iDv8Ojx8/Lx 8uLz/vI6PHNwYW4gaWQ9XCJtdl90YWdzX2xpc3RcIj48XC9zcGFuPjxcL2Rp dj48ZGl2IGlkPVwibXZfZGF0ZV93cmFwXCIgY2xhc3M9XCJmbF9sXCI+xO7h 4OLr5e3gIDEg6P7tIDIwMDkg4iAyMjo0MTxcL2Rpdj48YnIgY2xhc3M9XCJj bGVhclwiIFwvPjxkaXYgaWQ9XCJtdl9jb21tZW50c193cmFwXCI+XG4gIDxk aXYgaWQ9XCJtdl9jb21tZW50c19oZWFkZXJcIiBvbmNsaWNrPVwidmlkZW92 aWV3LmNvbW1lbnRzKCk7XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPjxc L2Rpdj5cbiAgPGRpdiBpZD1cIm12X2NvbW1lbnRzXCIgY2xhc3M9XCJ3YWxs X21vZHVsZVwiPjxkaXYgY2xhc3M9XCJjbGVhcl9maXggbXZfY29tbWVudCBc IiBpZD1cIm12X2NvbW1lbnQzOTU3NjIyM18xXCIgb25jbGljaz1cIlZpZGVv dmlldy5jb21tZW50Q2xpY2sodGhpcywgZXZlbnQsIDI3MDkxNDgpXCIgb25t b3VzZW92ZXI9XCJXYWxsLnJlcGx5T3ZlcignMzk1NzYyMjN2aWRlb18xbXYn KVwiIG9ubW91c2VvdXQ9XCJXYWxsLnJlcGx5T3V0KCczOTU3NjIyM3ZpZGVv XzFtdicpXCI+PGRpdiBjbGFzcz1cInJlcGx5X3RhYmxlXCI+XG4gIDxkaXYg Y2xhc3M9XCJmbF9sIG12X3RodW1iXCI+XG4gICAgPGEgaHJlZj1cIlwvYXJ0 cnVsa1wiIG9uY2xpY2s9XCJyZXR1cm4gbmF2LmdvKHRoaXMsIGV2ZW50KTtc Ij48aW1nIHNyYz1cImh0dHA6XC9cL2NzMzA0NzAxLnZrLm1lXC92MzA0NzAx MTQ4XC81Zjg5XC9heWcxZExSMnhLdy5qcGdcIiBcLz48XC9hPlxuICA8XC9k aXY+XG4gIDxkaXYgY2xhc3M9XCJmbF9sIG12X2NvbW1cIj5cbiAgICA8ZGl2 IGNsYXNzPVwiZmxfciByZXBseV9hY3Rpb25zX3dyYXBcIj48ZGl2IGNsYXNz PVwicmVwbHlfYWN0aW9uc1wiPjxkaXYgaWQ9XCJyZXBseV9kZWxldGUzOTU3 NjIyM3ZpZGVvXzFtdlwiIGNsYXNzPVwicmVwbHlfZGVsZXRlX2J1dHRvbiBm bF9yXCIgb25jbGljaz1cIlZpZGVvdmlldy5jb21tQWN0aW9uKCdzcGFtJywg JzM5NTc2MjIzXzEnLCAnMzljMzk2MDIwYmFkMzgwMTk5JywgJ212JylcIiBv bm1vdXNlb3Zlcj1cIldhbGwuYWN0aXZlRGVsZXRlUG9zdCgnMzk1NzYyMjN2 aWRlb18xbXYnLCAn3fLuIPHv4OwnLCAncmVwbHlfZGVsZXRlJylcIiBvbm1v dXNlb3V0PVwiV2FsbC5kZWFjdGl2ZURlbGV0ZVBvc3QoJzM5NTc2MjIzdmlk ZW9fMW12JywgJ3JlcGx5X2RlbGV0ZScpXCI+PFwvZGl2PjxcL2Rpdj48XC9k aXY+XG4gICAgPGEgaHJlZj1cIlwvYXJ0cnVsa1wiIGNsYXNzPVwiYXV0aG9y XCIgb25jbGljaz1cInJldHVybiBuYXYuZ28odGhpcywgZXZlbnQpO1wiPsDw 8rjsIMDt8u7t/+08XC9hPlxuICAgIDxkaXYgaWQ9XCJ3cHQzOTU3NjIyM3Zp ZGVvXzFtdlwiPjxkaXYgY2xhc3M9XCJtdl9jb21tdGV4dFwiPsrz8/Pz8/Pz 8/Pz8/Pz8OXl5eXl5eXl5eXl5eXl4u4g3fLuIOL7IOLx5SDy4Oro5SDt4CDE 5ev88uAg8eXw4uXw5T88XC9kaXY+PFwvZGl2PlxuICAgIDxkaXYgY2xhc3M9 XCJsaWtlX3dyYXAgZmxfclwiIG9uY2xpY2s9XCJXYWxsLmxpa2UoJzM5NTc2 MjIzdmlkZW9fY29tbWVudDFtdicsICcnKTsgZXZlbnQuY2FuY2VsQnViYmxl ID0gdHJ1ZTtcIiBvbm1vdXNlb3Zlcj1cIldhbGwubGlrZU92ZXIoJzM5NTc2 MjIzdmlkZW9fY29tbWVudDFtdicpXCIgb25tb3VzZW91dD1cIldhbGwubGlr ZU91dCgnMzk1NzYyMjN2aWRlb19jb21tZW50MW12JylcIj5cbiAgPHNwYW4g Y2xhc3M9XCJsaWtlX2xpbmsgZmxfbFwiIGlkPVwibGlrZV9saW5rMzk1NzYy MjN2aWRlb19jb21tZW50MW12XCI+PFwvc3Bhbj5cbiAgPGkgY2xhc3M9XCJu b19saWtlcyBmbF9sXCIgaWQ9XCJsaWtlX2ljb24zOTU3NjIyM3ZpZGVvX2Nv bW1lbnQxbXZcIj48XC9pPlxuICA8c3BhbiBjbGFzcz1cImxpa2VfY291bnQg ZmxfbFwiIGlkPVwibGlrZV9jb3VudDM5NTc2MjIzdmlkZW9fY29tbWVudDFt dlwiPjxcL3NwYW4+XG48XC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm12X2Nv bW1kYXRhXCIgaWQ9XCJ3cGVfYm90dG9tMzk1NzYyMjN2aWRlb18xbXZcIj5c biAgICAgIDxzcGFuIGNsYXNzPVwiZmxfbFwiPjIg6P7tIDIwMDk8XC9zcGFu PlxuICAgICAgPGRpdiBjbGFzcz1cImZsX3IgcHJvZ3Jlc3NcIiBpZD1cIm12 X3Byb2dyZXNzMzk1NzYyMjNfMVwiPjxcL2Rpdj5cbiAgICA8XC9kaXY+XG4g IDxcL2Rpdj5cbjxcL2Rpdj48XC9kaXY+PGRpdiBjbGFzcz1cImNsZWFyX2Zp eCBtdl9jb21tZW50IFwiIGlkPVwibXZfY29tbWVudDM5NTc2MjIzXzJcIiBv bmNsaWNrPVwiVmlkZW92aWV3LmNvbW1lbnRDbGljayh0aGlzLCBldmVudCwg NDA5ODAzMylcIiBvbm1vdXNlb3Zlcj1cIldhbGwucmVwbHlPdmVyKCczOTU3 NjIyM3ZpZGVvXzJtdicpXCIgb25tb3VzZW91dD1cIldhbGwucmVwbHlPdXQo JzM5NTc2MjIzdmlkZW9fMm12JylcIj48ZGl2IGNsYXNzPVwicmVwbHlfdGFi bGVcIj5cbiAgPGRpdiBjbGFzcz1cImZsX2wgbXZfdGh1bWJcIj5cbiAgICA8 YSBocmVmPVwiXC9qdXN0X293aW5nXCIgb25jbGljaz1cInJldHVybiBuYXYu Z28odGhpcywgZXZlbnQpO1wiPjxpbWcgc3JjPVwiaHR0cDpcL1wvY3M0MTYz MjIudmsubWVcL3Y0MTYzMjIwMzNcLzZmMTFcLy14MWdyMnVhZHJzLmpwZ1wi IFwvPjxcL2E+XG4gIDxcL2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsX2wgbXZf Y29tbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbF9yIHJlcGx5X2FjdGlvbnNf d3JhcFwiPjxkaXYgY2xhc3M9XCJyZXBseV9hY3Rpb25zXCI+PGRpdiBpZD1c InJlcGx5X2RlbGV0ZTM5NTc2MjIzdmlkZW9fMm12XCIgY2xhc3M9XCJyZXBs eV9kZWxldGVfYnV0dG9uIGZsX3JcIiBvbmNsaWNrPVwiVmlkZW92aWV3LmNv bW1BY3Rpb24oJ3NwYW0nLCAnMzk1NzYyMjNfMicsICcwNGEzOWU0ZDgyNTAw OTQ1OTYnLCAnbXYnKVwiIG9ubW91c2VvdmVyPVwiV2FsbC5hY3RpdmVEZWxl dGVQb3N0KCczOTU3NjIyM3ZpZGVvXzJtdicsICfd8u4g8e/g7CcsICdyZXBs eV9kZWxldGUnKVwiIG9ubW91c2VvdXQ9XCJXYWxsLmRlYWN0aXZlRGVsZXRl UG9zdCgnMzk1NzYyMjN2aWRlb18ybXYnLCAncmVwbHlfZGVsZXRlJylcIj48 XC9kaXY+PFwvZGl2PjxcL2Rpdj5cbiAgICA8YSBocmVmPVwiXC9qdXN0X293 aW5nXCIgY2xhc3M9XCJhdXRob3JcIiBvbmNsaWNrPVwicmV0dXJuIG5hdi5n byh0aGlzLCBldmVudCk7XCI+wuvg5Ojs6PAgz+Xy8/Xu4jxcL2E+XG4gICAg PGRpdiBpZD1cIndwdDM5NTc2MjIzdmlkZW9fMm12XCI+PGRpdiBjbGFzcz1c Im12X2NvbW10ZXh0XCI+wuXx/CDs6PAg8uDq7uksIPXu5P/yIOgg5PPs4P4g 7/DuIPHl4f8g9/LuIPMg6u7j7iDt4CDz7OUgOkQ8XC9kaXY+PFwvZGl2Plxu ICAgIDxkaXYgY2xhc3M9XCJsaWtlX3dyYXAgZmxfclwiIG9uY2xpY2s9XCJX YWxsLmxpa2UoJzM5NTc2MjIzdmlkZW9fY29tbWVudDJtdicsICcnKTsgZXZl bnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcIiBvbm1vdXNlb3Zlcj1cIldhbGwu bGlrZU92ZXIoJzM5NTc2MjIzdmlkZW9fY29tbWVudDJtdicpXCIgb25tb3Vz ZW91dD1cIldhbGwubGlrZU91dCgnMzk1NzYyMjN2aWRlb19jb21tZW50Mm12 JylcIj5cbiAgPHNwYW4gY2xhc3M9XCJsaWtlX2xpbmsgZmxfbFwiIGlkPVwi bGlrZV9saW5rMzk1NzYyMjN2aWRlb19jb21tZW50Mm12XCI+PFwvc3Bhbj5c biAgPGkgY2xhc3M9XCJub19saWtlcyBmbF9sXCIgaWQ9XCJsaWtlX2ljb24z OTU3NjIyM3ZpZGVvX2NvbW1lbnQybXZcIj48XC9pPlxuICA8c3BhbiBjbGFz cz1cImxpa2VfY291bnQgZmxfbFwiIGlkPVwibGlrZV9jb3VudDM5NTc2MjIz dmlkZW9fY29tbWVudDJtdlwiPjxcL3NwYW4+XG48XC9kaXY+XG4gICAgPGRp diBjbGFzcz1cIm12X2NvbW1kYXRhXCIgaWQ9XCJ3cGVfYm90dG9tMzk1NzYy MjN2aWRlb18ybXZcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZmxfbFwiPjMg 6P7tIDIwMDk8XC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImZsX3IgcHJv Z3Jlc3NcIiBpZD1cIm12X3Byb2dyZXNzMzk1NzYyMjNfMlwiPjxcL2Rpdj5c biAgICA8XC9kaXY+XG4gIDxcL2Rpdj5cbjxcL2Rpdj48XC9kaXY+PFwvZGl2 PlxuPFwvZGl2PjxkaXYgY2xhc3M9XCJ2aWRlb19jb21tZW50c19tc2dcIj7C 7ufs7ubt7vHy/CDq7uzs5e3y6PDu4uDt6P8g/fLu6SDi6OTl7ufg7+jx6CDu 4/Dg7ej35e3gLjxcL2Rpdj4iLCI8ZGl2IGNsYXNzPVwibXZfaW5mbyBtdl9u dW1fdmlld3NcIj48Yj4xMTxcL2I+IO/w7vHs7vLw7uI8XC9kaXY+PGRpdiBj bGFzcz1cIm12X2luZm9cIj7O8u/w4OLo8uXr/Do8XC9kaXY+PGRpdiBpZD1c Im12X2F1dGhvclwiPjxhIGNsYXNzPVwibWVtX2xpbmtcIiBocmVmPVwiXC9k cmFrbWFpbFwiPsDr5erx4O3k8CDM4PHr7uI8XC9hPjxcL2Rpdj48ZGl2IGlk PVwibXZfYWN0aW9uc1wiPjxhIGlkPVwibXZfc2hhcmVcIiBvbmNsaWNrPVwi dmlkZW92aWV3LnNob3dTaGFyZSgpO1wiLCBzdHlsZT1cImRpc3BsYXk6IG5v bmU7XCI+XG4gIDxzcGFuIGNsYXNzPVwibXZfc2hhcmVfdGV4dFwiPs/u5OXr 6PL88f88XC9zcGFuPlxuPFwvYT5cbjxkaXYgb25tb3VzZW92ZXI9XCJ2aWRl b3ZpZXcuc2hvd1NoYXJlKClcIiBvbm1vdXNlb3V0PVwidmlkZW92aWV3Lmhp ZGVTaGFyZSg1MDApXCIgb25jbGljaz1cInZpZGVvdmlldy5oaWRlU2hhcmUo LTEpXCIgaWQ9XCJtdnNfZGRcIiBjbGFzcz1cImZpeGVkXCI+XG48dGFibGUg Y2VsbHNwYWNpbmc9XCIwXCIgY2VsbHBhZGRpbmc9XCIwXCI+PHRib2R5Pjx0 cj5cblxuPHRkIGNsYXNzPVwibXZzX3NpZGVfc2hcIj5cbiAgPGRpdiBjbGFz cz1cIm12c19zaWRlX3NoX2VsXCI+PFwvZGl2PlxuPFwvdGQ+PHRkPlxuICA8 ZGl2IGNsYXNzPVwibXZzX2hlYWRlcl93cmFwXCI+XG4gICAgPGRpdiBjbGFz cz1cIm12c19oZWFkZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibXZzX2hl YWRlcl90ZXh0XCI+z+7k5evo8vzx/zxcL3NwYW4+XG4gICAgPFwvZGl2Plxu ICA8XC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtdnNfYWN0c1wiPlxuICAgIDxh IGNsYXNzPVwibXZzX2FjdFwiIG9uY2xpY2s9XCJ2aWRlb3ZpZXcuc2VuZFZp ZGVvKClcIj48c3BhbiBjbGFzcz1cIm12c19hY3RfdGV4dFwiPs7y7/Dg4ujy /CDk8PPj8zxcL3NwYW4+PFwvYT5cbiAgICA8YSBjbGFzcz1cIm12c19hY3Rc IiBvbmNsaWNrPVwidmlkZW92aWV3LmdldFZpZGVvQ29kZSgzOTU3NjIyMywg MTA4MzcwNTE1KTtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibXZzX2FjdF90 ZXh0XCI+3erx7+7w8iDi6OTl7ufg7+jx6DxcL3NwYW4+XG4gICAgPFwvYT5c biAgPFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibXZzX3NoMVwiPjxcL2Rpdj5c biAgPGRpdiBjbGFzcz1cIm12c19zaDJcIj48XC9kaXY+XG48XC90ZD48dGQg Y2xhc3M9XCJtdnNfc2lkZV9zaFwiPlxuICA8ZGl2IGNsYXNzPVwibXZzX3Np ZGVfc2hfZWxcIj48XC9kaXY+XG48XC90ZD5cblxuPFwvdHI+PFwvdGJvZHk+ PFwvdGFibGU+PFwvZGl2PjxcL2Rpdj4iLCI8YSBjbGFzcz1cIm12X3Nob3df aW5mb1wiIGlkPVwibXZfc2hvd19pbmZvXCIgb25tb3VzZW92ZXI9XCJ2aWRl b3ZpZXcuYWN0aXZhdGUodGhpcywgMik7XCIgb25tb3VzZW91dD1cInZpZGVv dmlldy5kZWFjdGl2YXRlKHRoaXMsIDIpO1wiIG9uY2xpY2s9XCJyZXR1cm4g dmlkZW92aWV3LnNob3dJbmZvKCk7XCI+z+7q4Ofg8vwg6u7s7OXt8uDw6Og8 XC9hPjxhIGNsYXNzPVwibXZfaGlkZV9pbmZvXCIgaWQ9XCJtdl9oaWRlX2lu Zm9cIiBvbm1vdXNlb3Zlcj1cInZpZGVvdmlldy5hY3RpdmF0ZSh0aGlzLCAy KTtcIiBvbm1vdXNlb3V0PVwidmlkZW92aWV3LmRlYWN0aXZhdGUodGhpcywg Mik7XCIgb25jbGljaz1cInJldHVybiB2aWRlb3ZpZXcuaGlkZUluZm8oKTtc Ij7R6vD78vwg6u7s7OXt8uDw6Og8XC9hPiIseyJsYW5nIjp7InJlcGx5X3Rv X3Bvc3QiOiLK7uzs5e3y6PDu4uDy/C4uIiwid2FsbF9NX3JlcGxpZXNfb2Zf TiI6WyIiLCIlcyDq7uzs5e3y4PDo6SDo5yB7bGlua317YWxsfXtcL2xpbmt9 IiwiJXMg7+7x6+Xk7ej1IOru7Ozl7fLg8Oj/IOjnIHtsaW5rfXthbGx9e1wv bGlua30iLCIlcyDv7vHr5eTt6PUg6u7s7OXt8uDw6OXiIOjnIHtsaW5rfXth bGx9e1wvbGlua30iXSwid2FsbF9tb3JlX3JlcGxpZXMiOlsiIiwi5fnlICVz IOru7Ozl7fLg8OjpIiwi5fnlICVzIOru7Ozl7fLg8Oj/Iiwi5fnlICVzIOru 7Ozl7fLg8Ojl4iJdLCJ3YWxsX2FsbF9yZXBsaWVzIjoi4vHlIOru7Ozl7fLg 8OjoIiwiZG9udF9hdHRhY2giOiLN5SDv8Ojq8OXv6//y/CIsInZpZGVvX1hf Y29tbXMiOlsiIiwiJXMg6u7s7OXt8uDw6OkiLCIlcyDq7uzs5e3y4PDo/yIs IiVzIOru7Ozl7fLg8Ojl4iJdLCJ2aWRlb19zaG93X3ByZXZpb3VzX2NvbW1l bnRzIjpbIiIsIs/u6uDn4PL8IO/w5eT75PP56OUgJXMg6u7s7OXt8uDw6Oki LCLP7urg5+Dy/CDv8OXk++Tz+ejlICVzIOru7Ozl7fLg8Oj/Iiwiz+7q4Ofg 8vwg7/Dl5Pvk8/no5SAlcyDq7uzs5e3y4PDo5eIiXSwidmlkZW9fYXJlX3lv dV9zdXJlX2Nsb3NlIjoiwvsg8+Ll8OXt+ywg9/LuIPXu8ujy5SDn4Orw+/L8 IOLo5OXu5+Dv6PH8PyIsInZpZGVvX2FyZV95b3Vfc3VyZV9jbG9zZV90aXRs ZSI6Isfg6vD78vwg4ujk5e4iLCJwcm9maWxlX21lbnRpb25fbm90X2ZvdW5k Ijoi0fLw4O3o9uAg7eUg7eDp5OXt4CIsInByb2ZpbGVfbWVudGlvbl9zdGFy dF90eXBpbmciOiLN4Pft6PLlIOLi7uTo8vwg6Oz/IOTw8+PgIOjr6CDt4Ofi 4O3o5SDx7u7h+eXx8uLgIn0sImNvbW1saW1pdCI6MTYzODQsIm12RGF0YSI6 eyJ0aXRsZSI6It8g8/Lu9+rgKSkpKSkiLCJvaWQiOjM5NTc2MjIzLCJ2aWQi OjEwODM3MDUxNSwidmlkZW9SYXciOiIzOTU3NjIyM18xMDgzNzA1MTUiLCJo YXNoIjoiN2ZlNjAxOGYxNjk2YjVkYzE5IiwibGlrZUhhc2giOiJhZjUyYzlj ZTU5OWEzMDFlYTMiLCJjb21tc2hvd24iOjIsImNvbW1jb3VudCI6MiwibGlr ZWQiOmZhbHNlLCJsaWtlcyI6MCwiZHVyYXRpb24iOjE4M30sInRhZ2dlZElu Zm8iOiIiLCJzaG93SW5mbyI6MH1dKTsKc2hvd1ZpZGVvKCczOTU3NjIyM18x MDgzNzA1MTUnLCAndmlkZW9zMzk1NzYyMjMnLCB7cm9vdDogMSwgZnJvbVBy ZWxvYWQ6IDEsIG5vTG9jQ2hhbmdlOiAxLCBwcmV2VGl0bGU6ICfC6OTl7ufg 7+jx6CDA6+Xq8eDt5PDgIMzg8evu4uAgfCA1IOLo5OXu5+Dv6PHl6ScsIHBh cmFtczogeyJhY3QiOiJzaG93IiwidmlkZW8iOiIzOTU3NjIyM18xMDgzNzA1 MTUifX0pOwogICAgfQogIDwvc2NyaXB0Pgo8L2JvZHk+Cgo8L2h0bWw+ http_version: recorded_at: Tue, 22 Oct 2013 14:56:59 GMT - request: method: get uri: http://vk.com/video108370515 body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/1.5.0 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - '*/*' response: status: code: 302 message: Found headers: Server: - nginx/1.2.4 Date: - Tue, 22 Oct 2013 15:49:53 GMT Content-Type: - text/html; charset=windows-1251 Content-Length: - '20' Connection: - keep-alive X-Powered-By: - PHP/3.2871 Set-Cookie: - remixlang=0; expires=Sun, 19-Oct-2014 15:59:20 GMT; path=/; domain=.vk.com Pragma: - no-cache Cache-Control: - no-store Location: - / body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 22 Oct 2013 15:49:53 GMT - request: method: get uri: http://vk.com/ body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/1.5.0 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - '*/*' response: status: code: 302 message: Found headers: Server: - nginx/1.2.4 Date: - Tue, 22 Oct 2013 15:49:53 GMT Content-Type: - text/html; charset=windows-1251 Content-Length: - '20' Connection: - keep-alive X-Powered-By: - PHP/3.2871 Set-Cookie: - remixlang=0; expires=Tue, 14-Oct-2014 07:11:57 GMT; path=/; domain=.vk.com Location: - http://m.vk.com/ body: encoding: UTF-8 string: '' http_version: recorded_at: Tue, 22 Oct 2013 15:49:53 GMT - request: method: get uri: http://m.vk.com/ body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/1.5.0 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - '*/*' response: status: code: 200 message: OK headers: Server: - nginx/1.2.4 Date: - Tue, 22 Oct 2013 15:49:53 GMT Content-Type: - text/html; charset=utf-8 Content-Length: - '2504' Connection: - keep-alive X-Powered-By: - PHP/3.2871 Set-Cookie: - remixlang=0; expires=Thu, 16-Oct-2014 11:28:29 GMT; path=/; domain=.vk.com Pragma: - no-cache Cache-Control: - no-store X-Frame-Options: - SAMEORIGIN body: encoding: ASCII-8BIT string: !binary |- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NU WVBFIGh0bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmls ZSAxLjAvL0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3hodG1s LW1vYmlsZTEwLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5L3hodG1sIiA+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEu MCwgbWluaW11bS1zY2FsZT0xLjAsIG1heGltdW0tc2NhbGU9MS4wLCB1c2Vy LXNjYWxhYmxlPXllcyIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10 eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cjxt ZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9u ZT1ubyIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBj b250ZW50PSJJRT1lZGdlIiAvPgo8bWV0YSBuYW1lPSJNb2JpbGVPcHRpbWl6 ZWQiIGNvbnRlbnQ9IjE3NiIgLz4KPG1ldGEgbmFtZT0iSGFuZGhlbGRGcmll bmRseSIgY29udGVudD0iVHJ1ZSIgLz4KPGJhc2UgaWQ9ImJhc2UiPgo8dGl0 bGU+0JzQvtCx0LjQu9GM0L3QsNGPINCy0LXRgNGB0LjRjyDQktCa0L7QvdGC 0LDQutGC0LU8L3RpdGxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw dCI+CjwhLS0KKGZ1bmN0aW9uKGssYSxkLGUsZil7ZnVuY3Rpb24gbCgpe3Zh ciBjPWZ1bmN0aW9uKCl7dmFyIGI9ITE7dHJ5e2I9bmV3IFhNTEh0dHBSZXF1 ZXN0fWNhdGNoKGEpe3RyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIu WE1MSFRUUCIpfWNhdGNoKGQpe3RyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KCJN aWNyb3NvZnQuWE1MSFRUUCIpfWNhdGNoKGMpe2I9ITF9fX1yZXR1cm4gYj9l OmZ9KCksZz1mdW5jdGlvbigpe3ZhciBiPWsuY3JlYXRlRWxlbWVudCgiZGl2 Iik7Yi5pbm5lckhUTUw9JzxpbnB1dCB0eXBlPSJmaWxlIiAvPic7Yj1iLmdl dEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO3JldHVybiJmaWxlIiE9 Yi50eXBlfHxiLmRpc2FibGVkP2Y6ZX0oKSxoPSJvbnRvdWNoc3RhcnQiaW4g YT9lOmYsbTt0cnl7bT10eXBlb2YgbmF2aWdhdG9yLmdlb2xvY2F0aW9uIT09 ZD9lOnR5cGVvZiBhLmdvb2dsZSE9PWQmJnR5cGVvZiBnb29nbGUuZ2VhcnMh PT1kP2U6dHlwZW9mIGRldmljZSE9PWQmJnR5cGVvZiBkZXZpY2UuZ2V0U2Vy dmljZU9iamVjdCE9PWQ/ZTp0eXBlb2YgTW9qbyE9PWQmJiJNb2pvLlNlcnZp Y2UuUmVxdWVzdCIhPT10eXBlb2YgTW9qby5TZXJ2aWNlLlJlcXVlc3Q/ZTpm fWNhdGNoKHApe209Zn12YXIgbD1mdW5jdGlvbihiKXt0cnl7dmFyIGQ9YS5B dWRpbz9uZXcgQXVkaW86ay5jcmVhdGVFbGVtZW50KCJhdWRpbyIpO2lmKGQu Y2FuUGxheVR5cGUmJmQuY2FuUGxheVR5cGUoYikmJiJubyIhPWQuY2FuUGxh eVR5cGUoYikpcmV0dXJuIGV9Y2F0Y2goYyl7fXJldHVybiBmfSgiYXVkaW8v bXBlZyIpLG49ZnVuY3Rpb24oYil7dHJ5e2Zvcih2YXIgYT1rLmNyZWF0ZUVs ZW1lbnQoImRpdiIpLGM9MCxnPVsid2Via2l0IiwiTW96IiwibXMiLCJPIiwi Il0saD1nLmxlbmd0aDtjPGg7YysrKXt2YXIgbD1nW2NdLG09bD9sK2I6Yi50 b0xvd2VyQ2FzZSgpO2lmKHR5cGVvZiBhLnN0eWxlW21dIT09ZClyZXR1cm4g ZX1yZXR1cm4gZn1jYXRjaChuKXtyZXR1cm4gZn19KCJUcmFuc2Zvcm0iKTty ZXR1cm4gYytnK2grbStsK24rKChhLlhNTEh0dHBSZXF1ZXN0fHxhLlhEb21h aW5SZXF1ZXN0KSYmKGEuRm9ybURhdGF8fGEuRmlsZVJlYWRlciYmKGEuWE1M SHR0cFJlcXVlc3QmJlhNTEh0dHBSZXF1ZXN0LnNlbmRBc0JpbmFyeXx8YS5B cnJheUJ1ZmZlciYmYS5VaW50OEFycmF5JiYoYS5Nb3pCbG9iQnVpbGRlcnx8 YS5XZWJLaXRCbG9iQnVpbGRlcnx8YS5CbG9iQnVpbGRlcikpKT9lOmYpfXZh ciBjPWEuc2NyZWVuLGc9Yy53aWR0aHx8MCxjPWMuaGVpZ2h0fHwwLG49YS5k ZXZpY2VQaXhlbFJhdGlvfHwxLHA9KGsuY29va2llLm1hdGNoKC8oXnw7XHMr KXJlbWl4bWRldmljZT0oW147XSspLyl8fFtdKVsyXXx8IiIsaD1wLnNwbGl0 KCIvIik7cCYmZz09aFswXSYmYz09aFsxXSYmNz09aFszXS5sZW5ndGh8fChn PVtnLGMsbixsKCldLmpvaW4oIi8iKSxrLmNvb2tpZT0icmVtaXhtZGV2aWNl PTsgZXhwaXJlcz0iKyhuZXcgRGF0ZSgwKSkudG9VVENTdHJpbmcoKSsiOyBw YXRoPS8iLGsuY29va2llPSJyZW1peG1kZXZpY2U9IitnKyI7IGV4cGlyZXM9 IisobmV3IERhdGUoKG5ldyBEYXRlKS5nZXRUaW1lKCkrNzc3NkU2KSkudG9V VENTdHJpbmcoKSsiOyBwYXRoPS87IGRvbWFpbj0udmsuY29tIixsb2NhdGlv bi5yZXBsYWNlKGxvY2F0aW9uLnRvU3RyaW5nKCkpKX0pKGRvY3VtZW50LHdp bmRvdywidW5kZWZpbmVkIiwiISIsIi0iKTsoZnVuY3Rpb24oYSxkKXt2YXIg Yz1hLmhhc2h8fCIiLGI9Yy5zdWJzdHIoMik7IiMvIj09Yy5zdWJzdHIoMCwy KSYmIWQmJihiLm1hdGNoKC9eXC8qKGF3YXl8bG9naW4pKFwucGhwKT8oW15h LXowLTlcLl18JCkvKSYmKGI9IiIpLGEucmVwbGFjZShhLnByb3RvY29sKyIv LyIrYS5ob3N0KyIvIitiKSl9KShsb2NhdGlvbik7Ci8vLS0+Cjwvc2NyaXB0 Pgo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVm PSIvY3NzL3NfYy5jc3M/OTAiPjwvbGluaz4KPGxpbmsgdHlwZT0idGV4dC9j c3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9Im9ubHkgc2NyZWVuIiBocmVm PSIvY3NzL3NfZ3l6LmNzcz85MiI+PC9saW5rPgo8bGluayByZWw9InNob3J0 Y3V0IGljb24iIGhyZWY9Ii9pbWFnZXMvZmF2aWNvbm5ldy5pY28iPjwvbGlu az4KPC9oZWFkPgo8Ym9keSBpZD0idmsiIGNsYXNzPSJfaG92ZXIiPgo8ZGl2 IGlkPSJ2a191dGlscyI+PC9kaXY+CjxkaXYgaWQ9InZrX2hlYWQiIGNsYXNz PSJtaGVhZCI+CjxkaXYgY2xhc3M9ImhiX3dyYXAiPjxkaXYgY2xhc3M9Imhi X2J0biI+Jm5ic3A7PC9kaXY+PC9kaXY+CjwvZGl2Pgo8ZGl2IGlkPSJ2a193 cmFwIj4KPGRpdiBpZD0ibCI+PC9kaXY+CjxkaXYgaWQ9Im0iPjxkaXYgaWQ9 Im1oZWFkIiBjbGFzcz0ibWhlYWQiPgo8YSBocmVmPSIvIiBhY2Nlc3NrZXk9 IioiIGNsYXNzPSJoYl93cmFwIG1oYl9sb2dvIj4KPGRpdiBjbGFzcz0iaGJf YnRuIG1oaV9sb2dvIj4mbmJzcDs8L2Rpdj4KPGgxIGNsYXNzPSJoYl9idG4g bWhfaGVhZGVyIj4mbmJzcDs8L2gxPgo8L2E+PC9kaXY+CjxkaXYgaWQ9Im1j b250IiBjbGFzcz0ibWNvbnQiPjxkaXYgY2xhc3M9InBjb250IGZpdF9ib3gg YmxfY29udCI+CjxkaXYgY2xhc3M9InRleHRfcGFuZWwiPgrQnNC+0LHQuNC7 0YzQvdCw0Y8g0LLQtdGA0YHQuNGPINC/0L7QvNC+0LbQtdGCINCS0LDQvCDQ vtGB0YLQsNCy0LDRgtGM0YHRjyDQktCa0L7QvdGC0LDQutGC0LUsINC00LDQ ttC1INC10YHQu9C4INCS0Ysg0LTQsNC70LXQutC+INC+0YIg0LrQvtC80L/R jNGO0YLQtdGA0LAuCjwvZGl2Pgo8ZGl2IGNsYXNzPSJmb3JtX2l0ZW0gZmlf ZmF0Ij4KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Imh0dHBzOi8vbG9n aW4udmsuY29tLz9hY3Q9bG9naW4mX29yaWdpbj1odHRwOi8vbS52ay5jb20m aXBfaD1iZDJlMzIyNDFiMzkxZThlOWEmcm9sZT1wZGEmdXRmOD0xIj4KPGRs IGNsYXNzPSJmaV9yb3ciPgo8ZHQgY2xhc3M9ImZpX2xhYmVsIj7QotC10LvQ tdGE0L7QvSDQuNC70LggZW1haWw6PC9kdD4KPGRkPgo8ZGl2IGNsYXNzPSJp d3JhcCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ0ZXh0ZmllbGQiIG5h bWU9ImVtYWlsIiB2YWx1ZT0iIiAvPjwvZGl2Pgo8L2RkPgo8L2RsPgo8ZGwg Y2xhc3M9ImZpX3JvdyI+CjxkdCBjbGFzcz0iZmlfbGFiZWwiPtCf0LDRgNC+ 0LvRjDo8L2R0Pgo8ZGQ+CjxkaXYgY2xhc3M9Iml3cmFwIj48aW5wdXQgdHlw ZT0icGFzc3dvcmQiIGNsYXNzPSJ0ZXh0ZmllbGQiIG5hbWU9InBhc3MiIC8+ PC9kaXY+CjwvZGQ+CjwvZGw+CjxkaXYgY2xhc3M9ImZpX3JvdyI+CjxpbnB1 dCBjbGFzcz0iYnV0dG9uIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSLQktC+0LnR gtC4IiAvPjxkaXYgY2xhc3M9Im5lYXJfYnRuIj48YSBocmVmPSIvcmVzdG9y ZSI+0JfQsNCx0YvQu9C4INC/0LDRgNC+0LvRjD88L2E+PC9kaXY+CjwvZGl2 Pgo8ZGl2IGNsYXNzPSJmaV9yb3dfbmV3Ij4KPGEgY2xhc3M9ImJ1dHRvbiB3 aWRlX2J1dHRvbiIgaHJlZj0iL2pvaW4iPtCX0LDRgNC10LPQuNGB0YLRgNC4 0YDQvtCy0LDRgtGM0YHRjzwvYT4KPC9kaXY+CjwvZm9ybT4KPC9kaXY+Cjwv ZGl2PjwvZGl2Pgo8ZGl2IGlkPSJtZm9vdCIgY2xhc3M9Im1mb290Ij48ZGl2 IGNsYXNzPSJwZm9vdCI+Cjx1bCBjbGFzcz0iZm9vdGVyX21lbnUiPgo8bGkg Y2xhc3M9ImZtX3JvdyI+PGEgY2xhc3M9ImZtX2l0ZW0iIGhyZWY9Ii9zZXR0 aW5ncz9hY3Q9Y2hhbmdlX3JlZ2lvbmFsJmhhc2g9NGVlOGJjM2QzOTc5ZDRk OWNjJmxhbmdfaWQ9MyI+RW5nbGlzaDwvYT48L2xpPjxsaSBjbGFzcz0iZm1f cm93Ij48YSBjbGFzcz0iZm1faXRlbSIgaHJlZj0iL3NldHRpbmdzP2FjdD1j aGFuZ2VfcmVnaW9uYWwmaGFzaD00ZWU4YmMzZDM5NzlkNGQ5Y2MmbGFuZ19p ZD0xIj7Qo9C60YDQsNGX0L3RgdGM0LrQsDwvYT48L2xpPgo8bGkgY2xhc3M9 ImZtX3JvdyI+PGEgY2xhc3M9ImZtX2l0ZW0iIGhyZWY9Ii9zZXR0aW5ncyI+ YWxsIGxhbmd1YWdlcyDCuzwvYT48L2xpPgo8L3VsPgo8dWwgaWQ9ImZvb3Rl cl9tZW51IiBjbGFzcz0iZm9vdGVyX21lbnUiPgo8bGkgY2xhc3M9ImZtX3Jv dyI+PGEgY2xhc3M9ImZtX2l0ZW0iIGhyZWY9Imh0dHA6Ly92ay5jb20vP19m bT1pbmRleCI+0J/QvtC70L3QsNGPINCy0LXRgNGB0LjRjzwvYT48L2xpPgo8 L3VsPgo8L2Rpdj48L2Rpdj4KPGltZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBz cmM9Ii8vY291bnRlci55YWRyby5ydS9oaXQ/dWh0dHAlM0ElMkYlMkZtLnZr LmNvbSUyRjtyOzkyOTM2OTUwIiBhbHQ9IiIgYWxpZ249ImxlZnQiIC8+Cjxp bWcgd2lkdGg9IjEiIGhlaWdodD0iMSIgc3JjPSIvL2Iuc2NvcmVjYXJkcmVz ZWFyY2guY29tL3A/YzE9MiZjMj0xMzc2NTIxNiZjMz0mYzQ9aHR0cCUzQSUy RiUyRm0udmsuY29tJTJGJmM1PSZjOT1jMTU9JmN2PTIuMCZjaj0xJnJuPTky OTM2OTUwIiBhbHQ9IiIgYWxpZ249ImxlZnQiIC8+PC9kaXY+CjxkaXYgaWQ9 InoiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0idmtfYm90dG9tIj48L2Rpdj4K PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCnBhcmVudCYm cGFyZW50IT13aW5kb3cmJihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt ZSgnYm9keScpWzBdLmlubmVySFRNTD0nJyk7Ci8vLS0+Cjwvc2NyaXB0Pgo8 L2JvZHk+CjwvaHRtbD4= http_version: recorded_at: Tue, 22 Oct 2013 15:49:54 GMT recorded_with: VCR 2.6.0