Permalink
Browse files

net-p2p/rtorrent-0.9.2: enable peer exchange for all torrents

Torrents are often wrongly marked as 'private' and thus peer exchange would be
disabled. Yet 'private' torrents cannot leak to 'non-private' peers because
the latter would need a priori knowledge of their hashes — which is not possible
without having obtained the file itself (thus the limitation makes no sense) or
having been leaked its hash and some peers (then you have an inside-man, which
is the greater security-risk — he could've copied the file right away, which
is the more likely case).
  • Loading branch information...
wmark committed Nov 2, 2012
1 parent 1b21522 commit 7ae5e5e6498007b76f55bf042d016a6719c64d47
View

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -0,0 +1,14 @@
+AUX rtorrent-0.8.2-gcc34.patch 659 SHA256 a89b48546be2c0728129feff223ed4e03a7c40bbc37e9bead9c13cf20c5cd00d SHA512 7d16623aef8dd006b8ec722eb4fa0488994942f10b5cb29c808c6a36877b5ffa5ce710d8d34ccf8ea4fc6ca3ac22ab1e789b0cd12fddfb66fa68a68caf2c4f3c WHIRLPOOL 3072395d6abb375ad2c3f245c69a7aa63858b447798ae9808c5ffd230a48a8e0fe7793a3e38904acf8be127d828cae07ebbb694078711efda0ade4f07d62096b
+AUX rtorrent-0.8.6-canvas-fix.patch 11607 SHA256 a843dcd8c3b7fe0179c24d53cb485d2f11156a189e58911bbd14e5e30db71925 SHA512 10980273c5272ce3dd2888734bb27f9871d1266923c8a59a06442db5f2cb76ecc938227637834bb3ee7b937847b06a938887bd371bb2d1267bfbe0344fdc5e7c WHIRLPOOL 250dd2cadf7e6ec741a9ad56532065f04714c45949fa8536a6e47cdae4247df4c9844839a9fceaf1dc5e43fddc095b43de4120236b4442a0307d2600a2f7776a
+AUX rtorrent-0.8.6-ncurses.patch 572 SHA256 4bcc6f33fad67d14f44cfdc63409fc94ef917dc120c46e60ce175d36af3fcb02 SHA512 1c153f591383489c3c703bc44323d6f1f3e3b0fe5e822289227f88e9c4e9f4c3d18dde4026e81cacb3d1bc52dd8ae9dc356fb9aa91050a69568eab32d2341ce4 WHIRLPOOL 211bbaee44904e72fe23030694d8dffb4cbef0feb42c28371c367929e4422f5a295f6a341c81888a6f0e9675b2f2eb5b430bbad2f8e2e7aa5fa8103ba25b3d49
+AUX rtorrent-0.8.7-canvas-fix.patch 10095 SHA256 a40a88d17e3090d3a7244ae701b049687b3646f8cbecfe40a1456306b6b56fd7 SHA512 4441f64a069bc2980d71410f99115fe10c07d98f28852186079227f66fae7c0aa25672e9c6bd5184fcb66233a6c331b156581e7f5241614839343a9387a76589 WHIRLPOOL cd5e3bd12459a3d4db9beeff323ceaf2f0323c86689f079177019f9f39c8a714d73f9f1513cf76b1e9f39910f8dd32458e942bf55d7b733247f29eb152972f7d
+AUX rtorrent-0.8.9-canvas-fix.patch 9995 SHA256 f53eca85da4800f123f1f482dd49e07d40fcc4055e84f9450f3894cc51259415 SHA512 40d93ff3bc80268ddbda9355b2c1b6aa0234991c8cfc8613c5711e16c5de4ae83e681c3e9b0b4f902daa6ab198dd5b8f96ca7f71dbabdf1a3b0d8761e747f714 WHIRLPOOL ee300ce00dbcb93238bd958089774910d21dde0485b9af997b133198f2af4fe007f279076e45c635545027637ff5590cfd48f8a99f95e4bfd8278acff7079924
+AUX rtorrent-0.8.9-ncurses.patch 618 SHA256 67002221b79bb5e43e8ed05ae0ebb22130c10eaf5739acbb1fb424050f2e2a05 SHA512 cc71e44cf748d6548cffc66b7a6d9f0873ef009fd028fe1f885933100eb01da80232443ba01f8968402c63c17b224f8ce8dc3cb6ad749bb4f0f7f932b8539c5c WHIRLPOOL 3ffee3947bd3c81b35b96a4063bbbab79138da1752943e7a26d3bb4d53d8cc16c332c7df33ed1714700a45c51a01474df090c2dedbf64a559c22fc2be99bb301
+AUX rtorrent-0.9.0-ncurses.patch 416 SHA256 043f85f5e77de132f5a8aeccc894f11fad961f237a5c092dd38e163620f6e40e SHA512 bc36d56880fbfb99d6e5cb19688d733d79a89c8aec88913f5962ea72503e4103b34eb2a67be76bbe80c35beda972f6fc5dbf1947f89624bf5e117774688e7cf8 WHIRLPOOL 211bff140ee9094fde6b9f21a0a853c26d79f79a9727203ee7d96b010795620d5d7eb01d683cfceee0a31c5d0c0701a85054b259f7c21c35ebac0ccd9de4fe53
+AUX rtorrent-0.9.1-ncurses.patch 416 SHA256 043f85f5e77de132f5a8aeccc894f11fad961f237a5c092dd38e163620f6e40e SHA512 bc36d56880fbfb99d6e5cb19688d733d79a89c8aec88913f5962ea72503e4103b34eb2a67be76bbe80c35beda972f6fc5dbf1947f89624bf5e117774688e7cf8 WHIRLPOOL 211bff140ee9094fde6b9f21a0a853c26d79f79a9727203ee7d96b010795620d5d7eb01d683cfceee0a31c5d0c0701a85054b259f7c21c35ebac0ccd9de4fe53
+AUX rtorrent-0.9.2-no_private_torrents.patch 4313 SHA256 3f56faff635b872c0368004131a84a04bb1add6af4df4f580579522c7db80918 SHA512 ca0e7523a080e0e16003670c040b2af55dad1ece11aae718873eebeabdaac66b0c70a39eacc39eaf26ff0cf56e16534651bf9bffe1394945e71e8b02c5e65732 WHIRLPOOL dee2df0cbc2584e3f318447c0e9aa45c18b4d32c9d2ef74f7bb196dbb9b739af1c83bc89fce897e9a2da8291d1e6f39a5c12c9dbb6c6b823c365e1d4eb4c9c1c
+AUX rtorrentd.conf 13 SHA256 6725e7a3ed74f1432bd6b317f2aec7f9609bc20dd81dbbfcc632342c9f99177b SHA512 f241452b812a1837660f9ad52881feacc02825e82ea7ac19acc662b4219dd58997ea908275b8c9ee78ed791babf79c1a91069dc6d5b5fb3c461e3026cdeab73f WHIRLPOOL 11f799ee54cc3f4ae535fca30d4f41748149c6869a2217f7c67e03ffab87792e5d5679d6fcc69697b8ffab60690e7187262e57bc68afea0a3244a24095db2235
+AUX rtorrentd.init 815 SHA256 f05e05330276de79ddb8e37effd3acd6060c10a30d8fb3e6bb1e6768ed942d56 SHA512 71a49feaf80348d27f4854976f1cceab07081c11a332c636399dc42a0d7665b26f3a2d6f5799f09b25b151ec44b8f01dbbae4c9d1a8335496de68047ce16f77c WHIRLPOOL 4cc76dbb45691b7282908cdf445701b62f8f082279981d312b6f47c474d3c2c7122ac19bee05e7d12a5775521e833d137bd0ade5967442810daafa97f37a3175
+DIST rtorrent-0.9.2.tar.gz 591837 SHA256 5c8f8c780bee376afce3c1cde2f5ecb928f40bac23b2b8171deed5cf3c888c3d SHA512 8b170021ca28ebe6c9bfd1405fe38962828a21eb0020460786115ff360ef62d325b745976fb29996a80387e763465f7b3ef0c47ca30b185a5c98a060cc151c38 WHIRLPOOL 757e6752da6b68e8b753d1a2599172fd3d8e14116c18c9906a8eb458799e856d510a578499ef7ed0ad98573825048a3e6ba37f37570b2b5556054fdc02003f55
+EBUILD rtorrent-0.9.2.ebuild 1358 SHA256 8da7cd75cfc206c62c8658f01a136748aa6dd82aaecd609b02d2ad4ba36daa2e SHA512 d1775cf9d6a9561991e34f29bf24911703282104e6b6ddfbcf9574096b4b28fe429508f2aa49a485ecaf2232717c54981a318571bb5c2b6ec7ee2800a66c8c72 WHIRLPOOL ce5eb58c1b82dcc56f349260bd8b616658320724472899c62c9faa3693bb4093178de5be560087630e020cfeca1faab85e81b9d1c4c350b7778b6d958abfa05b
+MISC ChangeLog 27044 SHA256 ecae293628b265b334ae1bbec210a11417327e3f8bf17f9a8704679e554d5816 SHA512 532ef5d537f0615ac8bd923e66eaf54428f25f1dc9c6d4eb10f4d6f3b21d6453a12e2a841315804493fe5a959e682a71c8954a589c02486a85078ac09382e271 WHIRLPOOL 7511dcf9306f772e10827d743120deefd2140c6a57f733793cc80a885739aa5f8b78f311413a819f52b847c938b1941f52458f32db0eb96a0f7ec0bd9361a4ba
@@ -0,0 +1,15 @@
+diff -rwud rtorrent-0.8.2/src/rpc/command.h rtorrent-0.8.2-my/src/rpc/command.h
+--- rtorrent-0.8.2/src/rpc/command.h 2008-05-07 14:19:10.000000000 +0200
++++ rtorrent-0.8.2-my/src/rpc/command.h 2008-06-09 02:23:34.000000000 +0200
+@@ -73,10 +73,8 @@
+ rt_triple(const T1& a, const T2& b, const T3& c) :
+ base_type(a, b), third(c) {}
+
+- template <typename U1, typename U2>
+- rt_triple(const std::pair<U1, U2>& b) : base_type(b), third() {}
++ rt_triple(const base_type& b) : base_type(b), third() {}
+
+- template <typename U1, typename U2, typename U3>
+ rt_triple(const rt_triple& src) :
+ base_type(src.first, src.second), third(src.third) {}
+ };
@@ -0,0 +1,321 @@
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/command_network.cc ./src/command_network.cc
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/command_network.cc 2009-11-12 09:19:40.000000000 +0100
+--- ./src/command_network.cc 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 495,498 ****
+--- 495,502 ----
+ // Not really network stuff:
+ ADD_VARIABLE_BOOL ("handshake_log", false);
+ ADD_VARIABLE_STRING("log.tracker", "");
++ ADD_COMMAND_VALUE_TRI("done_fg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_done_fg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_done_fg_color));
++ ADD_COMMAND_VALUE_TRI("done_bg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_done_bg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_done_bg_color));
++ ADD_COMMAND_VALUE_TRI("active_fg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_active_fg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_active_fg_color));
++ ADD_COMMAND_VALUE_TRI("active_bg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_active_bg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_active_bg_color));
+ }
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/canvas.cc ./src/display/canvas.cc
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/canvas.cc 2009-11-12 09:03:47.000000000 +0100
+--- ./src/display/canvas.cc 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 92,97 ****
+--- 92,101 ----
+ m_isInitialized = true;
+
+ initscr();
++ start_color();
++ use_default_colors();
++ init_pair(2, -1, -1);
++ init_pair(1, -1, -1);
+ raw();
+ noecho();
+ nodelay(stdscr, TRUE);
+Only in ./src/display: canvas.cc.orig
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.cc ./src/display/window_download_list.cc
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.cc 2009-11-12 09:03:47.000000000 +0100
+--- ./src/display/window_download_list.cc 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 37,42 ****
+--- 37,43 ----
+ #include "config.h"
+
+ #include <rak/algorithm.h>
++ #include <torrent/rate.h>
+
+ #include "core/download.h"
+ #include "core/view.h"
+***************
+*** 96,107 ****
+ char* position;
+ char* last = buffer + m_canvas->width() - 2 + 1;
+
+ position = print_download_title(buffer, last, *range.first);
+! m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
+ position = print_download_info(buffer, last, *range.first);
+ m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
+ position = print_download_status(buffer, last, *range.first);
+ m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
+--- 97,126 ----
+ char* position;
+ char* last = buffer + m_canvas->width() - 2 + 1;
+
++ if( pos >= m_canvas->height() ) break;
+ position = print_download_title(buffer, last, *range.first);
+! m_canvas->print(0, pos, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+! if( (*range.first)->is_done() ) {
+! if( (*range.first)->download()->up_rate()->rate() != 0 ) {
+! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_BOLD, 2);
+! } else {
+! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_NORMAL, 2);
+! }
+! } else if( (*range.first)->download()->is_active() ) {
+! if( (*range.first)->download()->down_rate()->rate() != 0 ) {
+! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_BOLD, 1);
+! } else {
+! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_NORMAL, 1);
+! }
+! }
+! pos++;
+
++ if( pos >= m_canvas->height() ) break;
++
+ position = print_download_info(buffer, last, *range.first);
+ m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
++ if( pos >= m_canvas->height() ) break;
+ position = print_download_status(buffer, last, *range.first);
+ m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
+***************
+*** 109,112 ****
+--- 128,167 ----
+ }
+ }
+
++ void
++ WindowDownloadList::set_done_fg_color(int64_t color) {
++ short fg, bg;
++ pair_content(2, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(2, (short)color, bg);
++ }
++
++ void
++ WindowDownloadList::set_done_bg_color(int64_t color) {
++ short fg, bg;
++ pair_content(2, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(2, fg, (short)color);
++ }
++
++ void
++ WindowDownloadList::set_active_fg_color(int64_t color) {
++ short fg, bg;
++ pair_content(1, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(1, (short)color, bg);
++ }
++
++ void
++ WindowDownloadList::set_active_bg_color(int64_t color) {
++ short fg, bg;
++ pair_content(1, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(1, fg, (short)color);
++ }
++
+ }
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.h ./src/display/window_download_list.h
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.h 2009-11-12 09:03:47.000000000 +0100
+--- ./src/display/window_download_list.h 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 59,64 ****
+--- 59,68 ----
+ virtual void redraw();
+
+ void set_view(core::View* l);
++ void set_done_fg_color(int64_t color);
++ void set_done_bg_color(int64_t color);
++ void set_active_fg_color(int64_t color);
++ void set_active_bg_color(int64_t color);
+
+ private:
+ core::View* m_view;
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.cc ./src/ui/download_list.cc
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.cc 2009-11-12 09:03:48.000000000 +0100
+--- ./src/ui/download_list.cc 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 137,142 ****
+--- 137,147 ----
+ current_view()->next_focus();
+ }
+
++ display::WindowDownloadList*
++ DownloadList::current_window_list() {
++ return dynamic_cast<ElementDownloadList*>(m_uiArray[DISPLAY_DOWNLOAD_LIST])->window();
++ }
++
+ void
+ DownloadList::activate_display(Display displayType) {
+ if (!is_active())
+Only in ./src/ui: download_list.cc.orig
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.h ./src/ui/download_list.h
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.h 2009-11-12 09:03:48.000000000 +0100
+--- ./src/ui/download_list.h 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 101,106 ****
+--- 101,107 ----
+ void activate_display(Display d);
+
+ core::View* current_view();
++ display::WindowDownloadList* current_window_list();
+ void set_current_view(const std::string& name);
+
+ void slot_open_uri(SlotOpenUri s) { m_slotOpenUri = s; }
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/element_download_list.h ./src/ui/element_download_list.h
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/element_download_list.h 2009-11-12 09:03:48.000000000 +0100
+--- ./src/ui/element_download_list.h 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 60,65 ****
+--- 60,66 ----
+ void disable();
+
+ core::View* view() { return m_view; }
++ WDownloadList* window() { return m_window; }
+ void set_view(core::View* l);
+
+ void receive_command(const char* cmd);
+Only in ./src/ui: element_download_list.h.orig
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.cc ./src/ui/root.cc
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.cc 2009-11-12 09:03:48.000000000 +0100
+--- ./src/ui/root.cc 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 44,49 ****
+--- 44,50 ----
+
+ #include "core/manager.h"
+ #include "display/frame.h"
++ #include "display/window_download_list.h"
+ #include "display/window_http_queue.h"
+ #include "display/window_title.h"
+ #include "display/window_input.h"
+***************
+*** 65,71 ****
+ m_windowTitle(NULL),
+ m_windowHttpQueue(NULL),
+ m_windowInput(NULL),
+! m_windowStatusbar(NULL) {
+ }
+
+ void
+--- 66,76 ----
+ m_windowTitle(NULL),
+ m_windowHttpQueue(NULL),
+ m_windowInput(NULL),
+! m_windowStatusbar(NULL),
+! done_fg_color(-1),
+! done_bg_color(-1),
+! active_fg_color(-1),
+! active_bg_color(-1) {
+ }
+
+ void
+***************
+*** 97,102 ****
+--- 102,111 ----
+ setup_keys();
+
+ m_downloadList->activate(rootFrame->frame(1));
++ m_downloadList->current_window_list()->set_done_fg_color(done_fg_color);
++ m_downloadList->current_window_list()->set_done_bg_color(done_bg_color);
++ m_downloadList->current_window_list()->set_active_fg_color(active_fg_color);
++ m_downloadList->current_window_list()->set_active_bg_color(active_bg_color);
+ }
+
+ void
+***************
+*** 219,224 ****
+--- 228,273 ----
+ torrent::set_max_unchoked(maxUnchoked);
+ }
+
++ int
++ Root::get_done_fg_color() {
++ return done_fg_color;
++ }
++
++ void
++ Root::set_done_fg_color(int64_t color) {
++ done_fg_color = color;
++ }
++
++ int
++ Root::get_done_bg_color() {
++ return done_bg_color;
++ }
++
++ void
++ Root::set_done_bg_color(int64_t color) {
++ done_bg_color = color;
++ }
++
++ int
++ Root::get_active_fg_color() {
++ return active_fg_color;
++ }
++
++ void
++ Root::set_active_fg_color(int64_t color) {
++ active_fg_color = color;
++ }
++
++ int
++ Root::get_active_bg_color() {
++ return active_bg_color;
++ }
++
++ void
++ Root::set_active_bg_color(int64_t color) {
++ active_bg_color = color;
++ }
++
+ void
+ Root::adjust_down_throttle(int throttle) {
+ set_down_throttle(std::max<int>(torrent::down_throttle_global()->max_rate() / 1024 + throttle, 0));
+Only in ./src/ui: root.cc.orig
+diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.h ./src/ui/root.h
+*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.h 2009-11-12 09:03:48.000000000 +0100
+--- ./src/ui/root.h 2009-12-17 19:27:05.783955715 +0100
+***************
+*** 82,87 ****
+--- 82,95 ----
+ // Rename to raw or something, make base function.
+ void set_down_throttle_i64(int64_t throttle) { set_down_throttle(throttle >> 10); }
+ void set_up_throttle_i64(int64_t throttle) { set_up_throttle(throttle >> 10); }
++ int get_done_fg_color();
++ void set_done_fg_color(int64_t color);
++ int get_done_bg_color();
++ void set_done_bg_color(int64_t color);
++ int get_active_fg_color();
++ void set_active_fg_color(int64_t color);
++ int get_active_bg_color();
++ void set_active_bg_color(int64_t color);
+
+ void adjust_down_throttle(int throttle);
+ void adjust_up_throttle(int throttle);
+***************
+*** 105,110 ****
+--- 113,122 ----
+ WStatusbar* m_windowStatusbar;
+
+ input::Bindings m_bindings;
++ int64_t done_fg_color;
++ int64_t done_bg_color;
++ int64_t active_fg_color;
++ int64_t active_bg_color;
+ };
@@ -0,0 +1,16 @@
+rtorrent segfaults with latest ncurses (5.8).
+this patch fixes the issue.
+
+https://bugs.gentoo.org/show_bug.cgi?id=358271
+https://bugzilla.redhat.com/show_bug.cgi?id=682454
+http://libtorrent.rakshasa.no/ticket/2518
+--- src/display/canvas.h
++++ src/display/canvas.h
+@@ -48,7 +48,7 @@ class Canvas {
+ public:
+ typedef std::vector<Attributes> attributes_list;
+
+- Canvas(int x = 0, int y = 0, int width = 0, int height = 0) :
++ Canvas(int x = 0, int y = 0, int width = 1, int height = 1) :
+ m_window(newwin(height, width, y, x)) {}
+ ~Canvas() { delwin(m_window); }
Oops, something went wrong.

0 comments on commit 7ae5e5e

Please sign in to comment.