Advertisement
therealinsight

SSOS Leap v0.1 Installer

Jun 23rd, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 35.17 KB | None | 0 0
  1. shell.run("cd /")
  2. local bundle = [[{
  3.   [ "/sys/copy" ] = "CmxvY2FsIHRBcmdzID0geyAuLi4gfQppZiAjdEFyZ3MgPCAyIHRoZW4KCXByaW50KCAiVXNhZ2U6IGNwIDxzb3VyY2U+IDxkZXN0aW5hdGlvbj4iICkKCXJldHVybgplbmQKCmxvY2FsIHNTb3VyY2UgPSBzaGVsbC5yZXNvbHZlKCB0QXJnc1sxXSApCmxvY2FsIHNEZXN0ID0gc2hlbGwucmVzb2x2ZSggdEFyZ3NbMl0gKQpsb2NhbCB0RmlsZXMgPSBmcy5maW5kKCBzU291cmNlICkKaWYgZnMuZ2V0RGlyKHNTb3VyY2UpID09ICIvcm9tIiBvciBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9yb20vcHJvZ3JhbXMiIG9yIGZzLmdldERpcihzU291cmNlKSA9PSAiL3JvbS9wcm9ncmFtcy9hZHZhbmNlZCIgb3IgZnMuZ2V0RGlyKHNTb3VyY2UpID09ICIvcm9tL3Byb2dyYW1zL2NvbW1hbmQiIG9yIGZzLmdldERpcihzU291cmNlKSA9PSAiL3JvbS9wcm9ncmFtcy9odHRwIiBvciBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9yb20vcHJvZ3JhbXMvZnVuIiBvciBvciBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9yb20vcHJvZ3JhbXMvcG9ja2V0IiBvciBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9yb20vcHJvZ3JhbXMvcmVkbmV0IiBvciBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9yb20vcHJvZ3JhbXMvdHVydGxlIiBvciBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9yb20vYXBpcy8iIG9yIGZzLmdldERpcihzU291cmNlKSA9PSAiL3JvbS9hcGlzL2NvbW1hbmQiIG9yIGZzLmdldERpcihzU291cmNlKSA9PSAiL3JvbS9hcGlzL3BvY2tldCIgb3IgZnMuZ2V0RGlyKHNTb3VyY2UpID09ICIvcm9tL2FwaXMvdHVydGxlIiB0aGVuCglwcmludEVycm9yKCJDYW5ub3QgY29weSBDcmFmdE9TIGZpbGVzLiBXb3VsZCBpbnRyb2R1Y2UgYSBzZWN1cml0eSByaXNrLiIpCmVuZAppZiBmcy5nZXREaXIoc1NvdXJjZSkgPT0gIi9zeXMiIG9yIGZzLmdldE5hbWUoc1NvdXJjZSkgPT0gInN0YXJ0dXAiIHRoZW4KCXByaW50RXJyb3IoIkNhbm5vdCBjb3B5IFNTT1MgZmlsZXMuIFdvdWxkIGludHJvZHVjZSBhIHNlY3VyaXR5IHJpc2suIikKZW5kCmlmICN0RmlsZXMgPiAwIHRoZW4KICAgIGZvciBuLHNGaWxlIGluIGlwYWlycyggdEZpbGVzICkgZG8KICAgICAgICBpZiBmcy5pc0Rpciggc0Rlc3QgKSB0aGVuCiAgICAgICAgICAgIGZzLmNvcHkoIHNGaWxlLCBmcy5jb21iaW5lKCBzRGVzdCwgZnMuZ2V0TmFtZShzRmlsZSkgKSApCiAgICAgICAgZWxzZWlmICN0RmlsZXMgPT0gMSB0aGVuCiAgICAgICAgICAgIGZzLmNvcHkoIHNGaWxlLCBzRGVzdCApCiAgICAgICAgZWxzZQogICAgICAgICAgICBwcmludEVycm9yKCAiQ2Fubm90IG92ZXJ3cml0ZSBmaWxlIG11bHRpcGxlIHRpbWVzIiApCiAgICAgICAgICAgIHJldHVybgogICAgICAgIGVuZAogICAgZW5kCmVsc2UKICAgIHByaW50RXJyb3IoICJObyBtYXRjaGluZyBmaWxlcyIgKQplbmQ=",
  4.   [ "/sys/about" ] = "bG9jYWwgY29tcGluZiA9IGZzLm9wZW4oIi9zeXMvY29tcGluZiIsJ3InKQp3cml0ZSgiXG5TZWN1cmUiKQp3cml0ZSgiXG5TZXJ2ZXIiKQp3cml0ZSgiXG5PcGVyYXRpbmciKQp3cml0ZSgiXG5TeXN0ZW0iKQp3cml0ZSgiXG4iKQp3cml0ZSgiXG5TU09TIExlYXAgKHYwLjEpIikKbG9jYWwgYSA9IGNvbXBpbmYucmVhZExpbmUoKQpsb2NhbCBiID0gb3MuZ2V0Q29tcHV0ZXJJRCgpCndyaXRlKCJcblJ1bm5pbmcgb24gIiAuLiBhIC4uIiBjb21wdXRlciAjIiAuLiBiKQp3cml0ZSgiXG4iKQpjb21waW5mLmNsb3NlKCk=",
  5.   [ "/sys/list" ] = "CmxvY2FsIHRBcmdzID0geyAuLi4gfQoKLS0gR2V0IGFsbCB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeQpsb2NhbCBzRGlyID0gc2hlbGwuZGlyKCkKaWYgdEFyZ3NbMV0gfj0gbmlsIHRoZW4KCXNEaXIgPSBzaGVsbC5yZXNvbHZlKCB0QXJnc1sxXSApCmVuZAoKLS0gU29ydCBpbnRvIGRpcnMvZmlsZXMsIGFuZCBjYWxjdWxhdGUgY29sdW1uIGNvdW50CmxvY2FsIHRBbGwgPSBmcy5saXN0KCBzRGlyICkKbG9jYWwgdEZpbGVzID0ge30KbG9jYWwgdERpcnMgPSB7fQoKbG9jYWwgYlNob3dIaWRkZW4gPSBzZXR0aW5ncy5nZXQoICJsaXN0LnNob3dfaGlkZGVuIiApCmZvciBuLCBzSXRlbSBpbiBwYWlycyggdEFsbCApIGRvCglpZiBiU2hvd0hpZGRlbiBvciBzdHJpbmcuc3ViKCBzSXRlbSwgMSwgMSApIH49ICIuIiB0aGVuCgkJbG9jYWwgc1BhdGggPSBmcy5jb21iaW5lKCBzRGlyLCBzSXRlbSApCgkJaWYgZnMuaXNEaXIoIHNQYXRoICkgdGhlbgoJCQl0YWJsZS5pbnNlcnQoIHREaXJzLCBzSXRlbSApCgkJZWxzZQoJCQl0YWJsZS5pbnNlcnQoIHRGaWxlcywgc0l0ZW0gKQoJCWVuZAoJZW5kCmVuZAp0YWJsZS5zb3J0KCB0RGlycyApCnRhYmxlLnNvcnQoIHRGaWxlcyApCgppZiB0ZXJtLmlzQ29sb3VyKCkgdGhlbgoJdGV4dHV0aWxzLnBhZ2VkVGFidWxhdGUoIGNvbG9ycy5ncmVlbiwgdERpcnMsIGNvbG9ycy53aGl0ZSwgdEZpbGVzICkKZWxzZQoJdGV4dHV0aWxzLnBhZ2VkVGFidWxhdGUoIHREaXJzLCB0RmlsZXMgKQplbmQ=",
  6.   [ "/sys/io" ] = "LS0gRGVmaW5pdGlvbiBmb3IgdGhlIElPIEFQSQoKbG9jYWwgZ19kZWZhdWx0SW5wdXQgPSB7CgliRmlsZUhhbmRsZSA9IHRydWUsCgliQ2xvc2VkID0gZmFsc2UsCgljbG9zZSA9IGZ1bmN0aW9uKCBzZWxmICkKCWVuZCwKCXJlYWQgPSBmdW5jdGlvbiggc2VsZiwgX3NGb3JtYXQgKQoJCWlmIF9zRm9ybWF0IGFuZCBfc0Zvcm1hdCB+PSAiKmwiIHRoZW4KCQkJZXJyb3IoICJVbnN1cHBvcnRlZCBmb3JtYXQiICkKCQllbmQKCQlyZXR1cm4gX0cucmVhZCgpCgllbmQsCglsaW5lcyA9IGZ1bmN0aW9uKCBzZWxmICkKCQlyZXR1cm4gZnVuY3Rpb24oKQoJCQlyZXR1cm4gX0cucmVhZCgpCgkJZW5kCgllbmQsCn0KCmxvY2FsIGdfZGVmYXVsdE91dHB1dCA9IHsKCWJGaWxlSGFuZGxlID0gdHJ1ZSwKCWJDbG9zZWQgPSBmYWxzZSwKCWNsb3NlID0gZnVuY3Rpb24oIHNlbGYgKQoJZW5kLAoJd3JpdGUgPSBmdW5jdGlvbiggc2VsZiwgX3NUZXh0ICkKCQlfRy53cml0ZSggX3NUZXh0ICkKCWVuZCwKCWZsdXNoID0gZnVuY3Rpb24oIHNlbGYgKQoJZW5kLAp9Cgpsb2NhbCBnX2N1cnJlbnRJbnB1dCA9IGdfZGVmYXVsdElucHV0CmxvY2FsIGdfY3VycmVudE91dHB1dCA9IGdfZGVmYXVsdE91dHB1dAoKZnVuY3Rpb24gY2xvc2UoIF9maWxlICkKCShfZmlsZSBvciBnX2N1cnJlbnRPdXRwdXQpOmNsb3NlKCkKZW5kCgpmdW5jdGlvbiBmbHVzaCgpCglnX2N1cnJlbnRPdXRwdXQ6Zmx1c2goKQplbmQKCmZ1bmN0aW9uIGlucHV0KCBfYXJnICkKCWlmIF9HLnR5cGUoIF9hcmcgKSA9PSAic3RyaW5nIiB0aGVuCgkJZ19jdXJyZW50SW5wdXQgPSBvcGVuKCBfYXJnLCAiciIgKQoJZWxzZWlmIF9HLnR5cGUoIF9hcmcgKSA9PSAidGFibGUiIHRoZW4KCQlnX2N1cnJlbnRJbnB1dCA9IF9hcmcKCWVsc2VpZiBfRy50eXBlKCBfYXJnICkgPT0gIm5pbCIgdGhlbgoJCXJldHVybiBnX2N1cnJlbnRJbnB1dAoJZWxzZQoJCWVycm9yKCAiRXhwZWN0ZWQgZmlsZSBuYW1lIG9yIGZpbGUgaGFuZGxlIiApCgllbmQKZW5kCgpmdW5jdGlvbiBsaW5lcyggX3NGaWxlTmFtZSApCglpZiBfc0ZpbGVOYW1lIHRoZW4KCQlyZXR1cm4gb3BlbiggX3NGaWxlTmFtZSwgInIiICk6bGluZXMoKQoJZWxzZQoJCXJldHVybiBnX2N1cnJlbnRJbnB1dDpsaW5lcygpCgllbmQKZW5kCgpmdW5jdGlvbiBvcGVuKCBfc1BhdGgsIF9zTW9kZSApCglsb2NhbCBzTW9kZSA9IF9zTW9kZSBvciAiciIKCWxvY2FsIGZpbGUgPSBmcy5vcGVuKCBfc1BhdGgsIHNNb2RlICkKCWlmIG5vdCBmaWxlIHRoZW4KCQlyZXR1cm4gbmlsCgllbmQKCQoJaWYgc01vZGUgPT0gInIidGhlbgoJCXJldHVybiB7CgkJCWJGaWxlSGFuZGxlID0gdHJ1ZSwKCQkJYkNsb3NlZCA9IGZhbHNlLAkJCQkKCQkJY2xvc2UgPSBmdW5jdGlvbiggc2VsZiApCgkJCQlmaWxlLmNsb3NlKCkKCQkJCXNlbGYuYkNsb3NlZCA9IHRydWUKCQkJZW5kLAoJCQlyZWFkID0gZnVuY3Rpb24oIHNlbGYsIF9zRm9ybWF0ICkKCQkJCWxvY2FsIHNGb3JtYXQgPSBfc0Zvcm1hdCBvciAiKmwiCgkJCQlpZiBzRm9ybWF0ID09ICIqbCIgdGhlbgoJCQkJCXJldHVybiBmaWxlLnJlYWRMaW5lKCkKCQkJCWVsc2VpZiBzRm9ybWF0ID09ICIqYSIgdGhlbgoJCQkJCXJldHVybiBmaWxlLnJlYWRBbGwoKQoJCQkJZWxzZQoJCQkJCWVycm9yKCAiVW5zdXBwb3J0ZWQgZm9ybWF0IiApCgkJCQllbmQKCQkJCXJldHVybiBuaWwKCQkJZW5kLAoJCQlsaW5lcyA9IGZ1bmN0aW9uKCBzZWxmICkKCQkJCXJldHVybiBmdW5jdGlvbigpCgkJCQkJbG9jYWwgc0xpbmUgPSBmaWxlLnJlYWRMaW5lKCkKCQkJCQlpZiBzTGluZSA9PSBuaWwgdGhlbgoJCQkJCQlmaWxlLmNsb3NlKCkKCQkJCQkJc2VsZi5iQ2xvc2VkID0gdHJ1ZQoJCQkJCWVuZAoJCQkJCXJldHVybiBzTGluZQoJCQkJZW5kCgkJCWVuZCwKCQl9CgllbHNlaWYgc01vZGUgPT0gInciIG9yIHNNb2RlID09ICJhIiB0aGVuCgkJcmV0dXJuIHsKCQkJYkZpbGVIYW5kbGUgPSB0cnVlLAoJCQliQ2xvc2VkID0gZmFsc2UsCQkJCQoJCQljbG9zZSA9IGZ1bmN0aW9uKCBzZWxmICkKCQkJCWZpbGUuY2xvc2UoKQoJCQkJc2VsZi5iQ2xvc2VkID0gdHJ1ZQoJCQllbmQsCgkJCXdyaXRlID0gZnVuY3Rpb24oIHNlbGYsIF9zVGV4dCApCgkJCQlmaWxlLndyaXRlKCBfc1RleHQgKQoJCQllbmQsCgkJCWZsdXNoID0gZnVuY3Rpb24oIHNlbGYgKQoJCQkJZmlsZS5mbHVzaCgpCgkJCWVuZCwKCQl9CgkKCWVsc2VpZiBzTW9kZSA9PSAicmIiIHRoZW4KCQlyZXR1cm4gewoJCQliRmlsZUhhbmRsZSA9IHRydWUsCgkJCWJDbG9zZWQgPSBmYWxzZSwJCQkJCgkJCWNsb3NlID0gZnVuY3Rpb24oIHNlbGYgKQoJCQkJZmlsZS5jbG9zZSgpCgkJCQlzZWxmLmJDbG9zZWQgPSB0cnVlCgkJCWVuZCwKCQkJcmVhZCA9IGZ1bmN0aW9uKCBzZWxmICkKCQkJCXJldHVybiBmaWxlLnJlYWQoKQoJCQllbmQsCgkJfQoJCQoJZWxzZWlmIHNNb2RlID09ICJ3YiIgb3Igc01vZGUgPT0gImFiIiB0aGVuCgkJcmV0dXJuIHsKCQkJYkZpbGVIYW5kbGUgPSB0cnVlLAoJCQliQ2xvc2VkID0gZmFsc2UsCQkJCQoJCQljbG9zZSA9IGZ1bmN0aW9uKCBzZWxmICkKCQkJCWZpbGUuY2xvc2UoKQoJCQkJc2VsZi5iQ2xvc2VkID0gdHJ1ZQoJCQllbmQsCgkJCXdyaXRlID0gZnVuY3Rpb24oIHNlbGYsIF9udW1iZXIgKQoJCQkJZmlsZS53cml0ZSggX251bWJlciApCgkJCWVuZCwKCQkJZmx1c2ggPSBmdW5jdGlvbiggc2VsZiApCgkJCQlmaWxlLmZsdXNoKCkKCQkJZW5kLAoJCX0KCQoJZWxzZQoJCWZpbGUuY2xvc2UoKQoJCWVycm9yKCAiVW5zdXBwb3J0ZWQgbW9kZSIgKQoJCQoJZW5kCmVuZAoKZnVuY3Rpb24gb3V0cHV0KCBfYXJnICkKCWlmIF9HLnR5cGUoIF9hcmcgKSA9PSAic3RyaW5nIiB0aGVuCgkJZ19jdXJyZW50T3V0cHV0ID0gb3BlbiggX2FyZywgInciICkKCWVsc2VpZiBfRy50eXBlKCBfYXJnICkgPT0gInRhYmxlIiB0aGVuCgkJZ19jdXJyZW50T3V0cHV0ID0gX2FyZwoJZWxzZWlmIF9HLnR5cGUoIF9hcmcgKSA9PSAibmlsIiB0aGVuCgkJcmV0dXJuIGdfY3VycmVudE91dHB1dAoJZWxzZQoJCWVycm9yKCAiRXhwZWN0ZWQgZmlsZSBuYW1lIG9yIGZpbGUgaGFuZGxlIiApCgllbmQKZW5kCgpmdW5jdGlvbiByZWFkKCAuLi4gKQoJcmV0dXJuIGlucHV0KCk6cmVhZCggLi4uICkKZW5kCgpmdW5jdGlvbiB0eXBlKCBfaGFuZGxlICkKCWlmIF9HLnR5cGUoIF9oYW5kbGUgKSA9PSAidGFibGUiIGFuZCBfaGFuZGxlLmJGaWxlSGFuZGxlID09IHRydWUgdGhlbgoJCWlmIF9oYW5kbGUuYkNsb3NlZCB0aGVuCgkJCXJldHVybiAiY2xvc2VkIGZpbGUiCgkJZWxzZQoJCQlyZXR1cm4gImZpbGUiCgkJZW5kCgllbmQKCXJldHVybiBuaWwKZW5kCgpmdW5jdGlvbiB3cml0ZSggLi4uICkKCXJldHVybiBvdXRwdXQoKTp3cml0ZSggLi4uICkKZW5k",
  7.   [ "/sys/cd" ] = "CmxvY2FsIHRBcmdzID0geyAuLi4gfQppZiAjdEFyZ3MgPCAxIHRoZW4KCXByaW50KCAiVXNhZ2U6IGNkIDxwYXRoPiIgKQoJcmV0dXJuCmVuZAoKbG9jYWwgc05ld0RpciA9IHNoZWxsLnJlc29sdmUoIHRBcmdzWzFdICkKaWYgZnMuaXNEaXIoIHNOZXdEaXIgKSB0aGVuCglzaGVsbC5zZXREaXIoIHNOZXdEaXIgKQplbHNlCiAgCXByaW50KCAiTm90IGEgZGlyZWN0b3J5IiApCiAgCXJldHVybgplbmQ=",
  8.   [ "/sys/avru" ] = "d3JpdGUoIlxuQWR2YW5jZWQgVmlydXMgUmVtb3ZhbCBVdGlsaXR5IikKZm9yIGssdiBpbiBwYWlycyhmcy5saXN0KCIvIikpIGRvCglpZiBub3QgZnMuaXNSZWFkT25seSh2KSB0aGVuCgkJd3JpdGUoIlxuIiAuLiB2KQoJCWlmIGZzLmlzRGlyKHYpIHRoZW4KCQkJZm9yIGEsYiBpbiBwYWlycyhmcy5saXN0KCIvIiAuLiB2KSkgZG8KCQkJCS0tTU9BUiBTQ0FOTklORyEKCQkJCXdyaXRlKCJcbiIgLi4gYikKCQlpZiBub3QgZnMuaXNEaXIodikgYW5kIG5vdCBmcy5nZXREaXIoInN5cyIpIHRoZW4KCQkJLS0tU3RhcnQgU0NBTk5JTkcKCQkJbG9jYWwgYSA9IGlvLm9wZW4odikKCQkJaWYgYS5yZWFkKCJzaGVsbC5zZXRQYXRoKCkiKSB0aGVuCgkJCQkKCQkJZW5kCgkJZW5kIAkKCWVuZAplbmQ=",
  9.   [ "/sys/move" ] = "CmxvY2FsIHRBcmdzID0geyAuLi4gfQppZiAjdEFyZ3MgPCAyIHRoZW4KCXByaW50KCAiVXNhZ2U6IG12IDxzb3VyY2U+IDxkZXN0aW5hdGlvbj4iICkKCXJldHVybgplbmQKCmxvY2FsIHNTb3VyY2UgPSBzaGVsbC5yZXNvbHZlKCB0QXJnc1sxXSApCmlmIGZzLmdldERpcihzU291cmNlKSA9PSAiL3N5cyIgb3IgZnMuZ2V0TmFtZShzU291cmNlKSA9PSAic3RhcnR1cCIgdGhlbgoJcHJpbnRFcnJvcigiQWNjZXNzIERlbmllZCIpCglyZXR1cm4KZW5kCmxvY2FsIHNEZXN0ID0gc2hlbGwucmVzb2x2ZSggdEFyZ3NbMl0gKQpsb2NhbCB0RmlsZXMgPSBmcy5maW5kKCBzU291cmNlICkKaWYgI3RGaWxlcyA+IDAgdGhlbgogICAgZm9yIG4sc0ZpbGUgaW4gaXBhaXJzKCB0RmlsZXMgKSBkbwogICAgICAgIGlmIGZzLmlzRGlyKCBzRGVzdCApIHRoZW4KICAgICAgICAgICAgZnMubW92ZSggc0ZpbGUsIGZzLmNvbWJpbmUoIHNEZXN0LCBmcy5nZXROYW1lKHNGaWxlKSApICkKICAgICAgICBlbHNlaWYgI3RGaWxlcyA9PSAxIHRoZW4KICAgICAgICAgICAgZnMubW92ZSggc0ZpbGUsIHNEZXN0ICkKICAgICAgICBlbHNlCiAgICAgICAgICAgIHByaW50RXJyb3IoICJDYW5ub3Qgb3ZlcndyaXRlIGZpbGUgbXVsdGlwbGUgdGltZXMiICkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgZW5kCiAgICBlbmQKZWxzZQogICAgcHJpbnRFcnJvciggIk5vIG1hdGNoaW5nIGZpbGVzIiApCmVuZA==",
  10.   [ "/sys/reboot" ] = "aWYgdGVybS5pc0NvbG91cigpIHRoZW4KCXRlcm0uc2V0VGV4dENvbG91ciggY29sb3Vycy55ZWxsb3cgKQplbmQKcHJpbnQoICJHb29kYnllIiApCnRlcm0uc2V0VGV4dENvbG91ciggY29sb3Vycy53aGl0ZSApCgpzbGVlcCggMSApCm9zLnJlYm9vdCgp",
  11.   [ "/sys/delete" ] = "CmxvY2FsIHRBcmdzID0geyAuLi4gfQppZiAjdEFyZ3MgPCAxIHRoZW4KCXByaW50KCAiVXNhZ2U6IHJtIDxwYXRoPiIgKQoJcmV0dXJuCmVuZAoKbG9jYWwgc1BhdGggPSBzaGVsbC5yZXNvbHZlKCB0QXJnc1sxXSApCmxvY2FsIHRGaWxlcyA9IGZzLmZpbmQoIHNQYXRoICkKaWYgI3RGaWxlcyA+IDAgdGhlbgoJaWYgZnMuZ2V0RGlyKCBzUGF0aCApID09ICJzeXMiIG9yIGZzLmdldE5hbWUoIHNQYXRoICkgPT0gInN0YXJ0dXAiIG9yIGZzLmdldE5hbWUoIHNQYXRoICkgPT0gInN5cyIgdGhlbgoJCXByaW50KCAiQWNjZXNzIERlbmllZCIgKQoJCXJldHVybgoJZW5kCiAgICBmb3IgbixzRmlsZSBpbiBpcGFpcnMoIHRGaWxlcyApIGRvCiAgICAgICAgZnMuZGVsZXRlKCBzRmlsZSApCiAgICBlbmQKZWxzZQogICAgcHJpbnRFcnJvciggIk5vIG1hdGNoaW5nIGZpbGVzIiApCmVuZA==",
  12.   [ "/sys/shutdown" ] = "aWYgdGVybS5pc0NvbG91cigpIHRoZW4KCXRlcm0uc2V0VGV4dENvbG91ciggY29sb3Vycy55ZWxsb3cgKQplbmQKcHJpbnQoICJHb29kYnllIiApCnRlcm0uc2V0VGV4dENvbG91ciggY29sb3Vycy53aGl0ZSApCgpzbGVlcCggMSApCm9zLnNodXRkb3duKCk=",
  13.   [ "/sys/programs" ] = "CmxvY2FsIGJBbGwgPSBmYWxzZQpsb2NhbCB0QXJncyA9IHsgLi4uIH0KaWYgI3RBcmdzID4gMCBhbmQgdEFyZ3NbMV0gPT0gImFsbCIgdGhlbgoJYkFsbCA9IHRydWUKZW5kCgpsb2NhbCB0UHJvZ3JhbXMgPSBzaGVsbC5wcm9ncmFtcyggYkFsbCApCnRleHR1dGlscy5wYWdlZFRhYnVsYXRlKCB0UHJvZ3JhbXMgKQ==",
  14.   [ "/sys/edit" ] = "LS0gR2V0IGZpbGUgdG8gZWRpdApsb2NhbCB0QXJncyA9IHsgLi4uIH0KaWYgI3RBcmdzID09IDAgdGhlbgoJcHJpbnQoICJVc2FnZTogZWRpdCA8cGF0aD4iICkKCXJldHVybgplbmQKCi0tIEVycm9yIGNoZWNraW5nCmxvY2FsIHNQYXRoID0gc2hlbGwucmVzb2x2ZSggdEFyZ3NbMV0gKQpsb2NhbCBiUmVhZE9ubHkgPSBmcy5pc1JlYWRPbmx5KCBzUGF0aCApCmlmIGZzLmV4aXN0cyggc1BhdGggKSBhbmQgZnMuaXNEaXIoIHNQYXRoICkgdGhlbgoJcHJpbnQoICJDYW5ub3QgZWRpdCBhIGRpcmVjdG9yeS4iICkKCXJldHVybgplbmQKaWYgZnMuZXhpc3RzKCBzUGF0aCApIGFuZCBmcy5nZXREaXIoIHNQYXRoICkgPT0gJ3N5cycgdGhlbgoJcHJpbnQoICJBY2Nlc3MgRGVuaWVkIiApCglyZXR1cm4KZW5kCmlmIGZzLmV4aXN0cyggc1BhdGggKSBhbmQgZnMuZ2V0TmFtZSggc1BhdGggKSA9PSAnc3RhcnR1cCcgdGhlbgoJcHJpbnQoICJBY2Nlc3MgRGVuaWVkIiApCglyZXR1cm4JCmVuZAoKbG9jYWwgeCx5ID0gMSwxCmxvY2FsIHcsaCA9IHRlcm0uZ2V0U2l6ZSgpCmxvY2FsIHNjcm9sbFgsIHNjcm9sbFkgPSAwLDAKCmxvY2FsIHRMaW5lcyA9IHt9CmxvY2FsIGJSdW5uaW5nID0gdHJ1ZQoKLS0gQ29sb3Vycwpsb2NhbCBoaWdobGlnaHRDb2xvdXIsIGtleXdvcmRDb2xvdXIsIGNvbW1lbnRDb2xvdXIsIHRleHRDb2xvdXIsIGJnQ29sb3VyLCBzdHJpbmdDb2xvdXIKaWYgdGVybS5pc0NvbG91cigpIHRoZW4KCWJnQ29sb3VyID0gY29sb3Vycy5ibGFjawoJdGV4dENvbG91ciA9IGNvbG91cnMud2hpdGUKCWhpZ2hsaWdodENvbG91ciA9IGNvbG91cnMueWVsbG93CglrZXl3b3JkQ29sb3VyID0gY29sb3Vycy55ZWxsb3cKCWNvbW1lbnRDb2xvdXIgPSBjb2xvdXJzLmdyZWVuCglzdHJpbmdDb2xvdXIgPSBjb2xvdXJzLnJlZAplbHNlCgliZ0NvbG91ciA9IGNvbG91cnMuYmxhY2sKCXRleHRDb2xvdXIgPSBjb2xvdXJzLndoaXRlCgloaWdobGlnaHRDb2xvdXIgPSBjb2xvdXJzLndoaXRlCglrZXl3b3JkQ29sb3VyID0gY29sb3Vycy53aGl0ZQoJY29tbWVudENvbG91ciA9IGNvbG91cnMud2hpdGUKCXN0cmluZ0NvbG91ciA9IGNvbG91cnMud2hpdGUKZW5kCgotLSBNZW51cwpsb2NhbCBiTWVudSA9IGZhbHNlCmxvY2FsIG5NZW51SXRlbSA9IDEKbG9jYWwgdE1lbnVJdGVtcyA9IHt9CmlmIG5vdCBiUmVhZE9ubHkgdGhlbgogICAgdGFibGUuaW5zZXJ0KCB0TWVudUl0ZW1zLCAiU2F2ZSIgKQplbmQKaWYgc2hlbGwub3BlblRhYiB0aGVuCiAgICB0YWJsZS5pbnNlcnQoIHRNZW51SXRlbXMsICJSdW4iICkKZW5kCmlmIHBlcmlwaGVyYWwuZmluZCggInByaW50ZXIiICkgdGhlbgogICAgdGFibGUuaW5zZXJ0KCB0TWVudUl0ZW1zLCAiUHJpbnQiICkKZW5kCnRhYmxlLmluc2VydCggdE1lbnVJdGVtcywgIkV4aXQiICkKCmxvY2FsIHNTdGF0dXMgPSAiUHJlc3MgQ3RybCB0byBhY2Nlc3MgbWVudSIKaWYgc3RyaW5nLmxlbiggc1N0YXR1cyApID4gdyAtIDUgdGhlbgogICAgc1N0YXR1cyA9ICJQcmVzcyBDdHJsIGZvciBtZW51IgplbmQKCmxvY2FsIGZ1bmN0aW9uIGxvYWQoIF9zUGF0aCApCgl0TGluZXMgPSB7fQoJaWYgZnMuZXhpc3RzKCBfc1BhdGggKSB0aGVuCgkJbG9jYWwgZmlsZSA9IGlvLm9wZW4oIF9zUGF0aCwgInIiICkKCQlsb2NhbCBzTGluZSA9IGZpbGU6cmVhZCgpCgkJd2hpbGUgc0xpbmUgZG8KCQkJdGFibGUuaW5zZXJ0KCB0TGluZXMsIHNMaW5lICkKCQkJc0xpbmUgPSBmaWxlOnJlYWQoKQoJCWVuZAoJCWZpbGU6Y2xvc2UoKQoJZW5kCgkKCWlmICN0TGluZXMgPT0gMCB0aGVuCgkJdGFibGUuaW5zZXJ0KCB0TGluZXMsICIiICkKCWVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIHNhdmUoIF9zUGF0aCApCgktLSBDcmVhdGUgaW50ZXJ2ZW5pbmcgZm9sZGVyCglsb2NhbCBzRGlyID0gX3NQYXRoOnN1YigxLCBfc1BhdGg6bGVuKCkgLSBmcy5nZXROYW1lKF9zUGF0aCk6bGVuKCkgKQoJaWYgbm90IGZzLmV4aXN0cyggc0RpciApIHRoZW4KCQlmcy5tYWtlRGlyKCBzRGlyICkKCWVuZAoKCS0tIFNhdmUKCWxvY2FsIGZpbGUgPSBuaWwKCWxvY2FsIGZ1bmN0aW9uIGlubmVyU2F2ZSgpCgkJZmlsZSA9IGZzLm9wZW4oIF9zUGF0aCwgInciICkKCQlpZiBmaWxlIHRoZW4KCQkJZm9yIG4sIHNMaW5lIGluIGlwYWlycyggdExpbmVzICkgZG8KCQkJCWZpbGUud3JpdGUoIHNMaW5lIC4uICJcbiIgKQoJCQllbmQKCQllbHNlCgkJCWVycm9yKCAiRmFpbGVkIHRvIG9wZW4gIi4uX3NQYXRoICkKCQllbmQKCWVuZAoJCglsb2NhbCBvaywgZXJyID0gcGNhbGwoIGlubmVyU2F2ZSApCglpZiBmaWxlIHRoZW4gCgkJZmlsZS5jbG9zZSgpCgllbmQKCXJldHVybiBvaywgZXJyCmVuZAoKbG9jYWwgdEtleXdvcmRzID0gewoJWyJhbmQiXSA9IHRydWUsCglbImJyZWFrIl0gPSB0cnVlLAoJWyJkbyJdID0gdHJ1ZSwKCVsiZWxzZSJdID0gdHJ1ZSwKCVsiZWxzZWlmIl0gPSB0cnVlLAoJWyJlbmQiXSA9IHRydWUsCglbImZhbHNlIl0gPSB0cnVlLAoJWyJmb3IiXSA9IHRydWUsCglbImZ1bmN0aW9uIl0gPSB0cnVlLAoJWyJpZiJdID0gdHJ1ZSwKCVsiaW4iXSA9IHRydWUsCglbImxvY2FsIl0gPSB0cnVlLAoJWyJuaWwiXSA9IHRydWUsCglbIm5vdCJdID0gdHJ1ZSwKCVsib3IiXSA9IHRydWUsCglbInJlcGVhdCJdID0gdHJ1ZSwKCVsicmV0dXJuIl0gPSB0cnVlLAoJWyJ0aGVuIl0gPSB0cnVlLAoJWyJ0cnVlIl0gPSB0cnVlLAoJWyJ1bnRpbCJdPSB0cnVlLAoJWyJ3aGlsZSJdID0gdHJ1ZSwKfQoKbG9jYWwgZnVuY3Rpb24gdHJ5V3JpdGUoIHNMaW5lLCByZWdleCwgY29sb3VyICkKCWxvY2FsIG1hdGNoID0gc3RyaW5nLm1hdGNoKCBzTGluZSwgcmVnZXggKQoJaWYgbWF0Y2ggdGhlbgoJCWlmIHR5cGUoY29sb3VyKSA9PSAibnVtYmVyIiB0aGVuCgkJCXRlcm0uc2V0VGV4dENvbG91ciggY29sb3VyICkKCQllbHNlCgkJCXRlcm0uc2V0VGV4dENvbG91ciggY29sb3VyKG1hdGNoKSApCgkJZW5kCgkJdGVybS53cml0ZSggbWF0Y2ggKQoJCXRlcm0uc2V0VGV4dENvbG91ciggdGV4dENvbG91ciApCgkJcmV0dXJuIHN0cmluZy5zdWIoIHNMaW5lLCBzdHJpbmcubGVuKG1hdGNoKSArIDEgKQoJZW5kCglyZXR1cm4gbmlsCmVuZAoKbG9jYWwgZnVuY3Rpb24gd3JpdGVIaWdobGlnaHRlZCggc0xpbmUgKQoJd2hpbGUgc3RyaW5nLmxlbihzTGluZSkgPiAwIGRvCQoJCXNMaW5lID0gCgkJCXRyeVdyaXRlKCBzTGluZSwgIl4lLSUtJVslWy4tJV0lXSIsIGNvbW1lbnRDb2xvdXIgKSBvcgoJCQl0cnlXcml0ZSggc0xpbmUsICJeJS0lLS4qIiwgY29tbWVudENvbG91ciApIG9yCgkJCXRyeVdyaXRlKCBzTGluZSwgIl5cIlwiIiwgc3RyaW5nQ29sb3VyICkgb3IKCQkJdHJ5V3JpdGUoIHNMaW5lLCAiXlwiLi1bXlxcXVwiIiwgc3RyaW5nQ29sb3VyICkgb3IKCQkJdHJ5V3JpdGUoIHNMaW5lLCAiXlwnXCciLCBzdHJpbmdDb2xvdXIgKSBvcgoJCQl0cnlXcml0ZSggc0xpbmUsICJeXCcuLVteXFxdXCciLCBzdHJpbmdDb2xvdXIgKSBvcgoJCQl0cnlXcml0ZSggc0xpbmUsICJeJVslWy4tJV0lXSIsIHN0cmluZ0NvbG91ciApIG9yCgkJCXRyeVdyaXRlKCBzTGluZSwgIl5bJXdfXSsiLCBmdW5jdGlvbiggbWF0Y2ggKQoJCQkJaWYgdEtleXdvcmRzWyBtYXRjaCBdIHRoZW4KCQkJCQlyZXR1cm4ga2V5d29yZENvbG91cgoJCQkJZW5kCgkJCQlyZXR1cm4gdGV4dENvbG91cgoJCQllbmQgKSBvcgoJCQl0cnlXcml0ZSggc0xpbmUsICJeW14ld19dIiwgdGV4dENvbG91ciApCgllbmQKZW5kCgpsb2NhbCB0Q29tcGxldGlvbnMKbG9jYWwgbkNvbXBsZXRpb24KCmxvY2FsIHRDb21wbGV0ZUVudiA9IF9FTlYKbG9jYWwgZnVuY3Rpb24gY29tcGxldGUoIHNMaW5lICkKCWlmIHNldHRpbmdzLmdldCggImVkaXQuYXV0b2NvbXBsZXRlIiApIHRoZW4KCSAgICBsb2NhbCBuU3RhcnRQb3MgPSBzdHJpbmcuZmluZCggc0xpbmUsICJbYS16QS1aMC05XyUuXSskIiApCgkgICAgaWYgblN0YXJ0UG9zIHRoZW4KCSAgICAgICAgc0xpbmUgPSBzdHJpbmcuc3ViKCBzTGluZSwgblN0YXJ0UG9zICkKCSAgICBlbmQKCSAgICBpZiAjc0xpbmUgPiAwIHRoZW4KCSAgICAgICAgcmV0dXJuIHRleHR1dGlscy5jb21wbGV0ZSggc0xpbmUsIHRDb21wbGV0ZUVudiApCgkgICAgZW5kCgllbmQKICAgIHJldHVybiBuaWwKZW5kCgpsb2NhbCBmdW5jdGlvbiByZWNvbXBsZXRlKCkKICAgIGxvY2FsIHNMaW5lID0gdExpbmVzW3ldCiAgICBpZiBub3QgYk1lbnUgYW5kIG5vdCBiUmVhZE9ubHkgYW5kIHggPT0gc3RyaW5nLmxlbihzTGluZSkgKyAxIHRoZW4KICAgICAgICB0Q29tcGxldGlvbnMgPSBjb21wbGV0ZSggc0xpbmUgKQogICAgICAgIGlmIHRDb21wbGV0aW9ucyBhbmQgI3RDb21wbGV0aW9ucyA+IDAgdGhlbgogICAgICAgICAgICBuQ29tcGxldGlvbiA9IDEKICAgICAgICBlbHNlCiAgICAgICAgICAgIG5Db21wbGV0aW9uID0gbmlsCiAgICAgICAgZW5kCiAgICBlbHNlCiAgICAgICAgdENvbXBsZXRpb25zID0gbmlsCiAgICAgICAgbkNvbXBsZXRpb24gPSBuaWwKICAgIGVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIHdyaXRlQ29tcGxldGlvbiggc0xpbmUgKQogICAgaWYgbkNvbXBsZXRpb24gdGhlbgogICAgICAgIGxvY2FsIHNDb21wbGV0aW9uID0gdENvbXBsZXRpb25zWyBuQ29tcGxldGlvbiBdCiAgICAgICAgdGVybS5zZXRUZXh0Q29sb3IoIGNvbG91cnMud2hpdGUgKQogICAgICAgIHRlcm0uc2V0QmFja2dyb3VuZENvbG9yKCBjb2xvdXJzLmdyZXkgKQogICAgICAgIHRlcm0ud3JpdGUoIHNDb21wbGV0aW9uICkKICAgICAgICB0ZXJtLnNldFRleHRDb2xvciggdGV4dENvbG91ciApCiAgICAgICAgdGVybS5zZXRCYWNrZ3JvdW5kQ29sb3IoIGJnQ29sb3VyICkKICAgIGVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIHJlZHJhd1RleHQoKQogICAgbG9jYWwgY3Vyc29yWCwgY3Vyc29yWSA9IHgsIHkKCWZvciB5PTEsaC0xIGRvCgkJdGVybS5zZXRDdXJzb3JQb3MoIDEgLSBzY3JvbGxYLCB5ICkKCQl0ZXJtLmNsZWFyTGluZSgpCgoJCWxvY2FsIHNMaW5lID0gdExpbmVzWyB5ICsgc2Nyb2xsWSBdCgkJaWYgc0xpbmUgfj0gbmlsIHRoZW4KCQkJd3JpdGVIaWdobGlnaHRlZCggc0xpbmUgKQogICAgICAgICAgICBpZiBjdXJzb3JZID09IHkgYW5kIGN1cnNvclggPT0gI3NMaW5lICsgMSB0aGVuCiAgICAgICAgICAgICAgICB3cml0ZUNvbXBsZXRpb24oKQogICAgICAgICAgICBlbmQKCQllbmQKCWVuZAoJdGVybS5zZXRDdXJzb3JQb3MoIHggLSBzY3JvbGxYLCB5IC0gc2Nyb2xsWSApCmVuZAoKbG9jYWwgZnVuY3Rpb24gcmVkcmF3TGluZShfblkpCglsb2NhbCBzTGluZSA9IHRMaW5lc1tfblldCglpZiBzTGluZSB0aGVuCiAgICAgICAgdGVybS5zZXRDdXJzb3JQb3MoIDEgLSBzY3JvbGxYLCBfblkgLSBzY3JvbGxZICkKICAgICAgICB0ZXJtLmNsZWFyTGluZSgpCiAgICAgICAgd3JpdGVIaWdobGlnaHRlZCggc0xpbmUgKQogICAgICAgIGlmIF9uWSA9PSB5IGFuZCB4ID09ICNzTGluZSArIDEgdGhlbgogICAgICAgICAgICB3cml0ZUNvbXBsZXRpb24oKQogICAgICAgIGVuZAogICAgICAgIHRlcm0uc2V0Q3Vyc29yUG9zKCB4IC0gc2Nyb2xsWCwgX25ZIC0gc2Nyb2xsWSApCiAgICBlbmQKZW5kCgpsb2NhbCBmdW5jdGlvbiByZWRyYXdNZW51KCkKICAgIC0tIENsZWFyIGxpbmUKICAgIHRlcm0uc2V0Q3Vyc29yUG9zKCAxLCBoICkKCXRlcm0uY2xlYXJMaW5lKCkKCiAgICAtLSBEcmF3IGxpbmUgbnVtYmVycwogICAgdGVybS5zZXRDdXJzb3JQb3MoIHcgLSBzdHJpbmcubGVuKCAiTG4gIi4ueSApICsgMSwgaCApCiAgICB0ZXJtLnNldFRleHRDb2xvdXIoIGhpZ2hsaWdodENvbG91ciApCiAgICB0ZXJtLndyaXRlKCAiTG4gIiApCiAgICB0ZXJtLnNldFRleHRDb2xvdXIoIHRleHRDb2xvdXIgKQogICAgdGVybS53cml0ZSggeSApCgogICAgdGVybS5zZXRDdXJzb3JQb3MoIDEsIGggKQoJaWYgYk1lbnUgdGhlbgogICAgICAgIC0tIERyYXcgbWVudQoJCXRlcm0uc2V0VGV4dENvbG91ciggdGV4dENvbG91ciApCgkJZm9yIG5JdGVtLHNJdGVtIGluIHBhaXJzKCB0TWVudUl0ZW1zICkgZG8KCQkJaWYgbkl0ZW0gPT0gbk1lbnVJdGVtIHRoZW4KCQkJCXRlcm0uc2V0VGV4dENvbG91ciggaGlnaGxpZ2h0Q29sb3VyICkKCQkJCXRlcm0ud3JpdGUoICJbIiApCgkJCQl0ZXJtLnNldFRleHRDb2xvdXIoIHRleHRDb2xvdXIgKQoJCQkJdGVybS53cml0ZSggc0l0ZW0gKQoJCQkJdGVybS5zZXRUZXh0Q29sb3VyKCBoaWdobGlnaHRDb2xvdXIgKQoJCQkJdGVybS53cml0ZSggIl0iICkKICAgICAgICAJCXRlcm0uc2V0VGV4dENvbG91ciggdGV4dENvbG91ciApCgkJCWVsc2UKCQkJCXRlcm0ud3JpdGUoICIgIi4uc0l0ZW0uLiIgIiApCgkJCWVuZAoJCWVuZAogICAgZWxzZQogICAgICAgIC0tIERyYXcgc3RhdHVzCiAgICAgICAgdGVybS5zZXRUZXh0Q29sb3VyKCBoaWdobGlnaHRDb2xvdXIgKQogICAgICAgIHRlcm0ud3JpdGUoIHNTdGF0dXMgKQogICAgICAgIHRlcm0uc2V0VGV4dENvbG91ciggdGV4dENvbG91ciApCiAgICBlbmQKCgktLSBSZXNldCBjdXJzb3IKCXRlcm0uc2V0Q3Vyc29yUG9zKCB4IC0gc2Nyb2xsWCwgeSAtIHNjcm9sbFkgKQplbmQKCmxvY2FsIHRNZW51RnVuY3MgPSB7IAoJU2F2ZSA9IGZ1bmN0aW9uKCkKCQlpZiBiUmVhZE9ubHkgdGhlbgoJCQlzU3RhdHVzID0gIkFjY2VzcyBkZW5pZWQiCgkJZWxzZQoJCQlsb2NhbCBvaywgZXJyID0gc2F2ZSggc1BhdGggKQoJCQlpZiBvayB0aGVuCgkJCQlzU3RhdHVzPSJTYXZlZCB0byAiLi5zUGF0aAoJCQllbHNlCgkJCQlzU3RhdHVzPSJFcnJvciBzYXZpbmcgdG8gIi4uc1BhdGgKCQkJZW5kCgkJZW5kCgkJcmVkcmF3TWVudSgpCgllbmQsCglQcmludCA9IGZ1bmN0aW9uKCkKCQlsb2NhbCBwcmludGVyID0gcGVyaXBoZXJhbC5maW5kKCAicHJpbnRlciIgKQoJCWlmIG5vdCBwcmludGVyIHRoZW4KCQkJc1N0YXR1cyA9ICJObyBwcmludGVyIGF0dGFjaGVkIgoJCQlyZXR1cm4KCQllbmQKCgkJbG9jYWwgblBhZ2UgPSAwCgkJbG9jYWwgc05hbWUgPSBmcy5nZXROYW1lKCBzUGF0aCApCgkJaWYgcHJpbnRlci5nZXRJbmtMZXZlbCgpIDwgMSB0aGVuCgkJCXNTdGF0dXMgPSAiUHJpbnRlciBvdXQgb2YgaW5rIgoJCQlyZXR1cm4KCQllbHNlaWYgcHJpbnRlci5nZXRQYXBlckxldmVsKCkgPCAxIHRoZW4KCQkJc1N0YXR1cyA9ICJQcmludGVyIG91dCBvZiBwYXBlciIKCQkJcmV0dXJuCgkJZW5kCgoJCWxvY2FsIHNjcmVlblRlcm1pbmFsID0gdGVybS5jdXJyZW50KCkKCQlsb2NhbCBwcmludGVyVGVybWluYWwgPSB7CgkJCWdldEN1cnNvclBvcyA9IHByaW50ZXIuZ2V0Q3Vyc29yUG9zLAoJCQlzZXRDdXJzb3JQb3MgPSBwcmludGVyLnNldEN1cnNvclBvcywKCQkJZ2V0U2l6ZSA9IHByaW50ZXIuZ2V0UGFnZVNpemUsCgkJCXdyaXRlID0gcHJpbnRlci53cml0ZSwKCQl9CgkJcHJpbnRlclRlcm1pbmFsLnNjcm9sbCA9IGZ1bmN0aW9uKCkKCQkJaWYgblBhZ2UgPT0gMSB0aGVuCgkJCQlwcmludGVyLnNldFBhZ2VUaXRsZSggc05hbWUuLiIgKHBhZ2UgIi4ublBhZ2UuLiIpIiApCQkJCgkJCWVuZAoJCQkKCQkJd2hpbGUgbm90IHByaW50ZXIubmV3UGFnZSgpCWRvCgkJCQlpZiBwcmludGVyLmdldElua0xldmVsKCkgPCAxIHRoZW4KCQkJCQlzU3RhdHVzID0gIlByaW50ZXIgb3V0IG9mIGluaywgcGxlYXNlIHJlZmlsbCIKCQkJCWVsc2VpZiBwcmludGVyLmdldFBhcGVyTGV2ZWwoKSA8IDEgdGhlbgoJCQkJCXNTdGF0dXMgPSAiUHJpbnRlciBvdXQgb2YgcGFwZXIsIHBsZWFzZSByZWZpbGwiCgkJCQllbHNlCgkJCQkJc1N0YXR1cyA9ICJQcmludGVyIG91dHB1dCB0cmF5IGZ1bGwsIHBsZWFzZSBlbXB0eSIKCQkJCWVuZAoJCgkJCQl0ZXJtLnJlZGlyZWN0KCBzY3JlZW5UZXJtaW5hbCApCgkJCQlyZWRyYXdNZW51KCkKCQkJCXRlcm0ucmVkaXJlY3QoIHByaW50ZXJUZXJtaW5hbCApCgkJCQkKCQkJCWxvY2FsIHRpbWVyID0gb3Muc3RhcnRUaW1lcigwLjUpCgkJCQlzbGVlcCgwLjUpCgkJCWVuZAoKCQkJblBhZ2UgPSBuUGFnZSArIDEKCQkJaWYgblBhZ2UgPT0gMSB0aGVuCgkJCQlwcmludGVyLnNldFBhZ2VUaXRsZSggc05hbWUgKQoJCQllbHNlCgkJCQlwcmludGVyLnNldFBhZ2VUaXRsZSggc05hbWUuLiIgKHBhZ2UgIi4ublBhZ2UuLiIpIiApCgkJCWVuZAoJCWVuZAoJCQoJCWJNZW51ID0gZmFsc2UKCQl0ZXJtLnJlZGlyZWN0KCBwcmludGVyVGVybWluYWwgKQoJCWxvY2FsIG9rLCBlcnJvciA9IHBjYWxsKCBmdW5jdGlvbigpCgkJCXRlcm0uc2Nyb2xsKCkKCQkJZm9yIG4sIHNMaW5lIGluIGlwYWlycyggdExpbmVzICkgZG8KCQkJCXByaW50KCBzTGluZSApCgkJCWVuZAoJCWVuZCApCiAgICAgICAgdGVybS5yZWRpcmVjdCggc2NyZWVuVGVybWluYWwgKQoJCWlmIG5vdCBvayB0aGVuCgkJCXByaW50KCBlcnJvciApCgkJZW5kCgkJCgkJd2hpbGUgbm90IHByaW50ZXIuZW5kUGFnZSgpIGRvCgkJCXNTdGF0dXMgPSAiUHJpbnRlciBvdXRwdXQgdHJheSBmdWxsLCBwbGVhc2UgZW1wdHkiCgkJCXJlZHJhd01lbnUoKQoJCQlzbGVlcCggMC41ICkKCQllbmQKCQliTWVudSA9IHRydWUKCQkJCgkJaWYgblBhZ2UgPiAxIHRoZW4KCQkJc1N0YXR1cyA9ICJQcmludGVkICIuLm5QYWdlLi4iIFBhZ2VzIgoJCWVsc2UKCQkJc1N0YXR1cyA9ICJQcmludGVkIDEgUGFnZSIKCQllbmQKCQlyZWRyYXdNZW51KCkKCWVuZCwKCUV4aXQgPSBmdW5jdGlvbigpCgkJYlJ1bm5pbmcgPSBmYWxzZQoJZW5kLAoJUnVuID0gZnVuY3Rpb24oKQoJICAgIGxvY2FsIHNUZW1wUGF0aCA9ICIvLnRlbXAiCiAgICAgICAgbG9jYWwgb2ssIGVyciA9IHNhdmUoIHNUZW1wUGF0aCApCiAgICAgICAgaWYgb2sgdGhlbgogICAgICAgICAgICBsb2NhbCBuVGFzayA9IHNoZWxsLm9wZW5UYWIoIHNUZW1wUGF0aCApCiAgICAgICAgICAgIGlmIG5UYXNrIHRoZW4KICAgICAgICAgICAgICAgIHNoZWxsLnN3aXRjaFRhYiggblRhc2sgKQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBzU3RhdHVzPSJFcnJvciBzdGFydGluZyBUYXNrIgogICAgICAgICAgICBlbmQKICAgICAgICAgICAgZnMuZGVsZXRlKCBzVGVtcFBhdGggKQogICAgICAgIGVsc2UKICAgICAgICAgICAgc1N0YXR1cz0iRXJyb3Igc2F2aW5nIHRvICIuLnNUZW1wUGF0aAogICAgICAgIGVuZAoJCXJlZHJhd01lbnUoKQogICAgZW5kCn0KCmxvY2FsIGZ1bmN0aW9uIGRvTWVudUl0ZW0oIF9uICkKCXRNZW51RnVuY3NbdE1lbnVJdGVtc1tfbl1dKCkKCWlmIGJNZW51IHRoZW4KCQliTWVudSA9IGZhbHNlCgkJdGVybS5zZXRDdXJzb3JCbGluayggdHJ1ZSApCgllbmQKCXJlZHJhd01lbnUoKQplbmQKCmxvY2FsIGZ1bmN0aW9uIHNldEN1cnNvciggbmV3WCwgbmV3WSApCiAgICBsb2NhbCBvbGRYLCBvbGRZID0geCwgeQogICAgeCwgeSA9IG5ld1gsIG5ld1kKCWxvY2FsIHNjcmVlblggPSB4IC0gc2Nyb2xsWAoJbG9jYWwgc2NyZWVuWSA9IHkgLSBzY3JvbGxZCgkKCWxvY2FsIGJSZWRyYXcgPSBmYWxzZQoJaWYgc2NyZWVuWCA8IDEgdGhlbgoJCXNjcm9sbFggPSB4IC0gMQoJCXNjcmVlblggPSAxCgkJYlJlZHJhdyA9IHRydWUKCWVsc2VpZiBzY3JlZW5YID4gdyB0aGVuCgkJc2Nyb2xsWCA9IHggLSB3CgkJc2NyZWVuWCA9IHcKCQliUmVkcmF3ID0gdHJ1ZQoJZW5kCgkKCWlmIHNjcmVlblkgPCAxIHRoZW4KCQlzY3JvbGxZID0geSAtIDEKCQlzY3JlZW5ZID0gMQoJCWJSZWRyYXcgPSB0cnVlCgllbHNlaWYgc2NyZWVuWSA+IGgtMSB0aGVuCgkJc2Nyb2xsWSA9IHkgLSAoaC0xKQoJCXNjcmVlblkgPSBoLTEKCQliUmVkcmF3ID0gdHJ1ZQoJZW5kCgoJcmVjb21wbGV0ZSgpCglpZiBiUmVkcmF3IHRoZW4KCQlyZWRyYXdUZXh0KCkKCWVsc2VpZiB5IH49IG9sZFkgdGhlbgoJICAgIHJlZHJhd0xpbmUoIG9sZFkgKQoJICAgIHJlZHJhd0xpbmUoIHkgKQoJZWxzZQoJICAgIHJlZHJhd0xpbmUoIHkgKQoJZW5kCgl0ZXJtLnNldEN1cnNvclBvcyggc2NyZWVuWCwgc2NyZWVuWSApCgoJcmVkcmF3TWVudSgpCmVuZAoKLS0gQWN0dWFsIHByb2dyYW0gZnVuY3Rpb25hbGl0eSBiZWdpbnMKbG9hZChzUGF0aCkKCnRlcm0uc2V0QmFja2dyb3VuZENvbG91ciggYmdDb2xvdXIgKQp0ZXJtLmNsZWFyKCkKdGVybS5zZXRDdXJzb3JQb3MoeCx5KQp0ZXJtLnNldEN1cnNvckJsaW5rKCB0cnVlICkKCnJlY29tcGxldGUoKQpyZWRyYXdUZXh0KCkKcmVkcmF3TWVudSgpCgpsb2NhbCBmdW5jdGlvbiBhY2NlcHRDb21wbGV0aW9uKCkKICAgIGlmIG5Db21wbGV0aW9uIHRoZW4KICAgICAgICAtLSBBcHBlbmQgdGhlIGNvbXBsZXRpb24KICAgICAgICBsb2NhbCBzQ29tcGxldGlvbiA9IHRDb21wbGV0aW9uc1sgbkNvbXBsZXRpb24gXQogICAgICAgIHRMaW5lc1t5XSA9IHRMaW5lc1t5XSAuLiBzQ29tcGxldGlvbgogICAgICAgIHNldEN1cnNvciggeCArIHN0cmluZy5sZW4oIHNDb21wbGV0aW9uICksIHkgKQogICAgZW5kCmVuZAoKLS0gSGFuZGxlIGlucHV0CndoaWxlIGJSdW5uaW5nIGRvCglsb2NhbCBzRXZlbnQsIHBhcmFtLCBwYXJhbTIsIHBhcmFtMyA9IG9zLnB1bGxFdmVudCgpCglpZiBzRXZlbnQgPT0gImtleSIgdGhlbgoJICAgIGxvY2FsIG9sZFgsIG9sZFkgPSB4LCB5CgkJaWYgcGFyYW0gPT0ga2V5cy51cCB0aGVuCgkJCS0tIFVwCgkJCWlmIG5vdCBiTWVudSB0aGVuCgkJCSAgICBpZiBuQ29tcGxldGlvbiB0aGVuCgkJCSAgICAgICAgLS0gQ3ljbGUgY29tcGxldGlvbnMKICAgICAgICAgICAgICAgICAgICBuQ29tcGxldGlvbiA9IG5Db21wbGV0aW9uIC0gMQogICAgICAgICAgICAgICAgICAgIGlmIG5Db21wbGV0aW9uIDwgMSB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIG5Db21wbGV0aW9uID0gI3RDb21wbGV0aW9ucwogICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgIHJlZHJhd0xpbmUoeSkKCgkJCQllbHNlaWYgeSA+IDEgdGhlbgoJCQkJCS0tIE1vdmUgY3Vyc29yIHVwCgkJCQkJc2V0Q3Vyc29yKAoJCQkJCSAgICBtYXRoLm1pbiggeCwgc3RyaW5nLmxlbiggdExpbmVzW3kgLSAxXSApICsgMSApLAoJCQkJCSAgICB5IC0gMQoJCQkJCSkKCQkJCWVuZAoJCQllbmQKCgkJZWxzZWlmIHBhcmFtID09IGtleXMuZG93biB0aGVuCgkJCS0tIERvd24KCQkJaWYgbm90IGJNZW51IHRoZW4KCQkJCS0tIE1vdmUgY3Vyc29yIGRvd24KCQkJICAgIGlmIG5Db21wbGV0aW9uIHRoZW4KCQkJICAgICAgICAtLSBDeWNsZSBjb21wbGV0aW9ucwogICAgICAgICAgICAgICAgICAgIG5Db21wbGV0aW9uID0gbkNvbXBsZXRpb24gKyAxCiAgICAgICAgICAgICAgICAgICAgaWYgbkNvbXBsZXRpb24gPiAjdENvbXBsZXRpb25zIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgbkNvbXBsZXRpb24gPSAxCiAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgcmVkcmF3TGluZSh5KQoKCQkJCWVsc2VpZiB5IDwgI3RMaW5lcyB0aGVuCgkJCQkgICAgLS0gTW92ZSBjdXJzb3IgZG93bgoJCQkJCXNldEN1cnNvcigKICAgICAgICAgICAgICAgICAgICAgICAgbWF0aC5taW4oIHgsIHN0cmluZy5sZW4oIHRMaW5lc1t5ICsgMV0gKSArIDEgKSwKICAgICAgICAgICAgICAgICAgICAgICAgeSArIDEKICAgICAgICAgICAgICAgICAgICApCgkJCQllbmQKCQkJZW5kCgoJCWVsc2VpZiBwYXJhbSA9PSBrZXlzLnRhYiB0aGVuCgkJCS0tIFRhYgoJCQlpZiBub3QgYk1lbnUgYW5kIG5vdCBiUmVhZE9ubHkgdGhlbgoJCQkgICAgaWYgbkNvbXBsZXRpb24gYW5kIHggPT0gc3RyaW5nLmxlbih0TGluZXNbeV0pICsgMSB0aGVuCgkJCSAgICAgICAgLS0gQWNjZXB0IGF1dG9jb21wbGV0ZQogICAgICAgICAgICAgICAgICAgIGFjY2VwdENvbXBsZXRpb24oKQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIC0tIEluZGVudCBsaW5lCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgc0xpbmUgPSB0TGluZXNbeV0KICAgICAgICAgICAgICAgICAgICB0TGluZXNbeV0gPSBzdHJpbmcuc3ViKHNMaW5lLDEseC0xKSAuLiAiICAiIC4uIHN0cmluZy5zdWIoc0xpbmUseCkKICAgICAgICAgICAgICAgICAgICBzZXRDdXJzb3IoIHggKyAyLCB5ICkKICAgICAgICAgICAgICAgIGVuZAoJCQllbmQKCgkJZWxzZWlmIHBhcmFtID09IGtleXMucGFnZVVwIHRoZW4KCQkJLS0gUGFnZSBVcAoJCQlpZiBub3QgYk1lbnUgdGhlbgoJCQkJLS0gTW92ZSB1cCBhIHBhZ2UKCQkJCWxvY2FsIG5ld1kKCQkJCWlmIHkgLSAoaCAtIDEpID49IDEgdGhlbgoJCQkJCW5ld1kgPSB5IC0gKGggLSAxKQoJCQkJZWxzZQoJCQkJICAgIG5ld1kgPSAxCgkJCQllbmQKICAgICAgICAgICAgICAgIHNldEN1cnNvcigKCQkJCSAgICBtYXRoLm1pbiggeCwgc3RyaW5nLmxlbiggdExpbmVzW25ld1ldICkgKyAxICksCgkJCQkgICAgbmV3WQoJCQkJKQoJCQllbmQKCgkJZWxzZWlmIHBhcmFtID09IGtleXMucGFnZURvd24gdGhlbgoJCQktLSBQYWdlIERvd24KCQkJaWYgbm90IGJNZW51IHRoZW4KCQkJCS0tIE1vdmUgZG93biBhIHBhZ2UKCQkJCWxvY2FsIG5ld1kKCQkJCWlmIHkgKyAoaCAtIDEpIDw9ICN0TGluZXMgdGhlbgoJCQkJCW5ld1kgPSB5ICsgKGggLSAxKQoJCQkJZWxzZQoJCQkJCW5ld1kgPSAjdExpbmVzCgkJCQllbmQKCQkJCWxvY2FsIG5ld1ggPSBtYXRoLm1pbiggeCwgc3RyaW5nLmxlbiggdExpbmVzW25ld1ldICkgKyAxICkKCQkJCXNldEN1cnNvciggbmV3WCwgbmV3WSApCgkJCWVuZAoKCQllbHNlaWYgcGFyYW0gPT0ga2V5cy5ob21lIHRoZW4KCQkJLS0gSG9tZQoJCQlpZiBub3QgYk1lbnUgdGhlbgoJCQkJLS0gTW92ZSBjdXJzb3IgdG8gdGhlIGJlZ2lubmluZwoJCQkJaWYgeCA+IDEgdGhlbgogICAgICAgICAgICAgICAgICAgIHNldEN1cnNvcigxLHkpCiAgICAgICAgICAgICAgICBlbmQKCQkJZW5kCgoJCWVsc2VpZiBwYXJhbSA9PSBrZXlzWyJlbmQiXSB0aGVuCgkJCS0tIEVuZAoJCQlpZiBub3QgYk1lbnUgdGhlbgoJCQkJLS0gTW92ZSBjdXJzb3IgdG8gdGhlIGVuZAoJCQkJbG9jYWwgbkxpbWl0ID0gc3RyaW5nLmxlbiggdExpbmVzW3ldICkgKyAxCgkJCQlpZiB4IDwgbkxpbWl0IHRoZW4KICAgIAkJCQlzZXRDdXJzb3IoIG5MaW1pdCwgeSApCiAgICAJCSAgICBlbmQKCQkJZW5kCgoJCWVsc2VpZiBwYXJhbSA9PSBrZXlzLmxlZnQgdGhlbgoJCQktLSBMZWZ0CgkJCWlmIG5vdCBiTWVudSB0aGVuCgkJCQlpZiB4ID4gMSB0aGVuCgkJCQkJLS0gTW92ZSBjdXJzb3IgbGVmdAogICAgCQkJCXNldEN1cnNvciggeCAtIDEsIHkgKQoJCQkJZWxzZWlmIHg9PTEgYW5kIHk+MSB0aGVuCiAgICAJCQkJc2V0Q3Vyc29yKCBzdHJpbmcubGVuKCB0TGluZXNbeS0xXSApICsgMSwgeSAtIDEgKQoJCQkJZW5kCgkJCWVsc2UKCQkJCS0tIE1vdmUgbWVudSBsZWZ0CgkJCQluTWVudUl0ZW0gPSBuTWVudUl0ZW0gLSAxCgkJCQlpZiBuTWVudUl0ZW0gPCAxIHRoZW4KCQkJCQluTWVudUl0ZW0gPSAjdE1lbnVJdGVtcwoJCQkJZW5kCgkJCQlyZWRyYXdNZW51KCkKCQkJZW5kCgoJCWVsc2VpZiBwYXJhbSA9PSBrZXlzLnJpZ2h0IHRoZW4KCQkJLS0gUmlnaHQKCQkJaWYgbm90IGJNZW51IHRoZW4KCQkJICAgIGxvY2FsIG5MaW1pdCA9IHN0cmluZy5sZW4oIHRMaW5lc1t5XSApICsgMQoJCQkJaWYgeCA8IG5MaW1pdCB0aGVuCgkJCQkJLS0gTW92ZSBjdXJzb3IgcmlnaHQKCQkJCQlzZXRDdXJzb3IoIHggKyAxLCB5ICkKCQkJICAgIGVsc2VpZiBuQ29tcGxldGlvbiBhbmQgeCA9PSBzdHJpbmcubGVuKHRMaW5lc1t5XSkgKyAxIHRoZW4KICAgICAgICAgICAgICAgICAgICAtLSBBY2NlcHQgYXV0b2NvbXBsZXRlCiAgICAgICAgICAgICAgICAgICAgYWNjZXB0Q29tcGxldGlvbigpCgkJCQllbHNlaWYgeD09bkxpbWl0IGFuZCB5PCN0TGluZXMgdGhlbgoJCQkJICAgIC0tIEdvIHRvIG5leHQgbGluZQoJCQkJICAgIHNldEN1cnNvciggMSwgeSArIDEgKQoJCQkJZW5kCgkJCWVsc2UKCQkJCS0tIE1vdmUgbWVudSByaWdodAoJCQkJbk1lbnVJdGVtID0gbk1lbnVJdGVtICsgMQoJCQkJaWYgbk1lbnVJdGVtID4gI3RNZW51SXRlbXMgdGhlbgoJCQkJCW5NZW51SXRlbSA9IDEKCQkJCWVuZAoJCQkJcmVkcmF3TWVudSgpCgkJCWVuZAoKCQllbHNlaWYgcGFyYW0gPT0ga2V5cy5kZWxldGUgdGhlbgoJCQktLSBEZWxldGUKCQkJaWYgbm90IGJNZW51IGFuZCBub3QgYlJlYWRPbmx5IHRoZW4KCQkJICAgIGxvY2FsIG5MaW1pdCA9IHN0cmluZy5sZW4oIHRMaW5lc1t5XSApICsgMQoJCQkJaWYgeCA8IG5MaW1pdCB0aGVuCgkJCQkJbG9jYWwgc0xpbmUgPSB0TGluZXNbeV0KCQkJCQl0TGluZXNbeV0gPSBzdHJpbmcuc3ViKHNMaW5lLDEseC0xKSAuLiBzdHJpbmcuc3ViKHNMaW5lLHgrMSkKCQkJCQlyZWNvbXBsZXRlKCkKCQkJCQlyZWRyYXdMaW5lKHkpCgkJCQllbHNlaWYgeTwjdExpbmVzIHRoZW4KCQkJCQl0TGluZXNbeV0gPSB0TGluZXNbeV0gLi4gdExpbmVzW3krMV0KCQkJCQl0YWJsZS5yZW1vdmUoIHRMaW5lcywgeSsxICkKCQkJCQlyZWNvbXBsZXRlKCkKCQkJCQlyZWRyYXdUZXh0KCkKCQkJCWVuZAoJCQllbmQKCgkJZWxzZWlmIHBhcmFtID09IGtleXMuYmFja3NwYWNlIHRoZW4KCQkJLS0gQmFja3NwYWNlCgkJCWlmIG5vdCBiTWVudSBhbmQgbm90IGJSZWFkT25seSB0aGVuCgkJCQlpZiB4ID4gMSB0aGVuCgkJCQkJLS0gUmVtb3ZlIGNoYXJhY3RlcgoJCQkJCWxvY2FsIHNMaW5lID0gdExpbmVzW3ldCgkJCQkJdExpbmVzW3ldID0gc3RyaW5nLnN1YihzTGluZSwxLHgtMikgLi4gc3RyaW5nLnN1YihzTGluZSx4KQoJCQkgICAgICAgIHNldEN1cnNvciggeCAtIDEsIHkgKQoJCQkJZWxzZWlmIHkgPiAxIHRoZW4KCQkJCQktLSBSZW1vdmUgbmV3bGluZQoJCQkJCWxvY2FsIHNQcmV2TGVuID0gc3RyaW5nLmxlbiggdExpbmVzW3ktMV0gKQoJCQkJCXRMaW5lc1t5LTFdID0gdExpbmVzW3ktMV0gLi4gdExpbmVzW3ldCgkJCQkJdGFibGUucmVtb3ZlKCB0TGluZXMsIHkgKQoJCQkJCXNldEN1cnNvciggc1ByZXZMZW4gKyAxLCB5IC0gMSApCgkJCQkJcmVkcmF3VGV4dCgpCgkJCQllbmQKCQkJZW5kCgoJCWVsc2VpZiBwYXJhbSA9PSBrZXlzLmVudGVyIHRoZW4KCQkJLS0gRW50ZXIKCQkJaWYgbm90IGJNZW51IGFuZCBub3QgYlJlYWRPbmx5IHRoZW4KCQkJCS0tIE5ld2xpbmUKCQkJCWxvY2FsIHNMaW5lID0gdExpbmVzW3ldCgkJCQlsb2NhbCBfLHNwYWNlcz1zdHJpbmcuZmluZChzTGluZSwiXlsgXSsiKQoJCQkJaWYgbm90IHNwYWNlcyB0aGVuCgkJCQkJc3BhY2VzPTAKCQkJCWVuZAoJCQkJdExpbmVzW3ldID0gc3RyaW5nLnN1YihzTGluZSwxLHgtMSkKCQkJCXRhYmxlLmluc2VydCggdExpbmVzLCB5KzEsIHN0cmluZy5yZXAoJyAnLHNwYWNlcykuLnN0cmluZy5zdWIoc0xpbmUseCkgKQoJCQkJc2V0Q3Vyc29yKCBzcGFjZXMgKyAxLCB5ICsgMSApCgkJCQlyZWRyYXdUZXh0KCkKCgkJCWVsc2VpZiBiTWVudSB0aGVuCgkJCQktLSBNZW51IHNlbGVjdGlvbgoJCQkJZG9NZW51SXRlbSggbk1lbnVJdGVtICkKCgkJCWVuZAoKCQllbHNlaWYgcGFyYW0gPT0ga2V5cy5sZWZ0Q3RybCBvciBwYXJhbSA9PSBrZXlzLnJpZ2h0Q3RybCBvciBwYXJhbSA9PSBrZXlzLnJpZ2h0QWx0IHRoZW4KCQkJLS0gTWVudSB0b2dnbGUKCQkJYk1lbnUgPSBub3QgYk1lbnUKCQkJaWYgYk1lbnUgdGhlbgoJCQkJdGVybS5zZXRDdXJzb3JCbGluayggZmFsc2UgKQoJCQllbHNlCgkJCQl0ZXJtLnNldEN1cnNvckJsaW5rKCB0cnVlICkKCQkJZW5kCgkJCXJlZHJhd01lbnUoKQoKCQllbmQKCQkKCWVsc2VpZiBzRXZlbnQgPT0gImNoYXIiIHRoZW4KCQlpZiBub3QgYk1lbnUgYW5kIG5vdCBiUmVhZE9ubHkgdGhlbgoJCQktLSBJbnB1dCB0ZXh0CgkJCWxvY2FsIHNMaW5lID0gdExpbmVzW3ldCgkJCXRMaW5lc1t5XSA9IHN0cmluZy5zdWIoc0xpbmUsMSx4LTEpIC4uIHBhcmFtIC4uIHN0cmluZy5zdWIoc0xpbmUseCkKCQkJc2V0Q3Vyc29yKCB4ICsgMSwgeSApCgoJCWVsc2VpZiBiTWVudSB0aGVuCgkJCS0tIFNlbGVjdCBtZW51IGl0ZW1zCgkJCWZvciBuLHNNZW51SXRlbSBpbiBpcGFpcnMoIHRNZW51SXRlbXMgKSBkbwoJCQkJaWYgc3RyaW5nLmxvd2VyKHN0cmluZy5zdWIoc01lbnVJdGVtLDEsMSkpID09IHN0cmluZy5sb3dlcihwYXJhbSkgdGhlbgoJCQkJCWRvTWVudUl0ZW0oIG4gKQoJCQkJCWJyZWFrCgkJCQllbmQKCQkJZW5kCgkJZW5kCgoJZWxzZWlmIHNFdmVudCA9PSAicGFzdGUiIHRoZW4KCQlpZiBub3QgYk1lbnUgYW5kIG5vdCBiUmVhZE9ubHkgdGhlbgoJCQktLSBJbnB1dCB0ZXh0CgkJCWxvY2FsIHNMaW5lID0gdExpbmVzW3ldCgkJCXRMaW5lc1t5XSA9IHN0cmluZy5zdWIoc0xpbmUsMSx4LTEpIC4uIHBhcmFtIC4uIHN0cmluZy5zdWIoc0xpbmUseCkKCQkJc2V0Q3Vyc29yKCB4ICsgc3RyaW5nLmxlbiggcGFyYW0gKSwgeSApCgkJZW5kCgkJCgllbHNlaWYgc0V2ZW50ID09ICJtb3VzZV9jbGljayIgdGhlbgoJCWlmIG5vdCBiTWVudSB0aGVuCgkJCWlmIHBhcmFtID09IDEgdGhlbgoJCQkJLS0gTGVmdCBjbGljawoJCQkJbG9jYWwgY3gsY3kgPSBwYXJhbTIsIHBhcmFtMwoJCQkJaWYgY3kgPCBoIHRoZW4KCQkJCQlsb2NhbCBuZXdZID0gbWF0aC5taW4oIG1hdGgubWF4KCBzY3JvbGxZICsgY3ksIDEgKSwgI3RMaW5lcyApCgkJCQkJbG9jYWwgbmV3WCA9IG1hdGgubWluKCBtYXRoLm1heCggc2Nyb2xsWCArIGN4LCAxICksIHN0cmluZy5sZW4oIHRMaW5lc1tuZXdZXSApICsgMSApCgkJCQkJc2V0Q3Vyc29yKCBuZXdYLCBuZXdZICkKCQkJCWVuZAoJCQllbmQKCQllbmQKCQkKCWVsc2VpZiBzRXZlbnQgPT0gIm1vdXNlX3Njcm9sbCIgdGhlbgoJCWlmIG5vdCBiTWVudSB0aGVuCgkJCWlmIHBhcmFtID09IC0xIHRoZW4KCQkJCS0tIFNjcm9sbCB1cAoJCQkJaWYgc2Nyb2xsWSA+IDAgdGhlbgoJCQkJCS0tIE1vdmUgY3Vyc29yIHVwCgkJCQkJc2Nyb2xsWSA9IHNjcm9sbFkgLSAxCgkJCQkJcmVkcmF3VGV4dCgpCgkJCQllbmQKCQkJCgkJCWVsc2VpZiBwYXJhbSA9PSAxIHRoZW4KCQkJCS0tIFNjcm9sbCBkb3duCgkJCQlsb2NhbCBuTWF4U2Nyb2xsID0gI3RMaW5lcyAtIChoLTEpCgkJCQlpZiBzY3JvbGxZIDwgbk1heFNjcm9sbCB0aGVuCgkJCQkJLS0gTW92ZSBjdXJzb3IgZG93bgoJCQkJCXNjcm9sbFkgPSBzY3JvbGxZICsgMQoJCQkJCXJlZHJhd1RleHQoKQoJCQkJZW5kCgkJCQkKCQkJZW5kCgkJZW5kCgoJZWxzZWlmIHNFdmVudCA9PSAidGVybV9yZXNpemUiIHRoZW4KCSAgICB3LGggPSB0ZXJtLmdldFNpemUoKQogICAgICAgIHNldEN1cnNvciggeCwgeSApCiAgICAgICAgcmVkcmF3TWVudSgpCiAgICAgICAgcmVkcmF3VGV4dCgpCgoJZW5kCmVuZAoKLS0gQ2xlYW51cAp0ZXJtLmNsZWFyKCkKdGVybS5zZXRDdXJzb3JCbGluayggZmFsc2UgKQp0ZXJtLnNldEN1cnNvclBvcyggMSwgMSAp",
  15. }
  16. ]] --End of bundle
  17.  
  18.  
  19.     --Bundel Extraction Script version 1.0
  20.  
  21.     -- BASE64 Encoding
  22.  
  23.     -- Lua 5.1+ base64 v3.0 (c) 2009 by Alex Kloss <alexthkloss@web.de>
  24.     -- licensed under the terms of the LGPL2
  25.  
  26.     -- character table string
  27.     local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
  28.  
  29.     -- decoding
  30.     function dec(data)
  31.         data = string.gsub(data, '[^'..b..'=]', '')
  32.         return (data:gsub('.', function(x)
  33.             if (x == '=') then return '' end
  34.             local r,f='',(b:find(x)-1)
  35.             for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
  36.             return r;
  37.         end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
  38.             if (#x ~= 8) then return '' end
  39.             local c=0
  40.             for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
  41.             return string.char(c)
  42.         end))
  43.     end
  44.  
  45.     -- ACTUAL PROGRAM STARTS NOW
  46.     print("Bundel by Admicos.")
  47.     print("\nSSOS Bundel installer")
  48.     print("\nExtracting bundle here.")
  49.  
  50.     for name, file in pairs(textutils.unserialize(bundle)) do
  51.         print("[#] Extracting " .. name)
  52.  
  53.         local handle = fs.open(shell.dir() .. "/" .. name, "w")
  54.             handle.write(dec(file))
  55.         handle.close()
  56.     end
  57. write("\n[#] Downloading startup\n")
  58. if fs.exists("/startup") then
  59.     shell.run("rm /startup")
  60.     shell.run("pastebin get ZWpRNVnR startup")
  61. else
  62.     shell.run("pastebin get ZWpRNVnR startup")
  63. end
  64. write("\n [!] DONE! When you want to boot into your SSOS installation, just reboot. \n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement