You are viewing an archive of Victory Road.
Victory Road closed on January 8, 2018. Thank you for making us a part of your lives since 2006! Please read this thread for details if you missed it.
Victory Road Instant Messenger 1.0, the successor to VRC and the first truly stable offering yet made is quickly nearing completion. While some features may not have landed successfully, one of the best did: message obfuscation and encryption. Just what does this mean, though?
VRIM naturally stores every message you send indefinitely. This is so you can go back and look through large archives of information, and if needed see what happened on a certain date for instance. But what if, perchance, VictoryRoad was hacked? Even some of the best secured websites were brought down in less than an hour by relatively inexperienced hackers, so what if we should for some reason be targeted? There lies the benefit of encryption: and powerful encryption at that. Most chat software, such as the previously used Cyb software used in the VRC and many other vBulletin add-ons feature no such encryption. If somehow the site was hacked, every single message you ever sent would be revealed. VRIM, however, uses what is called 3DES, or the Triple Data Encryption Algorithm. An incredibly strong form of encryption, it can not be trivially unencrypted by any would-be hacker. Brute-forcing is impossible from the start, and reversing the algorithm is at present thought to be likewise impossible. The only way to do it is with two pieces of data: one is included within the message itself, the other hidden away soundly. A basic example is below, printing the actual MySQL database: what you would have if you hacked it:
| Message ID | Raw Text | VB Text | HTML Text | Salt | IV |
|---|---|---|---|---|---|
| 4872754 | jLcXZge+I8b+0c4OzKgYueppFbZK/0J1k9u+H/2RDg= | 4jLcXZge+I8b+0c4OzKgYueppFbZK/0J1k9u+H/2RDg= | 4jLcXZge+I8b+0c4OzKgYueppFbZK/0J1k9u+H/2RDg= | 101 | H7XEpal4sAs |
| 487274 | SBDw2he/F1o= | SBDw2he/F1o= | SBDw2he/F1o= | 101 | itfis/Y1m84= |
| 487273 | eQ9GUV0amqvmDSIvAuClTj3uAcs/eaZP | eQ9GUV0amqvmDSIvAuClTj3uAcs/eaZP | eQ9GUV0amqvmDSIvAuClTj3uAcs/eaZP | 101 | P6hC+A97HLI |
| 487272 | Ns0fdp5FrLY= | Ns0fdp5FrLY= | Ns0fdp5FrLY= | 101 | gKydUM8JPpo= |
| 487271 | ASy5swh2Px8= | ASy5swh2Px8= | ASy5swh2Px8= | 101 | C3bGRXu32cU= |
| 487270 | oO8ChklfKv7TvB22RXClr6rFjl4mQob3 | oO8ChklfKv7TvB22RXClr6rFjl4mQob3 | oO8ChklfKv7TvB22RXClr6rFjl4mQob3 | 101 | zJ+qnXMjeFM |
| 487275 | 4jLcXZge+I8b+0c4OzKgYueppFbZK/0J1k9u+H/2RDg= | 4jLcXZge+I8b+0c4OzKgYueppFbZK/0J1k9u+H/2RDg= | 4jLcXZge+I8b+0c4OzKgYueppFbZK/0J1k9u+H/2RDg= | 101 | H7XEpal4sAs |
| 487274 | SBDw2he/F1o= | SBDw2he/F1o= | SBDw2he/F1o= | 101 | itfis/Y1m84= |
| 487273 | eQ9GUV0amqvmDSIvAuClTj3uAcs/eaZP | eQ9GUV0amqvmDSIvAuClTj3uAcs/eaZP | eQ9GUV0amqvmDSIvAuClTj3uAcs/eaZP | 101 | P6hC+A97HLI |
| 487272 | Ns0fdp5FrLY= | Ns0fdp5FrLY= | Ns0fdp5FrLY= | 101 | gKydUM8JPpo= |
| 487271 | ASy5swh2Px8= | ASy5swh2Px8= | ASy5swh2Px8= | 101 | C3bGRXu32cU= |
| 487270 | oO8ChklfKv7TvB22RXClr6rFjl4mQob3 | oO8ChklfKv7TvB22RXClr6rFjl4mQob3 | oO8ChklfKv7TvB22RXClr6rFjl4mQob3 | 101 | zJ+qnXMjeFM |
PHNwYW4gaWQ9Im1lc3NhZ2U0ODY2MjciIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NjI3JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NjI3JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0MzowNWFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5GZWVsIGZyZWUgdG8gcmVmcmVzaCBhZ2Fpbi48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY2MjgiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NjI4JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NjI4JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0MzoxM2FtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5TZWUhIEkgY2FuIHRvdGFsbHkgdG9wIEtZQSA4RDwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjYyOSIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY2MjknLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY2MjknKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9NSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSI1Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLDEyNywxMjcpOyAiPkdyZWVuTWFuKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDM6MzNhbTwvZW0+OiA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYig2Myw2Myw2Myk7IHBhZGRpbmc6IDJweDsiPm9rIGJldHRlcjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjYzMSIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY2MzEnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY2MzEnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigyNTUsMCwwKTsgIj5DYXQzMzNQb2vDqW1vbio8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQzOjQwYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTI3LDAsMCk7IGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjsgcGFkZGluZzogMnB4OyI+Xjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjYzMiIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY2MzInLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY2MzInKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTc5IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE3OSI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTcwLDAsMCk7ICI+RnJlZXplV2FycCo8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQzOjQ0YW08L2VtPjogPHNwYW4gc3R5bGU9InBhZGRpbmc6IDJweDsiPi4uLk15IG9ubHkgcmVhbCBjb25jZXJuIHdpdGggdGhhdCBmb3VyIG1pbnV0ZSBicmVha2FnZSBpcyBhbnkgYnJvd3NlciBpc3N1ZXMuPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NjMzIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjYzMycsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjYzMycpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT01IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjUiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsMTI3LDEyNyk7ICI+R3JlZW5NYW4qPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0Mzo0NGFtPC9lbT46IDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDYzLDYzLDYzKTsgcGFkZGluZzogMnB4OyI+bm90IGEgZ29vZCB0aGluZyBtYW48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY2NDIiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NjQyJywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NjQyJykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0NDo0NWFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5XaGF0IEkgZGlkIHdhcyBhIHNsaWdodCBleHBlcmltZW50IGluIGluY3JlZGlibHkgYmFzaWMgUFVTSCBtZXNzYWdpbmcuIEknbSBob3BpbmcgaXQgd2lsbCwgaWYgbm90aGluZyBlbHNlLCByZWR1Y2Ugc29tZSBzZXJpb3VzIGJ1Z3MgSSd2ZSBiZWVuIGVuY291bnRlcmluZyB3aGVuIHRyeWluZyB0byBoYXZlIHR3byBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgd2luZG93IG9wZW4uPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NjQ1IiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjY0NScsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjY0NScpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNzkiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTc5Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5GcmVlemVXYXJwKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDU6MDNhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+KEkgaGF2ZSB5ZXQgdG8gdGVzdCB0aGlzIHRoZW9yeS4pPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NjQ4IiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjY0OCcsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjY0OCcpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNzkiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTc5Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5GcmVlemVXYXJwKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDU6MTlhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+Q2F0LCBJIGFtIHVuZGVyIHRoZSBpbXByZXNzaW9uIElFIGlzIHdvcmtpbmcgZmluZSBmb3IgeW91IG5vdz88L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY2NjkiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NjY5JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NjY5JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTMxNSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIzMTUiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPk9NR0lUU0pBRDwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDc6MTJhbTwvZW0+OiA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYig1Nyw3NCwxMjMpOyBmb250LWZhbWlseTogVGFob21hLCBzYW5zLXNlcmlmOyBwYWRkaW5nOiAycHg7Ij4mZ3Q7aW1wbHlpbmcgSUUgY2FuIGV2ZXIgd29yayBmaW5lPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NjczIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjY3MycsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjY3MycpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0zMTUiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMzE1Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5PTUdJVFNKQUQ8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQ3OjMzYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoNTcsNzQsMTIzKTsgZm9udC1mYW1pbHk6IFRhaG9tYSwgc2Fucy1zZXJpZjsgcGFkZGluZzogMnB4OyI+aXQgcnVubmluZyBpbiB0aGUgZmlyc3QgcGxhY2UgbWVhbnMgaXQncyBnb2luZyB3cm9uZyAgRDo8L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY2NzYiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2Njc2JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2Njc2JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0Nzo0N2FtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij54RDwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjY3OCIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY2NzgnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY2NzgnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigyNTUsMCwwKTsgIj5DYXQzMzNQb2vDqW1vbio8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQ3OjUwYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTI3LDAsMCk7IGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjsgcGFkZGluZzogMnB4OyI+SSdtIGluIE9wZXJhIGF0IHRoZSBtb21lbnQuPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NjgwIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjY4MCcsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjY4MCcpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjEiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDI1NSwwLDApOyAiPkNhdDMzM1Bva8OpbW9uKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDc6NTZhbTwvZW0+OiA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxMjcsMCwwKTsgZm9udC1mYW1pbHk6IEdlb3JnaWEsIHNlcmlmOyBwYWRkaW5nOiAycHg7Ij48c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsgcGFkZGluZzogMTBweDsiPiogQ2F0MzMzUG9rw6ltb24ga2lja2VkIE9NR0lUU0pBRDwvc3Bhbj48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY2ODEiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NjgxJywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NjgxJykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0ODowM2FtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5PaD8gUHJlZmVycmVuY2Ugb3Igb3V0IG9mIG5lY2Npc3NpdHk/PC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NjgyIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjY4MicsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjY4MicpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT02MTMiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iNjEzIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLDAsMjU1KTsgIj5GdWJhYl8xMDc8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQ4OjEyYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCw0OSw4Myk7IHBhZGRpbmc6IDJweDsiPk9wZXJhPzwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjY4NCIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY2ODQnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY2ODQnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MzE1IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjMxNSI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTcwLDAsMCk7ICI+T01HSVRTSkFEPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0ODoxNmFtPC9lbT46IDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDU3LDc0LDEyMyk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIHNhbnMtc2VyaWY7IHBhZGRpbmc6IDJweDsiPmsgdGhlbjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjY5NCIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY2OTQnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY2OTQnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigyNTUsMCwwKTsgIj5DYXQzMzNQb2vDqW1vbio8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQ5OjAxYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTI3LDAsMCk7IGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjsgcGFkZGluZzogMnB4OyI+V29ya3MgdGhlIHNlY29uZC1iZXN0IG9uIHRoaXMgbmV0Ym9vayAoYmVoaW5kIENocm9tZSk8L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY2OTgiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2Njk4JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2Njk4JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTEiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMSI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMjU1LDAsMCk7ICI+Q2F0MzMzUG9rw6ltb24qPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0OToxMWFtPC9lbT46IDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDEyNywwLDApOyBmb250LWZhbWlseTogR2VvcmdpYSwgc2VyaWY7IHBhZGRpbmc6IDJweDsiPkJ1dCBDaHJvbWUgbG9va3MgZmFyIHRvbyBtb2Rlcm4gZm9yIHRoZSBsb29rIEknbSBnb2luZyBmb3IuPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NzAwIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjcwMCcsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjcwMCcpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNzkiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTc5Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5GcmVlemVXYXJwKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDk6MTZhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+SGFoYS4gTWFrZXMgc2Vuc2UgPGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvaW1hZ2VzL3NtaWxpZXMvdG9uZ3VlLmdpZiIgdGFyZ2V0PSJfQkxBTksiPjxpbWcgc3JjPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9pbWFnZXMvc21pbGllcy90b25ndWUuZ2lmIiBhbHQ9IjpQIiBjbGFzcz0iZW1iZWRJbWFnZSIgLz48L2E+PC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NzAxIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjcwMScsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjcwMScpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNzkiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTc5Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5GcmVlemVXYXJwKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDk6MThhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+eEQhPC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NzAzIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjcwMycsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjcwMycpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNzkiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTc5Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5GcmVlemVXYXJwKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NDk6MjlhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+QSBsb3Qgb2YgcGVvcGxlIGNvbXBsYWluIGFib3V0IENocm9tZSdzIFVJIDxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L2ltYWdlcy9zbWlsaWVzL3Rvbmd1ZS5naWYiIHRhcmdldD0iX0JMQU5LIj48aW1nIHNyYz0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvaW1hZ2VzL3NtaWxpZXMvdG9uZ3VlLmdpZiIgYWx0PSI6UCIgY2xhc3M9ImVtYmVkSW1hZ2UiIC8+PC9hPjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjcwNSIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY3MDUnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY3MDUnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9NjEzIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjYxMyI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwwLDI1NSk7ICI+RnViYWJfMTA3PC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0OTozNWFtPC9lbT46IDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsNDksODMpOyBwYWRkaW5nOiAycHg7Ij5vaGhoIHRoYXQgT3BlcmE8L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY3MDYiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NzA2JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NzA2JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0OTozNmFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5IbS4uLjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjcwNyIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY3MDcnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY3MDcnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTc5IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE3OSI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTcwLDAsMCk7ICI+RnJlZXplV2FycCo8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjQ5OjM3YW08L2VtPjogPHNwYW4gc3R5bGU9InBhZGRpbmc6IDJweDsiPkl0IHdvcmtlZC48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY3MDgiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NzA4JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NzA4JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0OTo0MmFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5TaG9ja2luZ2x5IGl0IHdvcmtlZC48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY3MTAiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NzEwJywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NzEwJykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo0OTo1OGFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5UaGUgSmF2YXNjcmlwdCBleHBlcmltZW50IGlzIGEgc3VjY2VzcywgYW5kIHdpdGggdmVyeSBsaXR0bGUgZGVidWdnaW5nLjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjcxNSIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY3MTUnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY3MTUnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTc5IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE3OSI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTcwLDAsMCk7ICI+RnJlZXplV2FycCo8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjUwOjM5YW08L2VtPjogPHNwYW4gc3R5bGU9InBhZGRpbmc6IDJweDsiPkEgZ3JlYXQgc2lnbiBmb3IgdGhlIG5leHQgdmVyc2lvbjsgaXRzIHRvbyBsYXRlIGluIHRoZSBwcm9jZXNzIG5vdywgYnV0IGl0IHNob3dzIG1lIGhvdyB0byBkbyBtYW55IHRoaW5ncyB0aGF0IGhhdmUgY29uZm91bmRlZCBtZSB0aHVzIGZhci48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY3MTciIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NzE3JywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NzE3JykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTEwIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjEwIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLDAsMCk7ICI+Q2F0PC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo1MTowMmFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij50ZXN0PC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NzIwIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjcyMCcsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjcyMCcpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xMCIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxMCI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwwLDApOyAiPkNhdDwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NTE6MTlhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+T2theSwgSUU4IChzdGlsbCBuZWVkIHRvIHVwZ3JhZGUgaXQgYXQgc29tZSBwb2ludCkgaXMgd29ya2luZy48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY3MjMiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NzIzJywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NzIzJykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE3OSIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNzkiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE3MCwwLDApOyAiPkZyZWV6ZVdhcnAqPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo1MTo0NWFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5NaWxkbHkgc3VycHJpc2VkLjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4NjcyNyIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY3MjcnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY3MjcnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTc5IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE3OSI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTcwLDAsMCk7ICI+RnJlZXplV2FycCo8L3NwYW4+CjwvYT4KICBAIDxlbT4xOjUyOjE1YW08L2VtPjogPHNwYW4gc3R5bGU9InBhZGRpbmc6IDJweDsiPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0Lz9zaG93VlJJTT10cnVlIiB0YXJnZXQ9Il9CTEFOSyI+aHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvP3Nob3dWUklNPXRydWU8L2E+PC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2NzI4IiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4NjcyOCcsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4NjcyOCcpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNzkiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTc5Ij4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNzAsMCwwKTsgIj5GcmVlemVXYXJwKjwvc3Bhbj4KPC9hPgogIEAgPGVtPjE6NTI6MjRhbTwvZW0+OiA8c3BhbiBzdHlsZT0icGFkZGluZzogMnB4OyI+SXRzIG9idmlvdXNseSBtZXJlbHkgYSBQb0MsIGJ1dCBpdCB3b3JrcyB3ZWxsIGVub3VnaC48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODY3MzEiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg2NzMxJywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg2NzMxJykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTEwIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjEwIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLDAsMCk7ICI+Q2F0PC9zcGFuPgo8L2E+CiAgQCA8ZW0+MTo1Mjo1OGFtPC9lbT46IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7Ij5Pb2gsIHRoYXQncyBjb29sLjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4Njk2NCIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY5NjQnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY5NjQnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTUzIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE1MyI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwxNzAsMCk7ICI+TmluZ2FtZXI8L3NwYW4+CjwvYT4KICBAIDxlbT4yOjIzOjUwYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwwLDApOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk0LDE5NCwxOTQpOyBwYWRkaW5nOiAycHg7Ij5TbyBWUklNJ3Mgb2ZmaWNpYWxseSBvZmZpY2lhbCBub3c/PC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2OTcyIiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4Njk3MicsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4Njk3MicpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNTI2IiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE1MjYiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsMCwwKTsgIj5Sb3RvbUd1eTwvc3Bhbj4KPC9hPgogIEAgPGVtPjI6MjU6MDlhbTwvZW0+OiA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigyMzAsMTM4LDApOyBmb250LWZhbWlseTogQ291cmllciwgbW9ub3NwYWNlOyBwYWRkaW5nOiAycHg7Ij5ndWVzcyBzbzwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4Njk3MyIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY5NzMnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY5NzMnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTUzIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE1MyI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwxNzAsMCk7ICI+TmluZ2FtZXI8L3NwYW4+CjwvYT4KICBAIDxlbT4yOjI1OjUxYW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwwLDApOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk0LDE5NCwxOTQpOyBwYWRkaW5nOiAycHg7Ij5Db29sLjwvc3Bhbj48YnIgLz4KPC9zcGFuPgo8c3BhbiBpZD0ibWVzc2FnZTQ4Njk3NSIgY2xhc3M9Im1lc3NhZ2VMaW5lIj4KICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UnKSkgeyAkLmFqYXgoe3VybDogJy9hamF4L21vZEFjdGlvbi5waHA/YWN0aW9uPWRlbGV0ZXBvc3QmYW1wO3Bvc3RpZD00ODY5NzUnLCB0eXBlOiAnR0VUJywgY2FjaGU6IGZhbHNlLCBzdWNjZXNzOiBmdW5jdGlvbigpIHsgJCgnI21lc3NhZ2U0ODY5NzUnKS5mYWRlT3V0KCk7IH0gfSk7IH0iPgogICAgPGltZyBzcmM9ImltYWdlcy9lZGl0LWRlbGV0ZS5wbmciIHN0eWxlPSJoZWlnaHQ6IDEycHg7IHdpZHRoOiAxMnB4OyIgYWx0PSJEZWwiIC8+CiAgIDwvYT48YSBocmVmPSJodHRwOi8vd3d3LnZpY3Rvcnlyb2FkLm5ldC9tZW1iZXIucGhwP3U9MTUzIiBjbGFzcz0idXNlcm5hbWUgdXNlcm5hbWVUYWJsZSIgZGF0YS11c2VyaWQ9IjE1MyI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwxNzAsMCk7ICI+TmluZ2FtZXI8L3NwYW4+CjwvYT4KICBAIDxlbT4yOjI2OjE1YW08L2VtPjogPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwwLDApOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk0LDE5NCwxOTQpOyBwYWRkaW5nOiAycHg7Ij5JJ20gaGVhZGluZyBvZmYgaW4gYSB3aGlsZSB0byBnZXQgYSBDZWxlYmkgXn5ePC9zcGFuPjxiciAvPgo8L3NwYW4+CjxzcGFuIGlkPSJtZXNzYWdlNDg2OTc4IiBjbGFzcz0ibWVzc2FnZUxpbmUiPgogIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZScpKSB7ICQuYWpheCh7dXJsOiAnL2FqYXgvbW9kQWN0aW9uLnBocD9hY3Rpb249ZGVsZXRlcG9zdCZhbXA7cG9zdGlkPTQ4Njk3OCcsIHR5cGU6ICdHRVQnLCBjYWNoZTogZmFsc2UsIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkgeyAkKCcjbWVzc2FnZTQ4Njk3OCcpLmZhZGVPdXQoKTsgfSB9KTsgfSI+CiAgICA8aW1nIHNyYz0iaW1hZ2VzL2VkaXQtZGVsZXRlLnBuZyIgc3R5bGU9ImhlaWdodDogMTJweDsgd2lkdGg6IDEycHg7IiBhbHQ9IkRlbCIgLz4KICAgPC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudmljdG9yeXJvYWQubmV0L21lbWJlci5waHA/dT0xNTMiIGNsYXNzPSJ1c2VybmFtZSB1c2VybmFtZVRhYmxlIiBkYXRhLXVzZXJpZD0iMTUzIj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLDE3MCwwKTsgIj5OaW5nYW1lcjwvc3Bhbj4KPC9hPgogIEAgPGVtPjI6MjY6MzBhbTwvZW0+OiA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLDAsMCk7IGJhY2tncm91bmQtY29sb3I6IHJnYigxOTQsMTk0LDE5NCk7IHBhZGRpbmc6IDJweDsiPlRoZW4gSSdsbCBoYXZlIGV2ZXJ5IFBva8OpbW9uIGV4Y2VwdCBEZW94eXMuLi48L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNwYW4gaWQ9Im1lc3NhZ2U0ODcwNDAiIGNsYXNzPSJtZXNzYWdlTGluZSI+CiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBtZXNzYWdlJykpIHsgJC5hamF4KHt1cmw6ICcvYWpheC9tb2RBY3Rpb24ucGhwP2FjdGlvbj1kZWxldGVwb3N0JmFtcDtwb3N0aWQ9NDg3MDQwJywgdHlwZTogJ0dFVCcsIGNhY2hlOiBmYWxzZSwgc3VjY2VzczogZnVuY3Rpb24oKSB7ICQoJyNtZXNzYWdlNDg3MDQwJykuZmFkZU91dCgpOyB9IH0pOyB9Ij4KICAgIDxpbWcgc3JjPSJpbWFnZXMvZWRpdC1kZWxldGUucG5nIiBzdHlsZT0iaGVpZ2h0OiAxMnB4OyB3aWR0aDogMTJweDsiIGFsdD0iRGVsIiAvPgogICA8L2E+PGEgaHJlZj0iaHR0cDovL3d3dy52aWN0b3J5cm9hZC5uZXQvbWVtYmVyLnBocD91PTE1MyIgY2xhc3M9InVzZXJuYW1lIHVzZXJuYW1lVGFibGUiIGRhdGEtdXNlcmlkPSIxNTMiPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsMTcwLDApOyAiPk5pbmdhbWVyPC9zcGFuPgo8L2E+CiAgQCA8ZW0+MjozNToxN2FtPC9lbT46IDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsMCwwKTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NCwxOTQsMTk0KTsgcGFkZGluZzogMnB4OyI+QnllIGJ5ZSE8L3NwYW4+PGJyIC8+Cjwvc3Bhbj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBsYXN0TWVzc2FnZSA9IDQ4NzA0MDs8L3NjcmlwdD4=
1 – Cat333Pokémon