In general, however, it is not a good idea to purchase bitcoin with credit cards. This may sound farfetched, but hot wallet holders who haven't set up enough security run the risk of losing funds to theft. This is not an infrequent occurrence, and it can happen in a number of ways. For example, boasting on a public forum such as Reddit about how much bitcoin you hold while you are using little to no security and storing it in a hot wallet would not be wise.
You can read and learn more in-depth discussion about technical analysis and other crypto market indicators, but to focus specifically on Bitcoin trading, study and implement these in your trading strategies. This evaluates the strength of Bitcoin’s recent price performance within a period of time. Most traders opt for a 14-day RSI, but this can be customized. An asset is considered overbought if the RSI is higher than 70. Conversely, you can say that it is oversold if the RSI is below 30.
Bitcoin Atms
There is a whole ecosystem built around Bitcoin, including specialist banks that borrow and lend it with interest. The difference is mainly that Bitcoin is newer and with a smaller market capitalization, with more explosive upside and downside potential. And as the next section explains, a cryptocurrency’s security is tied to its network effect, unlike precious metals. There https://sharemontinvestments.com/ is a ratio called “Bitcoin dominance” that measures what percentage of the total cryptocurrency market capitalization that Bitcoin has.
Here do these young people go when they want advice on their investments? Hen I speak to Shane Blake, 26, a digital marketing worker from Brighton, he’s in a low mood. “I’m feeling a bit flat after what Elon did,” he says, with a deep sigh.
- By signing up, you agree to our Terms of Use and Privacy Policy.
- When it comes to cryptocurrencies, one of the biggest challenges for investors is not getting caught up in the hype.
- Discover three reasons why Stellar may have a bright future, and how you can invest in it.
- Voyager is a popular platform to invest in crypto as it was one of the first publicly traded exchanges.
- The fact that Bitcoin came first, is something that can’t be replicated unless the community around it somehow stumbles very badly and allows other cryptocurrencies to catch up.
- You can sell bitcoin at the same venues where you purchased the cryptocurrency, such as cryptocurrency exchanges and P2P platforms.
The firm urged the department to work with plan overseers to develop steps to meet those obligations. The employer that oversees the retirement savings plan would have to decide to include the digital assets account. While the ETF has 25 holdings, the top 10 account for 63% of the fund's total net assets.
Who Owns The Maximum Number Of Bitcoin?
Any news story you have ever heard about Bitcoin being hacked or stolen, was not about Bitcoin’s protocol itself, which has never been hacked. Instead, instances of Bitcoin hacks and theft involve perpetrators breaking into systems to steal the private keys that are held there, often with lackluster security systems. If a hacker gets someone’s private keys, they can access that person’s Bitcoin holdings. This risk can be avoided by using robust security practices, such as keeping private keys in cold storage.
<img src="data:image/jpeg;base64,DQoNCjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iLz48bWV0YSBuYW1lPSJhcGx1cy1leGluZm8iIGNvbnRlbnQ9InBpZD1rUkMzZmsmYW1wO3NpdGU9YWxpZXhwcmVzcyIvPjxtZXRhIG5hbWU9ImFwbHVzLWF1dG8tZXhwLXZpc2libGUiIGNvbnRlbnQ9IjAuNSIvPjxtZXRhIG5hbWU9ImFwbHVzLWF1dG8tZXhwLWR1cmF0aW9uIiBjb250ZW50PSI1MDAiLz48bWV0YSBuYW1lPSJkYXRhLXNwbSIgY29udGVudD0iYTJnMG8iLz48dGl0bGU+NDA0IHBhZ2U8L3RpdGxlPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii8vZy5hbGljZG4uY29tL2FlLWRpZGEvYWUtZXJyb3IvMC4wLjQvaW5kZXguY3NzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PHNjcmlwdD4oZnVuY3Rpb24gaW5pdENvbmZpZyhlbnYpIHsKICAgIHdpbmRvdy5fcnVuX2VudiA9IGVudjsKICAgIHdpbmRvdy5fcGFnZV9jb25maWdfID0geyBsb2FkZXI6IHsgYXBsdXM6IHRydWUgfSB9Owp9KSgicHJvZCIpOzwvc2NyaXB0PjxzY3JpcHQ+CiAgIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3dpbmRvdy5nZXBfcXVldWU9d2luZG93LmdlcF9xdWV1ZXx8W107ZnVuY3Rpb24gbihlLG4pe3JldHVybiB3aW5kb3cuZ2VwX3F1ZXVlLnB1c2goe2FjdGlvbjplLGFyZ3VtZW50czpufSl9dHJ5e3ZhciBlLHI9KG51bGw9PT0oZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9ImFwbHVzLWV4aW5mbyJdJykpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKXx8IiI7KG51bGw9PXI/dm9pZCAwOnIuc3BsaXQoIiYiKSkuZm9yRWFjaChmdW5jdGlvbihlKXtlPWUuc3BsaXQoIj0iKTsicGlkIj09PWVbMF0mJih3aW5kb3cuZ29sZGxvZ19xdWV1ZXx8KHdpbmRvdy5nb2xkbG9nX3F1ZXVlPVtdKSkucHVzaCh7YWN0aW9uOiJnb2xkbG9nLnNldE1ldGFJbmZvIixhcmd1bWVudHM6WyJhcGx1cy1jcHZkYXRhIix7cGlkOmVbMV19XX0pfSl9Y2F0Y2goZSl7fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oZSl7bigiaGFuZGxlRXJyb3IiLFtlXSl9LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIixmdW5jdGlvbihlKXtuKCJ1bmhhbmRsZWRyZWplY3Rpb24iLFtlXSl9LCEwKSx3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5tYXJrJiZ3aW5kb3cucGVyZm9ybWFuY2UubWVhc3VyZSYmKHdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrKCJtYXJrLXN0YXJ0UmVuZGVyIiksd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmUoInN0YXJ0UmVuZGVyIiwiZmV0Y2hTdGFydCIsIm1hcmstc3RhcnRSZW5kZXIiKSl9KCk7CiAgKGZ1bmN0aW9uKCl7aWYod2luZG93LmRtdHJhY2tfcGFnZWlkKXJldHVybjt0cnl7dmFyIGNuYT0iMDAxIjtpZihuZXcgUmVnRXhwKCIoPzo7ICk/Y25hPShbXjtdKik7PyIpLnRlc3QoZG9jdW1lbnQuY29va2llKSl7dmFyIHN0cj1kZWNvZGVVUklDb21wb25lbnQoUmVnRXhwWyIkMSJdKTtpZihzdHImJnN0ci5yZXBsYWNlKC8oXnMqKXwocyokKS9nLCIiKS5sZW5ndGg+MCl7Y25hPXN0cn19dmFyIHBhZ2VfaWQ9Y25hLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpkXS9nLCIiKS5zdWJzdHJpbmcoMCwxNik7dmFyIHJhbmRlbmQ9W3BhZ2VfaWQsKG5ldyBEYXRlKS5nZXRUaW1lKCkudG9TdHJpbmcoMTYpXS5qb2luKCIiKTt3aGlsZShyYW5kZW5kLmxlbmd0aDw0Mil7cmFuZGVuZCs9cGFyc2VJbnQoTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjFlMTApLDEwKS50b1N0cmluZygxNil9d2luZG93LmRtdHJhY2tfcGFnZWlkPXJhbmRlbmQuc3Vic3RyKDAsNDIpfWNhdGNoKGUpe3dpbmRvdy5kbXRyYWNrX3BhZ2VpZD0iLS0ifX0pKCk7CiAgIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlLG89ZnVuY3Rpb24oZSl7dmFyIG89T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4oZT1lLnRyaW0oKS5yZXBsYWNlKC9eKFw/fCN8JikvLCIiKSk/KGUuc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLGk9dC5zaGlmdCgpLG49dC5sZW5ndGg+MD90LmpvaW4oIj0iKTp2b2lkIDA7bj12b2lkIDA9PT1uP251bGw6ZGVjb2RlVVJJQ29tcG9uZW50KG4pLG9baV09bn0pKSxvKTpvfTtpZih3aW5kb3cuX2RpZGFfY29uZmlnXyYmIXdpbmRvdy5fZGlkYV9jb25maWdfLl9pbml0X2RhdGFfJiYobnVsbD09PShlPXdpbmRvdy5fcGFnZV9jb25maWdfKXx8dm9pZCAwPT09ZXx8IWUucHJlZmV0Y2gpKXt2YXIgdD13aW5kb3cuX2RpZGFfY29uZmlnXyxpPXQucGFnZU5hbWUsbj10LnBhZ2VWZXJzaW9uLGE9dC5oZWFkZXJzLHI9dm9pZCAwPT09YT97fTphLHM9dC5uZWVkTG9naW4sYz12b2lkIDAhPT1zJiZzLGw9dC5kYXRhLGQ9dm9pZCAwPT09bD97fTpsLHA9dC5wYXNzUXVlcnk7aWYoaSl7dmFyIHU9Ii9mbi8iLmNvbmNhdChpLCIvaW5kZXgiKTtkLnBhZ2VWZXJzaW9uPW4sYyYmKGQubmVlZExvZ2luPSEwKSx3aW5kb3cuX3BhZ2VfY29uZmlnXz13aW5kb3cuX3BhZ2VfY29uZmlnX3x8e30sd2luZG93Ll9wYWdlX2NvbmZpZ18ucHJlZmV0Y2g9e3VybDp1LGRhdGE6ZCxoZWFkZXJzOnIsd2l0aENyZWRlbnRpYWxzOiEwLHBhc3NRdWVyeTpwfX19IWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LHQ9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsaT1lLmVuYWJsZSxuPXZvaWQgMD09PWl8fGksYT1lLnVybCxyPWUuZGF0YSxzPXZvaWQgMD09PXI/e306cixjPWUuaGVhZGVycyxsPXZvaWQgMD09PWM/e306YyxkPWUud2l0aENyZWRlbnRpYWxzLHA9ZS5wYXNzUXVlcnksdT1lLl9pbml0X2RhdGFfO2lmKG4mJmEpe3ZhciBmPXQoKSxfPWYucmVzb2x2ZSx3PWYucmVqZWN0O2lmKHUpXyh1KTtlbHNle3ZhciBnLG09ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKToobmV3IERhdGUpLmdldFRpbWUoKX0saD1tKCksdj1uZXcgWE1MSHR0cFJlcXVlc3QseD1hO2lmKHApe3ZhciBiPW8obG9jYXRpb24uc2VhcmNoKTsiYm9vbGVhbiI9PXR5cGVvZiBwP09iamVjdC5hc3NpZ24ocyxiKTpBcnJheS5pc0FycmF5KHApJiZPYmplY3Qua2V5cyhiKS5mb3JFYWNoKChmdW5jdGlvbihlKXstMSE9PXAuaW5kZXhPZihlKSYmKHNbZV09YltlXSl9KSl9dmFyIHk9T2JqZWN0LmtleXMocykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iIi5jb25jYXQoZSwiPSIpLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQoc1tlXSkpfSkpLmpvaW4oIiYiKTt5JiYoeCs9LTE9PT14LmluZGV4T2YoIj8iKT8iPyI6IiYiLHgrPXkpLHYub3BlbigiR0VUIix4LCEwKSx2Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKDQ9PT10aGlzLnJlYWR5U3RhdGUpe3ZhciBlLG8sdDtpZih3aW5kb3cuY2xlYXJUaW1lb3V0KGcpLCJmdW5jdGlvbiI9PXR5cGVvZiB2LmdldFJlc3BvbnNlSGVhZGVyKXRyeXtlPXYuZ2V0UmVzcG9uc2VIZWFkZXIoImVhZ2xlZXllLXRyYWNlaWQiKSxvPXYuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxLXQiKSx0PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxLWlkIil9Y2F0Y2goZSl7fXZhciBpPW98fE1hdGguZmxvb3IobSgpLWgpLG49ISFvO2lmKDIwMD09PXRoaXMuc3RhdHVzKXt2YXIgYT17fTt0cnl7YT1KU09OLnBhcnNlKHRoaXMucmVzcG9uc2VUZXh0KSxPYmplY3QuYXNzaWduKGEse2Nvc3RUaW1lOmksZnJvbVNXOm4sdHJhY2VJZDplfSksdCYmKGEucGFnZUlkPXQpLF8oYSl9Y2F0Y2gobyl7dyh7Y29zdFRpbWU6aSxyZXNwb25zZTp0aGlzLnJlc3BvbnNlLG1zZzoiSlNPTi5wYXJzZSBlcnJvciEiLHRyYWNlSWQ6ZSxmcm9tU1c6bn0pfX1lbHNlIHcoe2Nvc3RUaW1lOmkscmVzcG9uc2U6dGhpcy5yZXNwb25zZSxtc2c6dGhpcy5zdGF0dXMsdHJhY2VJZDplLGZyb21TVzpufSl9fSwic2V0UmVxdWVzdEhlYWRlciJpbiB2JiZPYmplY3Qua2V5cyhsKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2LnNldFJlcXVlc3RIZWFkZXIoZSxsW2VdKX0pKSxkJiYodi53aXRoQ3JlZGVudGlhbHM9ITApLHYuc2VuZCgpLGc9d2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dChnKSx3KHtjb3N0VGltZToxZTQscmVzcG9uc2U6bnVsbCxtc2c6InJlc3BvbnNlIHRpbWVvdXQgMTBTIn0pLHYuYWJvcnQoKX0pLDFlNCl9fX0oKHdpbmRvdy5fcGFnZV9jb25maWdffHx7fSkucHJlZmV0Y2gsKGZ1bmN0aW9uKCl7dmFyIGU9bnVsbCxvPW51bGwsdD1bXSxpPVtdO3JldHVybiB3aW5kb3cuX19JTklUX0RBVEFfQ0FMTEJBQ0tfXz1mdW5jdGlvbihuLGEpe2U/bihlKTpvP2Eobyk6KHQucHVzaChuKSxpLnB1c2goYSkpfSx7cmVzb2x2ZTpmdW5jdGlvbihvKXtlPW8sdC5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZShvKX0pKX0scmVqZWN0OmZ1bmN0aW9uKGUpe289ZSxpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3JldHVybiBvKGUpfSkpfX19KSksKHdpbmRvdy5fcGFnZV9jb25maWdffHx7fSkubmVlZExvZ2luJiYtMT09PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJzaWduPXkiKSYmKGxvY2F0aW9uLmhyZWY9Ii8vbG9naW4uYWxpZXhwcmVzcy5jb20/cmV0dXJuX3VybD0iLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpKTt2YXIgZj17IiI6e3NpdGU6ImdsbyIsbG9jYWxlOiJlbl9VUyJ9LHJ1OntzaXRlOiJydXMiLGxvY2FsZToicnVfUlUifSxwdDp7c2l0ZToiYnJhIixsb2NhbGU6InB0X0JSIn0sZXM6e3NpdGU6ImVzcCIsbG9jYWxlOiJlc19FUyJ9LGZyOntzaXRlOiJmcmEiLGxvY2FsZToiZnJfRlIifSxpZDp7c2l0ZToiaWRuIixsb2NhbGU6ImluX0lEIn0saXQ6e3NpdGU6Iml0YSIsbG9jYWxlOiJpdF9JVCJ9LGphOntzaXRlOiJqcG4iLGxvY2FsZToiamFfSlAifSxrbzp7c2l0ZToia29yIixsb2NhbGU6ImtvX0tSIn0sZGU6e3NpdGU6ImRldSIsbG9jYWxlOiJkZV9ERSJ9LGFyOntzaXRlOiJhcmEiLGxvY2FsZToiYXJfTUEifSxubDp7c2l0ZToibmxkIixsb2NhbGU6Im5sX05MIn0sdGg6e3NpdGU6InRoYSIsbG9jYWxlOiJ0aF9USCJ9LHRyOntzaXRlOiJ0dXIiLGxvY2FsZToidHJfVFIifSx2aTp7c2l0ZToidm5tIixsb2NhbGU6InZpX1ZOIn0saGU6e3NpdGU6ImlzciIsbG9jYWxlOiJpd19JTCJ9LHBsOntzaXRlOiJwb2wiLGxvY2FsZToicGxfUEwifX07ZnVuY3Rpb24gXyhlLG8pe2UrPSI9Ijtmb3IodmFyIHQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldLnRyaW0oKTtpZigwPT1uLmluZGV4T2YoZSkpe3ZhciBhPW4uc3Vic3RyaW5nKGUubGVuZ3RoLG4ubGVuZ3RoKTtpZihvKXt2YXIgcj1uZXcgUmVnRXhwKCIoLiomPyIrbysiPSkoLio/KSgmLip8JCkiKTtyZXR1cm4gYS5tYXRjaChyKSxSZWdFeHAuJDJ9cmV0dXJuIGF9fXJldHVybiIifWZ1bmN0aW9uIHcoZSxvLHQpe3ZhciBpPV8obyk7aT1uZXcgUmVnRXhwKCIoLiomPyIrdCsiPSkoLio/KSgmLip8JCkiKS50ZXN0KGkpP1JlZ0V4cC4kMStlK1JlZ0V4cC4kMzooaT9pKyImIjoiIikrdCsiPSIrZSxkb2N1bWVudC5jb29raWU9IiIuY29uY2F0KG8sIj0iKS5jb25jYXQoaSwiOyBEb21haW49IikuY29uY2F0KGxvY2F0aW9uLmhvc3Quc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpLCI7IEV4cGlyZXM9U2F0LCAxOC1TZXAtMjA4OCAwMDowMDowMCBHTVQ7IFBhdGg9LzsiKX12YXIgZz13aW5kb3cuX3BhZ2VfY29uZmlnX3x8e30sbT1nLnN5bmNDb29raWUsaD1nLnN5bmNSdUNvb2tpZTsodm9pZCAwPT09aHx8aCkmJmZ1bmN0aW9uKCl7aWYoKC9hbGlleHByZXNzLnJ1JC8udGVzdChsb2NhdGlvbi5ob3N0KXx8L3RtYWxsLnJ1JC8udGVzdChsb2NhdGlvbi5ob3N0KSkmJiEod2luZG93LmxvY2F0aW9uLmhyZWYubGVuZ3RoPjE5MDApKXt2YXIgZSxvLHQsaSxuLGE9KHdpbmRvdy5fcm9ib3RMaXN0fHwiYW1zcGx1cyxhb2xidWlsZCxiYWlkdSxiaW5nYm90LGJpbmdwcmV2aWV3LG1zbmJvdCxhZHNib3QtZ29vZ2xlLGdvb2dsZWJvdCxtZWRpYXBhcnRuZXJzLWdvb2dsZSx0ZW9tYSxzbHVycCx5YW5kZXgseWFuZGV4Ym90LGJhaWR1c3BpZGVyLHlldGksc2V6bmFtYm90LHNvZ291LHlhbmRleG1vYmlsZWJvdCxtc25ib3QsbXNuYm90LW1lZGlhLHNvZ291LGJ5dGVzcGlkZXIiKS5zcGxpdCgiLCIpLHI9XygieG1hbl91c19mIik7ciYmLTEhPXIuaW5kZXhPZigiYWNzX3J0PSIpfHxmdW5jdGlvbigpe2Zvcih2YXIgZT0hMSxvPTAsdD1hLmxlbmd0aDtvPHQ7bysrKXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50JiYtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhW29dKSYmKGU9ITApO3JldHVybiBlfSgpfHwvX3NfdD0oXGQrKS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZikmJiEoKG5ldyBEYXRlKS5nZXRUaW1lKCktcGFyc2VJbnQoUmVnRXhwLiQxKT4xZTQpfHwod2luZG93LmxvY2F0aW9uLmhyZWY9Ii8vbG9naW4uYWxpZXhwcmVzcy5jb20vc3luY19jb29raWVfcmVhZC5odG0/eG1hbl9nb3RvPSIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudCgoZT13aW5kb3cubG9jYXRpb24uaHJlZixvPSJfc190Iix0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLGk9bmV3IFJlZ0V4cCgiKFs/Jl0pIitvKyI9Lio/KCZ8JCkiLCJpIiksbj0tMSE9PWUuaW5kZXhPZigiPyIpPyImIjoiPyIsZS5tYXRjaChpKT9lLnJlcGxhY2UoaSwiJDEiK28rIj0iK3QrIiQyIik6ZStuK28rIj0iK3QpKSkpfX0oKSxtJiZmdW5jdGlvbigpe2lmKC0xPT1bIm1iZXN0LmFsaWV4cHJlc3MuY29tIiwibWJlc3QuYWxpZXhwcmVzcy5ydSIsImJlc3QuYWxpZXhwcmVzcy5jb20iLCJiZXN0LmFsaWV4cHJlc3MucnUiXS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgZSxvPXdpbmRvdy5sb2NhdGlvbi5ob3N0O3N3aXRjaChvKXtjYXNlIm0uYWxpZXhwcmVzcy5jb20iOmNhc2Uid3d3LmFsaWV4cHJlc3MuY29tIjpyZXR1cm4gZlsiIl07Y2FzZSJtLmFsaWV4cHJlc3MucnUiOmNhc2Uid3d3LmFsaWV4cHJlc3MucnUiOnJldHVybiBmLnJ1O2RlZmF1bHQ6dmFyIHQ9bnVsbD09PShlPW8ubWF0Y2goL14oPzptXC4pPyhydXxwdHxlc3xmcnxpZHxpdHxqYXxrb3xkZXxhcnxubHx0aHx0cnx2aXxoZXxwbCk/XC5hbGlleHByZXNzXC5jb20vKSl8fHZvaWQgMD09PWU/dm9pZCAwOmVbMV07aWYodClyZXR1cm4gZlt0XXx8ZlsiIl19fSgpO2lmKGUpe3ZhciBvPXdpbmRvdy5sb2NhdGlvbi5ob3N0LHQ9XygiYWVwX3VzdWNfZiIsInNpdGUiKTt0PWZ1bmN0aW9uKGUpe3JldHVybi0xIT09T2JqZWN0LmtleXMoZikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZltlXS5zaXRlfSkpLmluZGV4T2YoZSl9KHQpP3Q6IiI7dmFyIGk9XygiYWVwX3VzdWNfZiIsImJfbG9jYWxlIik7aWYoIXR8fCJtLmFsaWV4cHJlc3MuY29tIiE9PW8mJiJ3d3cuYWxpZXhwcmVzcy5jb20iIT09byYmZS5sb2NhbGUhPT1pKXJldHVybiB3KGUuc2l0ZSwiYWVwX3VzdWNfZiIsInNpdGUiKSx2b2lkIHcoZS5sb2NhbGUsImFlcF91c3VjX2YiLCJiX2xvY2FsZSIpO2lmKCJnbG8iIT09dCl7dmFyIG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBvPSIiLHQ9T2JqZWN0LmtleXMoZiksaT0wO2k8dC5sZW5ndGg7aSsrKWlmKGZbdFtpXV0uc2l0ZT09PWUpe289dFtpXTticmVha31yZXR1cm4gb30odCk7Im0uYWxpZXhwcmVzcy5jb20iPT09bz9sb2NhdGlvbi5ocmVmPWxvY2F0aW9uLmhyZWYucmVwbGFjZSgvXmh0dHBzOlwvXC9tXC5hbGlleHByZXNzXC5jb20vLCJydSI9PT1uPyJodHRwczovL20uYWxpZXhwcmVzcy5ydSI6Imh0dHBzOi8vbS4iLmNvbmNhdChuLCIuYWxpZXhwcmVzcy5jb20iKSk6Ind3dy5hbGlleHByZXNzLmNvbSI9PT1vJiYobG9jYXRpb24uaHJlZj1sb2NhdGlvbi5ocmVmLnJlcGxhY2UoL15odHRwczpcL1wvd3d3XC5hbGlleHByZXNzXC5jb20vLCJydSI9PT1uPyJodHRwczovL2FsaWV4cHJlc3MucnUiOiJodHRwczovLyIuY29uY2F0KG4sIi5hbGlleHByZXNzLmNvbSIpKSl9fX19KCl9KCk7Cjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgaHRtbCB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7CiAgICAgICAgfQogICAgICAgICNyb290IHsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgfQogICAgICAgIC5wYWdlLW5vdC1mb3VuZCB7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1pbi13aWR0aDogNTcwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDM4NnB4OwogICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTk3cHgpOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87CiAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CjxzY3JpcHQ+KHdpbmRvdy5CT09NUl9tcT13aW5kb3cuQk9PTVJfbXF8fFtdKS5wdXNoKFsiYWRkVmFyIix7InJ1YS51cHVzaCI6ImZhbHNlIiwicnVhLmNwdXNoIjoiZmFsc2UiLCJydWEudXByZSI6ImZhbHNlIiwicnVhLmNwcmUiOiJmYWxzZSIsInJ1YS51cHJsIjoiZmFsc2UiLCJydWEuY3BybCI6ImZhbHNlIiwicnVhLmNwcmYiOiJmYWxzZSIsInJ1YS50cmFucyI6IiIsInJ1YS5jb29rIjoiZmFsc2UiLCJydWEuaW1zIjoiZmFsc2UiLCJydWEudWZwcmwiOiJmYWxzZSIsInJ1YS5jZnBybCI6ImZhbHNlIiwicnVhLmlzdXhwIjoiZmFsc2UiLCJydWEudGV4cCI6Im5vcnVsZW1hdGNoIn1dKTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdD4hZnVuY3Rpb24oYSl7dmFyIGU9Imh0dHBzOi8vcy5nby1tcHVsc2UubmV0L2Jvb21lcmFuZy8iLHQ9ImFkZEV2ZW50TGlzdGVuZXIiO2lmKCJGYWxzZSI9PSJUcnVlIilhLkJPT01SX2NvbmZpZz1hLkJPT01SX2NvbmZpZ3x8e30sYS5CT09NUl9jb25maWcuUGFnZVBhcmFtcz1hLkJPT01SX2NvbmZpZy5QYWdlUGFyYW1zfHx7fSxhLkJPT01SX2NvbmZpZy5QYWdlUGFyYW1zLnBjaT0hMCxlPSJodHRwczovL3MyLmdvLW1wdWxzZS5uZXQvYm9vbWVyYW5nLyI7aWYod2luZG93LkJPT01SX0FQSV9rZXk9IlFOQUZOLU01RzhFLU1UR0U5LU1SVlo0LUVDQjdaIixmdW5jdGlvbigpe2Z1bmN0aW9uIG4oZSl7YS5CT09NUl9vbmxvYWQ9ZSYmZS50aW1lU3RhbXB8fChuZXcgRGF0ZSkuZ2V0VGltZSgpfWlmKCFhLkJPT01SfHwhYS5CT09NUi52ZXJzaW9uJiYhYS5CT09NUi5zbmlwcGV0RXhlY3V0ZWQpe2EuQk9PTVI9YS5CT09NUnx8e30sYS5CT09NUi5zbmlwcGV0RXhlY3V0ZWQ9ITA7dmFyIGksXyxvLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7aWYoYVt0XSlhW3RdKCJsb2FkIixuLCExKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudCgib25sb2FkIixuKTtyLnNyYz0iamF2YXNjcmlwdDp2b2lkKDApIixyLnRpdGxlPSIiLHIucm9sZT0icHJlc2VudGF0aW9uIiwoci5mcmFtZUVsZW1lbnR8fHIpLnN0eWxlLmNzc1RleHQ9IndpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyOjA7ZGlzcGxheTpub25lOyIsbz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0sby5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLG8pO3RyeXtfPXIuY29udGVudFdpbmRvdy5kb2N1bWVudH1jYXRjaChPKXtpPWRvY3VtZW50LmRvbWFpbixyLnNyYz0iamF2YXNjcmlwdDp2YXIgZD1kb2N1bWVudC5vcGVuKCk7ZC5kb21haW49JyIraSsiJzt2b2lkKDApOyIsXz1yLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnR9Xy5vcGVuKCkuX2w9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKGkpdGhpcy5kb21haW49aTthLmlkPSJib29tci1pZi1hcyIsYS5zcmM9ZSsiUU5BRk4tTTVHOEUtTVRHRTktTVJWWjQtRUNCN1oiLEJPT01SX2xzdGFydD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmJvZHkuYXBwZW5kQ2hpbGQoYSl9LF8ud3JpdGUoIjxibyIrJ2R5IG9ubG9hZD0iZG9jdW1lbnQuX2woKTsiPicpLF8uY2xvc2UoKX19KCksIiIubGVuZ3RoPjApaWYoYSYmInBlcmZvcm1hbmNlImluIGEmJmEucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnBlcmZvcm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSlhLnBlcmZvcm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgpOyFmdW5jdGlvbigpe2lmKEJPT01SPWEuQk9PTVJ8fHt9LEJPT01SLnBsdWdpbnM9Qk9PTVIucGx1Z2luc3x8e30sIUJPT01SLnBsdWdpbnMuQUspe3ZhciBlPSIiPT0idHJ1ZSI/MTowLHQ9IiIsbj0iYXV3dXNuaXgzemFlc3l1end2aWEtZi1kYWZhNjkyNDktY2xpZW50bnN2NC1zLmFrYW1haWhkLm5ldCIsaT0iZmFsc2UiPT0idHJ1ZSI/MjoxLF89eyJhay52IjoiMzIiLCJhay5jcCI6IjEyNDg5NDEiLCJhay5haSI6cGFyc2VJbnQoIjYwNDU4OCIsMTApLCJhay5vbCI6IjAiLCJhay5jciI6MSwiYWsuaXB2Ijo0LCJhay5wcm90byI6Imh0dHAvMS4xIiwiYWsucmlkIjoiNWNlYWVmOSIsImFrLnIiOjM2MzUyLCJhay5hMiI6ZSwiYWsubSI6IngiLCJhay5uIjoiZXNzbCIsImFrLmJwY2lwIjoiNS40NS43My4wIiwiYWsuY3BvcnQiOjY0MjUzLCJhay5naCI6IjIuMTkuMTk1LjU1IiwiYWsucXVpY3YiOiIiLCJhay50bHN2IjoidGxzMS4yIiwiYWsuMHJ0dCI6IiIsImFrLmNzcmMiOiItIiwiYWsuYWNjIjoicmVubyIsImFrLnQiOiIxNjU0MjQwNTkyIiwiYWsuYWsiOiJoT0JpUXdaVVl6Q2c1VlNBZkNMaW1RPT0yZnJIcGlMR3JELzFxa1RaaWFnMEQvSXc0b1Qwa1ZLZ3JIN3NZS1VzQjBkZW9uVUhReUdxTFdqdnNWaWtFUkgvdVQ2UjB5MDZJVDZ4OCtQTUVhQ1VlSkZWUWxFMDgyaXEwZTB1WDJiREJrTFBPdzFnR25PWkluMUxTVGpDZmYyR0g0blIvKys2YWZUNnEvOTFyOFdiL3Vta2hrWElrQkNnUnlhZ3FKOHAyZXlLV2dvemQ2WGNRV2VUZUFMSFg5bmJnRUNyLzJ6a1FTWXd2OWtEYStzR3M1dk8vUkhiYWd6Rk53THdEQmNLeHZxNTBhUS82WVh1R2dMZDdPTHlzcS9IekR1RFVITDI0cDh5M2J0WWM2MzVpVko2Z2tONmRQemFJNkY5NGNvTXQ3VXZBVzNVcVZPWVZESXh3UmljcGovd1libkt3VHVYdDhkNFBJLzN4VEF4QitVa0VQYi9XekZtMEFuYU4rcHVaQjJaaXVNWmd0aEJrZ3RHT3FKbjloQUNKbU51VVcrdEJkVUVsQVM3WjZtTzR5S0djc2k5R0RlUHMvTXJyQzdpdktFPSIsImFrLnB2IjoiOTQiLCJhay5kcG9hYmVuYyI6IiIsImFrLnRmIjppfTtpZigiIiE9PXQpX1siYWsucnVkcyJdPXQ7dmFyIG89e2k6ITEsYXY6ZnVuY3Rpb24oZSl7dmFyIHQ9Imh0dHAuaW5pdGlhdG9yIjtpZihlJiYoIWVbdF18fCJzcGFfaGFyZCI9PT1lW3RdKSlfWyJhay5mZW8iXT12b2lkIDAhPT1hLmFGZW9BcHBsaWVkPzE6MCxCT09NUi5hZGRWYXIoXyl9LHJ2OmZ1bmN0aW9uKCl7dmFyIGE9WyJhay5icGNpcCIsImFrLmNwb3J0IiwiYWsuY3IiLCJhay5jc3JjIiwiYWsuZ2giLCJhay5pcHYiLCJhay5tIiwiYWsubiIsImFrLm9sIiwiYWsucHJvdG8iLCJhay5xdWljdiIsImFrLnRsc3YiLCJhay4wcnR0IiwiYWsuciIsImFrLmFjYyIsImFrLnQiLCJhay50ZiJdO0JPT01SLnJlbW92ZVZhcihhKX19O0JPT01SLnBsdWdpbnMuQUs9e2FrVmFyczpfLGFrRE5TUHJlRmV0Y2hEb21haW46bixpbml0OmZ1bmN0aW9uKCl7aWYoIW8uaSl7dmFyIGE9Qk9PTVIuc3Vic2NyaWJlO2EoImJlZm9yZV9iZWFjb24iLG8uYXYsbnVsbCxudWxsKSxhKCJvbmJlYWNvbiIsby5ydixudWxsLG51bGwpLG8uaT0hMH1yZXR1cm4gdGhpc30saXNfY29tcGxldGU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19fX0oKX0od2luZG93KTs8L3NjcmlwdD48L2hlYWQ+PGJvZHkgZGF0YS1zcG09ImFlLWVycm9yIj48IS0tIGNvc21vcyBzdGFydCAtLT4KCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2Nvc21vcy8wLjAuODAvcGMvaW5kZXguY3NzIj4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20vZy9hZS1mZS9nbG9iYWwvMC4wLjMvaW5kZXguanMiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2Nvc21vcy8wLjAuODAvcGMvaW5kZXguanMiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PgoKPCEtLSBjb3Ntb3MgZW5kIC0tPgoKCgoKCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20vZy9hZS1mZS9oZWFkZXItdWkvMC4wLjQ2L3ByZXYvYmFjay9tZS1oZWFkZXIuY3NzIj4KCgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cgl2YXIgaGVhZGVyQ29uZmlnID0gewoJCWxvY2FsZTogImVuX1VTIiwKICAgICAgICBzaXRlOiBudWxsCgl9Cjwvc2NyaXB0PgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLmNvbnRhaW5lciB7CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICB3aWR0aDogNzYwcHgKfQouY29udGFpbmVyOmFmdGVyLC5jb250YWluZXI6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGRpc3BsYXk6IHRhYmxlCn0KLmNvbnRhaW5lcjphZnRlciB7CiAgICBjbGVhcjogYm90aAp9CkBtZWRpYSAobWluLXdpZHRoOiA3NjBweCkgewogICAgLmNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OjIwcHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgICAgICB3aWR0aDogYXV0bwogICAgfQp9CkBtZWRpYSAobWluLXdpZHRoOiAxMDIwcHgpIHsKICAgIC5jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDoxNXB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IGF1dG8KICAgIH0KfQpAbWVkaWEgKG1pbi13aWR0aDogMTI2MHB4KSB7CiAgICAuY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6MDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICB3aWR0aDogMTIwMHB4CiAgICB9Cn0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9InRvcC1saWdodGhvdXNlIiBpZD0idG9wLWxpZ2h0aG91c2UiIGRhdGEtdGltZS1zdGFtcC1mb3ItbWFyaz0iIj4KICAgIDxkaXYgY2xhc3M9InRvcC1saWdodGhvdXNlLXdyYXAgY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtZ2xvYmFsIiBpZD0ibmF2LWdsb2JhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5nLWl0ZW0gbmctYnAiPjxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS9CaFFQZ0VXUE5NLmh0bSIKICAgICAgICAgICAgICAgICAgICByZWw9Im5vZm9sbG93Ij5CdXllciBQcm90ZWN0aW9uPC9hPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLWJwIj48YSBpZD0ibGlnaHRob3VzZS1mZWVkYmFjayIgaHJlZj0iamF2YXNjcmlwdDo7Ij5TdWdnZXN0aW9uPC9hPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLWhlbHAgbmctc3ViIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuZy1zdWItdGl0bGUiPkhlbHA8L3NwYW4+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5nLXN1Yi1saXN0Ij4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLXJvbGU9ImhlbHAtY2VudGVyLWxpbmsiIGNsYXNzPSJuZy1oZWxwLWxpbmsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3NlcnZpY2UuYWxpZXhwcmVzcy5jb20vcGFnZS9ob21lP3BhZ2VJZD0xNyZsYW5ndWFnZT1lbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0iZm9sbG93Ij5DdXN0b21lciBTZXJ2aWNlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vcmVwb3J0LmFsaWV4cHJlc3MuY29tLyIgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcm9sZT0iY29tcGxhaW50LWxpbmsiPkRpc3B1dGVzICZhbXA7IFJlcG9ydHM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLW1vYmlsZSI+PGEgaHJlZj0iLy9zYWxlLmFsaWV4cHJlc3MuY29tL2Rvd25sb2FkX2FwcF9ndWlkZS5odG0iCiAgICAgICAgICAgICAgICAgICAgcmVsPSJub2ZvbGxvdyI+U2F2ZSBiaWcgb24gb3VyIGFwcCE8L2E+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im1lLWhlYWRlciIgaWQ9ImhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJoZWFkZXItd3JhcCBjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhtLWxlZnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWxvZ28gaW5zaWRlLXBhZ2UtbG9nbyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3d3dy5hbGlleHByZXNzLmNvbS8iPjxzcGFuIGNsYXNzPSJsb2dvLWJhc2UiPkFsaUV4cHJlc3M8L3NwYW4+PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJobS1yaWdodCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jYXJ0LWNvbnRhaW5lciI+PGEgY2xhc3M9Im5hdi1jYXJ0IG1lLWljb25zIgogICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vc2hvcHBpbmdjYXJ0LmFsaWV4cHJlc3MuY29tL3Nob3BjYXJ0L3Nob3BjYXJ0RGV0YWlsLmh0bSI+Q2FydDxzcGFuIGlkPSJuYXYtY2FydC1udW0iIGNsYXNzPSJjYXJ0LW51bWJlciI+MDwvc3Bhbj48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtd2lzaGxpc3QiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9teS5hbGlleHByZXNzLmNvbS93aXNobGlzdC93aXNoX2xpc3RfcHJvZHVjdF9saXN0Lmh0bSIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibmF2LXdpc2hsaXN0LWxpbmsiPldpc2ggTGlzdDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi11c2VyLWFjY291bnQiIGlkPSJuYXYtdXNlci1hY2NvdW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVzZXJBY2NvdW50SW5mbyIgY2xhc3M9InVzZXItYWNjb3VudC1pbmZvIiBkYXRhLXJvbGU9InVzZXItYWNjb3VudC10b3AiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYWNjb3VudC1pbm5lciBoaWRkZW4tc20iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWNjb3VudC11bnNpZ25lZCIgZGF0YS1yb2xlPSJ1bnNpZ25lZCI+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly9sb2dpbi5hbGlleHByZXNzLmNvbS9leHByZXNzL211bFNpdGVMb2dpbi5odG0iIGRhdGEtcm9sZT0ic2lnbi1saW5rIj5TaWduIGluPC9hPjxzcGFuIGNsYXNzPSJ1YS1saW5lIj58PC9zcGFuPjxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9Im5vZm9sbG93IiBocmVmPSIvL3VzLmFlLmFsaWV4cHJlc3MuY29tL3dzdXNlci9idXllckpvaW4vZXhwcmVzc0pvaW5JbmRleC5odG0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvbGU9ImpvaW4tbGluayI+U2lnbiBPdXQ8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWNjb3VudC1uYW1lIiBkYXRhLXJvbGU9InVzZXJuYW1lIj4mbmJzcDs8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYWNjb3VudC1tYWluIiBkYXRhLXJvbGU9InVzZXItYWNjb3VudC1tYWluIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHlvdXQtdXNlci1zaWdub3V0IiBkYXRhLXJvbGU9InNpZ25vdXQtYnRuIj48YSByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9sb2dpbi5hbGlleHByZXNzLmNvbS94bWFuL3hsb2dvdXQuaHRtIj5TaWduIE91dDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHlvdXQtdXNlci1zaWduSW4iIGRhdGEtcm9sZT0idXNlci1zaWduSW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmx5b3V0LXdlbGNvbWUtdGV4dCIgZGF0YS1yb2xlPSJmbHlvdXQtd2VsY29tZSI+Jm5ic3A7PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL2xvZ2luLmFsaWV4cHJlc3MuY29tL2V4cHJlc3MvbXVsU2l0ZUxvZ2luLmh0bSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic2lnbi1idG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb2xlPSJzaWduLWxpbmsiPlNpZ24gaW48L2E+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmx5b3V0LXNpZ25Jbi10eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNpZ24gaW4gd2l0aDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJudXMtaWNvbiBudXMtZmFjZWJvb2siIGRhdGEtcm9sZT0ibG9naW4tdHlwZSIgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3RoaXJkcGFydHkuYWxpZXhwcmVzcy5jb20vbG9naW4uaHRtP3R5cGU9ZmImdHJhY2Vsb2c9d3NfZmJfdG9wYmFyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJmYWNlYm9vayI+Jm5ic3A7PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im51cy1pY29uIG51cy12ayIgZGF0YS1yb2xlPSJsb2dpbi10eXBlIiByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vdGhpcmRwYXJ0eS5hbGlleHByZXNzLmNvbS9sb2dpbi5odG0/dHlwZT12ayZ0cmFjZWxvZz13c192a190b3BiYXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9InZrIj4mbmJzcDs8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGwgY2xhc3M9ImZseW91dC12aXNpdG9ycy1sb2dpbiIgZGF0YS1yb2xlPSJ1c2VyLWxvZ2luIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0Pk5ldyBDdXN0b21lcj88L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iLy91cy5hZS5hbGlleHByZXNzLmNvbS93c3VzZXIvYnV5ZXJKb2luL2V4cHJlc3NKb2luSW5kZXguaHRtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJqb2luLWJ0biIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvbGU9ImpvaW4tbGluayI+Sm9pbiBGcmVlPC9hPjwvZGQ+CiAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmbHlvdXQtcmVtaW5kLWxpc3QiIGNsYXNzPSJmbHlvdXQtcmVtaW5kLWxpc3QiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZmx5b3V0LXF1aWNrLWVudHJ5IiBkYXRhLXJvbGU9InF1aWNrLWVudHJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9ob21lLmFsaWV4cHJlc3MuY29tL2luZGV4Lmh0bT90cmFjZWxvZz13c190b3BiYXIiPk15IEFsaUV4cHJlc3M8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vdHJhZGUuYWxpZXhwcmVzcy5jb20vb3JkZXJMaXN0Lmh0bSI+TXkgT3JkZXJzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL21zZy5hbGlleHByZXNzLmNvbT90cmFjZWxvZz13c190b3BiYXIiPk1lc3NhZ2UgQ2VudGVyPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL215LmFsaWV4cHJlc3MuY29tL3dpc2hsaXN0L3dpc2hfbGlzdF9wcm9kdWN0X2xpc3QuaHRtIj5XaXNoIExpc3Q8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ianMtbWVudS1teS1mYXZvcml0ZS1zdG9yZXMiIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9teS5hbGlleHByZXNzLmNvbS93aXNobGlzdC93aXNoX2xpc3Rfc3RvcmVfbGlzdC5odG0iPk15IEZhdm9yaXRlIFN0b3JlczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9jb3Vwb24uYWxpZXhwcmVzcy5jb20vYnV5ZXIvY291cG9uL2xpc3RWaWV3Lmh0bSI+TXkgQ291cG9uczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhtLW1pZGRsZSI+CiAgICAgICAgICAgIDxmb3JtIGlkPSJmb3JtLXNlYXJjaGJhciIgY2xhc3M9InNlYXJjaGJhci1mb3JtIiBhY3Rpb249Ii93aG9sZXNhbGUiIG1ldGhvZD0iZ2V0Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjYXRJZCIgbmFtZT0iY2F0SWQiIHZhbHVlPSIwIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaXN0b3J5VGFiIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaXN0b3J5U2VhcmNoSW5wdXQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imhpc3RvcnlTZWFyY2hDb3VudHJ5Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbml0aWF0aXZlX2lkIiBuYW1lPSJpbml0aWF0aXZlX2lkIiB2YWx1ZT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iSSYjMzk7bSBzaG9wcGluZyBmb3IuLi4iIG1heGxlbmd0aD0iNTAiIGF1dG9jb21wbGV0ZT0ib2ZmIiB2YWx1ZSBuYW1lPSJTZWFyY2hUZXh0IiBjbGFzcz0ic2VhcmNoLWtleSIgaWQ9InNlYXJjaC1rZXkiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzZWFyY2gtYnV0dG9uIG1lLWljb25zIiB2YWx1ZT4KICAgIAkJCQk8L2Rpdj4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2hlYWRlci11aS8wLjAuNDYvcHJldi9iYWNrL21lLWhlYWRlci5qcyIgYXN5bmMgZGVmZXIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGRpdiBpZD0icm9vdCI+PGRpdiBjbGFzcz0icGFnZS1ub3QtZm91bmQiPjxkaXYgY2xhc3M9ImNtLXJlc3VsdCI+PGRpdiBjbGFzcz0iY20tcmVzdWx0LWljb24iPjxpbWcgc3JjPSJodHRwczovL2FlMDEuYWxpY2RuLmNvbS9rZi9IVEIxZzdWcmF4RDFnSzBqU1pGSzVqY0pyVlhhdy5naWYiLz48L2Rpdj48ZGl2IGNsYXNzPSJjbS1yZXN1bHQtdGl0bGUiPlNvcnJ5LCB3ZSBjYW4ndCBmaW5kIHRoYXQgcGFnZTwvZGl2PjxkaXYgY2xhc3M9ImNtLXJlc3VsdC1zdWJ0aXRsZSI+QnV0IHdlIHN0aWxsIGhhdmUgbG90cyBmb3IgeW91IHRvIGRpc2NvdmVyIH48L2Rpdj48ZGl2IGNsYXNzPSJjbS1yZXN1bHQtZXh0cmEiPjxhIGhyZWY9Ii8iIGNsYXNzPSJidXR0b24tcHJpbWFyeSI+YmFjayB0byBob21lcGFnZTwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0PndpbmRvdy5faGVhZGVyX2xvY2FsZV8gPSB7ImNhbm5vdF9maW5kX3BhZ2VfcmVtaW5kZXIiOiJTb3JyeSwgd2UgY2FuJ3QgZmluZCB0aGF0IHBhZ2UiLCJjYW5ub3RfZmluZF9wYWdlX2RlYyI6IkJ1dCB3ZSBzdGlsbCBoYXZlIGxvdHMgZm9yIHlvdSB0byBkaXNjb3ZlciB+IiwiYmFja1RvSG9tZSI6ImJhY2sgdG8gaG9tZXBhZ2UifTwvc2NyaXB0PjxkaXY+PCEtLSB0ZXN0IDAuMC40IC0tPjwvZGl2PjwhLS1nYmYgYmxvY2sgc3RhcnQgLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAuc2l0ZS1mb290ZXIgewogICAgICAgIGNsZWFyOiBib3RoOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7CiAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkbCB7CiAgICAgICAgcGFkZGluZzogMCAwIDI1cHggMAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkdCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkZCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAwCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIGRkIGEgewogICAgICAgIGNvbG9yOiAjOTk5CiAgICB9CgogICAgLnNpdGUtZm9vdGVyIGRkIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjb2xvcjogI2Y5MAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2Ytc2l0ZUludHJvIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zaXRlSW50cm8gZGwgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHgKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLU11bHRpTGFuZ3VhZ2VTaXRlIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsIHsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAwCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgewogICAgICAgIHBhZGRpbmc6IDEwcHggMCA0MHB4OwogICAgICAgIGZsb2F0OiBsZWZ0CiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgYSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAzMHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTRjNzM5OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGE6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgbGVmdDogNnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjFweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvL2FlMDEuYWxpY2RuLmNvbS9rZi9IOTA3NzU3ZmRhZDE4NGUzMWExYjU4YmQ2NTA3NjY2ZGVvLnBuZyk7CiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZQogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGEuaXBob25lLWxpbmsgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGMKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLWRvd25sb2FkLWFwcCBhLmlwaG9uZS1saW5rOmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8vYWUwMS5hbGljZG4uY29tL2tmL0g2ZGVhNTJhN2MwZGY0YmQ0ODQ2Y2VjNmFkZDAwNjBhY00ucG5nKTsKICAgICAgICBsZWZ0OiA3cHgKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLWFsaWJhYmFHcm91cCB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgd2lkdGg6IDUwJQogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtYWxpYmFiYUdyb3VwIGRsIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuY2xlYXJmaXg6YWZ0ZXIgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgZm9udC1zaXplOiAwOwogICAgICAgIGNvbnRlbnQ6ICJcMDAyMCI7CiAgICAgICAgY2xlYXI6IGJvdGgKICAgIH0KICAgIC5zaXRlLWZvb3RlciAuY2xlYXJmaXggeyB6b29tOjE7fQoKICAgIC5mb290ZXItY29weXdyaXRlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiA4cHggMAogICAgfQoKICAgIC5mb290ZXItY29weXdyaXRlIC5jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IC42OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgfQoKICAgIC5mb290ZXItY29weXdyaXRlIGEgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIG1hcmdpbjogMCAycHgKICAgIH0KCiAgICAuZm9vdGVyLWNvcHl3cml0ZSBpbWd7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIH0KCiAgICBAbWVkaWEobWF4LXdpZHRoOjEwMTlweCkgewoKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNpdGVJbnRybywKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNpdGVJbnRybywKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNlb0tleXdvcmQsCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgewogICAgICAgICAgICB3aWR0aDogMTAwJQogICAgICAgIH0KCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsLAogICAgICAgIC5zaXRlLWZvb3RlciAuc2Ytc2l0ZUludHJvIGRsIHsKICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMAogICAgICAgIH0KCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1hbGliYWJhR3JvdXAgZGwsCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsIHsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDI1cHgKICAgICAgICB9CiAgICB9Cjwvc3R5bGU+CgoKCgo8ZGl2IGNsYXNzPSJzaXRlLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY2xlYXJmaXgiPgogICAgICAgIDxkaXYgY2xhc3M9InNmLWFsaWV4cHJlc3NJbmZvIGNsZWFyZml4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Ytc2l0ZUludHJvIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICA8ZHQ+SGVscDwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPjxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS9rcl9oZWxwY2VudGVyLmh0bSI+Q3VzdG9tZXIgU2VydmljZTwvYT4sCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vcmVwb3J0LmFsaWV4cHJlc3MuY29tIj5EaXNwdXRlcyAmYW1wOyBSZXBvcnRzPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS92OFlyOGY2MjlELmh0bSIgcmVmPSJub2ZvbGxvdyI+QnV5ZXIgUHJvdGVjdGlvbjwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXBwLmFsaWJhYmFncm91cC5jb20iIHJlZj0ibm9mb2xsb3ciPlJlcG9ydCBJUFIgaW5mcmluZ2VtZW50PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNmLU11bHRpTGFuZ3VhZ2VTaXRlIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICA8ZHQ+QWxpRXhwcmVzcyBNdWx0aS1MYW5ndWFnZSBTaXRlczwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3J1LmFsaWV4cHJlc3MuY29tIj5SdXNzaWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vcHQuYWxpZXhwcmVzcy5jb20iPlBvcnR1Z3Vlc2U8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcy5hbGlleHByZXNzLmNvbSI+U3BhbmlzaDwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2ZyLmFsaWV4cHJlc3MuY29tIj5GcmVuY2g8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9kZS5hbGlleHByZXNzLmNvbSI+R2VybWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vaXQuYWxpZXhwcmVzcy5jb20iPkl0YWxpYW48L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9ubC5hbGlleHByZXNzLmNvbSI+RHV0Y2g8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy90ci5hbGlleHByZXNzLmNvbSI+VHVya2lzaDwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2phLmFsaWV4cHJlc3MuY29tIj5KYXBhbmVzZTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2tvLmFsaWV4cHJlc3MuY29tIj5Lb3JlYW48L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy90aC5hbGlleHByZXNzLmNvbSI+VGhhaTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3ZpLmFsaWV4cHJlc3MuY29tIj5WaWV0bmFtZXNlPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vYXIuYWxpZXhwcmVzcy5jb20iPkFyYWJpYzwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2hlLmFsaWV4cHJlc3MuY29tIj5IZWJyZXc8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9wbC5hbGlleHByZXNzLmNvbSI+UG9saXNoPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZi1zZW9LZXl3b3JkIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PkJyb3dzZSBieSBDYXRlZ29yeTwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vcG9wdWxhci5odG1sIj5BbGwgUG9wdWxhcjwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vd2hvbGVzYWxlLmh0bWwiPlByb2R1Y3Q8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3Byb21vdGlvbi5odG1sIj5Qcm9tb3Rpb248L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3ByaWNlLmh0bWwiPkxvdyBQcmljZTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vY2hlYXAuaHRtbCI+R3JlYXQgVmFsdWU8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3Jldmlld3MuaHRtbCI+UmV2aWV3czwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9zYWxlLmFsaWV4cHJlc3MuY29tL2Jsb2cuaHRtIj5CbG9nPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3NlbGwuYWxpZXhwcmVzcy5jb20vNERZVEZzU2tWMC5odG0iPlNlbGxlciBQb3J0YWw8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2FsZS5hbGlleHByZXNzLmNvbS9CbGFja0ZyaWRheS5odG0iPkJMQUNLIEZSSURBWTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuYWxpZXhwcmVzcy5jb20vYXNzaXN0YW50P2lzZGw9eSZhZmZfc2hvcnRfa2V5PV9iWG1FRlBNJmFmPWhvbWUmYWZmX3BsYXRmcm9tPXRydWUiPkFsaUV4cHJlc3MgQXNzaXN0YW50PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNmLWFsaWJhYmFHcm91cCBjb2wtbGctMzAgY29sLW1kLTMwIGNvbC1zbS02MCI+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD5BbGliYWJhIEdyb3VwPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmFncm91cC5jb20vZW4vZ2xvYmFsL2hvbWUiIHJlZj0ibm9mb2xsb3ciPkFsaWJhYmEgR3JvdXAgV2Vic2l0ZTwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tLyIgcmVmPSJub2ZvbGxvdyI+QWxpRXhwcmVzczwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYWxpbWFtYS5jb20vIiByZWY9Im5vZm9sbG93Ij5BbGltYW1hPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pbnRsLmFsaXBheS5jb20vaW5kZXguaHRtIiByZWY9Im5vZm9sbG93Ij5BbGlwYXk8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmZsaWdneS5jb20vIiByZWY9Im5vZm9sbG93Ij5GbGlnZ3k8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20iIHJlZj0ibm9mb2xsb3ciPkFsaWJhYmEgQ2xvdWQ8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmEuY29tLyIgcmVmPSJub2ZvbGxvdyI+QWxpYmFiYSBJbnRlcm5hdGlvbmFsPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2FsaXFpbi50bWFsbC5jb20vIiByZWY9Im5vZm9sbG93Ij5BbGlUZWxlY29tPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5kaW5ndGFsay5jb20vIiByZWY9Im5vZm9sbG93Ij5EaW5nVGFsazwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qdS50YW9iYW8uY29tLyIgcmVmPSJub2ZvbGxvdyI+SnVodWFzdWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy50YW9iYW8uY29tLyIgcmVmPSJub2ZvbGxvdyI+VGFvYmFvIE1hcmtldHBsYWNlPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy50bWFsbC5jb20vIiByZWY9Im5vZm9sbG93Ij5UbWFsbDwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd29ybGQudGFvYmFvLmNvbS8iIHJlZj0ibm9mb2xsb3ciPlRhb2JhbyBHbG9iYWw8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaW9zLmNuLyIgcmVmPSJub2ZvbGxvdyI+QWxpT1M8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LjE2ODguY29tLyIgcmVmPSJub2ZvbGxvdyI+MTY4ODwvYT48L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNmLWRvd25sb2FkLWFwcCI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJhbmRyb2lkLWxpbmsiCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9Y29tLmFsaWJhYmEuYWxpZXhwcmVzc2hkIgogICAgICAgICAgICAgICAgcmVmPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgIEdvb2dsZSBQbGF5CiAgICAgICAgICAgIDwvYT4gCiAgICAgICAgICAgIDxhIGNsYXNzPSJpcGhvbmUtbGluayIKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vaXR1bmVzLmFwcGxlLmNvbS91cy9hcHAvYWxpZXhwcmVzcy9pZDQzNjY3MjAyOSIKICAgICAgICAgICAgICAgIHJlZj0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICBBcHAgU3RvcmUKICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKCgogICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvcHl3cml0ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pcHAuYWxpYmFiYWdyb3VwLmNvbSIgcmVmPSJub2ZvbGxvdyI+SW50ZWxsZWN0dWFsIFByb3BlcnR5IFByb3RlY3Rpb248L2E+IC0KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jYW1wYWlnbi5hbGlleHByZXNzLmNvbS93b3cvZ2NwL2FwcC1yZWRpcmVjdC10ZXJtcy9pbmRleCIgcmVmPSJub2ZvbGxvdyI+UHJpdmFjeSBQb2xpY3k8L2E+IC0gCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmFsaWV4cHJlc3MuY29tL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT4gLSAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9ydWxlLmFsaWJhYmEuY29tL3J1bGUvZGV0YWlsLzIwNDEuaHRtIiByZWY9Im5vZm9sbG93Ij5UZXJtcyBvZiBVc2U8L2E+IC0gCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2FsZS5hbGlleHByZXNzLmNvbS9fX3BjL1Fub0xGQlZmcVkuaHRtIiByZWY9Im5vZm9sbG93Ij5JbmZvcm1hdGlvbiBmb3IgRVUgY29uc3VtZXJzPC9hPiAtIAogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3Rlcm1zLmFsaWNkbi5jb20vbGVnYWwtYWdyZWVtZW50L3Rlcm1zL3N1aXRfYnUxX2FsaWV4cHJlc3Mvc3VpdF9idTFfYWxpZXhwcmVzczIwMjEwOTI5MTg1Nl8zNTk0MC5odG1sIiByZWY9Im5vZm9sbG93Ij5UcmFuc2FjdGlvbiBTZXJ2aWNlcyBBZ3JlZW1lbnQgZm9yIEVVIGNvbnN1bWVyczwvYT4gLSAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9ydWxlLmFsaWJhYmEuY29tL3J1bGUvZGV0YWlsLzUwMzguaHRtIiByZWY9Im5vZm9sbG93Ij5Vc2VyIEluZm9ybWF0aW9uIExlZ2FsIEVucXVpcnkgR3VpZGU8L2E+IAogICAgICAgICAgICDCqe+4jzIwMTAtMjAyMiBBbGlFeHByZXNzLmNvbS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lkaW5mby56amFtci56ai5nb3YuY24vL2JzY3guZG8/c3BtPTUyNjEuMTEzMzM1NTUuMDA2LjQuNmZkNDJmZTBMcmxZZXUmbWV0aG9kPWx6eHgmaWQ9MzMwMTA4MzMwMTA4MDAwMDAyMjE2OSIgcmVmPSJub2ZvbGxvdyI+PGltZyBzdHlsZT0id2lkdGg6MjJweDsiIHNyYz0iaHR0cHM6Ly9hZTAxLmFsaWNkbi5jb20va2YvSGZmZjUyY2Y3MWY3ODRkOTlhZDkzYzczYTMzNGU3ZTM3YS82NXg3MC5naWYiIC8+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JlaWFuLm1paXQuZ292LmNuLyI+IOWinuWAvOeUteS/oeS4muWKoee7j+iQpeiuuOWPr+ivgSDmtZlCMi0yMDEyMDA5MS04PC9hPiAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5iZWlhbi5nb3YuY24vcG9ydGFsL3JlZ2lzdGVyU3lzdGVtSW5mbz9zcG09YTI2MGsuZGFjdWdlbmVyYWwuaG9tZTIwMTlmb290ZXIuMzIuNjYzMzQzNmM4aDEwOGUmcmVjb3JkY29kZT0zMzAxMDgwMjAwMjI0OCIgcmVmPSJub2ZvbGxvdyI+PGltZyBzcmM9Ii8vYWUwMS5hbGljZG4uY29tL2tmL0gxMDczMTNjMTQ1YTI0ZWVjOTQyODdjMTlmZDJhYTVjMGUvMjB4MjAucG5nIiAvPiDmtZnlhaznvZHlronlpIcgMzMwMTA4MDIwMDIyNDjlj7c8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKCgoKCgo8c2NyaXB0PgogICAgLyogPCFbQ0RBVEFbICovCiAgdHJ5ewogICAgKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZixzZWFyY2ggPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLHJlZ3gxID0gL2lzZGw9eS8scmVneDQgPSAvYWZmX3Nob3J0X2tleT0vOyAgCiAgICAgICAgaWYgKCFyZWd4MS50ZXN0KHNlYXJjaCkgJiYgIXJlZ3g0LnRlc3Qoc2VhcmNoKSkgcmV0dXJuOwogICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKICAgICAgICBpbWcub25sb2FkPWZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGltZz1udWxsOwogICAgICAgIH07CiAgICAgICAgaW1nLnNyYz0iLy9zLmNsaWNrLmFsaWV4cHJlc3MuY29tL2RpcmVjdF9sYW5kaW5nLmh0bSIrIHNlYXJjaCArICImdmVyc2lvbj0xLjEiOwogIH0pKCk7CiAgfWNhdGNoKGUpewogIH0KLyogXV0+ICovCjwvc2NyaXB0PgoKCjxzY3JpcHQ+CiAgICBpZiAoIXdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4pIHsKICAgICAgICB3aW5kb3cucmVjZW50bHl2aWV3ZWRpMThuID0ge307CiAgICB9CgogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi5yZWNlbnRseXZpZXdlZENvbnRlbnQgPSAiUmVjZW50bHkgVmlld2VkIjsKICAgIHdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4udmlld01vcmVBY3Rpb24gPSAiVmlldyBNb3JlIjsKICAgIHdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4ubm90aGluZ3ZpZXdlZENvbnRlbnQgPSAiUmVjZW50bHkgVmlld2VkIFByb2R1Y3RzIGlzIGEgZnVuY3Rpb24gd2hpY2ggaGVscHMgeW91IGtlZXAgdHJhY2sgb2YgeW91ciByZWNlbnQgdmlld2luZyBoaXN0b3J5LiI7CiAgICB3aW5kb3cucmVjZW50bHl2aWV3ZWRpMThuLnNob3Bub3dBY3Rpb24gPSAiU2hvcCBOb3ciOwogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi50dXJub2ZmY29udGVudCA9ICJSZWNlbnRseSBWaWV3ZWQgUHJvZHVjdHMgaGFzIGJlZW4gdHVybmVkIG9mZi4iOwogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi50dW5vbkFjdGlvbiA9ICJDbGljayBoZXJlIHRvIHR1cm4gaXQgYmFjayBvbi4iOwogICAgCiAgICBpZiAoIXdpbmRvdy5hZXBsdXNpMThuKSB7CiAgICAgICAgd2luZG93LmFlcGx1c2kxOG4gPSB7fTsKICAgIH0KCiAgICB3aW5kb3cuYWVwbHVzaTE4bi5hZGRpdGlvbmFsVGV4dENvbnRlbnQgPSAn0K3RgtC+0YIg0YLQvtCy0LDRgCDQv9C+0YfRgtCwINC/0YDQuNCy0LXQt9GR0YIg0LTQvtC80L7QuSA8c3Ryb25nPtCx0LXRgdC/0LvQsNGC0L3Qvjwvc3Ryb25nPiDRgSDQtNC+0YHRgtCw0LLQutC+0LkgQWxpRXhwcmVzcyBTdGFuZGFyZCA8c3BhbiBzdHlsZT0iY29sb3I6ICM5NDk0OTQiID4j0YHQuNC00LjQvNC00L7QvNCwPC9zcGFuPic7Cjwvc2NyaXB0Pgo8IS0tZ2JmIGJsb2NrIGVuZCAtLT48L2JvZHk+PC9odG1sPg=="