1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-19 05:12:18 +02:00

Compare commits

..

48 Commits

Author SHA1 Message Date
Christophe Dumez
3f22122348 Tagged v2.2.6 release 2010-04-18 14:08:36 +00:00
Christophe Dumez
59c77a3f9c Prepare for v2.2.6 release 2010-04-18 13:56:53 +00:00
Christophe Dumez
8ce9649310 Make sure status filters height is correct when the visual style changes 2010-04-17 14:21:34 +00:00
Christophe Dumez
fe5ac5d083 Updated Arabic translation 2010-04-16 18:33:09 +00:00
Christophe Dumez
8740627c12 Arabic translation fixes 2010-04-15 19:22:20 +00:00
Christophe Dumez
c47f2e449b Support Right to left languages 2010-04-13 18:46:44 +00:00
Christophe Dumez
db09e40690 Added an OS/2 specific README file 2010-04-13 10:42:10 +00:00
Christophe Dumez
3ca3f91590 Some Arabic related improvements 2010-04-12 19:23:24 +00:00
Christophe Dumez
ee9a8d0563 Added Arabic translation 2010-04-12 18:59:39 +00:00
Christophe Dumez
3542980e50 BUGFIX: Stop rechecking torrents when they are moved 2010-04-10 15:55:57 +00:00
Christophe Dumez
f243b8535a - BUGFIX: Remove old folder when moving a torrent
- BUGFIX: Improved reliability of torrent moving
2010-04-10 15:03:16 +00:00
Christophe Dumez
7953809024 BUGFIX: Added support for single-thread boost 2010-04-09 18:51:32 +00:00
Christophe Dumez
3ac65a477c Remove some unneeded dependencies for qBittorrent nox 2010-04-09 15:32:40 +00:00
Christophe Dumez
00cab62381 Improved previous patch 2010-04-08 16:37:02 +00:00
Christophe Dumez
ab31300201 eCS (OS/2) compilation fix (Thanks Silvan Scherrer) 2010-04-08 16:32:21 +00:00
Christophe Dumez
754eb2788f Qt 4.4 compilation fix 2010-04-07 10:02:00 +00:00
Christophe Dumez
8dcb9f17bc Updated INSTALL file 2010-04-07 09:58:53 +00:00
Christophe Dumez
38121920a1 Bring back compatibility with boost v1.34 2010-04-07 09:54:48 +00:00
Christophe Dumez
e815f934e1 Improved libboost detection again 2010-04-07 09:48:34 +00:00
Christophe Dumez
4a305222be Updated boost dependencies in INSTALL file 2010-04-07 09:43:19 +00:00
Christophe Dumez
dcfed67173 Improved libboost detection by configure file 2010-04-07 09:36:44 +00:00
Christophe Dumez
db43606620 Do not display a warning when libtorrent v0.14.x is detected since it is the advised version 2010-04-07 09:07:09 +00:00
Christophe Dumez
3b16a89c36 Improved slow_off icon 2010-04-07 09:03:43 +00:00
Christophe Dumez
4c03e708e0 Added icons to menu actions in Web UI 2010-04-07 08:33:01 +00:00
Christophe Dumez
3e0fc5234f Flat buttons in status bar should never get focus 2010-04-07 08:20:32 +00:00
Christophe Dumez
5ba7e643b9 Bump to v2.2.5 2010-04-07 08:07:07 +00:00
Christophe Dumez
c53e265b70 Improved speed limits icons location in preferences 2010-04-07 08:03:50 +00:00
Christophe Dumez
2b5f12e014 Fix transparency of speed limits icons
Dropped dependency on Qt gif library
2010-04-07 08:01:37 +00:00
Christophe Dumez
ee518973ea BUGFIX: Fix Download from URL title size in Web UI 2010-04-06 17:03:54 +00:00
Christophe Dumez
aa08552686 Fix deprecation warnings with libtorrent v0.15 2010-04-06 16:55:11 +00:00
Christophe Dumez
fa43393b65 BUGFIX: Fix HTTPS protocol support in torrent/rss downloader 2010-04-06 16:27:34 +00:00
Christophe Dumez
48dcfb56ad Fix torrent addition dialog buttons height (Thanks Mariusz Fik) 2010-04-06 16:15:01 +00:00
Christophe Dumez
511fa5d988 BUGFIX: Fix crash when adding a new torrent label 2010-04-06 16:09:06 +00:00
Christophe Dumez
5694c8aa8b Updated Polish translation 2010-04-06 16:01:25 +00:00
Christophe Dumez
e3098c5191 Fix default width of file name column in torrent content 2010-04-06 09:30:35 +00:00
Christophe Dumez
dbacb1961c Added forgotten icons 2010-04-06 07:50:08 +00:00
Christophe Dumez
1092064115 Updated Changelog 2010-04-05 23:34:47 +00:00
Christophe Dumez
7988f15da7 Update icons resource file 2010-04-05 23:17:25 +00:00
Christophe Dumez
689df74d7e Bump to v2.2.4 2010-04-05 23:16:10 +00:00
Christophe Dumez
c59dde4f58 Fix in last commit 2010-04-05 21:04:14 +00:00
Christophe Dumez
4bc36b4d28 COSMETIC: Improved alternative speed limits icons 2010-04-05 20:55:37 +00:00
Christophe Dumez
430c7d2deb BUGFIX: Display correct share ratio for paused torrents 2010-04-05 20:11:27 +00:00
Christophe Dumez
d72c79b259 Correctly clear trackers error messages once they work 2010-04-05 20:00:12 +00:00
Christophe Dumez
efbf470585 Fix Web UI about dialog 2010-04-05 19:53:08 +00:00
Christophe Dumez
4e20723ae6 BUGFIX: Fix torrent addition window layout (torrent content not expanding) 2010-04-05 19:44:27 +00:00
Christophe Dumez
f3268bf49e Similar fix 2010-04-05 19:33:12 +00:00
Christophe Dumez
5aba9179c4 Similar fixes 2010-04-05 19:32:06 +00:00
Christophe Dumez
450814ae23 Fix possible crash when adding a torrent 2010-04-05 19:02:21 +00:00
55 changed files with 10383 additions and 5395 deletions

View File

@@ -60,6 +60,7 @@ Images Authors:
Translations authors:
* files: src/lang/*.ts
copyright:
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
- Catalan: Francisco Luque Contreras (frannoe@ya.com)

View File

@@ -1,3 +1,34 @@
* Sun Apr 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.6
- BUGFIX: Announce to all trackers at once
- BUGFIX: Added support for single-thread boost
- BUGFIX: Remove old folder when moving a torrent
- BUGFIX: Improved reliability of torrent moving
- BUGFIX: Stop rechecking torrents when they are moved
- BUGFIX: Status filters height stays correct when the visual style changes
- I18N: Added Arabic translation
* Wed Apr 07 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.5
- BUGFIX: Fix crash when adding a new torrent label
- BUGFIX: Fix HTTPS protocol support in torrent/rss downloader
- BUGFIX: Fix default width of file name column in torrent content
- BUGFIX: Fix torrent addition dialog buttons height
- BUGFIX: Fix deprecation warnings with libtorrent v0.15
- BUGFIX: Fix "Download from URL" title size in Web UI
- BUGFIX: Fix transparency of speed limits icons
- BUGFIX: Dropped dependency on Qt gif library
- BUGFIX: Improved libboost detection by configure file
- BUGFIX: Bring back compatibility with boost v1.34
- COSMETIC: Added icons to menu actions in Web UI
* Tue Apr 06 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.4
- BUGFIX: Fix possible crash when adding a torrent
- BUGFIX: Fix failure to remember some torrents on startup
- BUGFIX: Fix torrent addition window layout (torrent content not expanding)
- BUGFIX: Fix about dialog in Web UI
- BUGFIX: Correctly clear trackers error messages once they work
- BUGFIX: Display correct share ratio for paused torrents
- COSMETIC: Improved alternative speed limits icons
* Sun Apr 04 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.3
- BUGFIX: Fix possible crash when deleting a torrent just after pausing it
- BUGFIX: Enable Apply button when alternative rate limits are changed

View File

@@ -14,11 +14,13 @@ qBittorrent - A BitTorrent client in C++ / Qt4
- pkg-config executable
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
or
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
- python >= 2.3 (needed by search engine)
* Run time only dependency

62
README.os2 Normal file
View File

@@ -0,0 +1,62 @@
qBittorrent - A BitTorrent client in Qt4
------------------------------------------
This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information.
Building qBittorrent
********************
Requirements
============
- gcc based build env (recommended gcc v4.4.2 or greater)
- Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information)
- libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
- boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
How to build
============
First you need to create the conf.pri file in the same dir as this readme.os2 is.
the conf.pri file has the following content:
##### conf.pri content beginn #####
PREFIX = .
BINDIR = ./bin
INCDIR = ./include
LIBDIR = ./lib
DATADIR = ./share
CONFIG += staticlib
INCLUDEPATH += x:/trees/libtorrent/trunk/include
LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
-Lx:/trees/boost/trunk/stage/lib \
-Lx:/trees/openssl \
-Lx:/extras/lib
##### conf.pri content end #####
Of course all the above path references have to be adjusted to your build env.
It should now be easy to build qBittorrent:
Simply type:
$ qmake
Followed by:
$ make
If all works fine you should get a working qbittorrent executable.
If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC:
#netlabs on irc.freenode.net
------------------------------------------
Silvan Scherrer <silvan.scherrer@aroa.ch>

92
configure vendored
View File

@@ -364,10 +364,11 @@ public:
conf->addIncludePath(incs[n]);
//if(!libs.isEmpty())
// conf->addLib(libs);
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
printf("\nWarning: libtorrent-rasterbar v%s was detected. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
else
if(conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other)) {
//printf("\nWarning: libtorrent-rasterbar v%s was detected. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
//else
conf->addDefine("LIBTORRENT_0_15");
}
// Get linking parameters
//QStringList params;
//QByteArray staticlibs;
@@ -375,7 +376,9 @@ public:
//conf->doCommand("pkg-config", params, &staticlibs);
//conf->addLib(staticlibs.trimmed());
//libcrypto
conf->addLib("-lcrypto");
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addLib("-lcrypto");
}
return true;
}
};
@@ -387,12 +390,36 @@ arg: with-libboost-inc=[path], Path to libboost include files
arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
#include <boost/version.hpp>
class qc_libboost : public ConfObj
{
public:
qc_libboost(Conf *c) : ConfObj(c) {}
QString name() const { return "libboost"; }
QString shortname() const { return "libboost"; }
QString findBoostLib(QString path, QString lib) const {
QString name;
QDir libDir(path);
QStringList filters;
filters << "libboost_"+lib+"*-mt*.so";
QStringList result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
} else {
// Fall back to non -mt boost lib
filters.clear();
filters << "libboost_"+lib+"*.so";
result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
}
}
return name;
}
bool exec(){
QString s;
s = conf->getenv("QC_WITH_LIBBOOST_INC");
@@ -436,28 +463,41 @@ public:
conf->addIncludePath(s);
// Find library
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "boost_system-mt")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(conf->checkLibrary(s, "boost_system-mt")) {
found = true;
break;
}
}
if(!found)
return false;
}
conf->addLib(QString("-L") + s);
conf->addLib("-lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt");
QStringList required_libs;
#if BOOST_VERSION >= 103500
required_libs << "system";
#endif
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
// Not required by nox
required_libs << "filesystem" << "thread";
}
QStringList libDirs;
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
foreach(const QString& lib, required_libs) {
if(!s.isEmpty()) {
QString detected_name = findBoostLib(s, lib);
if(detected_name.isEmpty()) {
printf("Could not find boost %s library!\n", qPrintable(lib));
return false;
} else {
conf->addLib("-l"+detected_name);
}
} else {
bool found = false;
foreach(const QString& libDir, libDirs) {
QString detected_name = findBoostLib(libDir, lib);
if(!detected_name.isEmpty()) {
conf->addLib("-l"+detected_name);
found = true;
break;
}
}
if(!found) {
printf("Could not find boost %s library!\n", qPrintable(lib));
return false;
}
}
}
return true;
}
};

View File

@@ -5,12 +5,36 @@ arg: with-libboost-inc=[path], Path to libboost include files
arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
#include <boost/version.hpp>
class qc_libboost : public ConfObj
{
public:
qc_libboost(Conf *c) : ConfObj(c) {}
QString name() const { return "libboost"; }
QString shortname() const { return "libboost"; }
QString findBoostLib(QString path, QString lib) const {
QString name;
QDir libDir(path);
QStringList filters;
filters << "libboost_"+lib+"*-mt*.so";
QStringList result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
} else {
// Fall back to non -mt boost lib
filters.clear();
filters << "libboost_"+lib+"*.so";
result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
}
}
return name;
}
bool exec(){
QString s;
s = conf->getenv("QC_WITH_LIBBOOST_INC");
@@ -54,28 +78,41 @@ public:
conf->addIncludePath(s);
// Find library
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "boost_system-mt")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(conf->checkLibrary(s, "boost_system-mt")) {
found = true;
break;
}
}
if(!found)
return false;
}
conf->addLib(QString("-L") + s);
conf->addLib("-lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt");
QStringList required_libs;
#if BOOST_VERSION >= 103500
required_libs << "system";
#endif
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
// Not required by nox
required_libs << "filesystem" << "thread";
}
QStringList libDirs;
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
foreach(const QString& lib, required_libs) {
if(!s.isEmpty()) {
QString detected_name = findBoostLib(s, lib);
if(detected_name.isEmpty()) {
printf("Could not find boost %s library!\n", qPrintable(lib));
return false;
} else {
conf->addLib("-l"+detected_name);
}
} else {
bool found = false;
foreach(const QString& libDir, libDirs) {
QString detected_name = findBoostLib(libDir, lib);
if(!detected_name.isEmpty()) {
conf->addLib("-l"+detected_name);
found = true;
break;
}
}
if(!found) {
printf("Could not find boost %s library!\n", qPrintable(lib));
return false;
}
}
}
return true;
}
};

View File

@@ -22,10 +22,11 @@ public:
conf->addIncludePath(incs[n]);
//if(!libs.isEmpty())
// conf->addLib(libs);
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
printf("\nWarning: libtorrent-rasterbar v%s was detected. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
else
if(conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other)) {
//printf("\nWarning: libtorrent-rasterbar v%s was detected. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
//else
conf->addDefine("LIBTORRENT_0_15");
}
// Get linking parameters
//QStringList params;
//QByteArray staticlibs;
@@ -33,7 +34,9 @@ public:
//conf->doCommand("pkg-config", params, &staticlibs);
//conf->addLib(staticlibs.trimmed());
//libcrypto
conf->addLib("-lcrypto");
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addLib("-lcrypto");
}
return true;
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.2.3
Comment=V2.2.6
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[bg]=Торент клиент

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 910 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -62,7 +62,8 @@ class about : public QDialog, private Ui::AboutDlg{
te_translation->append(QString::fromUtf8("<a name='top'></a>"));
te_translation->append(tr("I would like to thank the following people who volunteered to translate qBittorrent:")+QString::fromUtf8("<br>"));
te_translation->append(QString::fromUtf8(
"<i>- <u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
"<i><u>Arabic:</u> SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)<br>\
- <u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
- <u>Bulgarian:</u> Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)<br>\
- <u>Catalan:</u> Francisco Luque Contreras (frannoe@ya.com)<br>\
- <u>Chinese (Simplified):</u> Guo Yue (yue.guo0418@gmail.com)<br>\

File diff suppressed because it is too large Load Diff

View File

@@ -135,7 +135,9 @@ public slots:
void resumeTorrent(QString hash);
void resumeAllTorrents();
/* End Web UI */
#ifndef LIBTORRENT_0_15
void saveDHTEntry();
#endif
void preAllocateAllFiles(bool b);
void saveFastResumeData();
void enableIPFilter(QString filter);

View File

@@ -42,6 +42,9 @@ enum ProxyType {HTTP=1, SOCKS5=2, HTTP_PW=3, SOCKS5_PW=4, SOCKS4=5};
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
networkManager = new QNetworkAccessManager(this);
connect(networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
#ifndef QT_NO_OPENSSL
connect(networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
#endif
}
downloadThread::~downloadThread(){
@@ -213,3 +216,11 @@ QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
return tr("Unknown error");
}
}
#ifndef QT_NO_OPENSSL
void downloadThread::ignoreSslErrors(QNetworkReply* reply,QList<QSslError> errors) {
Q_UNUSED(errors)
// Ignore all SSL errors
reply->ignoreSslErrors();
}
#endif

View File

@@ -34,6 +34,7 @@
#include <QNetworkReply>
#include <QObject>
#include <QHash>
#include <QSslError>
class QNetworkAccessManager;
@@ -62,6 +63,9 @@ protected:
protected slots:
void processDlFinished(QNetworkReply* reply);
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
#ifndef QT_NO_OPENSSL
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
#endif
};

View File

@@ -188,6 +188,7 @@ public:
if(iso[1] == 'S') return QIcon(":/Icons/flags/serbia.png");
break;
case 'S':
if(iso[1] == 'A') return QIcon(":/Icons/flags/saoudi_arabia.png");
if(iso[1] == 'E') return QIcon(":/Icons/flags/sweden.png");
if(iso[1] == 'K') return QIcon(":/Icons/flags/slovakia.png");
if(iso[1] == 'G') return QIcon(":/Icons/flags/singapore.png");

View File

@@ -1,6 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>Icons/slow48.png</file>
<file>Icons/rss32.png</file>
<file>Icons/sphere2.png</file>
<file>Icons/downarrow.png</file>
@@ -122,6 +121,7 @@
<file>Icons/flags/egypt.png</file>
<file>Icons/flags/italy.png</file>
<file>Icons/flags/south_korea.png</file>
<file>Icons/flags/saoudi_arabia.png</file>
<file>Icons/flags/bosnia.png</file>
<file>Icons/flags/japan.png</file>
<file>Icons/flags/malaysia.png</file>

View File

@@ -7,6 +7,7 @@
<file>lang/qbittorrent_sv.qm</file>
<file>lang/qbittorrent_pl.qm</file>
<file>lang/qbittorrent_it.qm</file>
<file>lang/qbittorrent_ar.qm</file>
<file>lang/qbittorrent_ko.qm</file>
<file>lang/qbittorrent_en.qm</file>
<file>lang/qbittorrent_ro.qm</file>

BIN
src/lang/qbittorrent_ar.qm Normal file

Binary file not shown.

4701
src/lang/qbittorrent_ar.ts Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More