Merge branch 'upstream'
This commit is contained in:
commit
b19c1f9dd2
261
anet.c
261
anet.c
|
@ -1,3 +1,26 @@
|
|||
// Part of dump1090, a Mode S message decoder for RTLSDR devices.
|
||||
//
|
||||
// anet.c: Basic TCP socket stuff made a bit less boring
|
||||
//
|
||||
// Copyright (c) 2016 Oliver Jowett <oliver@mutability.co.uk>
|
||||
//
|
||||
// This file is free software: you may copy, redistribute and/or modify it
|
||||
// under the terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation, either version 2 of the License, or (at your
|
||||
// option) any later version.
|
||||
//
|
||||
// This file is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
// This file incorporates work covered by the following copyright and
|
||||
// permission notice:
|
||||
//
|
||||
|
||||
/* anet.c -- Basic TCP socket stuff made a bit less boring
|
||||
*
|
||||
* Copyright (c) 2006-2012, Salvatore Sanfilippo <antirez at gmail dot com>
|
||||
|
@ -28,25 +51,20 @@
|
|||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/un.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <netdb.h>
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#else
|
||||
#include "winstubs.h" //Put everything Windows specific in here
|
||||
#include "dump1090.h"
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/un.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <netdb.h>
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "anet.h"
|
||||
|
||||
|
@ -63,7 +81,7 @@ static void anetSetError(char *err, const char *fmt, ...)
|
|||
int anetNonBlock(char *err, int fd)
|
||||
{
|
||||
int flags;
|
||||
#ifndef _WIN32
|
||||
|
||||
/* Set the socket nonblocking.
|
||||
* Note that fcntl(2) for F_GETFL and F_SETFL can't be
|
||||
* interrupted by a signal. */
|
||||
|
@ -75,14 +93,7 @@ int anetNonBlock(char *err, int fd)
|
|||
anetSetError(err, "fcntl(F_SETFL,O_NONBLOCK): %s", strerror(errno));
|
||||
return ANET_ERR;
|
||||
}
|
||||
#else
|
||||
flags = 1;
|
||||
if (ioctlsocket(fd, FIONBIO, &flags)) {
|
||||
errno = WSAGetLastError();
|
||||
anetSetError(err, "ioctlsocket(FIONBIO): %s", strerror(errno));
|
||||
return ANET_ERR;
|
||||
}
|
||||
#endif
|
||||
|
||||
return ANET_OK;
|
||||
}
|
||||
|
||||
|
@ -117,31 +128,10 @@ int anetTcpKeepAlive(char *err, int fd)
|
|||
return ANET_OK;
|
||||
}
|
||||
|
||||
int anetResolve(char *err, char *host, char *ipbuf)
|
||||
static int anetCreateSocket(char *err, int domain)
|
||||
{
|
||||
struct sockaddr_in sa;
|
||||
|
||||
sa.sin_family = AF_INET;
|
||||
if (inet_aton(host, (void*)&sa.sin_addr) == 0) {
|
||||
struct hostent *he;
|
||||
|
||||
he = gethostbyname(host);
|
||||
if (he == NULL) {
|
||||
anetSetError(err, "can't resolve: %s", host);
|
||||
return ANET_ERR;
|
||||
}
|
||||
memcpy(&sa.sin_addr, he->h_addr, sizeof(struct in_addr));
|
||||
}
|
||||
strcpy(ipbuf,inet_ntoa(sa.sin_addr));
|
||||
return ANET_OK;
|
||||
}
|
||||
|
||||
static int anetCreateSocket(char *err, int domain) {
|
||||
int s, on = 1;
|
||||
if ((s = socket(domain, SOCK_STREAM, 0)) == -1) {
|
||||
#ifdef _WIN32
|
||||
errno = WSAGetLastError();
|
||||
#endif
|
||||
anetSetError(err, "creating socket: %s", strerror(errno));
|
||||
return ANET_ERR;
|
||||
}
|
||||
|
@ -157,52 +147,63 @@ static int anetCreateSocket(char *err, int domain) {
|
|||
|
||||
#define ANET_CONNECT_NONE 0
|
||||
#define ANET_CONNECT_NONBLOCK 1
|
||||
static int anetTcpGenericConnect(char *err, char *addr, int port, int flags)
|
||||
static int anetTcpGenericConnect(char *err, char *addr, char *service, int flags)
|
||||
{
|
||||
int s;
|
||||
struct sockaddr_in sa;
|
||||
struct addrinfo gai_hints;
|
||||
struct addrinfo *gai_result, *p;
|
||||
int gai_error;
|
||||
|
||||
if ((s = anetCreateSocket(err,AF_INET)) == ANET_ERR)
|
||||
gai_hints.ai_family = AF_UNSPEC;
|
||||
gai_hints.ai_socktype = SOCK_STREAM;
|
||||
gai_hints.ai_protocol = 0;
|
||||
gai_hints.ai_flags = 0;
|
||||
gai_hints.ai_addrlen = 0;
|
||||
gai_hints.ai_addr = NULL;
|
||||
gai_hints.ai_canonname = NULL;
|
||||
gai_hints.ai_next = NULL;
|
||||
|
||||
gai_error = getaddrinfo(addr, service, &gai_hints, &gai_result);
|
||||
if (gai_error != 0) {
|
||||
anetSetError(err, "can't resolve %s: %s", addr, gai_strerror(gai_error));
|
||||
return ANET_ERR;
|
||||
}
|
||||
|
||||
memset(&sa,0,sizeof(sa));
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons((uint16_t)port);
|
||||
if (inet_aton(addr, (void*)&sa.sin_addr) == 0) {
|
||||
struct hostent *he;
|
||||
for (p = gai_result; p != NULL; p = p->ai_next) {
|
||||
if ((s = anetCreateSocket(err, p->ai_family)) == ANET_ERR)
|
||||
continue;
|
||||
|
||||
he = gethostbyname(addr);
|
||||
if (he == NULL) {
|
||||
anetSetError(err, "can't resolve: %s", addr);
|
||||
close(s);
|
||||
return ANET_ERR;
|
||||
if (flags & ANET_CONNECT_NONBLOCK) {
|
||||
if (anetNonBlock(err,s) != ANET_OK)
|
||||
return ANET_ERR;
|
||||
}
|
||||
memcpy(&sa.sin_addr, he->h_addr, sizeof(struct in_addr));
|
||||
}
|
||||
if (flags & ANET_CONNECT_NONBLOCK) {
|
||||
if (anetNonBlock(err,s) != ANET_OK)
|
||||
return ANET_ERR;
|
||||
}
|
||||
if (connect(s, (struct sockaddr*)&sa, sizeof(sa)) == -1) {
|
||||
if (errno == EINPROGRESS &&
|
||||
flags & ANET_CONNECT_NONBLOCK)
|
||||
|
||||
if (connect(s, p->ai_addr, p->ai_addrlen) >= 0) {
|
||||
freeaddrinfo(gai_result);
|
||||
return s;
|
||||
}
|
||||
|
||||
if (errno == EINPROGRESS && (flags & ANET_CONNECT_NONBLOCK)) {
|
||||
freeaddrinfo(gai_result);
|
||||
return s;
|
||||
}
|
||||
|
||||
anetSetError(err, "connect: %s", strerror(errno));
|
||||
close(s);
|
||||
return ANET_ERR;
|
||||
}
|
||||
return s;
|
||||
|
||||
freeaddrinfo(gai_result);
|
||||
return ANET_ERR;
|
||||
}
|
||||
|
||||
int anetTcpConnect(char *err, char *addr, int port)
|
||||
int anetTcpConnect(char *err, char *addr, char *service)
|
||||
{
|
||||
return anetTcpGenericConnect(err,addr,port,ANET_CONNECT_NONE);
|
||||
return anetTcpGenericConnect(err,addr,service,ANET_CONNECT_NONE);
|
||||
}
|
||||
|
||||
int anetTcpNonBlockConnect(char *err, char *addr, int port)
|
||||
int anetTcpNonBlockConnect(char *err, char *addr, char *service)
|
||||
{
|
||||
return anetTcpGenericConnect(err,addr,port,ANET_CONNECT_NONBLOCK);
|
||||
return anetTcpGenericConnect(err,addr,service,ANET_CONNECT_NONBLOCK);
|
||||
}
|
||||
|
||||
/* Like read(2) but make sure 'count' is read before to return
|
||||
|
@ -236,10 +237,12 @@ int anetWrite(int fd, char *buf, int count)
|
|||
}
|
||||
|
||||
static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t len) {
|
||||
if (sa->sa_family == AF_INET6) {
|
||||
int on = 1;
|
||||
setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on));
|
||||
}
|
||||
|
||||
if (bind(s,sa,len) == -1) {
|
||||
#ifdef _WIN32
|
||||
errno = WSAGetLastError();
|
||||
#endif
|
||||
anetSetError(err, "bind: %s", strerror(errno));
|
||||
close(s);
|
||||
return ANET_ERR;
|
||||
|
@ -249,9 +252,6 @@ static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t len) {
|
|||
* the kernel does: backlogsize = roundup_pow_of_two(backlogsize + 1);
|
||||
* which will thus give us a backlog of 512 entries */
|
||||
if (listen(s, 511) == -1) {
|
||||
#ifdef _WIN32
|
||||
errno = WSAGetLastError();
|
||||
#endif
|
||||
anetSetError(err, "listen: %s", strerror(errno));
|
||||
close(s);
|
||||
return ANET_ERR;
|
||||
|
@ -259,40 +259,52 @@ static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t len) {
|
|||
return ANET_OK;
|
||||
}
|
||||
|
||||
int anetTcpServer(char *err, int port, char *bindaddr)
|
||||
int anetTcpServer(char *err, char *service, char *bindaddr, int *fds, int nfds)
|
||||
{
|
||||
int s;
|
||||
struct sockaddr_in sa;
|
||||
int i = 0;
|
||||
struct addrinfo gai_hints;
|
||||
struct addrinfo *gai_result, *p;
|
||||
int gai_error;
|
||||
|
||||
if ((s = anetCreateSocket(err,AF_INET)) == ANET_ERR)
|
||||
return ANET_ERR;
|
||||
gai_hints.ai_family = AF_UNSPEC;
|
||||
gai_hints.ai_socktype = SOCK_STREAM;
|
||||
gai_hints.ai_protocol = 0;
|
||||
gai_hints.ai_flags = AI_PASSIVE;
|
||||
gai_hints.ai_addrlen = 0;
|
||||
gai_hints.ai_addr = NULL;
|
||||
gai_hints.ai_canonname = NULL;
|
||||
gai_hints.ai_next = NULL;
|
||||
|
||||
memset(&sa,0,sizeof(sa));
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons((uint16_t)port);
|
||||
sa.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
if (bindaddr && inet_aton(bindaddr, (void*)&sa.sin_addr) == 0) {
|
||||
anetSetError(err, "invalid bind address");
|
||||
close(s);
|
||||
gai_error = getaddrinfo(bindaddr, service, &gai_hints, &gai_result);
|
||||
if (gai_error != 0) {
|
||||
anetSetError(err, "can't resolve %s: %s", bindaddr, gai_strerror(gai_error));
|
||||
return ANET_ERR;
|
||||
}
|
||||
if (anetListen(err,s,(struct sockaddr*)&sa,sizeof(sa)) == ANET_ERR)
|
||||
return ANET_ERR;
|
||||
return s;
|
||||
|
||||
for (p = gai_result; p != NULL && i < nfds; p = p->ai_next) {
|
||||
if ((s = anetCreateSocket(err, p->ai_family)) == ANET_ERR)
|
||||
continue;
|
||||
|
||||
if (anetListen(err, s, p->ai_addr, p->ai_addrlen) == ANET_ERR) {
|
||||
continue;
|
||||
}
|
||||
|
||||
fds[i++] = s;
|
||||
}
|
||||
|
||||
freeaddrinfo(gai_result);
|
||||
return (i > 0 ? i : ANET_ERR);
|
||||
}
|
||||
|
||||
static int anetGenericAccept(char *err, int s, struct sockaddr *sa, socklen_t *len) {
|
||||
static int anetGenericAccept(char *err, int s, struct sockaddr *sa, socklen_t *len)
|
||||
{
|
||||
int fd;
|
||||
while(1) {
|
||||
fd = accept(s,sa,len);
|
||||
if (fd == -1) {
|
||||
#ifndef _WIN32
|
||||
if (errno == EINTR) {
|
||||
continue;
|
||||
#else
|
||||
errno = WSAGetLastError();
|
||||
if (errno == WSAEWOULDBLOCK) {
|
||||
#endif
|
||||
} else {
|
||||
anetSetError(err, "accept: %s", strerror(errno));
|
||||
}
|
||||
|
@ -302,44 +314,13 @@ static int anetGenericAccept(char *err, int s, struct sockaddr *sa, socklen_t *l
|
|||
return fd;
|
||||
}
|
||||
|
||||
int anetTcpAccept(char *err, int s, char *ip, int *port) {
|
||||
int anetTcpAccept(char *err, int s) {
|
||||
int fd;
|
||||
struct sockaddr_in sa;
|
||||
socklen_t salen = sizeof(sa);
|
||||
if ((fd = anetGenericAccept(err,s,(struct sockaddr*)&sa,&salen)) == ANET_ERR)
|
||||
struct sockaddr_storage ss;
|
||||
socklen_t sslen = sizeof(ss);
|
||||
|
||||
if ((fd = anetGenericAccept(err, s, (struct sockaddr*)&ss, &sslen)) == ANET_ERR)
|
||||
return ANET_ERR;
|
||||
|
||||
if (ip) strcpy(ip,inet_ntoa(sa.sin_addr));
|
||||
if (port) *port = ntohs(sa.sin_port);
|
||||
return fd;
|
||||
}
|
||||
|
||||
int anetPeerToString(int fd, char *ip, int *port) {
|
||||
struct sockaddr_in sa;
|
||||
socklen_t salen = sizeof(sa);
|
||||
|
||||
if (getpeername(fd,(struct sockaddr*)&sa,&salen) == -1) {
|
||||
*port = 0;
|
||||
ip[0] = '?';
|
||||
ip[1] = '\0';
|
||||
return -1;
|
||||
}
|
||||
if (ip) strcpy(ip,inet_ntoa(sa.sin_addr));
|
||||
if (port) *port = ntohs(sa.sin_port);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int anetSockName(int fd, char *ip, int *port) {
|
||||
struct sockaddr_in sa;
|
||||
socklen_t salen = sizeof(sa);
|
||||
|
||||
if (getsockname(fd,(struct sockaddr*)&sa,&salen) == -1) {
|
||||
*port = 0;
|
||||
ip[0] = '?';
|
||||
ip[1] = '\0';
|
||||
return -1;
|
||||
}
|
||||
if (ip) strcpy(ip,inet_ntoa(sa.sin_addr));
|
||||
if (port) *port = ntohs(sa.sin_port);
|
||||
return 0;
|
||||
}
|
||||
|
|
37
anet.h
37
anet.h
|
@ -1,3 +1,26 @@
|
|||
// Part of dump1090, a Mode S message decoder for RTLSDR devices.
|
||||
//
|
||||
// anet.h: Basic TCP socket stuff made a bit less boring
|
||||
//
|
||||
// Copyright (c) 2016 Oliver Jowett <oliver@mutability.co.uk>
|
||||
//
|
||||
// This file is free software: you may copy, redistribute and/or modify it
|
||||
// under the terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation, either version 2 of the License, or (at your
|
||||
// option) any later version.
|
||||
//
|
||||
// This file is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
// This file incorporates work covered by the following copyright and
|
||||
// permission notice:
|
||||
//
|
||||
|
||||
/* anet.c -- Basic TCP socket stuff made a bit less boring
|
||||
*
|
||||
* Copyright (c) 2006-2012, Salvatore Sanfilippo <antirez at gmail dot com>
|
||||
|
@ -39,21 +62,15 @@
|
|||
#define AF_LOCAL AF_UNIX
|
||||
#endif
|
||||
|
||||
int anetTcpConnect(char *err, char *addr, int port);
|
||||
int anetTcpNonBlockConnect(char *err, char *addr, int port);
|
||||
int anetUnixConnect(char *err, char *path);
|
||||
int anetUnixNonBlockConnect(char *err, char *path);
|
||||
int anetTcpConnect(char *err, char *addr, char *service);
|
||||
int anetTcpNonBlockConnect(char *err, char *addr, char *service);
|
||||
int anetRead(int fd, char *buf, int count);
|
||||
int anetResolve(char *err, char *host, char *ipbuf);
|
||||
int anetTcpServer(char *err, int port, char *bindaddr);
|
||||
int anetUnixServer(char *err, char *path, mode_t perm);
|
||||
int anetTcpAccept(char *err, int serversock, char *ip, int *port);
|
||||
int anetUnixAccept(char *err, int serversock);
|
||||
int anetTcpServer(char *err, char *service, char *bindaddr, int *fds, int nfds);
|
||||
int anetTcpAccept(char *err, int serversock);
|
||||
int anetWrite(int fd, char *buf, int count);
|
||||
int anetNonBlock(char *err, int fd);
|
||||
int anetTcpNoDelay(char *err, int fd);
|
||||
int anetTcpKeepAlive(char *err, int fd);
|
||||
int anetPeerToString(int fd, char *ip, int *port);
|
||||
int anetSetSendBuffer(char *err, int fd, int buffsize);
|
||||
|
||||
#endif
|
||||
|
|
21
debian/config-template
vendored
21
debian/config-template
vendored
|
@ -1,21 +0,0 @@
|
|||
# dump1090-fa configuration
|
||||
# This is read by the systemd service file as environment vars,
|
||||
# and evaluated by some scripts as a POSIX shell fragment.
|
||||
|
||||
# User to run as.
|
||||
DUMP1090_USER=dump1090
|
||||
|
||||
# Where to log to. (See also /etc/logrotate.d/dump1090-fa.conf)
|
||||
LOGFILE=/var/log/dump1090-fa.log
|
||||
|
||||
# RTLSDR device index or serial number to use
|
||||
# If set to "none", dump1090 will be started in --net-only mode
|
||||
DEVICE=0
|
||||
|
||||
# RTLSDR gain in dB.
|
||||
# If set to "max" (the default) the maximum supported gain is used.
|
||||
# If set to "agc", the tuner AGC is used to set the gain.
|
||||
GAIN=agc
|
||||
|
||||
# RTLSDR frequency correction in PPM
|
||||
PPM=0
|
681
debian/copyright
vendored
681
debian/copyright
vendored
|
@ -9,10 +9,38 @@ Copyright: Copyright 2012 Salvatore Sanfilippo <antirez@gmail.com>
|
|||
Copyright 2014,2015 Oliver Jowett <oliver@mutability.co.uk>
|
||||
License: BSD-3-Clause and GPL-2+
|
||||
|
||||
Files: cprtests.c cpr.h crc.c crc.h demod_2000.h demod_2400.c demod_2000.h icao_filter.c icao_filter.h demod_2400.h demod_2000.h crc.h
|
||||
Files: cprtests.c cpr.h crc.c crc.h demod_2000.h demod_2400.c demod_2000.h icao_filter.c icao_filter.h demod_2400.h demod_2000.h
|
||||
Copyright: Copyright 2014,2015 Oliver Jowett <oliver@mutability.co.uk>
|
||||
License: GPL-2+
|
||||
|
||||
Files: compat/clock_gettime/*
|
||||
Copyright: Copyright (c), MM Weiss
|
||||
License: BSD-3-Clause
|
||||
|
||||
Files: compat/clock_nanosleep/*
|
||||
Copyright: Copyright © 2006 Rémi Denis-Courmont.
|
||||
License: GPL-2+
|
||||
|
||||
Files: public_html/coolclock/*
|
||||
Copyright: Copyright 2010, Simon Baird
|
||||
License: BSD-3-Clause
|
||||
Comment: 3-clause clarified with https://github.com/simonbaird/CoolClock/blob/a3e6d1a6fcf9d5bfd81d862d91d83a3892cb6923/LICENSE
|
||||
|
||||
Files: public_html/coolclock/excanvas.js
|
||||
Copyright: Copyright 2006 Google Inc.
|
||||
License: Apache-2.0
|
||||
|
||||
Files: public_html/flags-tiny/*
|
||||
Copyright: Gang of the Coconuts
|
||||
License: CC-BY-SA-3.0
|
||||
|
||||
Files: public_html/markers.js
|
||||
Copyright: Kaboldy
|
||||
Icons made by Freepik
|
||||
License: CC-BY-SA-3.0 and CC-BY-3.0
|
||||
Comment: _generic_plane_svg was added with https://github.com/mutability/dump1090/commit/5f0e295580c34da34ecef3a37f03e9a9d57485ff
|
||||
https://github.com/DE8MSH
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2014,2015 Oliver Jowett <oliver@mutability.co.uk>
|
||||
License: BSD-3-Clause
|
||||
|
@ -63,3 +91,654 @@ License: BSD-3-Clause
|
|||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
License: Apache-2.0
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
.
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
.
|
||||
On Debian systems, the full text of the Apache Software License version 2
|
||||
can be found in the file `/usr/share/common-licenses/Apache-2.0'.
|
||||
|
||||
License: CC-BY-SA-3.0
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
|
||||
SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT
|
||||
RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS"
|
||||
BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION
|
||||
PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
|
||||
.
|
||||
License
|
||||
.
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
.
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO
|
||||
BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE
|
||||
CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED
|
||||
HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
|
||||
.
|
||||
1. Definitions
|
||||
"Adaptation" means a work based upon the Work, or upon the Work and
|
||||
other pre-existing works, such as a translation, adaptation, derivative
|
||||
work, arrangement of music or other alterations of a literary or
|
||||
artistic work, or phonogram or performance and includes cinematographic
|
||||
adaptations or any other form in which the Work may be recast,
|
||||
transformed, or adapted including in any form recognizably derived from
|
||||
the original, except that a work that constitutes a Collection will not
|
||||
be considered an Adaptation for the purpose of this License. For the
|
||||
avoidance of doubt, where the Work is a musical work, performance or
|
||||
phonogram, the synchronization of the Work in timed-relation with a
|
||||
moving image ("synching") will be considered an Adaptation for the
|
||||
purpose of this License.
|
||||
"Collection" means a collection of literary or artistic works, such as
|
||||
encyclopedias and anthologies, or performances, phonograms or
|
||||
broadcasts, or other works or subject matter other than works listed in
|
||||
Section 1(f) below, which, by reason of the selection and arrangement of
|
||||
their contents, constitute intellectual creations, in which the Work is
|
||||
included in its entirety in unmodified form along with one or more other
|
||||
contributions, each constituting separate and independent works in
|
||||
themselves, which together are assembled into a collective whole. A work
|
||||
that constitutes a Collection will not be considered an Adaptation (as
|
||||
defined below) for the purposes of this License.
|
||||
"Creative Commons Compatible License" means a license that is listed at
|
||||
http://creativecommons.org/compatiblelicenses that has been approved by
|
||||
Creative Commons as being essentially equivalent to this License,
|
||||
including, at a minimum, because that license: (i) contains terms that
|
||||
have the same purpose, meaning and effect as the License Elements of
|
||||
this License; and, (ii) explicitly permits the relicensing of
|
||||
adaptations of works made available under that license under this
|
||||
License or a Creative Commons jurisdiction license with the same License
|
||||
Elements as this License.
|
||||
"Distribute" means to make available to the public the original and
|
||||
copies of the Work or Adaptation, as appropriate, through sale or other
|
||||
transfer of ownership.
|
||||
"License Elements" means the following high-level license attributes as
|
||||
selected by Licensor and indicated in the title of this License:
|
||||
Attribution, ShareAlike.
|
||||
"Licensor" means the individual, individuals, entity or entities that
|
||||
offer(s) the Work under the terms of this License.
|
||||
"Original Author" means, in the case of a literary or artistic work, the
|
||||
individual, individuals, entity or entities who created the Work or if
|
||||
no individual or entity can be identified, the publisher; and in
|
||||
addition (i) in the case of a performance the actors, singers,
|
||||
musicians, dancers, and other persons who act, sing, deliver, declaim,
|
||||
play in, interpret or otherwise perform literary or artistic works or
|
||||
expressions of folklore; (ii) in the case of a phonogram the producer
|
||||
being the person or legal entity who first fixes the sounds of a
|
||||
performance or other sounds; and, (iii) in the case of broadcasts, the
|
||||
organization that transmits the broadcast.
|
||||
"Work" means the literary and/or artistic work offered under the terms
|
||||
of this License including without limitation any production in the
|
||||
literary, scientific and artistic domain, whatever may be the mode or
|
||||
form of its expression including digital form, such as a book, pamphlet
|
||||
and other writing; a lecture, address, sermon or other work of the same
|
||||
nature; a dramatic or dramatico-musical work; a choreographic work or
|
||||
entertainment in dumb show; a musical composition with or without words;
|
||||
a cinematographic work to which are assimilated works expressed by a
|
||||
process analogous to cinematography; a work of drawing, painting,
|
||||
architecture, sculpture, engraving or lithography; a photographic work
|
||||
to which are assimilated works expressed by a process analogous to
|
||||
photography; a work of applied art; an illustration, map, plan, sketch
|
||||
or three-dimensional work relative to geography, topography,
|
||||
architecture or science; a performance; a broadcast; a phonogram; a
|
||||
compilation of data to the extent it is protected as a copyrightable
|
||||
work; or a work performed by a variety or circus performer to the extent
|
||||
it is not otherwise considered a literary or artistic work.
|
||||
"You" means an individual or entity exercising rights under this License
|
||||
who has not previously violated the terms of this License with respect
|
||||
to the Work, or who has received express permission from the Licensor to
|
||||
exercise rights under this License despite a previous violation.
|
||||
"Publicly Perform" means to perform public recitations of the Work and
|
||||
to communicate to the public those public recitations, by any means or
|
||||
process, including by wire or wireless means or public digital
|
||||
performances; to make available to the public Works in such a way that
|
||||
members of the public may access these Works from a place and at a place
|
||||
individually chosen by them; to perform the Work to the public by any
|
||||
means or process and the communication to the public of the performances
|
||||
of the Work, including by public digital performance; to broadcast and
|
||||
rebroadcast the Work by any means including signs, sounds or images.
|
||||
"Reproduce" means to make copies of the Work by any means including
|
||||
without limitation by sound or visual recordings and the right of
|
||||
fixation and reproducing fixations of the Work, including storage of a
|
||||
protected performance or phonogram in digital form or other electronic
|
||||
medium.
|
||||
.
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
|
||||
limit, or restrict any uses free from copyright or rights arising from
|
||||
limitations or exceptions that are provided for in connection with the
|
||||
copyright protection under copyright law or other applicable laws.
|
||||
.
|
||||
3. License Grant. Subject to the terms and conditions of this License,
|
||||
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||
perpetual (for the duration of the applicable copyright) license to
|
||||
exercise the rights in the Work as stated below:
|
||||
.
|
||||
to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the
|
||||
Collections;
|
||||
to create and Reproduce Adaptations provided that any such Adaptation,
|
||||
including any translation in any medium, takes reasonable steps to
|
||||
clearly label, demarcate or otherwise identify that changes were made to
|
||||
the original Work. For example, a translation could be marked "The
|
||||
original work was translated from English to Spanish," or a modification
|
||||
could indicate "The original work has been modified.";
|
||||
to Distribute and Publicly Perform the Work including as incorporated in
|
||||
Collections; and,
|
||||
to Distribute and Publicly Perform Adaptations.
|
||||
.
|
||||
For the avoidance of doubt:
|
||||
Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or
|
||||
compulsory licensing scheme cannot be waived, the Licensor reserves
|
||||
the exclusive right to collect such royalties for any exercise by
|
||||
You of the rights granted under this License;
|
||||
Waivable Compulsory License Schemes. In those jurisdictions in which
|
||||
the right to collect royalties through any statutory or compulsory
|
||||
licensing scheme can be waived, the Licensor waives the exclusive
|
||||
right to collect such royalties for any exercise by You of the
|
||||
rights granted under this License; and,
|
||||
Voluntary License Schemes. The Licensor waives the right to collect
|
||||
royalties, whether individually or, in the event that the Licensor
|
||||
is a member of a collecting society that administers voluntary
|
||||
licensing schemes, via that society, from any exercise by You of the
|
||||
rights granted under this License.
|
||||
.
|
||||
The above rights may be exercised in all media and formats whether now
|
||||
known or hereafter devised. The above rights include the right to make such
|
||||
modifications as are technically necessary to exercise the rights in other
|
||||
media and formats. Subject to Section 8(f), all rights not expressly
|
||||
granted by Licensor are hereby reserved.
|
||||
.
|
||||
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||
subject to and limited by the following restrictions:
|
||||
.
|
||||
You may Distribute or Publicly Perform the Work only under the terms of
|
||||
this License. You must include a copy of, or the Uniform Resource
|
||||
Identifier (URI) for, this License with every copy of the Work You
|
||||
Distribute or Publicly Perform. You may not offer or impose any terms on
|
||||
the Work that restrict the terms of this License or the ability of the
|
||||
recipient of the Work to exercise the rights granted to that recipient
|
||||
under the terms of the License. You may not sublicense the Work. You
|
||||
must keep intact all notices that refer to this License and to the
|
||||
disclaimer of warranties with every copy of the Work You Distribute or
|
||||
Publicly Perform. When You Distribute or Publicly Perform the Work, You
|
||||
may not impose any effective technological measures on the Work that
|
||||
restrict the ability of a recipient of the Work from You to exercise the
|
||||
rights granted to that recipient under the terms of the License. This
|
||||
Section 4(a) applies to the Work as incorporated in a Collection, but
|
||||
this does not require the Collection apart from the Work itself to be
|
||||
made subject to the terms of this License. If You create a Collection,
|
||||
upon notice from any Licensor You must, to the extent practicable,
|
||||
remove from the Collection any credit as required by Section 4(c), as
|
||||
requested. If You create an Adaptation, upon notice from any Licensor
|
||||
You must, to the extent practicable, remove from the Adaptation any
|
||||
credit as required by Section 4(c), as requested.
|
||||
You may Distribute or Publicly Perform an Adaptation only under the
|
||||
terms of: (i) this License; (ii) a later version of this License with
|
||||
the same License Elements as this License; (iii) a Creative Commons
|
||||
jurisdiction license (either this or a later license version) that
|
||||
contains the same License Elements as this License (e.g.,
|
||||
Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible
|
||||
License. If you license the Adaptation under one of the licenses
|
||||
mentioned in (iv), you must comply with the terms of that license. If
|
||||
you license the Adaptation under the terms of any of the licenses
|
||||
mentioned in (i), (ii) or (iii) (the "Applicable License"), you must
|
||||
comply with the terms of the Applicable License generally and the
|
||||
following provisions: (I) You must include a copy of, or the URI for,
|
||||
the Applicable License with every copy of each Adaptation You Distribute
|
||||
or Publicly Perform; (II) You may not offer or impose any terms on the
|
||||
Adaptation that restrict the terms of the Applicable License or the
|
||||
ability of the recipient of the Adaptation to exercise the rights
|
||||
granted to that recipient under the terms of the Applicable License;
|
||||
(III) You must keep intact all notices that refer to the Applicable
|
||||
License and to the disclaimer of warranties with every copy of the Work
|
||||
as included in the Adaptation You Distribute or Publicly Perform; (IV)
|
||||
when You Distribute or Publicly Perform the Adaptation, You may not
|
||||
impose any effective technological measures on the Adaptation that
|
||||
restrict the ability of a recipient of the Adaptation from You to
|
||||
exercise the rights granted to that recipient under the terms of the
|
||||
Applicable License. This Section 4(b) applies to the Adaptation as
|
||||
incorporated in a Collection, but this does not require the Collection
|
||||
apart from the Adaptation itself to be made subject to the terms of the
|
||||
Applicable License.
|
||||
If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||
Collections, You must, unless a request has been made pursuant to
|
||||
Section 4(a), keep intact all copyright notices for the Work and
|
||||
provide, reasonable to the medium or means You are utilizing: (i) the
|
||||
name of the Original Author (or pseudonym, if applicable) if supplied,
|
||||
and/or if the Original Author and/or Licensor designate another party or
|
||||
parties (e.g., a sponsor institute, publishing entity, journal) for
|
||||
attribution ("Attribution Parties") in Licensor's copyright notice,
|
||||
terms of service or by other reasonable means, the name of such party or
|
||||
parties; (ii) the title of the Work if supplied; (iii) to the extent
|
||||
reasonably practicable, the URI, if any, that Licensor specifies to be
|
||||
associated with the Work, unless such URI does not refer to the
|
||||
copyright notice or licensing information for the Work; and (iv) ,
|
||||
consistent with Ssection 3(b), in the case of an Adaptation, a credit
|
||||
identifying the use of the Work in the Adaptation (e.g., "French
|
||||
translation of the Work by Original Author," or "Screenplay based on
|
||||
original Work by Original Author"). The credit required by this Section
|
||||
4(c) may be implemented in any reasonable manner; provided, however,
|
||||
that in the case of a Adaptation or Collection, at a minimum such credit
|
||||
will appear, if a credit for all contributing authors of the Adaptation
|
||||
or Collection appears, then as part of these credits and in a manner at
|
||||
least as prominent as the credits for the other contributing authors.
|
||||
For the avoidance of doubt, You may only use the credit required by this
|
||||
Section for the purpose of attribution in the manner set out above and,
|
||||
by exercising Your rights under this License, You may not implicitly or
|
||||
explicitly assert or imply any connection with, sponsorship or
|
||||
endorsement by the Original Author, Licensor and/or Attribution Parties,
|
||||
as appropriate, of You or Your use of the Work, without the separate,
|
||||
express prior written permission of the Original Author, Licensor and/or
|
||||
Attribution Parties.
|
||||
Except as otherwise agreed in writing by the Licensor or as may be
|
||||
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||
Publicly Perform the Work either by itself or as part of any Adaptations
|
||||
or Collections, You must not distort, mutilate, modify or take other
|
||||
derogatory action in relation to the Work which would be prejudicial to
|
||||
the Original Author's honor or reputation. Licensor agrees that in those
|
||||
jurisdictions (e.g. Japan), in which any exercise of the right granted
|
||||
in Section 3(b) of this License (the right to make Adaptations) would be
|
||||
deemed to be a distortion, mutilation, modification or other derogatory
|
||||
action prejudicial to the Original Author's honor and reputation, the
|
||||
Licensor will waive or not assert, as appropriate, this Section, to the
|
||||
fullest extent permitted by the applicable national law, to enable You
|
||||
to reasonably exercise Your right under Section 3(b) of this License
|
||||
(right to make Adaptations) but not otherwise.
|
||||
.
|
||||
5. Representations, Warranties and Disclaimer
|
||||
.
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
|
||||
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
|
||||
OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER
|
||||
OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF
|
||||
IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||
.
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY
|
||||
SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING
|
||||
OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
.
|
||||
7. Termination
|
||||
.
|
||||
This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Adaptations or Collections
|
||||
from You under this License, however, will not have their licenses
|
||||
terminated provided such individuals or entities remain in full
|
||||
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
|
||||
survive any termination of this License.
|
||||
Subject to the above terms and conditions, the license granted here is
|
||||
perpetual (for the duration of the applicable copyright in the Work).
|
||||
Notwithstanding the above, Licensor reserves the right to release the
|
||||
Work under different license terms or to stop distributing the Work at
|
||||
any time; provided, however that any such election will not serve to
|
||||
withdraw this License (or any other license that has been, or is
|
||||
required to be, granted under the terms of this License), and this
|
||||
License will continue in full force and effect unless terminated as
|
||||
stated above.
|
||||
.
|
||||
8. Miscellaneous
|
||||
.
|
||||
Each time You Distribute or Publicly Perform the Work or a Collection,
|
||||
the Licensor offers to the recipient a license to the Work on the same
|
||||
terms and conditions as the license granted to You under this License.
|
||||
Each time You Distribute or Publicly Perform an Adaptation, Licensor
|
||||
offers to the recipient a license to the original Work on the same terms
|
||||
and conditions as the license granted to You under this License.
|
||||
If any provision of this License is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this License, and without further action
|
||||
by the parties to this agreement, such provision shall be reformed to
|
||||
the minimum extent necessary to make such provision valid and
|
||||
enforceable.
|
||||
No term or provision of this License shall be deemed waived and no
|
||||
breach consented to unless such waiver or consent shall be in writing
|
||||
and signed by the party to be charged with such waiver or consent.
|
||||
This License constitutes the entire agreement between the parties with
|
||||
respect to the Work licensed here. There are no understandings,
|
||||
agreements or representations with respect to the Work not specified
|
||||
here. Licensor shall not be bound by any additional provisions that may
|
||||
appear in any communication from You. This License may not be modified
|
||||
without the mutual written agreement of the Licensor and You.
|
||||
The rights granted under, and the subject matter referenced, in this
|
||||
License were drafted utilizing the terminology of the Berne Convention
|
||||
for t Protection of Literary and Artistic Works (as amended on
|
||||
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
|
||||
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and
|
||||
the Universal Copyright Convention (as revised on July 24, 1971). These
|
||||
rights and subject matter take effect in the relevant jurisdiction in
|
||||
which the License terms are sought to be enforced according to the
|
||||
corresponding provisions of the implementation of those treaty
|
||||
provisions in the applicable national law. If the standard suite of
|
||||
rights granted under applicable copyright law includes additional rights
|
||||
not granted under this License, such additional rights are deemed to be
|
||||
included in the License; this License is not intended to restrict the
|
||||
license of any rights under applicable law.
|
||||
|
||||
License: CC-BY-3.0
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
|
||||
ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE
|
||||
INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||
ITS USE.
|
||||
.
|
||||
License
|
||||
.
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
.
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
|
||||
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
|
||||
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
|
||||
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
|
||||
CONDITIONS.
|
||||
.
|
||||
1. Definitions
|
||||
.
|
||||
a. "Adaptation" means a work based upon the Work, or upon the Work and
|
||||
other pre-existing works, such as a translation, adaptation, derivative
|
||||
work, arrangement of music or other alterations of a literary or
|
||||
artistic work, or phonogram or performance and includes cinematographic
|
||||
adaptations or any other form in which the Work may be recast,
|
||||
transformed, or adapted including in any form recognizably derived from
|
||||
the original, except that a work that constitutes a Collection will not
|
||||
be considered an Adaptation for the purpose of this License. For the
|
||||
avoidance of doubt, where the Work is a musical work, performance or
|
||||
phonogram, the synchronization of the Work in timed-relation with a
|
||||
moving image ("synching") will be considered an Adaptation for the
|
||||
purpose of this License.
|
||||
.
|
||||
b. "Collection" means a collection of literary or artistic works, such
|
||||
as encyclopedias and anthologies, or performances, phonograms or
|
||||
broadcasts, or other works or subject matter other than works listed in
|
||||
Section 1(f) below, which, by reason of the selection and arrangement of
|
||||
their contents, constitute intellectual creations, in which the Work is
|
||||
included in its entirety in unmodified form along with one or more other
|
||||
contributions, each constituting separate and independent works in
|
||||
themselves, which together are assembled into a collective whole. A work
|
||||
that constitutes a Collection will not be considered an Adaptation (as
|
||||
defined above) for the purposes of this License.
|
||||
.
|
||||
c. "Distribute" means to make available to the public the original and
|
||||
copies of the Work or Adaptation, as appropriate, through sale or other
|
||||
transfer of ownership.
|
||||
.
|
||||
d. "Licensor" means the individual, individuals, entity or entities that
|
||||
offer(s) the Work under the terms of this License.
|
||||
.
|
||||
e. "Original Author" means, in the case of a literary or artistic work,
|
||||
the individual, individuals, entity or entities who created the Work or
|
||||
if no individual or entity can be identified, the publisher; and in
|
||||
addition (i) in the case of a performance the actors, singers,
|
||||
musicians, dancers, and other persons who act, sing, deliver, declaim,
|
||||
play in, interpret or otherwise perform literary or artistic works or
|
||||
expressions of folklore; (ii) in the case of a phonogram the producer
|
||||
being the person or legal entity who first fixes the sounds of a
|
||||
performance or other sounds; and, (iii) in the case of broadcasts, the
|
||||
organization that transmits the broadcast.
|
||||
.
|
||||
f. "Work" means the literary and/or artistic work offered under the
|
||||
terms of this License including without limitation any production in the
|
||||
literary, scientific and artistic domain, whatever may be the mode or
|
||||
form of its expression including digital form, such as a book, pamphlet
|
||||
and other writing; a lecture, address, sermon or other work of the same
|
||||
nature; a dramatic or dramatico-musical work; a choreographic work or
|
||||
entertainment in dumb show; a musical composition with or without words;
|
||||
a cinematographic work to which are assimilated works expressed by a
|
||||
process analogous to cinematography; a work of drawing, painting,
|
||||
architecture, sculpture, engraving or lithography; a photographic work
|
||||
to which are assimilated works expressed by a process analogous to
|
||||
photography; a work of applied art; an illustration, map, plan, sketch
|
||||
or three-dimensional work relative to geography, topography,
|
||||
architecture or science; a performance; a broadcast; a phonogram; a
|
||||
compilation of data to the extent it is protected as a copyrightable
|
||||
work; or a work performed by a variety or circus performer to the extent
|
||||
it is not otherwise considered a literary or artistic work.
|
||||
.
|
||||
g. "You" means an individual or entity exercising rights under this
|
||||
License who has not previously violated the terms of this License with
|
||||
respect to the Work, or who has received express permission from the
|
||||
Licensor to exercise rights under this License despite a previous
|
||||
violation.
|
||||
.
|
||||
h. "Publicly Perform" means to perform public recitations of the Work
|
||||
and to communicate to the public those public recitations, by any means
|
||||
or process, including by wire or wireless means or public digital
|
||||
performances; to make available to the public Works in such a way that
|
||||
members of the public may access these Works from a place and at a place
|
||||
individually chosen by them; to perform the Work to the public by any
|
||||
means or process and the communication to the public of the performances
|
||||
of the Work, including by public digital performance; to broadcast and
|
||||
rebroadcast the Work by any means including signs, sounds or images.
|
||||
.
|
||||
i. "Reproduce" means to make copies of the Work by any means including
|
||||
without limitation by sound or visual recordings and the right of
|
||||
fixation and reproducing fixations of the Work, including storage of a
|
||||
protected performance or phonogram in digital form or other electronic
|
||||
medium.
|
||||
.
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
|
||||
limit, or restrict any uses free from copyright or rights arising from
|
||||
limitations or exceptions that are provided for in connection with the
|
||||
copyright protection under copyright law or other applicable laws.
|
||||
.
|
||||
3. License Grant. Subject to the terms and conditions of this License,
|
||||
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||
perpetual (for the duration of the applicable copyright) license to
|
||||
exercise the rights in the Work as stated below:
|
||||
.
|
||||
a. to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the
|
||||
Collections;
|
||||
.
|
||||
b. to create and Reproduce Adaptations provided that any such
|
||||
Adaptation, including any translation in any medium, takes reasonable
|
||||
steps to clearly label, demarcate or otherwise identify that changes
|
||||
were made to the original Work. For example, a translation could be
|
||||
marked "The original work was translated from English to Spanish," or a
|
||||
modification could indicate "The original work has been modified.";
|
||||
.
|
||||
c. to Distribute and Publicly Perform the Work including as incorporated
|
||||
in Collections; and,
|
||||
.
|
||||
d. to Distribute and Publicly Perform Adaptations.
|
||||
.
|
||||
e. For the avoidance of doubt:
|
||||
.
|
||||
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or compulsory
|
||||
licensing scheme cannot be waived, the Licensor reserves the exclusive
|
||||
right to collect such royalties for any exercise by You of the rights
|
||||
granted under this License;
|
||||
.
|
||||
ii. Waivable Compulsory License Schemes. In those jurisdictions in which
|
||||
the right to collect royalties through any statutory or compulsory
|
||||
licensing scheme can be waived, the Licensor waives the exclusive right
|
||||
to collect such royalties for any exercise by You of the rights granted
|
||||
under this License; and,
|
||||
.
|
||||
iii. Voluntary License Schemes. The Licensor waives the right to collect
|
||||
royalties, whether individually or, in the event that the Licensor is a
|
||||
member of a collecting society that administers voluntary licensing
|
||||
schemes, via that society, from any exercise by You of the rights
|
||||
granted under this License.
|
||||
.
|
||||
The above rights may be exercised in all media and formats whether now
|
||||
known or hereafter devised. The above rights include the right to make
|
||||
such modifications as are technically necessary to exercise the rights
|
||||
in other media and formats. Subject to Section 8(f), all rights not
|
||||
expressly granted by Licensor are hereby reserved.
|
||||
.
|
||||
4. Restrictions. The license granted in Section 3 above is expressly
|
||||
made subject to and limited by the following restrictions:
|
||||
.
|
||||
a. You may Distribute or Publicly Perform the Work only under the terms
|
||||
of this License. You must include a copy of, or the Uniform Resource
|
||||
Identifier (URI) for, this License with every copy of the Work You
|
||||
Distribute or Publicly Perform. You may not offer or impose any terms on
|
||||
the Work that restrict the terms of this License or the ability of the
|
||||
recipient of the Work to exercise the rights granted to that recipient
|
||||
under the terms of the License. You may not sublicense the Work. You
|
||||
must keep intact all notices that refer to this License and to the
|
||||
disclaimer of warranties with every copy of the Work You Distribute or
|
||||
Publicly Perform. When You Distribute or Publicly Perform the Work, You
|
||||
may not impose any effective technological measures on the Work that
|
||||
restrict the ability of a recipient of the Work from You to exercise the
|
||||
rights granted to that recipient under the terms of the License. This
|
||||
Section 4(a) applies to the Work as incorporated in a Collection, but
|
||||
this does not require the Collection apart from the Work itself to be
|
||||
made subject to the terms of this License. If You create a Collection,
|
||||
upon notice from any Licensor You must, to the extent practicable,
|
||||
remove from the Collection any credit as required by Section 4(b), as
|
||||
requested. If You create an Adaptation, upon notice from any Licensor
|
||||
You must, to the extent practicable, remove from the Adaptation any
|
||||
credit as required by Section 4(b), as requested.
|
||||
.
|
||||
b. If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||
Collections, You must, unless a request has been made pursuant to
|
||||
Section 4(a), keep intact all copyright notices for the Work and
|
||||
provide, reasonable to the medium or means You are utilizing: (i) the
|
||||
name of the Original Author (or pseudonym, if applicable) if supplied,
|
||||
and/or if the Original Author and/or Licensor designate another party or
|
||||
parties (e.g., a sponsor institute, publishing entity, journal) for
|
||||
attribution ("Attribution Parties") in Licensor's copyright notice,
|
||||
terms of service or by other reasonable means, the name of such party or
|
||||
parties; (ii) the title of the Work if supplied; (iii) to the extent
|
||||
reasonably practicable, the URI, if any, that Licensor specifies to be
|
||||
associated with the Work, unless such URI does not refer to the
|
||||
copyright notice or licensing information for the Work; and (iv) ,
|
||||
consistent with Section 3(b), in the case of an Adaptation, a credit
|
||||
identifying the use of the Work in the Adaptation (e.g., "French
|
||||
translation of the Work by Original Author," or "Screenplay based on
|
||||
original Work by Original Author"). The credit required by this Section
|
||||
4 (b) may be implemented in any reasonable manner; provided, however,
|
||||
that in the case of a Adaptation or Collection, at a minimum such credit
|
||||
will appear, if a credit for all contributing authors of the Adaptation
|
||||
or Collection appears, then as part of these credits and in a manner at
|
||||
least as prominent as the credits for the other contributing authors.
|
||||
For the avoidance of doubt, You may only use the credit required by this
|
||||
Section for the purpose of attribution in the manner set out above and,
|
||||
by exercising Your rights under this License, You may not implicitly or
|
||||
explicitly assert or imply any connection with, sponsorship or
|
||||
endorsement by the Original Author, Licensor and/or Attribution Parties,
|
||||
as appropriate, of You or Your use of the Work, without the separate,
|
||||
express prior written permission of the Original Author, Licensor and/or
|
||||
Attribution Parties.
|
||||
.
|
||||
c. Except as otherwise agreed in writing by the Licensor or as may be
|
||||
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||
Publicly Perform the Work either by itself or as part of any Adaptations
|
||||
or Collections, You must not distort, mutilate, modify or take other
|
||||
derogatory action in relation to the Work which would be prejudicial to
|
||||
the Original Author's honor or reputation. Licensor agrees that in those
|
||||
jurisdictions (e.g. Japan), in which any exercise of the right granted
|
||||
in Section 3(b) of this License (the right to make Adaptations) would be
|
||||
deemed to be a distortion, mutilation, modification or other derogatory
|
||||
action prejudicial to the Original Author's honor and reputation, the
|
||||
Licensor will waive or not assert, as appropriate, this Section, to the
|
||||
fullest extent permitted by the applicable national law, to enable You
|
||||
to reasonably exercise Your right under Section 3(b) of this License
|
||||
(right to make Adaptations) but not otherwise.
|
||||
.
|
||||
5. Representations, Warranties and Disclaimer
|
||||
.
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
|
||||
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
|
||||
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
|
||||
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||
.
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
|
||||
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
|
||||
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
.
|
||||
7. Termination
|
||||
.
|
||||
a. This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Adaptations or Collections
|
||||
from You under this License, however, will not have their licenses
|
||||
terminated provided such individuals or entities remain in full
|
||||
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
|
||||
survive any termination of this License.
|
||||
.
|
||||
b. Subject to the above terms and conditions, the license granted here
|
||||
is perpetual (for the duration of the applicable copyright in the Work).
|
||||
Notwithstanding the above, Licensor reserves the right to release the
|
||||
Work under different license terms or to stop distributing the Work at
|
||||
any time; provided, however that any such election will not serve to
|
||||
withdraw this License (or any other license that has been, or is
|
||||
required to be, granted under the terms of this License), and this
|
||||
License will continue in full force and effect unless terminated as
|
||||
stated above.
|
||||
.
|
||||
8. Miscellaneous
|
||||
.
|
||||
a. Each time You Distribute or Publicly Perform the Work or a
|
||||
Collection, the Licensor offers to the recipient a license to the Work
|
||||
on the same terms and conditions as the license granted to You under
|
||||
this License.
|
||||
.
|
||||
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
|
||||
offers to the recipient a license to the original Work on the same terms
|
||||
and conditions as the license granted to You under this License.
|
||||
.
|
||||
c. If any provision of this License is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this License, and without further action
|
||||
by the parties to this agreement, such provision shall be reformed to
|
||||
the minimum extent necessary to make such provision valid and
|
||||
enforceable.
|
||||
.
|
||||
d. No term or provision of this License shall be deemed waived and no
|
||||
breach consented to unless such waiver or consent shall be in writing
|
||||
and signed by the party to be charged with such waiver or consent. This
|
||||
License constitutes the entire agreement between the parties with
|
||||
respect to the Work licensed here. There are no understandings,
|
||||
agreements or representatio Work not specified
|
||||
here. Licensor shall not be bound by any additional provisions that may
|
||||
appear in any communication from You.
|
||||
.
|
||||
e. This License may not be modified without the mutual written agreement
|
||||
of the Licensor and You.
|
||||
.
|
||||
f. The rights granted under, and the subject matter referenced, in this
|
||||
License were drafted utilizing the terminology of the Berne Convention
|
||||
for the Protection of Literary and Artistic Works (as amended on
|
||||
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
|
||||
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and
|
||||
the Universal Copyright Convention (as revised on July 24, 1971). These
|
||||
rights and subject matter take effect in the relevant jurisdiction in
|
||||
which the License terms are sought to be enforced according to the
|
||||
corresponding provisions of the implementation of those treaty
|
||||
provisions in the applicable national law. If the standard suite of
|
||||
rights granted under applicable copyright law includes additional rights
|
||||
not granted under this License, such additional rights are deemed to be
|
||||
included in the License; this License is not intended to restrict the
|
||||
license of any rights under applicable law.
|
||||
|
|
14
debian/dump1090-fa.postinst
vendored
14
debian/dump1090-fa.postinst
vendored
|
@ -31,20 +31,6 @@ case "$1" in
|
|||
adduser --system --home /usr/share/$NAME --no-create-home --quiet "$RUNAS"
|
||||
fi
|
||||
|
||||
# create cronjob
|
||||
if ! test -e $CRONFILE; then
|
||||
echo "Creating cronjob in $CRONFILE to periodically update the aircraft database.." >&2
|
||||
MIN=$(($RANDOM % 60))
|
||||
DOM=$(( ($RANDOM % 28) + 1 ))
|
||||
tail -n +4 $TEMPLATECRON | sed -e "s/@USER@/$RUNAS/g" -e "s/@MIN@/$MIN/g" -e "s/@DOM@/$DOM/g" >$CRONFILE
|
||||
fi
|
||||
|
||||
# update the DB
|
||||
echo "Updating aircraft database now.."
|
||||
mkdir -m 0755 -p /var/cache/$NAME
|
||||
chown $RUNAS /var/cache/$NAME
|
||||
su $RUNAS -s /bin/bash -c /usr/share/$NAME/update-aircraft-database.sh || true
|
||||
|
||||
# set up lighttpd
|
||||
echo "Enabling lighttpd integration.." >&2
|
||||
lighty-enable-mod dump1090-fa || true
|
||||
|
|
1
debian/lighttpd/89-dump1090-fa.conf
vendored
1
debian/lighttpd/89-dump1090-fa.conf
vendored
|
@ -4,7 +4,6 @@
|
|||
|
||||
alias.url += (
|
||||
"/dump1090-fa/data/" => "/run/dump1090-fa/",
|
||||
"/dump1090-fa/db/" => "/var/cache/dump1090-fa/db/",
|
||||
"/dump1090-fa/" => "/usr/share/dump1090-fa/html/"
|
||||
)
|
||||
|
||||
|
|
|
@ -145,8 +145,8 @@ void modesInitConfig(void) {
|
|||
Modes.ppm_error = MODES_DEFAULT_PPM;
|
||||
Modes.check_crc = 1;
|
||||
Modes.net_heartbeat_interval = MODES_NET_HEARTBEAT_INTERVAL;
|
||||
Modes.net_output_raw_ports = strdup("30001");
|
||||
Modes.net_input_raw_ports = strdup("30002");
|
||||
Modes.net_input_raw_ports = strdup("30001");
|
||||
Modes.net_output_raw_ports = strdup("30002");
|
||||
Modes.net_output_sbs_ports = strdup("30003");
|
||||
Modes.net_input_beast_ports = strdup("30004,30104");
|
||||
Modes.net_output_beast_ports = strdup("30005");
|
||||
|
|
1
mode_s.c
1
mode_s.c
|
@ -1237,6 +1237,7 @@ void displayModesMessage(struct modesMessage *mm) {
|
|||
}
|
||||
|
||||
printf("\n");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
63
net_io.c
63
net_io.c
|
@ -154,7 +154,12 @@ struct client *createGenericClient(struct net_service *service, int fd)
|
|||
// Return the new client or NULL if the connection failed
|
||||
struct client *serviceConnect(struct net_service *service, char *addr, int port)
|
||||
{
|
||||
int s = anetTcpConnect(Modes.aneterr, addr, port);
|
||||
int s;
|
||||
char buf[20];
|
||||
|
||||
// Bleh.
|
||||
snprintf(buf, 20, "%d", port);
|
||||
s = anetTcpConnect(Modes.aneterr, addr, buf);
|
||||
if (s == ANET_ERR)
|
||||
return NULL;
|
||||
|
||||
|
@ -168,6 +173,7 @@ void serviceListen(struct net_service *service, char *bind_addr, char *bind_port
|
|||
int *fds = NULL;
|
||||
int n = 0;
|
||||
char *p, *end;
|
||||
char buf[128];
|
||||
|
||||
if (service->listener_count > 0) {
|
||||
fprintf(stderr, "Tried to set up the service %s twice!\n", service->descr);
|
||||
|
@ -178,38 +184,41 @@ void serviceListen(struct net_service *service, char *bind_addr, char *bind_port
|
|||
return;
|
||||
|
||||
p = bind_ports;
|
||||
while (*p) {
|
||||
int s;
|
||||
unsigned long port = strtoul(p, &end, 10);
|
||||
if (p == end) {
|
||||
fprintf(stderr,
|
||||
"Couldn't parse port list: %s\n"
|
||||
" %*s^\n",
|
||||
bind_ports, (int)(p - bind_ports), "");
|
||||
while (p && *p) {
|
||||
int newfds[16];
|
||||
int nfds, i;
|
||||
|
||||
end = strpbrk(p, ", ");
|
||||
if (!end) {
|
||||
strncpy(buf, p, sizeof(buf));
|
||||
buf[sizeof(buf)-1] = 0;
|
||||
p = NULL;
|
||||
} else {
|
||||
size_t len = end - p;
|
||||
if (len >= sizeof(buf))
|
||||
len = sizeof(buf) - 1;
|
||||
memcpy(buf, p, len);
|
||||
buf[len] = 0;
|
||||
p = end + 1;
|
||||
}
|
||||
|
||||
nfds = anetTcpServer(Modes.aneterr, buf, bind_addr, newfds, sizeof(newfds));
|
||||
if (nfds == ANET_ERR) {
|
||||
fprintf(stderr, "Error opening the listening port %s (%s): %s\n",
|
||||
buf, service->descr, Modes.aneterr);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
s = anetTcpServer(Modes.aneterr, port, bind_addr);
|
||||
if (s == ANET_ERR) {
|
||||
fprintf(stderr, "Error opening the listening port %lu (%s): %s\n",
|
||||
port, service->descr, Modes.aneterr);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
anetNonBlock(Modes.aneterr, s);
|
||||
|
||||
fds = realloc(fds, (n+1) * sizeof(int));
|
||||
fds = realloc(fds, (n+nfds) * sizeof(int));
|
||||
if (!fds) {
|
||||
fprintf(stderr, "out of memory\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fds[n] = s;
|
||||
++n;
|
||||
|
||||
p = end;
|
||||
if (*p == ',')
|
||||
++p;
|
||||
for (i = 0; i < nfds; ++i) {
|
||||
anetNonBlock(Modes.aneterr, newfds[i]);
|
||||
fds[n++] = newfds[i];
|
||||
}
|
||||
}
|
||||
|
||||
service->listener_count = n;
|
||||
|
@ -259,13 +268,13 @@ void modesInitNet(void) {
|
|||
// awakened by new data arriving. This usually happens a few times every second
|
||||
//
|
||||
static struct client * modesAcceptClients(void) {
|
||||
int fd, port;
|
||||
int fd;
|
||||
struct net_service *s;
|
||||
|
||||
for (s = Modes.services; s; s = s->next) {
|
||||
int i;
|
||||
for (i = 0; i < s->listener_count; ++i) {
|
||||
while ((fd = anetTcpAccept(Modes.aneterr, s->listener_fds[i], NULL, &port)) >= 0) {
|
||||
while ((fd = anetTcpAccept(Modes.aneterr, s->listener_fds[i])) >= 0) {
|
||||
createSocketClient(s, fd);
|
||||
}
|
||||
}
|
||||
|
|
1
public_html/db/0.json
Normal file
1
public_html/db/0.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/06.json
Normal file
1
public_html/db/06.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/1.json
Normal file
1
public_html/db/1.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/2.json
Normal file
1
public_html/db/2.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"01001":{"r":"V5-NAM","t":"F900"},"01028":{"r":"V5-NMF","t":"A343"},"01029":{"r":"V5-NME","t":"A343"},"02031":{"r":"E3-AAQ","t":"B762"}}
|
1
public_html/db/3.json
Normal file
1
public_html/db/3.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/30.json
Normal file
1
public_html/db/30.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/34.json
Normal file
1
public_html/db/34.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/39.json
Normal file
1
public_html/db/39.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/3C.json
Normal file
1
public_html/db/3C.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/3C4.json
Normal file
1
public_html/db/3C4.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/3C6.json
Normal file
1
public_html/db/3C6.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/4.json
Normal file
1
public_html/db/4.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/40.json
Normal file
1
public_html/db/40.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/400.json
Normal file
1
public_html/db/400.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/400A.json
Normal file
1
public_html/db/400A.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"00":{"r":"G-EZJU","t":"B737"},"02":{"r":"G-OZBG","t":"A321"},"04":{"r":"G-CELX","t":"B733"},"05":{"r":"G-EZJW","t":"B737"},"06":{"r":"G-EZJV","t":"B737"},"07":{"r":"G-EZJX","t":"B737"},"08":{"r":"G-TCDV","t":"A321"},"09":{"r":"G-DHJZ","t":"A320"},"0A":{"r":"G-SUEW","t":"A320"},"0B":{"r":"G-KKAZ","t":"A320"},"0D":{"r":"G-VROC","t":"B744"},"0E":{"r":"G-EUUO","t":"A320"},"0F":{"r":"G-ZAPU","t":"B752"},"12":{"r":"G-CELY","t":"B733"},"13":{"r":"G-EZJY","t":"B737"},"14":{"r":"G-EZJZ","t":"B737"},"15":{"r":"G-EZKA","t":"B737"},"17":{"r":"G-BFIV","t":"C177"},"18":{"r":"G-SSXX","t":"EC35"},"19":{"r":"G-ORJA","t":"BE20"},"1C":{"r":"G-ONAV","t":"PA31"},"1F":{"r":"G-TALF","t":"PA24"},"25":{"r":"G-EUUP","t":"A320"},"26":{"r":"G-EUUR","t":"A320"},"27":{"r":"G-CDCX","t":"C750"},"28":{"r":"G-BWWW","t":"JS31"},"29":{"r":"G-CHAI","t":"CL60"},"2A":{"r":"G-JEDM","t":"DH8D"},"2B":{"r":"G-JEDN","t":"DH8D"},"2D":{"r":"G-TTOI","t":"A320"},"2E":{"r":"G-TTOJ","t":"A320"},"30":{"r":"G-TCDA","t":"A321"},"31":{"r":"G-YAKN","t":"YK52"},"32":{"r":"G-CELZ","t":"B733"},"33":{"r":"G-CELA","t":"B733"},"34":{"r":"G-CELB","t":"B733"},"35":{"r":"G-CELE","t":"B733"},"3A":{"r":"G-CTWW","t":"PA34"},"3B":{"r":"G-FILE","t":"PA34"},"3C":{"r":"G-EMAX","t":"PA31"},"3E":{"r":"G-VIPX","t":"PA31"},"40":{"r":"G-SGEC","t":"BE20"},"42":{"r":"G-GSSC","t":"B744"},"43":{"r":"G-JEDO","t":"DH8D"},"45":{"r":"G-HRYZ","t":"P28A"},"47":{"r":"G-VICM","t":"BE33"},"48":{"r":"G-CCGS","t":"D328"},"50":{"r":"G-EZKB","t":"B737"},"51":{"r":"G-EZKC","t":"B737"},"52":{"r":"G-EZKD","t":"B737"},"53":{"r":"G-EZKE","t":"B737"},"54":{"r":"G-EZKF","t":"B737"},"55":{"r":"G-EZKG","t":"B737"},"57":{"r":"G-EZNC","t":"A319"},"58":{"r":"G-WINA","t":"C560"},"5A":{"r":"G-ZXZX","t":"LJ45"},"5B":{"r":"G-DBCA","t":"A319"},"5E":{"r":"G-CELP","t":"B733"},"5F":{"r":"G-CELR","t":"B733"},"60":{"r":"G-OOBF","t":"B752"},"61":{"r":"G-ORTH"},"62":{"r":"G-BHTA","t":"P28A"},"63":{"r":"G-DAAT","t":"EC35"},"66":{"r":"G-MEDJ","t":"A321"},"67":{"r":"G-LIZZ","t":"PA23"},"68":{"r":"G-EZEA","t":"A319"},"69":{"r":"G-EZEB","t":"A319"},"6A":{"r":"G-EZEC","t":"A319"},"6B":{"r":"G-EZED","t":"A319"},"6C":{"r":"G-BCBG","t":"PA23"},"70":{"r":"G-TENG","t":"E300"},"71":{"r":"G-GRGA","t":"H25B"},"73":{"r":"G-VIPA","t":"C182"},"76":{"r":"G-CIFE","t":"BE20"},"77":{"r":"G-JEDP","t":"DH8D"},"78":{"r":"G-JEDR","t":"DH8D"},"79":{"r":"G-JEDT","t":"DH8D"},"7C":{"r":"G-DBCC","t":"A319"},"7D":{"r":"G-DBCB","t":"A319"},"7E":{"r":"G-OZBH","t":"A321"},"7F":{"r":"G-OZBI","t":"A321"},"80":{"r":"G-IBFW","t":"P28R"},"82":{"r":"G-ZAPR","t":"B462"},"83":{"r":"G-JPSX","t":"F900"},"85":{"r":"G-CIFW","t":"BE20"},"86":{"r":"G-OLIV","t":"BE20"},"87":{"r":"G-RAFO","t":"BE20"},"88":{"r":"G-RAFP","t":"BE20"},"89":{"r":"G-YPRS","t":"C550"},"8A":{"r":"G-OOBH","t":"B752"},"8B":{"r":"G-OBNA","t":"PA34"},"8C":{"r":"G-BMLS","t":"P28R"},"8D":{"r":"G-BAMV","t":"DR40"},"8E":{"r":"G-OOPX","t":"A320"},"8F":{"r":"G-VSSH","t":"A346"},"90":{"r":"G-VNAP","t":"A346"},"92":{"r":"G-OAAF","t":"ATP"},"98":{"r":"G-GAJB","t":"AA5"},"99":{"r":"G-STRF","t":"B737"},"9A":{"r":"G-STRH","t":"B737"},"9B":{"r":"G-CBFM","t":"TB21"},"9C":{"r":"G-BTII","t":"AA5"},"9D":{"r":"G-JANT","t":"P28A"},"9F":{"r":"G-EZEG","t":"A319"},"A2":{"r":"G-EZEJ","t":"A319"},"A3":{"r":"G-EZEK","t":"A319"},"A5":{"r":"G-PLAZ","t":"AC11"},"A7":{"r":"G-EZEF","t":"A319"},"B0":{"r":"G-GPMW","t":"P28T"},"B1":{"r":"G-SAMM","t":"C340"},"B2":{"r":"G-DIXY","t":"P28A"},"B3":{"r":"G-JACS","t":"P28A"},"B8":{"r":"G-RIGH","t":"P32R"},"BB":{"r":"G-IDAB","t":"C550"},"BC":{"r":"G-NESW","t":"PA34"},"BD":{"r":"G-JEDU","t":"DH8D"},"BE":{"r":"G-LVLV","t":"CL60"},"C1":{"r":"G-TWIZ","t":"AC11"},"C2":{"r":"G-BALN","t":"C310"},"C5":{"r":"G-OAJS"},"C9":{"r":"G-BFBU","t":"P68"},"CA":{"r":"G-UILT","t":"C303"},"CB":{"r":"G-AZID","t":"C150"},"CC":{"r":"G-ZLOJ","t":"BE36"},"D0":{"r":"G-CBTT","t":"P28A"},"D1":{"r":"G-LGNH","t":"SF34"},"D2":{"r":"G-JEDV","t":"DH8D"},"D4":{"r":"G-RVIX","t":"RV9"},"D6":{"r":"G-ATCX","t":"C182"},"D7":{"r":"G-SENX","t":"PA34"},"D8":{"r":"G-VONS","t":"P32R"},"DA":{"r":"G-OMJC","t":"PRM1"},"DD":{"r":"G-EZEN","t":"A319"},"DE":{"r":"G-EZEO","t":"A319"},"DF":{"r":"G-EZEP","t":"A319"},"E1":{"r":"G-EZET","t":"A319"},"E2":{"r":"G-EZEU","t":"A319"},"E3":{"r":"G-EZEV","t":"A319"},"E4":{"r":"G-EZEW","t":"A319"},"E7":{"r":"G-EZEZ","t":"A319"},"E9":{"r":"G-BNVE","t":"P28A"},"EA":{"r":"G-PECK","t":"PA32"},"EB":{"r":"G-DJJA","t":"P28A"},"ED":{"r":"G-OOBJ","t":"B752"},"EE":{"r":"G-OOBI","t":"B752"},"EF":{"r":"G-FAVS","t":"PA32"},"F0":{"r":"G-IKOS","t":"C550"},"F1":{"r":"G-JEMD","t":"ATP"},"F4":{"r":"G-DNOP","t":"PA46"},"F6":{"r":"G-DRFC"},"F7":{"r":"G-EZAM","t":"A319"},"F8":{"r":"G-EZDC","t":"A319"},"F9":{"r":"G-EZMH","t":"A319"},"FA":{"r":"G-EZSM","t":"A319"},"FB":{"r":"G-EUXC","t":"A321"},"FC":{"r":"G-EUXD","t":"A321"},"FD":{"r":"G-EUXE","t":"A321"},"FE":{"r":"G-EUXF","t":"A321"},"FF":{"r":"G-EUXG","t":"A321"}}
|
1
public_html/db/400C.json
Normal file
1
public_html/db/400C.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"00":{"r":"G-NIVA","t":"EC55"},"01":{"r":"G-CBTN","t":"PA31"},"02":{"r":"G-OAPE","t":"C303"},"05":{"r":"G-OWAL","t":"PA34"},"06":{"r":"G-JETJ","t":"C550"},"07":{"r":"G-ZARI","t":"AA5"},"08":{"r":"G-DMAH","t":"TRIN"},"09":{"r":"G-THOG","t":"B733"},"0A":{"r":"G-THOH","t":"B733"},"0C":{"r":"G-MACA","t":"R22"},"10":{"r":"G-RVRW","t":"PA23"},"11":{"r":"G-MAXI","t":"PA34"},"12":{"r":"G-KWIN","t":"F2TH"},"13":{"r":"G-KWLI","t":"C421"},"16":{"r":"G-TREC","t":"C421"},"18":{"r":"G-OTUI","t":"TRIN"},"19":{"r":"G-DMCS","t":"P28A"},"1A":{"r":"G-BYDF","t":"S76"},"1E":{"r":"G-SVEA","t":"P28A"},"1F":{"r":"G-BGHJ","t":"C172"},"20":{"r":"G-IJYS","t":"JS31"},"21":{"r":"G-BHKJ","t":"C421"},"22":{"r":"G-OSCC","t":"PA32"},"24":{"r":"G-POPA","t":"BE36"},"25":{"r":"G-BVYF","t":"PA31"},"27":{"r":"G-BMMC","t":"C310"},"29":{"r":"G-OBAL","t":"M20P"},"2A":{"r":"G-ATHR","t":"P28A"},"2B":{"r":"G-BTNT","t":"P28A"},"2C":{"r":"G-CBAL","t":"P28A"},"2D":{"r":"G-BNMB","t":"P28A"},"2E":{"r":"G-UAVA","t":"PA30"},"2F":{"r":"G-KVIP","t":"BE20"},"30":{"r":"G-FIFA","t":"C404"},"31":{"r":"G-DIPM","t":"P46T"},"32":{"r":"G-HWAA","t":"EC35"},"33":{"r":"G-BHLX","t":"AA5"},"35":{"r":"G-SAPM","t":"TRIN"},"37":{"r":"G-ATSR","t":"BE35"},"38":{"r":"G-BVES","t":"C340"},"3F":{"r":"G-RVRD","t":"PA23"},"41":{"r":"G-EZNM","t":"A319"},"42":{"r":"G-EJAR","t":"A319"},"43":{"r":"G-EZIA","t":"A319"},"44":{"r":"G-EZIB","t":"A319"},"45":{"r":"G-EZID","t":"A319"},"46":{"r":"G-EZIC","t":"A319"},"47":{"r":"G-EZIE","t":"A319"},"48":{"r":"G-EZIF","t":"A319"},"49":{"r":"G-EZIG","t":"A319"},"4A":{"r":"G-EZIH","t":"A319"},"4B":{"r":"G-EZII","t":"A319"},"4C":{"r":"G-EZIJ","t":"A319"},"4D":{"r":"G-EZIK","t":"A319"},"4E":{"r":"G-EZIL","t":"A319"},"4F":{"r":"G-EZIM","t":"A319"},"50":{"r":"G-EZIN","t":"A319"},"51":{"r":"G-AVNU","t":"P28A"},"52":{"r":"G-OOBL","t":"B763"},"53":{"r":"G-GTDL","t":"A320"},"54":{"r":"G-TCAC","t":"A320"},"55":{"r":"G-OSEA","t":"BN2P"},"56":{"r":"G-TERY","t":"P28A"},"57":{"r":"G-PZAZ","t":"PA31"},"58":{"r":"G-CDHV","t":"R44"},"5A":{"r":"G-STRL","t":"AS50"},"5C":{"r":"G-CDKA","t":"SB20"},"5D":{"r":"G-CDKB","t":"SB20"},"5E":{"r":"G-CGET","t":"B733"},"5F":{"r":"G-ECJM","t":"P28A"},"62":{"r":"G-BWNZ","t":"A109"},"63":{"r":"G-ISAY","t":"JS41"},"67":{"r":"G-NSUK","t":"PA34"},"6A":{"r":"G-GAFA","t":"PA34"},"6B":{"r":"G-BGRE","t":"BE20"},"6C":{"r":"G-VIPV","t":"PA31"},"70":{"r":"G-JECH","t":"DH8D"},"72":{"r":"G-BAVL","t":"PA27"},"73":{"r":"G-EFBP","t":"C172"},"75":{"r":"G-MRJK","t":"A320"},"76":{"r":"G-OZBK","t":"A320"},"79":{"r":"G-BTFT","t":"BE58"},"7A":{"r":"G-JETX","t":"B06"},"7D":{"r":"G-STRI","t":"B733"},"7F":{"r":"G-BOIC","t":"P28R"},"80":{"r":"G-ISHK","t":"C172"},"81":{"r":"G-BYBP","t":"C185"},"83":{"r":"G-BZIT","t":"BE58"},"85":{"r":"G-BOFC","t":"BE76"},"86":{"r":"G-UMMI","t":"PA31"},"89":{"r":"G-ORVR","t":"P68"},"8B":{"r":"G-HUBB","t":"P68"},"8F":{"r":"G-STRJ","t":"B733"},"90":{"r":"G-SCIP","t":"TRIN"},"91":{"r":"G-VALY","t":"TRIN"},"94":{"r":"G-GURN","t":"PA31"},"A2":{"r":"G-BTNC","t":"AS65"},"A4":{"r":"G-GBEN","t":"R44"},"A5":{"r":"G-WOWD","t":"DH8C"},"A6":{"r":"G-CCXJ","t":"C340"},"A9":{"r":"G-FIND","t":"F406"},"AA":{"r":"G-TURF","t":"F406"},"AC":{"r":"G-NOSE","t":"C402"},"AD":{"r":"G-MIND","t":"C404"},"AF":{"r":"G-SOUL","t":"C310"},"B0":{"r":"G-BODY","t":"C310"},"B2":{"r":"G-TWIN","t":"PA44"},"B4":{"r":"G-WLDN","t":"R44"},"B9":{"r":"G-LGNI","t":"SF34"},"BA":{"r":"G-BRNV","t":"P28A"},"BB":{"r":"G-JREE","t":"M7"},"BC":{"r":"G-DSID","t":"PA34"},"BD":{"r":"G-BJCW","t":"P32R"},"C0":{"r":"G-ILET","t":"R44"},"C3":{"r":"G-AZWY","t":"PA24"},"C5":{"r":"G-BMJO","t":"PA34"},"C6":{"r":"G-CIEL","t":"C560"},"C9":{"r":"G-REST","t":"BE35"},"CA":{"r":"G-BRDO","t":"C177"},"CB":{"r":"G-CDLT","t":"H25B"},"CC":{"r":"G-BJNZ","t":"PA27"},"CF":{"r":"G-EZIO","t":"A319"},"D0":{"r":"G-EZIP","t":"A319"},"D1":{"r":"G-EZIR","t":"A319"},"D2":{"r":"G-EZIS","t":"A319"},"D3":{"r":"G-EZIT","t":"A319"},"D4":{"r":"G-EZIU","t":"A319"},"D5":{"r":"G-EZIV","t":"A319"},"D6":{"r":"G-EZIW","t":"A319"},"D7":{"r":"G-EZIX","t":"A319"},"D8":{"r":"G-EZIY","t":"A319"},"D9":{"r":"G-OEWD","t":"PRM1"},"DA":{"r":"G-BYKP","t":"P28T"},"DB":{"r":"G-EMCA","t":"AC11"},"DC":{"r":"G-LARE","t":"PA30"},"DE":{"r":"G-HANG","t":"DA42"},"DF":{"r":"G-CDKR","t":"DA42"},"E1":{"r":"G-SLCT","t":"DA42"},"E2":{"r":"G-SELC","t":"DA42"},"E3":{"r":"G-RALA","t":"R44"},"E7":{"r":"G-BNYB","t":"P28A"},"E8":{"r":"G-MSPT","t":"EC35"},"EA":{"r":"G-REGE","t":"R44"},"EB":{"r":"G-EUXI","t":"A321"},"EE":{"r":"G-LGNJ","t":"SF34"},"EF":{"r":"G-LGNK","t":"SF34"},"F2":{"r":"G-CDDG","t":"P28A"},"F3":{"r":"G-RAGT","t":"PA32"},"F4":{"r":"G-JUPP","t":"P32T"},"F5":{"r":"G-AZGL","t":"RALL"},"F9":{"r":"G-JECI","t":"DH8D"},"FB":{"r":"G-GYMM","t":"P28A"},"FD":{"r":"G-UIST","t":"JS31"},"FE":{"r":"G-LNKS","t":"JS31"}}
|
1
public_html/db/400D.json
Normal file
1
public_html/db/400D.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"00":{"r":"G-CDLY","t":"SR20"},"01":{"r":"G-CTCE","t":"DA42"},"02":{"r":"G-CTCF","t":"DA42"},"03":{"r":"G-CTCG","t":"DA42"},"04":{"r":"G-JKMI","t":"DA42"},"07":{"r":"G-PVPC","t":"PC12"},"08":{"r":"G-COVB","t":"P28A"},"0B":{"r":"G-PZIZ","t":"PA31"},"0C":{"r":"G-BEJV","t":"PA34"},"0D":{"r":"G-BCVY","t":"PA34"},"0E":{"r":"G-OHLI","t":"R44"},"0F":{"r":"G-WALI","t":"R44"},"14":{"r":"G-GREY","t":"PA46"},"15":{"r":"G-BDUN","t":"PA34"},"16":{"r":"G-BHYG","t":"PA34"},"17":{"r":"G-BXRH","t":"C185"},"1A":{"r":"G-BPRJ","t":"AS55"},"1B":{"r":"G-BVLG","t":"AS55"},"1C":{"r":"G-NETR","t":"AS55"},"23":{"r":"G-CBBC","t":"BDOG"},"25":{"r":"G-BOCG","t":"PA34"},"27":{"r":"G-LSAB","t":"B752"},"29":{"r":"G-BLFI","t":"P28A"},"2D":{"r":"G-RATV","t":"P28T"},"2E":{"r":"G-OTVR","t":"PA34"},"30":{"r":"G-VWKD","t":"A346"},"36":{"r":"G-NMAK","t":"A319"},"37":{"r":"G-NFLA","t":"JS31"},"38":{"r":"G-MOOO","t":"LJ45"},"3A":{"r":"G-ATSZ","t":"PA30"},"3C":{"r":"G-OVIN","t":"AC11"},"3D":{"r":"G-SIGN"},"43":{"r":"G-LINE","t":"AS55"},"44":{"r":"G-BOPA","t":"P28A"},"45":{"r":"G-OOTT","t":"AS50"},"46":{"r":"G-MRMJ","t":"AS65"},"48":{"r":"G-CHEY","t":"PA31"},"4A":{"r":"G-CGRI","t":"A109"},"4B":{"r":"G-OOBM","t":"B763"},"4C":{"r":"G-IMAC","t":"CL60"},"4D":{"r":"G-BOUL","t":"PA34"},"4E":{"r":"G-BOWE","t":"PA34"},"4F":{"r":"G-BSRR","t":"C182"},"50":{"r":"G-TCEE","t":"H500"},"51":{"r":"G-BGPA","t":"C182"},"57":{"r":"G-VBLU","t":"A346"},"58":{"r":"G-VWIN","t":"A346"},"59":{"r":"G-SVPN","t":"P32R"},"5A":{"r":"G-DBCG","t":"A319"},"5B":{"r":"G-DBCH","t":"A319"},"5D":{"r":"G-LGKO","t":"CL60"},"5E":{"r":"G-PREI","t":"PRM1"},"60":{"r":"G-CSBD","t":"P28B"},"61":{"r":"G-OTVI","t":"R44"},"62":{"r":"G-JBIZ","t":"C550"},"63":{"r":"G-BTZN"},"64":{"r":"G-PCOP","t":"BE20"},"68":{"r":"G-VVBK","t":"PA34"},"69":{"r":"G-EZIZ","t":"A319"},"6A":{"r":"G-CDNK","t":"LJ45"},"6B":{"r":"G-GLTT","t":"PA31"},"6C":{"r":"G-WAGS","t":"R44"},"6D":{"r":"G-SHAF","t":"R44"},"6E":{"r":"G-EVEV","t":"R44"},"70":{"r":"G-OSPY","t":"SR20"},"72":{"r":"G-SEEK","t":"C210"},"74":{"r":"G-AWUZ","t":"C172"},"77":{"r":"G-FULM","t":"S76"},"78":{"r":"G-CHIP","t":"P28A"},"7B":{"r":"G-BOUM","t":"PA34"},"81":{"r":"G-OPSS","t":"SR20"},"84":{"r":"G-ELAM","t":"PA30"},"85":{"r":"G-ARRD","t":"DR10"},"86":{"r":"G-CCVM","t":"RV7"},"87":{"r":"G-TTIE","t":"A321"},"89":{"r":"G-MEDL","t":"A321"},"8A":{"r":"G-PEJM","t":"P28A"},"8B":{"r":"G-EZAA","t":"A319"},"8C":{"r":"G-EZAB","t":"A319"},"8D":{"r":"G-EZAC","t":"A319"},"8E":{"r":"G-EZAD","t":"A319"},"8F":{"r":"G-EZAE","t":"A319"},"90":{"r":"G-EZAF","t":"A319"},"91":{"r":"G-EZAG","t":"A319"},"92":{"r":"G-EZAH","t":"A319"},"93":{"r":"G-KEEF","t":"AC11"},"94":{"r":"G-NWAA","t":"EC35"},"97":{"r":"G-FPLE","t":"BE20"},"98":{"r":"G-SIRA","t":"E135"},"9A":{"r":"G-ROUS","t":"PA34"},"9B":{"r":"G-VONJ","t":"PRM1"},"9C":{"r":"G-HAFT","t":"DA42"},"9E":{"r":"G-ORZA","t":"DA42"},"9F":{"r":"G-DMND","t":"DA42"},"A0":{"r":"G-DBCI","t":"A319"},"A2":{"r":"G-NJIM","t":"P32R"},"A3":{"r":"G-ODHB","t":"R44"},"A4":{"r":"G-IFTF","t":"H25B"},"AB":{"r":"G-GDSG","t":"A109"},"AC":{"r":"G-DASA","t":"FA50"},"AD":{"r":"G-EZAI","t":"A319"},"AE":{"r":"G-EZAJ","t":"A319"},"AF":{"r":"G-EZAK","t":"A319"},"B0":{"r":"G-EZAL","t":"A319"},"B1":{"r":"G-EZAN","t":"A319"},"B2":{"r":"G-EZAO","t":"A319"},"B3":{"r":"G-EZAP","t":"A319"},"B4":{"r":"G-EZAS","t":"A319"},"B5":{"r":"G-ENHP","t":"EN48"},"B6":{"r":"G-PPLC","t":"C560"},"B8":{"r":"G-CEGR","t":"BE20"},"B9":{"r":"G-BFBR","t":"P28A"},"BA":{"r":"G-FJET","t":"C550"},"BB":{"r":"G-GOAC","t":"PA34"},"BD":{"r":"G-JANI","t":"R44"},"BE":{"r":"G-BLXA","t":"TRIN"},"C2":{"r":"G-SASC","t":"BE20"},"C3":{"r":"G-SASD","t":"BE20"},"C4":{"r":"G-RUES","t":"HR10"},"C5":{"r":"G-IINI","t":"RV9"},"C7":{"r":"G-OLFT","t":"AC11"},"C8":{"r":"G-CJAG","t":"PRM1"},"CA":{"r":"G-HDEF","t":"R44"},"CB":{"r":"G-WCCI","t":"E135"},"CE":{"r":"G-SHAR","t":"C182"},"CF":{"r":"G-CDSR","t":"LJ45"},"D0":{"r":"G-IJAG","t":"C182"},"D1":{"r":"G-SYLJ","t":"E135"},"D2":{"r":"G-MATX","t":"PC12"},"D3":{"r":"G-GRND","t":"A109"},"D4":{"r":"G-CTCD","t":"DA42"},"D5":{"r":"G-OPFR","t":"DA42"},"D8":{"r":"G-CDSF","t":"DA40"},"D9":{"r":"G-KAFT","t":"DA40"},"DA":{"r":"G-LAFT","t":"DA40"},"DB":{"r":"G-OOGA","t":"GA7"},"DC":{"r":"G-JECJ","t":"DH8D"},"DE":{"r":"G-LACI","t":"C172"},"DF":{"r":"G-CDTA"},"E0":{"r":"G-RJXM","t":"E145"},"E1":{"r":"G-TESI","t":"SIRA"},"E2":{"r":"G-JETO","t":"C550"},"E5":{"r":"G-HIJK","t":"C421"},"E6":{"r":"G-ISLB","t":"JS32"},"E7":{"r":"G-ISLC","t":"JS32"},"E8":{"r":"G-ISLD","t":"JS32"},"E9":{"r":"G-XXRS","t":"GLEX"},"EA":{"r":"G-PRKR","t":"CL60"},"EB":{"r":"G-OBSM","t":"R44"},"ED":{"r":"G-RULE","t":"R44"},"F0":{"r":"G-RMBM","t":"R44"},"F1":{"r":"G-GEMM","t":"SR20"},"F2":{"r":"G-IFTE","t":"H25B"},"F3":{"r":"G-JETA","t":"C550"},"F4":{"r":"G-VUEZ","t":"C550"},"F6":{"r":"G-JECL","t":"DH8D"},"F7":{"r":"G-JECK","t":"DH8D"},"F9":{"r":"G-VANA","t":"GA8"},"FA":{"r":"G-BXOZ","t":"P28A"},"FC":{"r":"G-EMAA","t":"EC35"},"FD":{"r":"G-CDVB","t":"A109"},"FF":{"r":"G-CDVE","t":"A109"}}
|
1
public_html/db/400E.json
Normal file
1
public_html/db/400E.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/400F.json
Normal file
1
public_html/db/400F.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"00":{"r":"G-EZBF","t":"A319"},"01":{"r":"G-EZBG","t":"A319"},"02":{"r":"G-EZBH","t":"A319"},"03":{"r":"G-JOAL","t":"BE20"},"06":{"r":"G-CCVP","t":"BE58"},"08":{"r":"G-GSYJ","t":"DA42"},"0A":{"r":"G-NTWK","t":"AS55"},"0B":{"r":"G-VRED","t":"A346"},"10":{"r":"G-CLIF","t":"C42"},"11":{"r":"G-SARM","t":"C42"},"12":{"r":"G-TBEA","t":"C25A"},"14":{"r":"G-ARJU","t":"PA23"},"15":{"r":"G-DIAM","t":"DA40"},"18":{"r":"G-RASA","t":"DA42"},"1C":{"r":"G-ZUMO","t":"PC12"},"1F":{"r":"G-YBAA","t":"C172"},"20":{"r":"G-CEAU","t":"R44"},"21":{"r":"G-HDEW","t":"P32R"},"22":{"r":"G-MAJW","t":"JS41"},"25":{"r":"G-MAJX","t":"JS41"},"26":{"r":"G-MAJZ","t":"JS41"},"28":{"r":"G-MPSA","t":"BK17"},"29":{"r":"G-MPSB","t":"BK17"},"2A":{"r":"G-MPSC","t":"BK17"},"2B":{"r":"G-CDZT","t":"BE20"},"2C":{"r":"G-YEOM","t":"PA31"},"30":{"r":"G-SPYS","t":"R44"},"31":{"r":"G-TCXA","t":"A332"},"32":{"r":"G-SAIG","t":"R44"},"34":{"r":"G-HTRL","t":"PA34"},"36":{"r":"G-EEBB","t":"S76"},"3A":{"r":"G-NETB","t":"SR22"},"3C":{"r":"G-CBZX","t":"MCR1"},"3D":{"r":"G-FSEU","t":"BE20"},"3E":{"r":"G-ISSW","t":"EC55"},"3F":{"r":"G-ISSV","t":"EC55"},"40":{"r":"G-ISSU","t":"EC55"},"41":{"r":"G-MAMD","t":"BE20"},"42":{"r":"G-PDGK","t":"AS65"},"43":{"r":"G-FBEB","t":"E190"},"44":{"r":"G-JIBO","t":"JS31"},"46":{"r":"G-MAJY","t":"JS41"},"47":{"r":"G-VUEM","t":"C501"},"48":{"r":"G-RVMB","t":"RV9"},"4A":{"r":"G-PLAL","t":"EC35"},"4B":{"r":"G-BIMU","t":"S61"},"4C":{"r":"G-LSAE","t":"B752"},"4D":{"r":"G-BYTB","t":"TRIN"},"4E":{"r":"G-TAAB","t":"SR22"},"52":{"r":"G-CDXK","t":"DA42"},"53":{"r":"G-OWAR","t":"P28A"},"61":{"r":"G-GSSO","t":"GLF5"},"62":{"r":"G-BURT","t":"P28A"},"63":{"r":"G-VWEB","t":"A346"},"65":{"r":"G-BSPK","t":"C195"},"67":{"r":"G-DOLY","t":"C303"},"68":{"r":"G-MOOR","t":"TOBA"},"6A":{"r":"G-CCEJ","t":"EV97"},"6B":{"r":"G-RVCL","t":"RV6"},"6D":{"r":"G-CBMP","t":"C82R"},"6F":{"r":"G-BPGU","t":"P28A"},"70":{"r":"G-GUYS","t":"PA34"},"76":{"r":"G-XELA","t":"R44"},"77":{"r":"G-EEZR","t":"R44"},"78":{"r":"G-LOVB","t":"JS31"},"7B":{"r":"G-BEVG","t":"PA34"},"7F":{"r":"G-CDYK","t":"RJ85"},"82":{"r":"G-OCCY","t":"DA42"},"83":{"r":"G-OCCZ","t":"DA42"},"86":{"r":"G-WOFM","t":"A109"},"8C":{"r":"G-DAKM","t":"DA40"},"8D":{"r":"G-VEZE","t":"VEZE"},"8E":{"r":"G-AEDU","t":"DH90"},"91":{"r":"G-MEET","t":"LJ45"},"96":{"r":"G-CGFD","t":"CL60"},"99":{"r":"G-DBCJ","t":"A319"},"9A":{"r":"G-DBCK","t":"A319"},"9D":{"r":"G-GTJM","t":"EC20"},"A4":{"r":"G-WJCJ","t":"EC55"},"A5":{"r":"G-BHDX","t":"C172"},"A6":{"r":"G-INDC","t":"C303"},"A7":{"r":"G-KALS","t":"CL30"},"A8":{"r":"G-OLDK","t":"LJ45"},"A9":{"r":"G-SVSB","t":"C680"},"AA":{"r":"G-PKRG","t":"C560"},"AE":{"r":"G-AXZP","t":"PA23"},"AF":{"r":"G-CEDG","t":"R44"},"B1":{"r":"G-SAMJ","t":"P68"},"B5":{"r":"G-LLMW","t":"DA42"},"B6":{"r":"G-JKMH","t":"DA42"},"B7":{"r":"G-PETS","t":"DA42"},"B8":{"r":"G-OCCD","t":"DA40"},"B9":{"r":"G-OCCE","t":"DA40"},"BA":{"r":"G-JECP","t":"DH8D"},"BB":{"r":"G-BMKD","t":"BE9L"},"BC":{"r":"G-VVTV","t":"DA42"},"BD":{"r":"G-OCCF","t":"DA40"},"BE":{"r":"G-OCCG","t":"DA40"},"C1":{"r":"G-GFEA","t":"C172"},"C2":{"r":"G-CEFG","t":"B763"},"C3":{"r":"G-JVBP","t":"EV97"},"C4":{"r":"G-AZAB","t":"PA30"},"C5":{"r":"G-BHBG","t":"P32R"},"C7":{"r":"G-OUNI","t":"SR20"},"C8":{"r":"G-TAAC","t":"SR20"},"CB":{"r":"G-PURL","t":"P32R"},"CE":{"r":"G-HARK","t":"CL60"},"CF":{"r":"G-SFCJ","t":"C525"},"D2":{"r":"G-BMDK","t":"PA34"},"D3":{"r":"G-LEVO","t":"R44"},"D5":{"r":"G-CECX","t":"R44"},"D6":{"r":"G-GENI","t":"R44"},"D9":{"r":"G-JJAB","t":"JAB4"},"DA":{"r":"G-EZBI","t":"A319"},"DB":{"r":"G-EZBJ","t":"A319"},"DC":{"r":"G-EZBK","t":"A319"},"DD":{"r":"G-EZBL","t":"A319"},"DE":{"r":"G-EZBM","t":"A319"},"DF":{"r":"G-EZBN","t":"A319"},"E0":{"r":"G-EZBO","t":"A319"},"E1":{"r":"G-EZBP","t":"A319"},"E2":{"r":"G-EZBR","t":"A319"},"E3":{"r":"G-EZBT","t":"A319"},"E5":{"r":"G-ILLG","t":"R44"},"E6":{"r":"G-BRME","t":"P28A"},"E7":{"r":"G-EDCS","t":"BE40"},"E8":{"r":"G-ULES","t":"AS50"},"E9":{"r":"G-RJXN","t":"E145"},"EA":{"r":"G-RJXO","t":"E145"},"EB":{"r":"G-BUUR","t":"ATP"},"ED":{"r":"G-OMRH","t":"C550"},"EE":{"r":"G-SARV","t":"RV4"},"EF":{"r":"G-AIST","t":"SPIT"},"F0":{"r":"G-OCCH","t":"DA40"},"F1":{"r":"G-OCCK","t":"DA40"},"F2":{"r":"G-FDZA","t":"B738"},"F3":{"r":"G-FDZB","t":"B738"},"F4":{"r":"G-FDZD","t":"B738"},"F5":{"r":"G-OCCL","t":"DA40"},"F6":{"r":"G-OCCM","t":"DA40"},"F7":{"r":"G-OCCN","t":"DA40"},"F8":{"r":"G-TRUE","t":"H500"},"FD":{"r":"G-BHIB","t":"C182"},"FE":{"r":"G-FBEC","t":"E190"}}
|
1
public_html/db/401.json
Normal file
1
public_html/db/401.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/405.json
Normal file
1
public_html/db/405.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/406.json
Normal file
1
public_html/db/406.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/4062.json
Normal file
1
public_html/db/4062.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"04":{"r":"G-LATE","t":"F2TH"},"06":{"r":"G-RSCU","t":"A109"},"08":{"r":"G-HEMZ","t":"A109"},"0B":{"r":"G-MACN","t":"SR22"},"0E":{"r":"G-CGGU","t":"CL60"},"10":{"r":"G-EDEO","t":"BE24"},"12":{"r":"G-EGVO","t":"F900"},"17":{"r":"G-DLAA","t":"C208"},"1A":{"r":"G-CGGW","t":"MT"},"1B":{"r":"G-STBA","t":"B77W"},"1C":{"r":"G-STBB","t":"B77W"},"1D":{"r":"G-STBC","t":"B77W"},"1E":{"r":"G-RIZA","t":"PRM1"},"22":{"r":"G-LCYJ","t":"E190"},"25":{"r":"G-HCFC","t":"A109"},"28":{"r":"G-EZTP","t":"A320"},"29":{"r":"G-EZTR","t":"A320"},"2A":{"r":"G-EZTS","t":"A320"},"2B":{"r":"G-EZTT","t":"A320"},"2C":{"r":"G-EZTU","t":"A320"},"2D":{"r":"G-EZTV","t":"A320"},"2E":{"r":"G-EZTW","t":"A320"},"2F":{"r":"G-EZTX","t":"A320"},"30":{"r":"G-LCYK","t":"E190"},"31":{"r":"G-LCYL","t":"E190"},"37":{"r":"G-TSLS","t":"GL5T"},"38":{"r":"G-JOEB","t":"SR22"},"39":{"r":"G-DTFL","t":"P46T"},"3A":{"r":"G-PBAT","t":"CRUZ"},"3E":{"r":"G-OMSA","t":"FDCT"},"3F":{"r":"G-CGJT","t":"CRUZ"},"40":{"r":"G-MCAN","t":"A109"},"41":{"r":"G-SHSI","t":"E135"},"43":{"r":"G-LUEK","t":"C182"},"45":{"r":"G-JONT","t":"SR22"},"48":{"r":"G-CGHD","t":"C172"},"4E":{"r":"G-EUYG","t":"A320"},"4F":{"r":"G-EUYH","t":"A320"},"50":{"r":"G-EUYI","t":"A320"},"54":{"r":"G-CGID","t":"PA31"},"55":{"r":"G-CGHI","t":"F2TH"},"66":{"r":"G-LEAX","t":"C56X"},"67":{"r":"G-SONE","t":"C25A"},"6B":{"r":"G-HUBY","t":"E135"},"6D":{"r":"G-CGHW","t":"CRUZ"},"6E":{"r":"G-GKRC","t":"C180"},"70":{"r":"G-ROKO","t":"NG4"},"78":{"r":"G-CGHY","t":"H25B"},"79":{"r":"G-LCYM","t":"E190"},"7A":{"r":"G-YROZ","t":"CDUS"},"7D":{"r":"G-OMSV","t":"BE20"},"80":{"r":"G-CGLR","t":"CRUZ"},"87":{"r":"G-HAYY","t":"CRUZ"},"89":{"r":"G-ISCD","t":"CRUZ"},"8C":{"r":"G-JOHA","t":"SR20"},"8F":{"r":"G-COBM","t":"BE30"},"90":{"r":"G-COBI","t":"B350"},"92":{"r":"G-CGIL","t":"CRUZ"},"95":{"r":"G-EMSA","t":"CRUZ"},"A3":{"r":"G-OOBP","t":"B752"},"A4":{"r":"G-OOBN","t":"B752"},"A6":{"r":"G-PLAR","t":"RV9"},"B0":{"r":"G-REAF","t":"JAB4"},"B1":{"r":"G-EVPH"},"B6":{"r":"G-XCRJ","t":"RV9"},"B7":{"r":"G-KANL","t":"GLEX"},"B8":{"r":"G-PVEL","t":"GL5T"},"B9":{"r":"G-WINR","t":"R22"},"BA":{"r":"G-CKSC","t":"CRUZ"},"BF":{"r":"G-DAVM","t":"CP10"},"C0":{"r":"G-CGJA","t":"CL60"},"C1":{"r":"G-CGLZ","t":"ULAC"},"C9":{"r":"G-ZMED","t":"LJ35"},"CD":{"r":"G-CGJH","t":"ULAC"},"D1":{"r":"G-KUIP","t":"CRUZ"},"D2":{"r":"G-POLA","t":"EC35"},"D4":{"r":"G-CGMF","t":"C56X"},"D5":{"r":"G-LSAK","t":"B752"},"D8":{"r":"G-TVHB","t":"EC35"},"DC":{"r":"G-CGJS","t":"CRUZ"},"E0":{"r":"G-OBOF","t":"GX"},"E1":{"r":"G-RMMA","t":"GL5T"},"E2":{"r":"G-CGJN","t":"RV7"},"E3":{"r":"G-VKGO","t":"E50P"},"E5":{"r":"G-LOOC","t":"C172"},"E9":{"r":"G-CGKY","t":"C182"},"EC":{"r":"G-SCVF","t":"CRUZ"},"EF":{"r":"G-XXZZ","t":"LJ60"},"F3":{"r":"G-CGMP","t":"CRUZ"},"F6":{"r":"G-JDRD","t":"ULAC"},"FF":{"r":"G-ZOOG","t":"P06T"}}
|
1
public_html/db/42.json
Normal file
1
public_html/db/42.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/43.json
Normal file
1
public_html/db/43.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/43C.json
Normal file
1
public_html/db/43C.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/44.json
Normal file
1
public_html/db/44.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/45.json
Normal file
1
public_html/db/45.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/47.json
Normal file
1
public_html/db/47.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/48.json
Normal file
1
public_html/db/48.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/49.json
Normal file
1
public_html/db/49.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/4B.json
Normal file
1
public_html/db/4B.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/4B1.json
Normal file
1
public_html/db/4B1.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/4C.json
Normal file
1
public_html/db/4C.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"0188":{"r":"YU-AMI","t":"IL76"},"01A3":{"r":"YU-AND","t":"B733"},"01A5":{"r":"YU-ANF","t":"B733"},"01A8":{"r":"YU-ANI","t":"B733"},"01A9":{"r":"YU-ANJ","t":"B733"},"01AA":{"r":"YU-ANK","t":"B733"},"01AB":{"r":"YU-ANL","t":"B733"},"01AF":{"r":"YU-ANP","t":"B732"},"01B5":{"r":"YU-ANV","t":"B733"},"01B6":{"r":"YU-ANW","t":"B733"},"01CD":{"r":"YU-AON","t":"B733"},"01D2":{"r":"YU-AOS","t":"B734"},"01D4":{"r":"YU-AOU","t":"B733"},"01D5":{"r":"YU-AOV","t":"B733"},"01E0":{"r":"YU-APA","t":"A319"},"01E1":{"r":"YU-APB","t":"A319"},"01E2":{"r":"YU-APC","t":"A319"},"01E3":{"r":"YU-APD","t":"A319"},"01E4":{"r":"YU-APE","t":"A319"},"01E5":{"r":"YU-APF","t":"A319"},"01E6":{"r":"YU-APG","t":"A320"},"01E7":{"r":"YU-APH","t":"A320"},"01E8":{"r":"YU-API","t":"A319"},"01E9":{"r":"YU-APJ","t":"A319"},"05A0":{"r":"YU-BNA","t":"FA50"},"0639":{"r":"YU-BRZ","t":"LJ31"},"0646":{"r":"YU-BSG","t":"C550"},"064C":{"r":"YU-BSM","t":"C550"},"0653":{"r":"YU-BST","t":"C525"},"0661":{"r":"YU-BTB","t":"C550"},"066C":{"r":"YU-BTM","t":"C650"},"066D":{"r":"YU-BTN","t":"C25B"},"0694":{"r":"YU-BUU","t":"C25A"},"072C":{"r":"YU-BZM","t":"C56X"},"0739":{"r":"YU-BZZ","t":"C550"},"1C93":{"r":"YU-HET","t":"GAZL"},"1C98":{"r":"YU-HEY","t":"GAZL"},"1D82":{"r":"YU-HMC","t":"GAZL"},"3274":{"r":"YU-MTU","t":"C525"},"498A":{"r":"YU-SMK","t":"C56X"},"49E0":{"r":"YU-SPA","t":"C56X"},"49E1":{"r":"YU-SPB","t":"C56X"},"49E2":{"r":"YU-SPC","t":"C56X"},"49EC":{"r":"YU-SPM","t":"C510"},"4AAB":{"r":"YU-SVL","t":"C56X"},"800A":{"r":"5B-DAW","t":"A320"},"800D":{"r":"5B-DBA","t":"A320"},"800E":{"r":"5B-DBB","t":"A320"},"800F":{"r":"5B-DBC","t":"A320"},"8012":{"r":"5B-DBD","t":"A320"},"801E":{"r":"5B-DBO","t":"A319"},"801F":{"r":"5B-DBP","t":"A319"},"8020":{"r":"5B-DBS","t":"A332"},"8021":{"r":"5B-DBT","t":"A332"},"8022":{"r":"5B-DBU","t":"B738"},"8023":{"r":"5B-DBV","t":"B738"},"8025":{"r":"5B-DBX","t":"B738"},"802D":{"r":"5B-DBZ","t":"B738"},"8031":{"r":"5B-CKO","t":"F2TH"},"8032":{"r":"5B-DBR","t":"B738"},"8037":{"r":"5B-DCF","t":"A319"},"803A":{"r":"5B-DCG","t":"A320"},"803B":{"r":"5B-DCH","t":"A320"},"803D":{"r":"5B-DCJ","t":"A320"},"803E":{"r":"5B-DCK","t":"A320"},"803F":{"r":"5B-DCL","t":"A320"},"8040":{"r":"5B-DCM","t":"A320"},"8046":{"r":"5B-DCN","t":"A319"},"804C":{"r":"5B-DCO","t":"A321"},"804D":{"r":"5B-DCP","t":"A321"},"C0D5":{"r":"TF-BBD","t":"B733"},"C0D9":{"r":"TF-BBE","t":"B733"},"C0DA":{"r":"TF-BBF","t":"B733"},"C0DB":{"r":"TF-BBG","t":"B733"},"C0DC":{"r":"TF-BBH","t":"B734"},"C0DD":{"r":"TF-TNM","t":"B734"},"C0DE":{"r":"TF-BBI","t":"B733"},"C0DF":{"r":"TF-BBJ","t":"B734"},"C1A2":{"r":"TF-ELF","t":"A306"},"C1AC":{"r":"TF-ELK","t":"A306"},"C1BC":{"r":"TF-NPA","t":"J328"},"C264":{"r":"TF-FID","t":"B752"},"C265":{"r":"TF-FIE","t":"B752"},"C266":{"r":"TF-CIB","t":"B752"},"C267":{"r":"TF-LLX","t":"B752"},"C268":{"r":"TF-FIC","t":"B752"},"C269":{"r":"TF-FIA","t":"B752"},"C26A":{"r":"TF-FIY","t":"B752"},"C26B":{"r":"TF-FIZ","t":"B752"},"C26C":{"r":"TF-FIK","t":"B752"},"C26D":{"r":"TF-IST","t":"B752"},"C26F":{"r":"TF-FIW","t":"B752"},"C270":{"r":"TF-ISF","t":"B752"},"C271":{"r":"TF-ISK","t":"B752"},"C272":{"r":"TF-ISD","t":"B752"},"C273":{"r":"TF-FIT","t":"B752"},"C274":{"r":"TF-FIS","t":"B752"},"C277":{"r":"TF-FIK","t":"B752"},"C29E":{"r":"TF-FII","t":"B752"},"C29F":{"r":"TF-FIH","t":"B752"},"C2A2":{"r":"TF-FIJ","t":"B752"},"C2A3":{"r":"TF-FIN","t":"B752"},"C2A5":{"r":"TF-FIR","t":"B752"},"C2A6":{"r":"TF-FIO","t":"B752"},"C2A7":{"r":"TF-FIP","t":"B752"},"C2AC":{"r":"TF-FIG","t":"B752"},"C2AD":{"r":"TF-FIV","t":"B752"},"C2AE":{"r":"TF-FIX","t":"B753"},"C2C4":{"r":"TF-FIB","t":"B763"},"C2C5":{"r":"TF-FIU","t":"B752"},"C2C9":{"r":"TF-MIK","t":"J328"},"C2CC":{"r":"TF-NPB","t":"J328"},"C334":{"r":"TF-JMO","t":"F50"},"C394":{"r":"TF-ATX","t":"B742"},"C3B4":{"r":"TF-ARJ","t":"B742"},"C3B7":{"r":"TF-ARM","t":"B742"},"C3BD":{"r":"TF-ARP","t":"B742"},"C3C8":{"r":"TF-AME","t":"B743"},"C3C9":{"r":"TF-AMI","t":"B744"},"C3CD":{"r":"TF-AMJ","t":"B743"},"C3D2":{"r":"TF-AMP","t":"B744"},"C3D6":{"r":"TF-AAA","t":"B742"},"C3D7":{"r":"TF-AAB","t":"B742"},"C3D8":{"r":"TF-AMS","t":"B744"},"C3D9":{"r":"TF-AMU","t":"B744"},"C3DA":{"r":"TF-AMT","t":"B744"},"C3DB":{"r":"TF-AMV","t":"B744"},"C3DC":{"r":"TF-AMX","t":"B744"},"C3DD":{"r":"TF-NAC","t":"B744"},"C3DE":{"r":"TF-NAD","t":"B744"},"C3E0":{"r":"TF-AMY","t":"B744"},"C3E1":{"r":"TF-AMZ","t":"B744"},"C3E2":{"r":"TF-AAC","t":"B744"},"C3E3":{"r":"TF-AAD","t":"B744"},"C3E4":{"r":"TF-AAE","t":"B744"},"C3E6":{"r":"TF-AMF","t":"B744"},"C3E8":{"r":"TF-AML","t":"B744"},"C468":{"r":"TF-SIF","t":"DH8C"},"C47B":{"r":"TF-JXG","t":"B737"},"C47D":{"r":"TF-JXI","t":"B738"},"C4B9":{"r":"TF-WOW","t":"A320"},"C4C6":{"r":"TF-MOM","t":"A321"},"C4C7":{"r":"TF-DAD","t":"A321"},"C4D3":{"r":"TF-BRO","t":"A320"},"C4D4":{"r":"TF-SIS","t":"A320"},"children":["4CA"]}
|
1
public_html/db/4CA.json
Normal file
1
public_html/db/4CA.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/5.json
Normal file
1
public_html/db/5.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/6.json
Normal file
1
public_html/db/6.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"00007":{"r":"EK-32011","t":"A319"},"0000C":{"r":"EK32008","t":"A320"},"00013":{"r":"EK-11001","t":"AN12"},"0002F":{"r":"EK-12104","t":"AN12"},"0003C":{"r":"EK-RA01","t":"A319"},"0004A":{"r":"EK-32007","t":"A319"},"00059":{"r":"EK-95015","t":"SU95"},"0005A":{"r":"EK-95016","t":"SU95"},"00076":{"r":"EK-74723","t":"B742"},"00079":{"r":"EK-74798","t":"B742"},"00087":{"r":"EK-74799","t":"B742"},"0009D":{"r":"EK-73775","t":"B735"},"0009F":{"r":"EK-73772","t":"B735"},"00803":{"r":"4K-AZ03","t":"A319"},"00804":{"r":"4K-AZ04","t":"A319"},"00805":{"r":"4K-AZ05","t":"A319"},"00806":{"r":"4K-AI06","t":"GLF5"},"00808":{"r":"4K-MEK8","t":"GLF5"},"00826":{"r":"4K-AZ38","t":"B752"},"0082B":{"r":"4K-AZ43","t":"B752"},"00836":{"r":"4K-AZ54","t":"A320"},"00838":{"r":"4K-AZ56","t":"AN12"},"0084D":{"r":"4K-AZ77","t":"A320"},"0084E":{"r":"4K-AZ78","t":"A320"},"0084F":{"r":"4K-AZ79","t":"A320"},"00850":{"r":"4K-AZ80","t":"A320"},"00851":{"r":"4K-AZ81","t":"B763"},"00852":{"r":"4K-AZ82","t":"B763"},"00853":{"r":"4K-AZ83","t":"A320"},"00854":{"r":"4K-AZ84","t":"A320"},"00858":{"r":"4K-AZ88","t":"GALX"},"008D0":{"r":"4K-AZ208","t":"G280"},"00918":{"r":"4K-AZ280","t":"G280"},"00B20":{"r":"4K-800","t":"B744"},"00B21":{"r":"4K-SW888","t":"B744"},"00B70":{"r":"4K-SW880","t":"B763"},"00B78":{"r":"4K-AZ888","t":"GLF4"},"00BB9":{"r":"4K-SW808","t":"B763"},"00BBE":{"r":"4K-SW008","t":"B744"},"00BC4":{"r":"4K-AI88","t":"GLF6"},"00BE8":{"r":"4K-BAKU","t":"B763"},"01097":{"r":"EX-37008"},"010F2":{"r":"EX-32001","t":"A320"},"010F4":{"r":"EX-37001","t":"B733"},"010F9":{"r":"EX-73401","t":"B734"},"01839":{"r":"EZ-A779","t":"B77L"},"0183A":{"r":"EZ-A778","t":"B77L"},"0183B":{"r":"EZ-A017","t":"B738"},"0183C":{"r":"EZ-A016","t":"B738"},"0183D":{"r":"EZ-A015","t":"B738"},"01842":{"r":"EZ-A010","t":"B752"},"01846":{"r":"EZ-A011","t":"B752"},"01847":{"r":"EZ-A012","t":"B752"},"01849":{"r":"EZ-A014","t":"B752"},"01854":{"r":"EZ-A106","t":"B712"},"01855":{"r":"EZ-A107","t":"B712"},"01858":{"r":"EZ-A004","t":"B738"},"01859":{"r":"EZ-A005","t":"B738"},"0185A":{"r":"EZ-A007","t":"B737"},"0185E":{"r":"EZ-A006","t":"B737"},"0185F":{"r":"EZ-A008","t":"B737"},"01860":{"r":"EZ-A009","t":"B737"},"01861":{"r":"EZ-A777","t":"B772"},"80001":{"r":"A5-RGF","t":"A319"},"80002":{"r":"A5-RGG","t":"A319"},"82209":{"r":"JU-1011","t":"B763"},"8220A":{"r":"JU-1012","t":"B763"},"83037":{"r":"UP-B5701","t":"B752"},"83065":{"r":"UP-Y4204","t":"YK42"},"83088":{"r":"UP-I7620","t":"IL76"},"830A5":{"r":"UP-A2001","t":"A320"},"830BD":{"r":"UP-CS302","t":"C25B"},"830C2":{"r":"UP-K3501","t":"B350"},"830ED":{"r":"UP-A3001","t":"A332"},"830FE":{"r":"UP-K3502","t":"B350"},"831E8":{"r":"UP-T5409","t":"T154"}}
|
1
public_html/db/7.json
Normal file
1
public_html/db/7.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/71.json
Normal file
1
public_html/db/71.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/78.json
Normal file
1
public_html/db/78.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/7C.json
Normal file
1
public_html/db/7C.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/8.json
Normal file
1
public_html/db/8.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/89.json
Normal file
1
public_html/db/89.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/9.json
Normal file
1
public_html/db/9.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
1
public_html/db/A.json
Normal file
1
public_html/db/A.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A0.json
Normal file
1
public_html/db/A0.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A1.json
Normal file
1
public_html/db/A1.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A3.json
Normal file
1
public_html/db/A3.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A4.json
Normal file
1
public_html/db/A4.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A6.json
Normal file
1
public_html/db/A6.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A7.json
Normal file
1
public_html/db/A7.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A8.json
Normal file
1
public_html/db/A8.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/A9.json
Normal file
1
public_html/db/A9.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/AA.json
Normal file
1
public_html/db/AA.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/AB.json
Normal file
1
public_html/db/AB.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/AC.json
Normal file
1
public_html/db/AC.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/AD.json
Normal file
1
public_html/db/AD.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/AE.json
Normal file
1
public_html/db/AE.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/AE0.json
Normal file
1
public_html/db/AE0.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/B.json
Normal file
1
public_html/db/B.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
1
public_html/db/C.json
Normal file
1
public_html/db/C.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/D.json
Normal file
1
public_html/db/D.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
1
public_html/db/E.json
Normal file
1
public_html/db/E.json
Normal file
File diff suppressed because one or more lines are too long
1
public_html/db/F.json
Normal file
1
public_html/db/F.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"A0001":{"r":"FAV0001","t":"A319"}}
|
5
public_html/db/README
Normal file
5
public_html/db/README
Normal file
|
@ -0,0 +1,5 @@
|
|||
This directory contains static data on some aircraft (registrations, etc)
|
||||
originally derived from Virtual Radar Server's BasicAircraftLookup.sqb
|
||||
(see tools/vrs-basicaircraft-to-json.py). As that database is no longer being
|
||||
updated, the data is directly included here rather than periodically refreshing
|
||||
from the online copy.
|
8
track.c
8
track.c
|
@ -252,10 +252,6 @@ static int doGlobalCPR(struct aircraft *a, struct modesMessage *mm, uint64_t now
|
|||
return result;
|
||||
}
|
||||
|
||||
// for mlat results, accept it unquestioningly
|
||||
if (mm->bFlags & MODES_ACFLAGS_FROM_MLAT)
|
||||
return result;
|
||||
|
||||
// check max range
|
||||
if (Modes.maxRange > 0 && (Modes.bUserFlags & MODES_USER_LATLON_VALID)) {
|
||||
double range = greatcircle(Modes.fUserLat, Modes.fUserLon, *lat, *lon);
|
||||
|
@ -270,6 +266,10 @@ static int doGlobalCPR(struct aircraft *a, struct modesMessage *mm, uint64_t now
|
|||
}
|
||||
}
|
||||
|
||||
// for mlat results, skip the speed check
|
||||
if (mm->bFlags & MODES_ACFLAGS_FROM_MLAT)
|
||||
return result;
|
||||
|
||||
// check speed limit
|
||||
if ((a->bFlags & MODES_ACFLAGS_LATLON_VALID) && a->pos_nuc >= *nuc && !speed_check(a, mm, *lat, *lon, now, surface)) {
|
||||
Modes.stats_current.cpr_global_speed_checks++;
|
||||
|
|
Loading…
Reference in a new issue