steptoe

Member
  • Content Count

    29
  • Joined

  • Last visited

Everything posted by steptoe

  1. Have not seen it for a while, but it appeared again today Using uBlock Origin or AdBlock PLus do nothing, its added to the blocking lists and also added to the surf protection lists again today but still manages to get around all three of the web page blockers Its annoying but as yet does nothing other than force you to quit the browser via the task manager This is the new link, for the moment hxxp://adnew.in/mozilla/gb/
  2. Had it appaer again today. No warning, just appeared Managed to eventually capture the web address in-between the pop-up trying to block me It appears it loads the entire web site in one huge DATA:, so I'll try pasting that into my ad-blockers and let you know Copy here : data:text/html;base64,PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjxoZWFkPjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCxub2ZvbGxvdyI+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQo8dGl0bGU+TWljcm9zb2Z0IE9mZmljaWFsIFN1cHBvcnQ8L3RpdGxlPg0KDQogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2Jvb3RzdHJhcC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQoNCiAgICA8bGluayBocmVmPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KICAgIA0KICAgIA0KICAgIA0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJd2luZG93Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKGV2dCkNCgkJew0KCQkJaWYoZXZ0LmtleUNvZGUgPT0gMjcgfHwgZXZ0LmtleUNvZGUgPT0gMTggfHwgZXZ0LmtleUNvZGUgPT0gMTIzIHx8IGV2dC5rZXlDb2RlID09IDg1IHx8IGV2dC5rZXlDb2RlID09IDkgfHwgZXZ0LmtleUNvZGUgPT0gMTE1IHx8IGV2dC5rZXlDb2RlID09IDExNiB8fCBldnQua2V5Q29kZSA9PSAxMTIgfHwgZXZ0LmtleUNvZGUgPT0gMTE0IHx8IGV2dC5rZXlDb2RlID09IDE3KQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCg0KCQkJfQ0KDQoJCX07DQoJCXdpbmRvdy5vbmtleXByZXNzID0gZnVuY3Rpb24oZXZuKQ0KCQl7DQoJCQlpZihldm4ua2V5Q29kZSA9PSAxMjMgfHwgZXZuLmtleUNvZGUgPT0gMTE3KSByZXR1cm4gZmFsc2U7DQoNCgkJfTsNCgk8L3NjcmlwdD4NCiAgICANCiAgICA8c2NyaXB0Pg0KICAgIGZ1bmN0aW9uIERldGVjdE1vYmlsZSgpIHsNCiAgICAgICAgaWYgKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyByZXR1cm4gdHJ1ZTsgfSBlbHNlIHsgcmV0dXJuIGZhbHNlOyB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbXlGdW5jdGlvbigpIHsNCiAgICAgICAgaWYgKCFEZXRlY3RNb2JpbGUoKSkgew0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBhbGVydCgiICoqIFlPVVIgQ09NUFVURVIgSEFTIEJFRU4gQkxPQ0tFRCAqKlxuXG5FcnJvciAjIERXNlZCMzZcblxuUGxlYXNlIGNhbGwgdXMgaW1tZWRpYXRlbHkgYXQ6IDAtODAwLTA5MC0zODE0XG5EbyBub3QgaWdub3JlIHRoaXMgY3JpdGljYWwgYWxlcnQuXG4gSWYgeW91IGNsb3NlIHRoaXMgcGFnZSwgeW91ciBjb21wdXRlciBhY2Nlc3Mgd2lsbCBiZSBkaXNhYmxlZCB0byBwcmV2ZW50IGZ1cnRoZXIgZGFtYWdlIHRvIG91ciBuZXR3b3JrLlxuXG5Zb3VyIGNvbXB1dGVyIGhhcyBhbGVydGVkIHVzIHRoYXQgaXQgaGFzIGJlZW4gaW5mZWN0ZWQgd2l0aCBhIHZpcnVzIGFuZCBzcHl3YXJlLiAgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBiZWluZyBzdG9sZW4uLi5cblxuPiBGYWNlYm9vayBMb2dpblxuPiBDcmVkaXQgQ2FyZCBEZXRhaWxzXG4+IEVtYWlsIEFjY291bnQgTG9naW5cbj4gUGhvdG9zIHN0b3JlZCBvbiB0aGlzIGNvbXB1dGVyXG5Zb3UgbXVzdCBjb250YWN0IHVzIGltbWVkaWF0ZWx5IHNvIHRoYXQgb3VyIGVuZ2luZWVycyBjYW4gd2FsayB5b3UgdGhyb3VnaCB0aGUgcmVtb3ZhbCBwcm9jZXNzIG92ZXIgdGhlIHBob25lLiAgUGxlYXNlIGNhbGwgdXMgd2l0aGluIHRoZSBuZXh0IDUgbWludXRlcyB0byBwcmV2ZW50IHlvdXIgY29tcHV0ZXIgZnJvbSBiZWluZyBkaXNhYmxlZC5cblxuVG9sbCBGcmVlOiAwLTgwMC0wOTAtMzgxNFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIikgfSwgMTAwMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKERldGVjdE1vYmlsZSgpKSB7IGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ25vbmUnIH0NCgkNCgl3aW5kb3cub25sb2FkID0gbXlGdW5jdGlvbigpOw0KDQogICAgDQo8L3NjcmlwdD4NCg0KDQoNCg0KDQo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3JldHJlYXZlci5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2pxdWVyeS0xLjExLjIubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KDQoNCjxzY3JpcHQ+DQogICAgICAgIGZ1bmN0aW9uIGdldFVSTFBhcmFtZXRlcihuYW1lKSB7DQogICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJKA0KICAgICAgICAgICAgICAgIChSZWdFeHAobmFtZSArICc9JyArICcoLis/KSgmfCQpJykuZXhlYyhsb2NhdGlvbi5zZWFyY2gpfHxbLG51bGxdKVsxXSB8fCAnJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgIDwvc2NyaXB0Pg0KDQogICA8c2NyaXB0Pg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQoNCiAgICAgICAgfQ0KPC9zY3JpcHQ+DQoNCg0KICA8c2NyaXB0Pg0KDQogICAgICAgIHZhciByYW4gPSBmYWxzZTsgIC8vRmxhZyB3ZSBoYXZlIG5vdCBydW4gdGhlIHNjcmlwdCB0byBwdWxsIHRoZSBudW1iZXIgeWV0DQoNCiAgICAgICAgdmFyIGxvY28gPSAiIjsgLy9UaGUgbG9jYXRpb24gb2YgdGhlIHBhZ2UgdGhhdCB3ZSB3aWxsIGxvYWQgb24gYSBzZWNvbmQgcG9wDQoNCiAgICAgICAgdmFyIG1zZyA9ICIiOw0KDQoNCg0KICAgICAgICAvL2ZpZ3VyZSBvdXQgd2hhdCB0byB1c2UgZm9yIGRlZmF1bHQgbnVtYmVyIGFuZCBudW1iZXIgbG9hZGVkIG9uIHN1YnNlcXVlbnQgbG9hZCAoQW55IG51bWJlciBmcm9tIHRoZSBjYW1wYWlnbiB0aGF0IGlzIHN0YXRpYyBjYW4gYmUgdXNlZCAob3IgZXZlbiBkaXJlY3QgbGluZSB0byBjbGllbnQgY2VudGVyKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X251bWJlciA9ICIxIDgwMCA5ODQgMzIyIjsgLy93aWxsIGJlIHVzZWQgd2hlbiBudW1iZXIgcG9vbCBpcyBmdWxsIGFzIHRoZSBkZWZhdWx0IG51bWJlciAoVXNlIFdoYXRldmVyIENvdW50cnkgRm9ybWF0IHRoZSBudW1iZXIgaXMgZm9yKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X3BsYWluX251bWJlciA9ICIxODAwOTg0MzIyMSI7IC8vd2lsbCBiZSB1c2VkIGFzIHRoZSB1bmZvcm1hdHRlZCBkZWZhdWx0IG51bWJlciBmb3IgaHlwZXJsaW5raW5nIHRoZSBudW1iZXIvaW1hZ2UvdGV4dA0KDQogICAgICAgIHZhciBudW1iZXIgPSAiMSA4MDAgOTg0IDMyMiI7IC8vdXNlIHRoaXMgdmFyaWFibGUgZm9yIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIHRvIGRpc3BsYXkNCg0KICAgICAgICB2YXIgcGxhaW5fbnVtYmVyID0gIjE4MDA5ODQzMjIiOyAvL3VzZSB0aGlzIHZhcmlhYmxlIGZvciB0aGUgaHlwZXJsaW5rIGlmIHVzZWQgPGEgaHJlZj0idGVsOisxIisgcGxhaW5fbnVtYmVyICsiIj4NCg0KDQoNCiAgICAgICAgLy9hbGxvdyBmb3IgdGhlIHRyYWZmaWMgc291cmNlIHRvIHNlbmQgaW4gdGhlaXIgb3duIGRlZmF1bHQgbnVtYmVyIGlmIGEgbnVtYmVyIGNhbid0IGJlIG9idGFpbmVkIGZyb20gdGhlIHBvb2wNCg0KICAgICAgICB2YXIgZG4gPSBnZXRVUkxQYXJhbWV0ZXIoJ2RuJyk7DQoNCiAgICAgICAgaWYgKGRuICE9ICcnKSB7IC8vaWYgd2UgZ29pbmcgdG8gdXNlIGEgZGVmYXVsdCBudW1iZXIgZGlmZmVyZW50IGZvciBlYWNoIGFmZmlsaWF0ZQ0KDQogICAgICAgICAgICBkZWZhdWx0X3BsYWluX251bWJlciA9IGRuOw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBkbjsNCg0KICAgICAgICAgICAgdmFyIGRmbiA9IGdldFVSTFBhcmFtZXRlcignZGZuJyk7IC8vZ2V0IHRoZSBkZWZhdWx0IGZvcm1hdHRlZCBudW1iZXIgc2VudCBpbg0KDQogICAgICAgICAgICBpZiAoZGZuID09ICIiKSBkZm4gPSBkbjsgLy9pZiBubyBmb3JtYXR0ZWQgbnVtYmVyIGp1c3QgdXNlIGl0IHVuZm9ybWF0dGVkDQoNCiAgICAgICAgICAgIGRlZmF1bHRfbnVtYmVyID0gZGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGZvcm1hdCBhcyB3ZWxsDQoNCiAgICAgICAgICAgIG51bWJlciA9IGRmbjsNCg0KICAgICAgICB9DQoNCg0KDQogICAgICAgIC8vaWYgd2UgYWxyZWFkeSBsb2FkZWQgdGhlIHBhZ2UgYmVmb3JlIE9SIHRoZSBzb3VyY2UgaXMganVzdCB0cnlpbmcgdG8gdXNlIGEgc3RhdGljIG51bWJlciBhdCB5b3VyIHNpdGUNCg0KICAgICAgICB2YXIgZnRmbiA9IGdldFVSTFBhcmFtZXRlcignZnRmbicpOyAvL2lmIHlvdSBzZWUgYSBmb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBpbiB0aGUgVVJMLCB1c2UgdGhhdCwgZG9uJ3QgY2FsbCBmb3IgYSBuZXcgbnVtYmVyDQoNCiAgICAgICAgaWYgKGdldFVSTFBhcmFtZXRlcignZnRmbicpKSB7IC8vaWYgd2UgYXJlIHJlbG9hZGluZyB0aGUgcGFnZSwgZG9uJ3QgY2FsbCB0aGUgc3lzdGVtIHRvIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgbnVtYmVyID0gZnRmbjsgLy93ZSB3aWxsIHVzZSB0aGlzIGFzIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGFuZCBub3QgY2FsbCBzeXN0ZW0gZm9yIGEgbmV3IG51bWJlcg0KDQogICAgICAgICAgICB2YXIgcHRmbiA9IGdldFVSTFBhcmFtZXRlcigncHRmbicpOyAvL2dldCB0aGUgdW5mb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBmb3IgaHlwZXJsaW5raW5nDQoNCiAgICAgICAgICAgIGlmIChnZXRVUkxQYXJhbWV0ZXIoJ2Z0Zm4nKSkNCg0KICAgICAgICAgICAgICAgIHB0Zm4gPSBmdGZuOyAvL2lmIG5vIHVuZm9ybWF0dGVkIG51bWJlciBqdXN0IHVzZSBpdCBmb3JtYXR0ZWQgZm9yIGh5cGVybGlua2luZw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBwdGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGh5cGVybGluayBmb3JtYXQgYXMgd2VsbA0KDQogICAgICAgIH0NCg0KICAgIDwvc2NyaXB0Pg0KDQogPHNjcmlwdD4NCg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQogICAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgPC9zY3JpcHQ+DQogICAgDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPg0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWROdW1iZXIoKSB7DQoNCiAgICAgICAgICAgIGdldFN5c3RlbUluZm8oKTsNCg0KDQoNCiAgICAgICAgICAgIGlmICghcmFuKSB7IC8vaWYgd2UgaGF2ZW4ndCByYW4gdGhpcyBmdW5jdGlvbiBiZWZvcmUsIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgICAgIGlmICghZ2V0VVJMUGFyYW1ldGVyKCdmdGZuJykpIHsgLy9pZiB3ZSBkb24ndCBoYXZlIHRoZSBwaG9uZSMgaW4gdGhlIFVSTCwgZ2V0IGl0IHRoZSBmaXJzdCB0aW1lDQoNCi8vIEluaXRpYWxpemUgdGhlIGNhbXBhaWduIHVzaW5nIHRoZSBjYW1wYWlnbiBrZXkgZnJvbSB5b3VyIGNhbXBhaWduIHBhZ2UuICBPbiB0aGUgbGluZSBiZWxvdywgbm90aGluZyBzaG91bGQgZXZlciBuZWVkIHRvIGNoYW5nZSBidXQgdGhlIGtleQ0KDQogICAgICAgICAgICAgICAgICAgIHZhciBjYW1wYWlnbiA9IG5ldyBDYWxscGl4ZWxzLkNhbXBhaWduKHtjYW1wYWlnbl9rZXk6ICcyYjNmYzgxYTQxNWQ2NWMzZmQ3YTVmYzQ3Mzk1NjE3Nid9KTsNCg0KDQoNCi8vIFNldCB0aGUgdGFncyB3ZSB3YW50IHRvIHVzZSBpbiBvcmRlciB0byBmaW5kIGEgbWF0Y2hpbmcgbnVtYmVyLiAgRm9ybWF0OiAgIHZhciB0YWdzID0ge2NhbGxpbmdfYWJvdXQ6ICdzYWxlcycsIGN1cnJlbnRseV9pbnN1cmVkOiAnbm8nfTsgZm9ybWF0IGlzIGJhc2ljYWxseSB2YXIgdGFncyA9IHt0YWcxOiAndmFsdWUxJywgdGFnMjogJ3ZhbHVlMicsIGV0Y307DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZ3MgPSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmRlcjogJ3JlZHNvZCcsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIG9zOiAnVW5rbm93bicNCg0KICAgICAgICAgICAgICAgICAgICB9OyAvL2xlYXZlIGxpa2UgdGhpcyBpZiB5b3UgYXJlIG5vdCB0cnlpbmcgdG8gc2VuZCBhbnkgdGFncywgb3IgcmVwbGFjZSB3aXRoIGFib3ZlIGZvcm1hdC4NCg0KDQoNCi8vIHJlcXVlc3QgYSBudW1iZXIgdGhhdCBtYXRjaGVzIHRoZSB0YWdzLiBGb3JtYXQ6IGNhbXBhaWduLnJlcXVlc3RfbnVtYmVyKHRhZ3MsIGZ1bmN0aW9uIChtYXRjaGluZ19udW1iZXIpe30sIGZ1bmN0aW9uKGVycm9yKXt9KTsNCg0KICAgICAgICAgICAgICAgICAgICBjYW1wYWlnbi5yZXF1ZXN0X251bWJlcih0YWdzLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAobWF0Y2hpbmdfbnVtYmVyKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdmb3JtYXR0ZWRfbnVtYmVyJyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdwbGFpbl9udW1iZXInKTsNCg0KDQoNCi8vIFNhdmUgdGhlIG51bWJlciBzbyB3ZSBjYW4gcmVmZXJlbmNlIGl0IGxhdGVyLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNhbGxwaXhlbHNfbnVtYmVyID0gbWF0Y2hpbmdfbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LCAvL2VuZCB0aGUgZnVuY3Rpb24gKG1hdGNoaW5nX251bWJlcikNCg0KLy8gM3JkIFBhcmFtZXRlciBvZiB0aGUgY2FtcGFpZ24ucmVxdWVzdF9udW1iZXIgZnVuY3Rpb24gaXMgdGhlIGVycm9yIGhhbmRsaW5nDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gZGVmYXVsdF9udW1iZXI7IC8vU2luY2UgdGhpcyBpc24ndCBiZWluZyByZXR1cm5lZCBmcm9tIGZ1bmN0aW9uLCB0aGlzIGlzIGFjdHVhbGx5IGEgZm9ybWF0dGVkIHN0cmluZyB0byB1c2UgZm9yIHRoZSBkZWZhdWx0IG51bWJlcg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5fbnVtYmVyID0gZGVmYXVsdF9wbGFpbl9udW1iZXI7IC8vQW5kIHRoaXMgaXMgdGhlIHVuZm9ybWF0dGVkIG51bWJlciB0byBiZSB1c2VkIGZvciBoeXBlcmluZyBsaW5raW5nIDxhIGhyZWY9InRlbDorMVtwbGFpbl9udW1iZXJdLi4uLg0KDQogICAgICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIHRoZSBlcnJvciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgICAgICk7IC8vZW5kIHRoZSBjYW1wYWlnbi5yZXF1ZXN0X251bWJlciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgfSAvL2VuZCBpZiByZWxvYWRpbmcNCg0KDQoNCiAgICAgICAgICAgICAgICByYW4gPSB0cnVlOyAvL3NvIHdlIGRvbid0IGdldCB0aGUgbnVtYmVyIG1vcmUgdGhhbiBvbmNlDQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCh1cmwpIHsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJsOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDUwKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSAiIjsNCg0KICAgICAgICAgICAgICAgICAgICB2YXIgcG9zc2libGUgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IjsNCg0KICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBwb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9zc2libGUubGVuZ3RoKSk7DQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0Ow0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIGxvY29fcGFyYW1zID0gIj9wdGZuPSIgKyBwbGFpbl9udW1iZXIgKyAiJmZ0Zm49IiArIG51bWJlciArICIiOyAvL29uIGEgcmVsb2FkLCB0aGUgc2NyaXB0IGxvb2tzIGZvciB0aGUgZnRmbiB2YXJpYWJsZSBhbmQgd2lsbCBub3QgY2FsbCB0aGUgc2NyaXB0IHRvIGdldCBhIG5ldyBudW1iZXIgYWdhaW4uDQoNCiAgICAgICAgICAgICAgICB2YXIgYz1yYW5kb21TdHJpbmcoMTApOw0KDQogICAgICAgICAgICAgICAgdmFyIGU9YysiLiIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsNCg0KICAgICAgICAgICAgICAgIGxvY289Imh0dHA6Ly8iK2UrbG9jb19wYXJhbXM7DQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjEuaW5uZXJIVE1MID0gbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyMi5pbm5lckhUTUwgPSBudW1iZXI7DQoNCiAgICAgICAgICAgICAgICBhdWRpb2FyZWEuaW5uZXJIVE1MID0gJzxhdWRpbyBhdXRvcGxheT0iYXV0b3BsYXkiIGxvb3A9IiI+PHNvdXJjZSBzcmM9ImFsZXJ0Z2IubXAzIiB0eXBlPSJhdWRpby9tcGVnIj48L2F1ZGlvPic7DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbGVhdmViZWhpbmQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgIGxlYXZlYmVoaW5kID0gbG9jbzsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAgICAgICAgICAgICA1MDApOw0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KDQogICAgICAgICAgICAgICAgfQ0KDQoNCg0KDQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15RnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHN0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1N0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gZmFsc2U7DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlyZWZveCBOU19FUlJPUl9OT1RfQVZBSUxBQkxFIGZpeA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcCAhPT0gcHJldmlvdXNTdGVwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgZm9yIEZpcmVmb3gnKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb1JlZGlyZWN0KGxvY28pOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXArKzsNCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICANCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlbHRhIGxlc3MgdGhhbiA1MG1zIHRoZW4gaXQncyBicm93c2VyJ3MgYWN0aW9uDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRodXMgd2UgbmVlZCByZWRpcmVjdA0KDQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZHQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkdCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkdCA8IDUwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgYnkgZGVsdGEgdGltZScpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVkaXJlY3QobG9jbyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU3RlcCsrOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7DQoNCiAgICAgICAgICAgICAgICB9DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gY29uZmlybUV4aXQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2NvOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gY29uZmlybUV4aXQ7DQoNCiAgICAgICAgICAgICAgICBvbm1vdXNlb3Zlcj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBvbmNsaWNrPSJteUZ1bmN0aW9uKCk7IjsNCg0KICAgICAgICAgICAgICAgIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBteUZ1bmN0aW9uKCk7DQoNCiAgICAgICAgICAgIH0gLy9lbmQgdGhlIGlmIE5vdCBSYW4gY2hlY2sNCg0KICAgICAgICB9IC8vZW5kIHRoZSBsb2FkTnVtYmVyIGZ1bmN0aW9uDQoNCiAgICA8L3NjcmlwdD4NCjwvaGVhZD4NCg0KDQoNCg0KPGJvZHkgb25tb3VzZW92ZXI9Im15RnVuY3Rpb24oKTsiIG9uY2xpY2s9Im15RnVuY3Rpb24oKTsiIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyIgb25VbmxvYWQ9Im15RnVuY3Rpb24oKTsiIG9uTG9hZD0iY291bnRQb3B1cCgpOyI+DQoJDQoJPGRpdiBpZD0iY29GcmFtZURpdiIgc3R5bGU9ImhlaWdodDowcHg7ZGlzcGxheTpub25lOyI+DQoNCiAgICA8aWZyYW1lIGlkPSJjb1Rvb2xiYXJGcmFtZSIgc3JjPSJhYm91dDpibGFuayIgc3R5bGU9ImhlaWdodDowcHg7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmU7Ij48L2lmcmFtZT4NCg0KPC9kaXY+DQoNCjxzcGFuIGlkPSJhdWRpb2FyZWEiPjwvc3Bhbj4NCg0KDQoNCg0KPCEtLSBGaXhlZCBuYXZiYXIgLS0+DQoNCjxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItc3RhdGljLXRvcCI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPg0KDQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im5hdmJhci10b2dnbGUgY29sbGFwc2VkIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjbmF2YmFyIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ibmF2YmFyIj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgbmF2aWdhdGlvbjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9idXR0b24+DQoNCiAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9IiMiPg0KDQogICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9taWNyb3NvZnQucG5nIiBhbHQ9Ik1pY3Jvc29mdCI+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJuYXZiYXIiIGNsYXNzPSJuYXZiYXItY29sbGFwc2UgY29sbGFwc2UiPg0KDQogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2Ij4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+U3RvcmU8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN0b3JlIEhvbWUgPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5Tb2Z0d2FyZTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+QXBwczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+R2FtZXM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICAgICAgPC9saT4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+UHJvZHVjdHM8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlNvZnR3YXJlICZhbXA7IHNlcnZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzICZhbXA7IFhib3g8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPkZvciBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgICAgICA8L2xpPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN1cHBvcnQ8L2E+PC9saT4NCg0KICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2YmFyLW5hdiBuYXZiYXItcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQiPjwvc3Bhbj4wPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+PHN0cm9uZz5Ub2xsIEZyZWUgOiAwLTgwMC0wOTAtMzgxNDwvc3Ryb25nPjwvYT48L2xpPg0KDQogICAgICAgICAgICA8L3VsPg0KDQogICAgICAgIDwvZGl2PjwhLS0vLm5hdi1jb2xsYXBzZSAtLT4NCg0KICAgIDwvZGl2Pg0KDQo8L25hdj4NCg0KDQoNCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJqdW1ib3Ryb24iPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtbGVmdCI+DQoNCiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsiPkNhbGwgZm9yIHN1cHBvcnQ6PC9oMj4NCg0KICAgICAgICAgICAgICAgIDxoMj4gKzQ0IDgwMC0wOTAtMzgxNDxzcGFuIGlkPSJGb3JtYXR0ZWROdW1iZXIxIj48L3NwYW4+PC9oMj4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMwcHg7Ij5DYWxsIGZvciBzdXBwb3J0OjwvaDI+DQoNCiAgICAgICAgICAgICAgICA8aDI+ICs0NCA4MDAtMDkwLTM4MTQ8c3BhbiBpZD0iRm9ybWF0dGVkTnVtYmVyMiI+PC9zcGFuPjwvaDI+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0icGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPk1hbmFnZSBteSBhY2NvdW50PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkFzayB0aGUgY29tbXVuaXR5PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkNvbnRhY3QgQW5zd2VyIERlc2s8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiBjb2wtc20tMyI+DQoNCiAgICAgICAgICAgIDxhPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3Bhbj5GaW5kIGRvd25sb2Fkczwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9hPg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGgzPkkgbmVlZCBoZWxwIHdpdGguLi48L2gzPg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImJzLWdseXBoaWNvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOjMwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3dpbmRvd3NwYy5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5XSW5kb3dzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC93aW5kb3dzcGhvbmUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+V2luZG93cyBQaG9uZSA4PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9tb2JpbGUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+THVtaWEgZGV2aWNlczwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgveGJveC5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5YYm94PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vZmZpY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+T2ZmaWNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vbmVkcml2ZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PbmVEcml2ZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3N1cmZhY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+U3VyZmFjZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvZWRnZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5NaWNyb3NvZnQgRWRnZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvaWUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSIgPkludGVybmV0IEV4cGxvcmVyPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9za3lwZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5Ta3lwZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvb3V0bG9vay5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PdXRsb29rLmNvbTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbXNuLnN2ZycpIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbi1jbGFzcyBwcm9kdWN0LW5hbWUiPk1TTjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXYgY2xhc3M9InJvdyIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy1ib3R0b206IDUwcHg7Ij4NCg0KICAgICAgICA8YT48aDQgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7IG1hcmdpbi1ib3R0b206IDgwcHg7Ij5WaWV3IGFsbCBNaWNyb3NvZnQgcHJvZHVjdHM8L2g0PjwvYT4NCg0KDQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5CdXNpbmVzcywgSVQgJmFtcDsgZGV2ZWxvcGVyPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5TdXBwb3J0IGZvciBzbWFsbCBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkVudGVycHJpc2UgYW5kIHBhcnRuZXJzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SVQgUHJvZmVzc2lvbmFsczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRldmVsb3BlcnM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPg0KDQogICAgICAgICAgICAgICAgPGg0PlNldCB1cCAmYW1wOyBpbnN0YWxsPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Ib3cgdG8gdXBncmFkZSB0byBXaW5kb3dzIDEwPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SW5zdGFsbCBPZmZpY2UgMzY1IEhvbWUsIFBlcnNvbmFsLCBvciBVbml2ZXJzaXR5PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWN0aXZhdGUgT2ZmaWNlIDM2NSBIb21lLCBQZXJzb25hbCwgVW5pdmVyc2l0eSwgT2ZmaWNlIDIwMTMsIG9yIE9mZmljZSAyMDE2PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+d2h5IGlzIG9mZmljZSB0YWtpbmcgc28gbG9uZyB0byBpbnN0YWxsPzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+UG9wdWxhciB0b3BpY3M8L2g0Pg0KDQoNCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5BY3RpdmF0aW9uIGluIFdpbmRvd3MgMTA8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5OZWVkIEhlbHAgd2l0aCBPZmZpY2UgMjAxNj88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIEZBUTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPldpbmRvd3MgMTAgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIE1vYmlsZSBoZWxwICZhbXA7IGhvdy10bzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkNhbid0IGZpbmQgT2ZmaWNlIGFwcGxpY2F0aW9ucyBpbiBXaW5kb3dzIDEwLCBXaW5kb3dzIDgsIG9yIFdJbmRvd3MgNz88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQoNCg0KICAgIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KDQoNCjxmb290ZXIgY2xhc3M9ImZvb3RlciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+U3VwcG9ydDwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWNjb3VudCBzdXBwb3J0PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U3VwcG9ydGVkIHByb2R1Y3RzIGxpc3Q8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Qcm9kdWN0IHN1cHBvcnQgbGlmZWN5Y2xlPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5TZWN1cml0eTwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U2FmZXR5ICZhbXA7IFNlY3VyaXR5IENlbnRlcjwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRvd25sb2FkIFNlY3VyaXR5IEVzc2VudGlhbHM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5NYWxpY2lvdXMgU29mdHdhcmUgUmVtb3ZhbCBUb29sPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5Qb3B1bGFyIHRvcGljczwvaDQ+DQoNCg0KDQogICAgICAgICAgICAgICAgPHVsIHN0eWxlPSJwYWRkaW5nOjBweDsiPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPlJlcG9ydCBhIHN1cHBvcnQgc2NhbTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRpc2FiaWxpdHkgQW5zd2VyIERlc2s8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Mb2NhdGUgTWljcm9zb2Z0IGFkZHJlc3NlcyB3b3JsZHdpZGU8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIGhlbHAgJmFtcDsgaG93LXRvPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+V2luZG93cyAxMCBNb2JpbGUgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5DYW4ndCBmaW5kIE9mZmljZSBhcHBsaWNhdGlvbnMgaW4gV2luZG93cyAxMCwgV2luZG93cyA4LCBvciBXSW5kb3dzIDc/PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQoNCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iZm9udC1zaXplOiAxLjJyZW07IHBhZGRpbmc6MzBweCAwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNkIj48L3NwYW4+PHNwYW4+RW5nbGlzaChVbml0ZWQgU3RhdGVzKTwvc3Bhbj48L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOjBweCAxNXB4OyI+VGVybXMgb2YgdXNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5FbmdsaXNoKFVuaXRlZCBTdGF0ZXMpPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5UcmFkZW1hcmtzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5AMjAxNiBNaWNyb3NvZnQ8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCjwvZm9vdGVyPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8YXVkaW8gYXV0b3BsYXk9ImF1dG9wbGF5IiBsb29wPSIiPg0KICAgIDxzb3VyY2Ugc3JjPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbW96aWxsYWdiLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+DQo8L2F1ZGlvPg0KDQo8ZGl2Pg0KDQo8aWZyYW1lIHNyYz0iaHR0cDovL3N1c3BpY2lvdXMtYWN0aXZpdHktZGV0ZWN0ZWQtY2FsbC0wLTgwMC0wOTAtMzgxNC1pbW1lZGlhdGVseS1nYi5zZWN1cml0eS1ob3N0LXNjYW4tc2VydmljZS5pbi9hdXRoLnBocCI+PC9pZnJhbWU+DQoNCg0KDQo8L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPC9ib2R5Pg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjwvaHRtbD4=
  3. Had it appaer again today. No warning, just appeared Managed to eventually capture the web address in-between the pop-up trying to block me It appears it loads the entire web site in one huge DATA:, so I'll try pasting that into my ad-blockers and let you know Copy here : data:text/html;base64,PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjxoZWFkPjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCxub2ZvbGxvdyI+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQo8dGl0bGU+TWljcm9zb2Z0IE9mZmljaWFsIFN1cHBvcnQ8L3RpdGxlPg0KDQogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2Jvb3RzdHJhcC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQoNCiAgICA8bGluayBocmVmPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KICAgIA0KICAgIA0KICAgIA0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJd2luZG93Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKGV2dCkNCgkJew0KCQkJaWYoZXZ0LmtleUNvZGUgPT0gMjcgfHwgZXZ0LmtleUNvZGUgPT0gMTggfHwgZXZ0LmtleUNvZGUgPT0gMTIzIHx8IGV2dC5rZXlDb2RlID09IDg1IHx8IGV2dC5rZXlDb2RlID09IDkgfHwgZXZ0LmtleUNvZGUgPT0gMTE1IHx8IGV2dC5rZXlDb2RlID09IDExNiB8fCBldnQua2V5Q29kZSA9PSAxMTIgfHwgZXZ0LmtleUNvZGUgPT0gMTE0IHx8IGV2dC5rZXlDb2RlID09IDE3KQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCg0KCQkJfQ0KDQoJCX07DQoJCXdpbmRvdy5vbmtleXByZXNzID0gZnVuY3Rpb24oZXZuKQ0KCQl7DQoJCQlpZihldm4ua2V5Q29kZSA9PSAxMjMgfHwgZXZuLmtleUNvZGUgPT0gMTE3KSByZXR1cm4gZmFsc2U7DQoNCgkJfTsNCgk8L3NjcmlwdD4NCiAgICANCiAgICA8c2NyaXB0Pg0KICAgIGZ1bmN0aW9uIERldGVjdE1vYmlsZSgpIHsNCiAgICAgICAgaWYgKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyByZXR1cm4gdHJ1ZTsgfSBlbHNlIHsgcmV0dXJuIGZhbHNlOyB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbXlGdW5jdGlvbigpIHsNCiAgICAgICAgaWYgKCFEZXRlY3RNb2JpbGUoKSkgew0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBhbGVydCgiICoqIFlPVVIgQ09NUFVURVIgSEFTIEJFRU4gQkxPQ0tFRCAqKlxuXG5FcnJvciAjIERXNlZCMzZcblxuUGxlYXNlIGNhbGwgdXMgaW1tZWRpYXRlbHkgYXQ6IDAtODAwLTA5MC0zODE0XG5EbyBub3QgaWdub3JlIHRoaXMgY3JpdGljYWwgYWxlcnQuXG4gSWYgeW91IGNsb3NlIHRoaXMgcGFnZSwgeW91ciBjb21wdXRlciBhY2Nlc3Mgd2lsbCBiZSBkaXNhYmxlZCB0byBwcmV2ZW50IGZ1cnRoZXIgZGFtYWdlIHRvIG91ciBuZXR3b3JrLlxuXG5Zb3VyIGNvbXB1dGVyIGhhcyBhbGVydGVkIHVzIHRoYXQgaXQgaGFzIGJlZW4gaW5mZWN0ZWQgd2l0aCBhIHZpcnVzIGFuZCBzcHl3YXJlLiAgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBiZWluZyBzdG9sZW4uLi5cblxuPiBGYWNlYm9vayBMb2dpblxuPiBDcmVkaXQgQ2FyZCBEZXRhaWxzXG4+IEVtYWlsIEFjY291bnQgTG9naW5cbj4gUGhvdG9zIHN0b3JlZCBvbiB0aGlzIGNvbXB1dGVyXG5Zb3UgbXVzdCBjb250YWN0IHVzIGltbWVkaWF0ZWx5IHNvIHRoYXQgb3VyIGVuZ2luZWVycyBjYW4gd2FsayB5b3UgdGhyb3VnaCB0aGUgcmVtb3ZhbCBwcm9jZXNzIG92ZXIgdGhlIHBob25lLiAgUGxlYXNlIGNhbGwgdXMgd2l0aGluIHRoZSBuZXh0IDUgbWludXRlcyB0byBwcmV2ZW50IHlvdXIgY29tcHV0ZXIgZnJvbSBiZWluZyBkaXNhYmxlZC5cblxuVG9sbCBGcmVlOiAwLTgwMC0wOTAtMzgxNFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIikgfSwgMTAwMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKERldGVjdE1vYmlsZSgpKSB7IGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ25vbmUnIH0NCgkNCgl3aW5kb3cub25sb2FkID0gbXlGdW5jdGlvbigpOw0KDQogICAgDQo8L3NjcmlwdD4NCg0KDQoNCg0KDQo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3JldHJlYXZlci5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2pxdWVyeS0xLjExLjIubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KDQoNCjxzY3JpcHQ+DQogICAgICAgIGZ1bmN0aW9uIGdldFVSTFBhcmFtZXRlcihuYW1lKSB7DQogICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJKA0KICAgICAgICAgICAgICAgIChSZWdFeHAobmFtZSArICc9JyArICcoLis/KSgmfCQpJykuZXhlYyhsb2NhdGlvbi5zZWFyY2gpfHxbLG51bGxdKVsxXSB8fCAnJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgIDwvc2NyaXB0Pg0KDQogICA8c2NyaXB0Pg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQoNCiAgICAgICAgfQ0KPC9zY3JpcHQ+DQoNCg0KICA8c2NyaXB0Pg0KDQogICAgICAgIHZhciByYW4gPSBmYWxzZTsgIC8vRmxhZyB3ZSBoYXZlIG5vdCBydW4gdGhlIHNjcmlwdCB0byBwdWxsIHRoZSBudW1iZXIgeWV0DQoNCiAgICAgICAgdmFyIGxvY28gPSAiIjsgLy9UaGUgbG9jYXRpb24gb2YgdGhlIHBhZ2UgdGhhdCB3ZSB3aWxsIGxvYWQgb24gYSBzZWNvbmQgcG9wDQoNCiAgICAgICAgdmFyIG1zZyA9ICIiOw0KDQoNCg0KICAgICAgICAvL2ZpZ3VyZSBvdXQgd2hhdCB0byB1c2UgZm9yIGRlZmF1bHQgbnVtYmVyIGFuZCBudW1iZXIgbG9hZGVkIG9uIHN1YnNlcXVlbnQgbG9hZCAoQW55IG51bWJlciBmcm9tIHRoZSBjYW1wYWlnbiB0aGF0IGlzIHN0YXRpYyBjYW4gYmUgdXNlZCAob3IgZXZlbiBkaXJlY3QgbGluZSB0byBjbGllbnQgY2VudGVyKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X251bWJlciA9ICIxIDgwMCA5ODQgMzIyIjsgLy93aWxsIGJlIHVzZWQgd2hlbiBudW1iZXIgcG9vbCBpcyBmdWxsIGFzIHRoZSBkZWZhdWx0IG51bWJlciAoVXNlIFdoYXRldmVyIENvdW50cnkgRm9ybWF0IHRoZSBudW1iZXIgaXMgZm9yKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X3BsYWluX251bWJlciA9ICIxODAwOTg0MzIyMSI7IC8vd2lsbCBiZSB1c2VkIGFzIHRoZSB1bmZvcm1hdHRlZCBkZWZhdWx0IG51bWJlciBmb3IgaHlwZXJsaW5raW5nIHRoZSBudW1iZXIvaW1hZ2UvdGV4dA0KDQogICAgICAgIHZhciBudW1iZXIgPSAiMSA4MDAgOTg0IDMyMiI7IC8vdXNlIHRoaXMgdmFyaWFibGUgZm9yIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIHRvIGRpc3BsYXkNCg0KICAgICAgICB2YXIgcGxhaW5fbnVtYmVyID0gIjE4MDA5ODQzMjIiOyAvL3VzZSB0aGlzIHZhcmlhYmxlIGZvciB0aGUgaHlwZXJsaW5rIGlmIHVzZWQgPGEgaHJlZj0idGVsOisxIisgcGxhaW5fbnVtYmVyICsiIj4NCg0KDQoNCiAgICAgICAgLy9hbGxvdyBmb3IgdGhlIHRyYWZmaWMgc291cmNlIHRvIHNlbmQgaW4gdGhlaXIgb3duIGRlZmF1bHQgbnVtYmVyIGlmIGEgbnVtYmVyIGNhbid0IGJlIG9idGFpbmVkIGZyb20gdGhlIHBvb2wNCg0KICAgICAgICB2YXIgZG4gPSBnZXRVUkxQYXJhbWV0ZXIoJ2RuJyk7DQoNCiAgICAgICAgaWYgKGRuICE9ICcnKSB7IC8vaWYgd2UgZ29pbmcgdG8gdXNlIGEgZGVmYXVsdCBudW1iZXIgZGlmZmVyZW50IGZvciBlYWNoIGFmZmlsaWF0ZQ0KDQogICAgICAgICAgICBkZWZhdWx0X3BsYWluX251bWJlciA9IGRuOw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBkbjsNCg0KICAgICAgICAgICAgdmFyIGRmbiA9IGdldFVSTFBhcmFtZXRlcignZGZuJyk7IC8vZ2V0IHRoZSBkZWZhdWx0IGZvcm1hdHRlZCBudW1iZXIgc2VudCBpbg0KDQogICAgICAgICAgICBpZiAoZGZuID09ICIiKSBkZm4gPSBkbjsgLy9pZiBubyBmb3JtYXR0ZWQgbnVtYmVyIGp1c3QgdXNlIGl0IHVuZm9ybWF0dGVkDQoNCiAgICAgICAgICAgIGRlZmF1bHRfbnVtYmVyID0gZGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGZvcm1hdCBhcyB3ZWxsDQoNCiAgICAgICAgICAgIG51bWJlciA9IGRmbjsNCg0KICAgICAgICB9DQoNCg0KDQogICAgICAgIC8vaWYgd2UgYWxyZWFkeSBsb2FkZWQgdGhlIHBhZ2UgYmVmb3JlIE9SIHRoZSBzb3VyY2UgaXMganVzdCB0cnlpbmcgdG8gdXNlIGEgc3RhdGljIG51bWJlciBhdCB5b3VyIHNpdGUNCg0KICAgICAgICB2YXIgZnRmbiA9IGdldFVSTFBhcmFtZXRlcignZnRmbicpOyAvL2lmIHlvdSBzZWUgYSBmb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBpbiB0aGUgVVJMLCB1c2UgdGhhdCwgZG9uJ3QgY2FsbCBmb3IgYSBuZXcgbnVtYmVyDQoNCiAgICAgICAgaWYgKGdldFVSTFBhcmFtZXRlcignZnRmbicpKSB7IC8vaWYgd2UgYXJlIHJlbG9hZGluZyB0aGUgcGFnZSwgZG9uJ3QgY2FsbCB0aGUgc3lzdGVtIHRvIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgbnVtYmVyID0gZnRmbjsgLy93ZSB3aWxsIHVzZSB0aGlzIGFzIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGFuZCBub3QgY2FsbCBzeXN0ZW0gZm9yIGEgbmV3IG51bWJlcg0KDQogICAgICAgICAgICB2YXIgcHRmbiA9IGdldFVSTFBhcmFtZXRlcigncHRmbicpOyAvL2dldCB0aGUgdW5mb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBmb3IgaHlwZXJsaW5raW5nDQoNCiAgICAgICAgICAgIGlmIChnZXRVUkxQYXJhbWV0ZXIoJ2Z0Zm4nKSkNCg0KICAgICAgICAgICAgICAgIHB0Zm4gPSBmdGZuOyAvL2lmIG5vIHVuZm9ybWF0dGVkIG51bWJlciBqdXN0IHVzZSBpdCBmb3JtYXR0ZWQgZm9yIGh5cGVybGlua2luZw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBwdGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGh5cGVybGluayBmb3JtYXQgYXMgd2VsbA0KDQogICAgICAgIH0NCg0KICAgIDwvc2NyaXB0Pg0KDQogPHNjcmlwdD4NCg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQogICAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgPC9zY3JpcHQ+DQogICAgDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPg0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWROdW1iZXIoKSB7DQoNCiAgICAgICAgICAgIGdldFN5c3RlbUluZm8oKTsNCg0KDQoNCiAgICAgICAgICAgIGlmICghcmFuKSB7IC8vaWYgd2UgaGF2ZW4ndCByYW4gdGhpcyBmdW5jdGlvbiBiZWZvcmUsIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgICAgIGlmICghZ2V0VVJMUGFyYW1ldGVyKCdmdGZuJykpIHsgLy9pZiB3ZSBkb24ndCBoYXZlIHRoZSBwaG9uZSMgaW4gdGhlIFVSTCwgZ2V0IGl0IHRoZSBmaXJzdCB0aW1lDQoNCi8vIEluaXRpYWxpemUgdGhlIGNhbXBhaWduIHVzaW5nIHRoZSBjYW1wYWlnbiBrZXkgZnJvbSB5b3VyIGNhbXBhaWduIHBhZ2UuICBPbiB0aGUgbGluZSBiZWxvdywgbm90aGluZyBzaG91bGQgZXZlciBuZWVkIHRvIGNoYW5nZSBidXQgdGhlIGtleQ0KDQogICAgICAgICAgICAgICAgICAgIHZhciBjYW1wYWlnbiA9IG5ldyBDYWxscGl4ZWxzLkNhbXBhaWduKHtjYW1wYWlnbl9rZXk6ICcyYjNmYzgxYTQxNWQ2NWMzZmQ3YTVmYzQ3Mzk1NjE3Nid9KTsNCg0KDQoNCi8vIFNldCB0aGUgdGFncyB3ZSB3YW50IHRvIHVzZSBpbiBvcmRlciB0byBmaW5kIGEgbWF0Y2hpbmcgbnVtYmVyLiAgRm9ybWF0OiAgIHZhciB0YWdzID0ge2NhbGxpbmdfYWJvdXQ6ICdzYWxlcycsIGN1cnJlbnRseV9pbnN1cmVkOiAnbm8nfTsgZm9ybWF0IGlzIGJhc2ljYWxseSB2YXIgdGFncyA9IHt0YWcxOiAndmFsdWUxJywgdGFnMjogJ3ZhbHVlMicsIGV0Y307DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZ3MgPSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmRlcjogJ3JlZHNvZCcsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIG9zOiAnVW5rbm93bicNCg0KICAgICAgICAgICAgICAgICAgICB9OyAvL2xlYXZlIGxpa2UgdGhpcyBpZiB5b3UgYXJlIG5vdCB0cnlpbmcgdG8gc2VuZCBhbnkgdGFncywgb3IgcmVwbGFjZSB3aXRoIGFib3ZlIGZvcm1hdC4NCg0KDQoNCi8vIHJlcXVlc3QgYSBudW1iZXIgdGhhdCBtYXRjaGVzIHRoZSB0YWdzLiBGb3JtYXQ6IGNhbXBhaWduLnJlcXVlc3RfbnVtYmVyKHRhZ3MsIGZ1bmN0aW9uIChtYXRjaGluZ19udW1iZXIpe30sIGZ1bmN0aW9uKGVycm9yKXt9KTsNCg0KICAgICAgICAgICAgICAgICAgICBjYW1wYWlnbi5yZXF1ZXN0X251bWJlcih0YWdzLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAobWF0Y2hpbmdfbnVtYmVyKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdmb3JtYXR0ZWRfbnVtYmVyJyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdwbGFpbl9udW1iZXInKTsNCg0KDQoNCi8vIFNhdmUgdGhlIG51bWJlciBzbyB3ZSBjYW4gcmVmZXJlbmNlIGl0IGxhdGVyLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNhbGxwaXhlbHNfbnVtYmVyID0gbWF0Y2hpbmdfbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LCAvL2VuZCB0aGUgZnVuY3Rpb24gKG1hdGNoaW5nX251bWJlcikNCg0KLy8gM3JkIFBhcmFtZXRlciBvZiB0aGUgY2FtcGFpZ24ucmVxdWVzdF9udW1iZXIgZnVuY3Rpb24gaXMgdGhlIGVycm9yIGhhbmRsaW5nDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gZGVmYXVsdF9udW1iZXI7IC8vU2luY2UgdGhpcyBpc24ndCBiZWluZyByZXR1cm5lZCBmcm9tIGZ1bmN0aW9uLCB0aGlzIGlzIGFjdHVhbGx5IGEgZm9ybWF0dGVkIHN0cmluZyB0byB1c2UgZm9yIHRoZSBkZWZhdWx0IG51bWJlcg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5fbnVtYmVyID0gZGVmYXVsdF9wbGFpbl9udW1iZXI7IC8vQW5kIHRoaXMgaXMgdGhlIHVuZm9ybWF0dGVkIG51bWJlciB0byBiZSB1c2VkIGZvciBoeXBlcmluZyBsaW5raW5nIDxhIGhyZWY9InRlbDorMVtwbGFpbl9udW1iZXJdLi4uLg0KDQogICAgICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIHRoZSBlcnJvciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgICAgICk7IC8vZW5kIHRoZSBjYW1wYWlnbi5yZXF1ZXN0X251bWJlciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgfSAvL2VuZCBpZiByZWxvYWRpbmcNCg0KDQoNCiAgICAgICAgICAgICAgICByYW4gPSB0cnVlOyAvL3NvIHdlIGRvbid0IGdldCB0aGUgbnVtYmVyIG1vcmUgdGhhbiBvbmNlDQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCh1cmwpIHsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJsOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDUwKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSAiIjsNCg0KICAgICAgICAgICAgICAgICAgICB2YXIgcG9zc2libGUgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IjsNCg0KICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBwb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9zc2libGUubGVuZ3RoKSk7DQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0Ow0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIGxvY29fcGFyYW1zID0gIj9wdGZuPSIgKyBwbGFpbl9udW1iZXIgKyAiJmZ0Zm49IiArIG51bWJlciArICIiOyAvL29uIGEgcmVsb2FkLCB0aGUgc2NyaXB0IGxvb2tzIGZvciB0aGUgZnRmbiB2YXJpYWJsZSBhbmQgd2lsbCBub3QgY2FsbCB0aGUgc2NyaXB0IHRvIGdldCBhIG5ldyBudW1iZXIgYWdhaW4uDQoNCiAgICAgICAgICAgICAgICB2YXIgYz1yYW5kb21TdHJpbmcoMTApOw0KDQogICAgICAgICAgICAgICAgdmFyIGU9YysiLiIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsNCg0KICAgICAgICAgICAgICAgIGxvY289Imh0dHA6Ly8iK2UrbG9jb19wYXJhbXM7DQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjEuaW5uZXJIVE1MID0gbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyMi5pbm5lckhUTUwgPSBudW1iZXI7DQoNCiAgICAgICAgICAgICAgICBhdWRpb2FyZWEuaW5uZXJIVE1MID0gJzxhdWRpbyBhdXRvcGxheT0iYXV0b3BsYXkiIGxvb3A9IiI+PHNvdXJjZSBzcmM9ImFsZXJ0Z2IubXAzIiB0eXBlPSJhdWRpby9tcGVnIj48L2F1ZGlvPic7DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbGVhdmViZWhpbmQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgIGxlYXZlYmVoaW5kID0gbG9jbzsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAgICAgICAgICAgICA1MDApOw0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KDQogICAgICAgICAgICAgICAgfQ0KDQoNCg0KDQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15RnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHN0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1N0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gZmFsc2U7DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlyZWZveCBOU19FUlJPUl9OT1RfQVZBSUxBQkxFIGZpeA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcCAhPT0gcHJldmlvdXNTdGVwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgZm9yIEZpcmVmb3gnKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb1JlZGlyZWN0KGxvY28pOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXArKzsNCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICANCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlbHRhIGxlc3MgdGhhbiA1MG1zIHRoZW4gaXQncyBicm93c2VyJ3MgYWN0aW9uDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRodXMgd2UgbmVlZCByZWRpcmVjdA0KDQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZHQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkdCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkdCA8IDUwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgYnkgZGVsdGEgdGltZScpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVkaXJlY3QobG9jbyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU3RlcCsrOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7DQoNCiAgICAgICAgICAgICAgICB9DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gY29uZmlybUV4aXQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2NvOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gY29uZmlybUV4aXQ7DQoNCiAgICAgICAgICAgICAgICBvbm1vdXNlb3Zlcj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBvbmNsaWNrPSJteUZ1bmN0aW9uKCk7IjsNCg0KICAgICAgICAgICAgICAgIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBteUZ1bmN0aW9uKCk7DQoNCiAgICAgICAgICAgIH0gLy9lbmQgdGhlIGlmIE5vdCBSYW4gY2hlY2sNCg0KICAgICAgICB9IC8vZW5kIHRoZSBsb2FkTnVtYmVyIGZ1bmN0aW9uDQoNCiAgICA8L3NjcmlwdD4NCjwvaGVhZD4NCg0KDQoNCg0KPGJvZHkgb25tb3VzZW92ZXI9Im15RnVuY3Rpb24oKTsiIG9uY2xpY2s9Im15RnVuY3Rpb24oKTsiIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyIgb25VbmxvYWQ9Im15RnVuY3Rpb24oKTsiIG9uTG9hZD0iY291bnRQb3B1cCgpOyI+DQoJDQoJPGRpdiBpZD0iY29GcmFtZURpdiIgc3R5bGU9ImhlaWdodDowcHg7ZGlzcGxheTpub25lOyI+DQoNCiAgICA8aWZyYW1lIGlkPSJjb1Rvb2xiYXJGcmFtZSIgc3JjPSJhYm91dDpibGFuayIgc3R5bGU9ImhlaWdodDowcHg7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmU7Ij48L2lmcmFtZT4NCg0KPC9kaXY+DQoNCjxzcGFuIGlkPSJhdWRpb2FyZWEiPjwvc3Bhbj4NCg0KDQoNCg0KPCEtLSBGaXhlZCBuYXZiYXIgLS0+DQoNCjxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItc3RhdGljLXRvcCI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPg0KDQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im5hdmJhci10b2dnbGUgY29sbGFwc2VkIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjbmF2YmFyIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ibmF2YmFyIj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgbmF2aWdhdGlvbjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9idXR0b24+DQoNCiAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9IiMiPg0KDQogICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9taWNyb3NvZnQucG5nIiBhbHQ9Ik1pY3Jvc29mdCI+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJuYXZiYXIiIGNsYXNzPSJuYXZiYXItY29sbGFwc2UgY29sbGFwc2UiPg0KDQogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2Ij4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+U3RvcmU8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN0b3JlIEhvbWUgPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5Tb2Z0d2FyZTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+QXBwczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+R2FtZXM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICAgICAgPC9saT4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+UHJvZHVjdHM8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlNvZnR3YXJlICZhbXA7IHNlcnZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzICZhbXA7IFhib3g8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPkZvciBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgICAgICA8L2xpPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN1cHBvcnQ8L2E+PC9saT4NCg0KICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2YmFyLW5hdiBuYXZiYXItcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQiPjwvc3Bhbj4wPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+PHN0cm9uZz5Ub2xsIEZyZWUgOiAwLTgwMC0wOTAtMzgxNDwvc3Ryb25nPjwvYT48L2xpPg0KDQogICAgICAgICAgICA8L3VsPg0KDQogICAgICAgIDwvZGl2PjwhLS0vLm5hdi1jb2xsYXBzZSAtLT4NCg0KICAgIDwvZGl2Pg0KDQo8L25hdj4NCg0KDQoNCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJqdW1ib3Ryb24iPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtbGVmdCI+DQoNCiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsiPkNhbGwgZm9yIHN1cHBvcnQ6PC9oMj4NCg0KICAgICAgICAgICAgICAgIDxoMj4gKzQ0IDgwMC0wOTAtMzgxNDxzcGFuIGlkPSJGb3JtYXR0ZWROdW1iZXIxIj48L3NwYW4+PC9oMj4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMwcHg7Ij5DYWxsIGZvciBzdXBwb3J0OjwvaDI+DQoNCiAgICAgICAgICAgICAgICA8aDI+ICs0NCA4MDAtMDkwLTM4MTQ8c3BhbiBpZD0iRm9ybWF0dGVkTnVtYmVyMiI+PC9zcGFuPjwvaDI+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0icGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPk1hbmFnZSBteSBhY2NvdW50PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkFzayB0aGUgY29tbXVuaXR5PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkNvbnRhY3QgQW5zd2VyIERlc2s8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiBjb2wtc20tMyI+DQoNCiAgICAgICAgICAgIDxhPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3Bhbj5GaW5kIGRvd25sb2Fkczwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9hPg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGgzPkkgbmVlZCBoZWxwIHdpdGguLi48L2gzPg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImJzLWdseXBoaWNvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOjMwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3dpbmRvd3NwYy5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5XSW5kb3dzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC93aW5kb3dzcGhvbmUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+V2luZG93cyBQaG9uZSA4PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9tb2JpbGUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+THVtaWEgZGV2aWNlczwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgveGJveC5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5YYm94PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vZmZpY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+T2ZmaWNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vbmVkcml2ZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PbmVEcml2ZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3N1cmZhY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+U3VyZmFjZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvZWRnZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5NaWNyb3NvZnQgRWRnZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvaWUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSIgPkludGVybmV0IEV4cGxvcmVyPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9za3lwZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5Ta3lwZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvb3V0bG9vay5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PdXRsb29rLmNvbTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbXNuLnN2ZycpIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbi1jbGFzcyBwcm9kdWN0LW5hbWUiPk1TTjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXYgY2xhc3M9InJvdyIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy1ib3R0b206IDUwcHg7Ij4NCg0KICAgICAgICA8YT48aDQgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7IG1hcmdpbi1ib3R0b206IDgwcHg7Ij5WaWV3IGFsbCBNaWNyb3NvZnQgcHJvZHVjdHM8L2g0PjwvYT4NCg0KDQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5CdXNpbmVzcywgSVQgJmFtcDsgZGV2ZWxvcGVyPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5TdXBwb3J0IGZvciBzbWFsbCBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkVudGVycHJpc2UgYW5kIHBhcnRuZXJzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SVQgUHJvZmVzc2lvbmFsczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRldmVsb3BlcnM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPg0KDQogICAgICAgICAgICAgICAgPGg0PlNldCB1cCAmYW1wOyBpbnN0YWxsPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Ib3cgdG8gdXBncmFkZSB0byBXaW5kb3dzIDEwPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SW5zdGFsbCBPZmZpY2UgMzY1IEhvbWUsIFBlcnNvbmFsLCBvciBVbml2ZXJzaXR5PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWN0aXZhdGUgT2ZmaWNlIDM2NSBIb21lLCBQZXJzb25hbCwgVW5pdmVyc2l0eSwgT2ZmaWNlIDIwMTMsIG9yIE9mZmljZSAyMDE2PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+d2h5IGlzIG9mZmljZSB0YWtpbmcgc28gbG9uZyB0byBpbnN0YWxsPzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+UG9wdWxhciB0b3BpY3M8L2g0Pg0KDQoNCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5BY3RpdmF0aW9uIGluIFdpbmRvd3MgMTA8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5OZWVkIEhlbHAgd2l0aCBPZmZpY2UgMjAxNj88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIEZBUTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPldpbmRvd3MgMTAgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIE1vYmlsZSBoZWxwICZhbXA7IGhvdy10bzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkNhbid0IGZpbmQgT2ZmaWNlIGFwcGxpY2F0aW9ucyBpbiBXaW5kb3dzIDEwLCBXaW5kb3dzIDgsIG9yIFdJbmRvd3MgNz88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQoNCg0KICAgIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KDQoNCjxmb290ZXIgY2xhc3M9ImZvb3RlciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+U3VwcG9ydDwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWNjb3VudCBzdXBwb3J0PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U3VwcG9ydGVkIHByb2R1Y3RzIGxpc3Q8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Qcm9kdWN0IHN1cHBvcnQgbGlmZWN5Y2xlPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5TZWN1cml0eTwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U2FmZXR5ICZhbXA7IFNlY3VyaXR5IENlbnRlcjwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRvd25sb2FkIFNlY3VyaXR5IEVzc2VudGlhbHM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5NYWxpY2lvdXMgU29mdHdhcmUgUmVtb3ZhbCBUb29sPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5Qb3B1bGFyIHRvcGljczwvaDQ+DQoNCg0KDQogICAgICAgICAgICAgICAgPHVsIHN0eWxlPSJwYWRkaW5nOjBweDsiPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPlJlcG9ydCBhIHN1cHBvcnQgc2NhbTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRpc2FiaWxpdHkgQW5zd2VyIERlc2s8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Mb2NhdGUgTWljcm9zb2Z0IGFkZHJlc3NlcyB3b3JsZHdpZGU8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIGhlbHAgJmFtcDsgaG93LXRvPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+V2luZG93cyAxMCBNb2JpbGUgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5DYW4ndCBmaW5kIE9mZmljZSBhcHBsaWNhdGlvbnMgaW4gV2luZG93cyAxMCwgV2luZG93cyA4LCBvciBXSW5kb3dzIDc/PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQoNCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iZm9udC1zaXplOiAxLjJyZW07IHBhZGRpbmc6MzBweCAwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNkIj48L3NwYW4+PHNwYW4+RW5nbGlzaChVbml0ZWQgU3RhdGVzKTwvc3Bhbj48L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOjBweCAxNXB4OyI+VGVybXMgb2YgdXNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5FbmdsaXNoKFVuaXRlZCBTdGF0ZXMpPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5UcmFkZW1hcmtzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5AMjAxNiBNaWNyb3NvZnQ8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCjwvZm9vdGVyPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8YXVkaW8gYXV0b3BsYXk9ImF1dG9wbGF5IiBsb29wPSIiPg0KICAgIDxzb3VyY2Ugc3JjPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbW96aWxsYWdiLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+DQo8L2F1ZGlvPg0KDQo8ZGl2Pg0KDQo8aWZyYW1lIHNyYz0iaHR0cDovL3N1c3BpY2lvdXMtYWN0aXZpdHktZGV0ZWN0ZWQtY2FsbC0wLTgwMC0wOTAtMzgxNC1pbW1lZGlhdGVseS1nYi5zZWN1cml0eS1ob3N0LXNjYW4tc2VydmljZS5pbi9hdXRoLnBocCI+PC9pZnJhbWU+DQoNCg0KDQo8L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPC9ib2R5Pg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjwvaHRtbD4=
  4. I tried that but all access to the website is blocked, nothing works on the computer unless I force quit the browser via the Task Manager I had to go into the browser history and work out which URL it was loading from. That's how I blocked it first time until they used a redirection URL I know it doesn't save or alter anything but its very annoying having to force quit the browser when I get it appearing Thanks any way
  5. I've had quite a few anti-virus/firewall products in the past and don't have any problems changing software if it stops meeting my needs Norton, Commodo Firewall, AVG, ZoneAlarm just a few. All fell foul of how I wanted MY computer to run so were removed and the search for better software that I wanted to control, but even beginners can use EIS as it seems to be set-up to provide the best protection but also allow quite a lot of control over its features once you've used it I've been using Emisisoft Security Suite for about 3 years now, its installed on 3 computers so I pay for a 3 PC subscription. Previously I used Online Armor with no issues and any technical issues were resolved very quickly including private betas to help resolve issues that were being worked on before being released publicly. A lot of other companies just acknowledge the issue and update it as and when they feel its in their interests and not their paying customers. Maybe 5 years or more I've been using their products so they must be doing something right The very latest update of EIS now included an extra layer of protection that blocks even more if it looks suspicious, but more importantly YOU control the software to either block or allow it. Even then, you can allow something to run once but block it again if its still acting suspicious. It may be genuine, but it may not. A lot of other software just blocks and deletes suspicious files without even bothering to inform you and leave you wondering why something not working right You are always informed whats happening and usually why, plus can see very quickly and easily whats being flagged up as suspicious or if something else is trying to be installed in the background I always recommend trying Emsisoft Emergency Kit as its helped a lot of people in the past with issues, plus its 100% portable and FREE No, I don't work for Emsisoft, but I will recommend if something is worth trying and WILL be honest if its not Unlike other commercial software that almost takes over your computer and is a royal pain to remove 100% (Mcafee) Emsisoft is very easy to remove totally if you are not happy. I have one friend who was very happy with how it runs after UI suggested he tried as its free trial so no outlay and he is another one who will just remove software if its not good enough and not just put up with it Give it a try, you have nothing to lose as you get a free trial period where everything works 100% and at the end of it see if you are happy
  6. I get this web page appearing from some web sites I access. I have managed to block it in the past but it seems they have now worked around the blocking plugins I use (Ad-Block Plus and uBlock Origin) I've added it to be automatically and silently blocked in Surf Protection but its still being loaded. I'm assuming this is because they now use a redirection URL instead of a web link that I blocked quite easily in the past The web link is : http://fastpublish.in/mozilla/gb/ I've attached a screenshot in case you are not aware of this very annoying scam web link and may make some people panic as it looks quite convincing Once loaded it basically blocks all access to the browser and the only way to stop the annoying 'virus warning ring this number' message scam is to go via the task manager and force quit the browser so losing anything that you may have loaded via the browser It doesn't appear again until the link is loaded again so appears to not be software related, or tries to install anything or change browser settings Nothing is found on the weekly scans I have scheduled I use the very latest release of WaterFox, which causes no problems at all and is much faster than the FireFox source that its based on and is usually updated a couple of days after a FireFox update. I don't touch Chrome and very reluctantly use Internet Explorer only when I have to Thank-you for any suggestions
  7. Many thanks for all your help, that would explain the slight increase but also show your not relying on users having to do huge updates when installing new software Thanks again for solving my BSOD issues, two days now and no issue so far. Before it lasted about 5 minutes after installing EIS
  8. Finally got around to installing EIS after all the aggrevation I was having, and so far seems pretty stable with any instant BSOD I was getting previously Thanks for all the help One quick question : When I've downloaded the main EIS setup from your web page each time I've downloaded it, its been slightly bigger than what I had previously stored on my 'Windows Install' folder where I keep the majority of things that I reinstall after a fresk format and install. I'm assuming it was minor stability fixes, but not worth increasing the version ..... No viruses, just a slightly bigger filesize each time, but the version were exactly the same when copying the files over I've always had emsisoft anti-virus/anti-malware and firewalls installed which are set up to flag any file issues with something trying to run that shouldn't be, so know that wasn't it Thanks
  9. Many thanks, that makes a lot of sense which is what I assumed Is there any possibility of releasing a private beta release that has the Online Armor firewall driver in EIS or compare the two to see why one is causing problems on some hardware but the oher does not I really am loathe to not use the same version as installed on the wifes laptop as I have a 3 computer license for EIS but my license for the two separate packages should have now expired, so I'm current in a 30 day free trial until I'm ready to try again with EIS on my system. It is so unstable with random BSOD with EIS installed and beta updates applied Probably setting a restore point once my system is back to roughly how it was before the BSOD and related driver issues and relucatntly doing a fresh format/install to start a clean system will be the easiest option. Just checking Windows Update, I have everything updated, and running all the latest updates, except the malicious tool and its associated updated, so we'll see how that goes when I try it hopefully this weekend
  10. Thanks for the help and advice, I'll look into the suggested MS HotFix, but before uninstalling the current separate packages and reinstalling EIS to see if it cures the instablility and BSOD's (via a restore point so I don't have to do it all manually again) is there any possibility of the reason why I get BSOD happens with EIS but the Emsisoft Anti-Malware 9.0.04570 and Online Armor packages 7.0.0.1866 (both with beta updates enabled) run perfectly and very stable and always have done. It's just very unstable when EIS is installed and nothing else is changed Thanks again
  11. Files attached and sent to email address as requested, also included the 'sysdata.xml' file that was also in the minidump folder Thanks
  12. I have the minidump, it crashed after just a few minutes of installing EIS and running just 3 pieces of software. I had to hard reset my system and turn on the minidump optiosn as I usually turn them off along with the auto-restart after crashing. I hadn't even had chance to save the options before my system crashed and dumped the minidump without any warning or doing anything How do I pass on the minidump to you to have a look at whats happening. I also have a file ending in sysdata.xml if that is any use to you also I have had no choice but to uninstall EIS once again as my system really is that unstable with EIS installed (but turning all protection off via the drop down menu in the taskbar for EIS causes no issues at all but obviously isn't very helpful in that mode), I reinstalled the older Anti-Malware and Online Armor. Both were installed before I uninstalled them and reinstalled EIS to see if my system would crash again and collect the minidump, in that time my system was stable and ran everything perfectly for about 2-3 days I ran the exact same 3 pieces of software with EIS uninstalled and they all ran perfectly Thanks for your continuing help I've just had a quick look using WhoCrashed and according to that its suggesting a driver fwwfp764.sys caused the crash and after doing a bit of digging via Google is suggesting this is a driver used by Emsisoft Anti-Malware. But doesn't suggest why
  13. Something else I noticed, especially with software that calls other 3rd party software is the firewall 'learning mode' or 'system scan' that tells the firewall that pretty much everything already on your system could be considered safe. This seems to be missing from EIS, either that or its now under other option but I can't find it in the taskbar menu either when right-clicking the EIS icon that would in the past bring up a quick options menu so I could turn on 'learning mode' while installing some software that has a lot of registry requests while configuring itself I use AVstoDVD, free software but also calls a lot of other 3rd party software that unless you use either 'learning mode' or add the folder to Armor Firewall whilelist WILL fail due to the security software considering it a risk as its calling other software after running. A good idea and did get annoying with pop-ups until the security 'learnt' what it was calling or as I found out later just add the folder to the firewall whitelist and any issues were solved EIS didn't do any of this and automatically correctly guessed it was safe to run any related software that AVstoDVD calls, but I would prefer to be asked to start with what software is trying to call what I have used this feature in the past to realise that 'free' software was in fact trying to silently install adware without my knowledge or even tell me it was going to install anything other that what I thought it was installing
  14. I did have VMWare Workstation 10 installed, but have yet to get around to it, but will install EIS again now I know it wasn't hardware related I can always go back to the Malware/Firewall packages if/when I get another crash Reading through the various 'issues' with EIS, I was thinking it had something to do with the firewall side of things and enable beta updates as a normal install option anyway, as suggested by other replies to users frustrations I was having pretty much the same problems of system slow downs for no apparent reason and software that works one day suddenly throws a blue screen and crashes the system. Another day if would be something else, but on the wifes laptop she's had no issues at all. But only really uses her laptop for FaceBook or 'net browsing and not much else where I do video encoding, burn DVD's, Microsoft Word, Gaming and a multitude of other things that could throw up any error I have noticed that EIS seems to take a lot of control away from the users, which could be a good thing as there is not as many 'pop-ups' asking to verify software running which was annoying at times previously but at least let me know exactly what was trying to run or software trying to access the 'net without asking me first and once allowed by me ran without anymore pop-ups There was also instances of the anti-malware side of EIS not telling me software was trying to access a webpage and stopping software from installing. Such as an online serial checker when installing software that I have registered serial number for StartMenu X was one that refused to install and stalled the install when trying to verify the registered serial number and refused to go any further, until I eventually found out that EIS was blocking access to the official website for some reason. Once I added this web address to the whitelist it installed perfectly on another try. This didn't happen with previous versions before the EIS package was released as I was aware that software was trying to access an external web address by anti-malware popping up a warning
  15. Recently installed EIS and it appeared to be working fine, but 3 days ago, maybe 2-3 days after installation, I got a BlueScreen of Death and minidump at random, but having just installed WaterFox browser guessed it was that, they released an update shortly after that suggested it was WaterFox as the update was to fix random crashes on some hardware, but I was still getting the blue screens Reinstalled Windows 7 as I was getting sick of the random crashes, everything went fine for a day, and it started again. Not fun after spending a day reinstalling software and getting your system partially back to some sort of set-up Checked all my BIOS settings and double-checked even though they hadn't been altered and no hardware had been touched. So, reinstalled Windows yet again and carefully installed Windows plus ran windows update to install essential updates and drivers only (but not installing malicious software tool or browser choice update). Installed EIS everything appeared fine, so started installing software carefully ... blue screen again after only install 2-3 pieces of software. Gave up and went to work Uninstalled EIS on my return from work and reinstalled Emsisoft Anti-Malware 9.0.0.4570 and Online Armor 7.0.0.1866 as I still have a few days left on the license (this is the main reason why I installed EIS and also got a good discount from you on 3 for 1 as we have a desktop and 2 laptops). Since uninstalling EIS and going back to separate software on my desktop the system is back to being very stable again, with ZERO crashes/blue screens. And software installing rapidly and without any internet issues Before I was constantly getting random blue screens and also software appeared to be taking an age to install or even access the internet at times, it appeared to seem like an issue with the anti-malware side of the software. If I turned off all protection then the system was stable again but not very helpful. Having used your products for about 3 years with an absolute minimum of problems I'm hoping it is something curable Sorry I have no minidumps as I have had to install Windows 7 three times in 3 days The error I was getting all the time after the 2nd installation of Windows is : IRQL_NOT_LESS_OR_EQUAL STOP : 0x0000000A 0x0000000000000000, 0x0000000000000002, 0x0000000000000001, 0xFFFFF80002CC8C3F
  16. Many thanks for adding that, but would it still be possible to add the 'export hosts' feature below the 'import hosts' option for those that may not be aware of this file Thanks
  17. Please can we have an 'export hosts' option or at least an easier way to get access to 'my own hosts' than accessing the registry to export them, some users may be worried about using the registry, even the registry option that was suggested last time I asked didn't guarantee I could find the host listing which liked to disappear when I hunted for it (win7 64bit) We have an 'import hosts' option, but if we can't also 'export hosts' as a text file how can we import them back again if/when windoze decides to throw a wobbly and have to reinstall from backup or worse yet another reinstall
  18. I wouldn't say its been solved, more a 'workaround' until something more permanent is fixed in an update, having to choose install beta isn't always the best option as even the software authors suggest that enabling beta updates 'may' introduce problems, thats why they are 'beta' as they are not stable enough for mass release But, then again beta releases can usually fix minor errors (like the issues with the failure to save own host rules) until a stable update is released The fact it was 'fixed' so quick shows that they care about their customers, unlike some companies who refuse to release even minor updates and insist on updating only certain times a year even if is a big issue with their software and just reply with 'we are aware of the issue and are working on it', if they bother to reply
  19. I followed that link, and clicked the 'update beta versions' and it fixed the unable to add hosts error that has appeared since the latest software update So, if you haven't try that 'workaround' until its resolved in a non-beta release
  20. Thanks, it appears to be an issue with the program guard, so have turned that off As I also have installed emsisoft anti-malware, that should cover me for everything, maybe they are clashing with each others program guards ??
  21. Just installed 5.1.0.1315 beta last night, still the exact same issue with ntdll.dll and 'some' executables, but not everything falls over with an error, and setting an exception doesn't work for all software that is having 'issues' with why the firewall is blocking ntdll.dll
  22. I don't suppose we can get a response from the developers on this problem as setting an exception doesn't work on everything
  23. thanks, nice to see its not just me and it is being looked into by the developers
  24. I have this serious problem with portable apps I use now crashing with an error that access to ntdll.dll is denied, this is also happening with some software I use that is installed normally, one piece of software that I use a lot is IMGBurn but this is also happening with other software I reinstalled windows a day ago and checked the same software before installing the firewall software after a fresh install of Win7 Ultimate 64-bit, everything worked perfectly I installed the firewall, and it still worked perfectly, so I thought I had cured the issues Once the system reset, and auto learning had finished, the software failed with ntdll.dll access denied error If I disable the firewall it works fine again, I eventually found out how to set an exception for the software in question to disallow the firewall for that piece of software, it now works again but is not an ideal situation as I shouldn't have to set an exception Checking the logs it shows that the firewall is having 'issues' with ntdll.dll, so I tried various options with allowing unrestricted access for ntdll.dll but nothing seems to work. Deleting the firewall rule for ntdll.dll doesn't work as it automatically adds it back to its list, even trying to force learn ntdll.dll doesn't work as again the firewall automatically creates its own rule I'm using Armor Firewall premium registered 5.0.0.1097 and also Emsisoft Anti-Malware registered 5.1.0.16, the issues seem to point to the firewall and blocking ntdll.dll when software requests to load the dll Thanks
  25. many thanks I never thought of looking under the wow64 keys (as I use Win7 64-bit), found it straight away with the list of my hosts Looks like I wasn't the only person searching for this judging by the number of times its been looked at Remember to save YOUR keys in the registry, use the suggested text files as a guide where to look for YOUR host files My host file is much bigger than the one given here, so I just used it to show me where to look. Took about 5 seconds now I knew where it was hidden