Page MenuHomePhorge
Feed Advanced Search

Aug 1 2017

machniak committed rRPK2586d83fa152: Merge branch 'master' of ssh://git.kolab.org/diffusion/RPK/roundcubemail… (authored by machniak).
Merge branch 'master' of ssh://git.kolab.org/diffusion/RPK/roundcubemail…
Aug 1 2017, 12:55 PM
machniak committed rRPKa2a1d5e99d23: Safe Unauthenticated Free/Busy for Roaming Users (Bifrost#T36327) - display the… (authored by machniak).
Safe Unauthenticated Free/Busy for Roaming Users (Bifrost#T36327) - display the…
Aug 1 2017, 12:55 PM
machniak committed rRPKbd7fe38996f8: Safe Unauthenticated Free/Busy for Roaming Users (Bifrost#T36327) (authored by machniak).
Safe Unauthenticated Free/Busy for Roaming Users (Bifrost#T36327)
Aug 1 2017, 12:55 PM

Jul 30 2017

machniak committed rRPK5ef54c3706b4: Load missing 'showmore' label localization (authored by machniak).
Load missing 'showmore' label localization
Jul 30 2017, 12:43 PM
machniak committed rRPK1ea20a65c2bc: Load missing 'showmore' label localization (authored by machniak).
Load missing 'showmore' label localization
Jul 30 2017, 12:42 PM
machniak committed rRPKf8e751d1cfd6: Disable tagging functionality in contextmenu for Roundcube < 1.4… (authored by machniak).
Disable tagging functionality in contextmenu for Roundcube < 1.4…
Jul 30 2017, 12:24 PM
machniak committed rRPKb8894f5ab28e: Disable tagging functionality in contextmenu for Roundcube < 1.4… (authored by machniak).
Disable tagging functionality in contextmenu for Roundcube < 1.4…
Jul 30 2017, 12:20 PM
machniak added a comment to T2588: Roundcube 1.3 in Winterfell is missing jquery.min.js.

Since Roundcube 1.3 external javascript libraries are not anymore in the git repository. There's a script to download them and install in bin/install-jsdeps.sh (it uses jsdeps.json file in root folder). So, either we use -complete tarball (not /vendor folder there) or fetch js deps in package create stage. Or maybe in post-install script?

Jul 30 2017, 8:23 AM · Roundcube, Bug Reports

Jul 24 2017

machniak committed rC85a75e825664: Make sure to load kolab_auth when supported mimetypes is requested… (authored by machniak).
Make sure to load kolab_auth when supported mimetypes is requested…
Jul 24 2017, 11:59 AM
machniak committed rC629f5ecfaef9: Fill userlogins log with entries indicating Collabora Online use (authored by machniak).
Fill userlogins log with entries indicating Collabora Online use
Jul 24 2017, 11:36 AM
machniak committed rRPK978b7535edce: Add some missing localization labels, fix some labels use (authored by machniak).
Add some missing localization labels, fix some labels use
Jul 24 2017, 11:05 AM
machniak committed rRSCa9e635139108: Fix Close button in Roundcube 1.4 (authored by machniak).
Fix Close button in Roundcube 1.4
Jul 24 2017, 10:42 AM

Jul 21 2017

machniak committed rPf38e67c7c143: Support unicode characters in event location field (Bifrost#T29104) (authored by machniak).
Support unicode characters in event location field (Bifrost#T29104)
Jul 21 2017, 2:12 PM
machniak committed rP8702bfa0661a: Fix error on CLASS:X-PERSONAL (authored by machniak).
Fix error on CLASS:X-PERSONAL
Jul 21 2017, 2:12 PM
machniak committed rPe522f9e05add: Fix error on CLASS:X-PERSONAL (authored by machniak).
Fix error on CLASS:X-PERSONAL
Jul 21 2017, 2:10 PM
machniak committed rP24da53112b65: Merge branch 'arcpatch-D479' (authored by machniak).
Merge branch 'arcpatch-D479'
Jul 21 2017, 2:10 PM
machniak closed D479: Fix error on CLASS:X-PERSONAL by committing rPe522f9e05add: Fix error on CLASS:X-PERSONAL.
Jul 21 2017, 2:10 PM
machniak committed rP7f347ae804be: Support unicode characters in event location field (Bifrost#T29104) (authored by machniak).
Support unicode characters in event location field (Bifrost#T29104)
Jul 21 2017, 2:09 PM
machniak committed rRSCd4440d86e07a: Fix some contextmenu icons (folders list, addressbook list, groups list) (authored by machniak).
Fix some contextmenu icons (folders list, addressbook list, groups list)
Jul 21 2017, 1:17 PM
machniak accepted D290: replaces spaces in givenname when enforcing daemon recipient policy. to avoid crate mailboxes with spaces.

Reference to the ticket: T2009.

Jul 21 2017, 12:53 PM
machniak reassigned T2187: 'bool' object has no attribute 'lower' from pykolab/imap/_init_.py", line 832 after "pykolab.imap ERROR Could not create ..." (MIGMAK-751) from petersen to vanmeeuwen.

A low hanging fruit. Patch in my comment above.

Jul 21 2017, 12:49 PM · PyKolab, Bug Reports
machniak requested changes to D485: Address inefficiencies and possible misfunction over delegated mailboxes in other user namespace.
Jul 21 2017, 12:40 PM
machniak closed T1543: Undeliverable mail because of duplicated Sender header as Resolved.
Jul 21 2017, 10:58 AM · Winterfell, PyKolab

Jul 20 2017

machniak committed rRPKc5843388a8bb: Don't display Privacy (Classification) when set to X-* value in iTip (authored by machniak).
Don't display Privacy (Classification) when set to X-* value in iTip
Jul 20 2017, 4:43 PM
machniak created D479: Fix error on CLASS:X-PERSONAL.
Jul 20 2017, 4:29 PM
machniak committed rRSCd444fbeafd91: Fix compatibility with Roundcube 1.4 (task menu items) (authored by machniak).
Fix compatibility with Roundcube 1.4 (task menu items)
Jul 20 2017, 12:48 PM
machniak assigned T1543: Undeliverable mail because of duplicated Sender header to vanmeeuwen.

@vanmeeuwen Does https://git.kolab.org/rP0e8a8276f60b4cf99ef37d9e3b413153d80bcd98 fix this or we plan another solution?

Jul 20 2017, 11:57 AM · Winterfell, PyKolab
machniak updated subscribers of T2157: No support for read-only access in CalDAV-Sync (android).

@bruederli Do you remember what's the reason for https://git.kolab.org/source/iRony/browse/master/lib/Kolab/CalDAV/CalendarBackend.php;ead6159e01eb2b44b9f90665d17168cd14f5ce3b$91 to be not active?

Jul 20 2017, 10:13 AM · iRony
machniak added a comment to T2582: Possibly a bug with wallace finding user personal folders, that probably makes emails stuck in wallace queue.

ps. there's possible performance optimization in find_user_folders: don't use imap.list_folders('*'), instead depend on imap.get_metadata('*'), which we do anyway. But of course we should ask for the metadata we need, not all of them.

Jul 20 2017, 9:35 AM · PyKolab, Bug Reports
machniak assigned T2582: Possibly a bug with wallace finding user personal folders, that probably makes emails stuck in wallace queue to vanmeeuwen.
Jul 20 2017, 9:32 AM · PyKolab, Bug Reports
machniak updated subscribers of T2582: Possibly a bug with wallace finding user personal folders, that probably makes emails stuck in wallace queue.

Now I see where's the problem:

  1. @vanmeeuwen, a side of the main reason of the issue (see below). There must be some bug somewhere because imap SELECT on a folder that has 'lr' for anyone should not fail.
  2. If you consider this code
# exclude shared and other user's namespace
if ns_other is not None and folder.startswith(ns_other) and '_delegated_mailboxes' in user_rec:
    # allow shared folders from delegators
    if len([_mailbox for _mailbox in user_rec['_delegated_mailboxes'] if folder.startswith(ns_other + _mailbox + '/')]) =
        continue
# TODO: list shared folders the user has write privileges ?
if ns_shared is not None and len([_ns for _ns in ns_shared if folder.startswith(_ns)]) > 0:
    continue

You will see that if user_rec['_delegated_mailboxes'] is not set (which is the case here) no other user folders will be excluded. So, my proposed fix is:

--- a/wallace/module_invitationpolicy.py
+++ b/wallace/module_invitationpolicy.py
@@ -796,7 +796,9 @@ def list_user_folders(user_rec, type):
Jul 20 2017, 9:21 AM · PyKolab, Bug Reports
machniak added a comment to T2582: Possibly a bug with wallace finding user personal folders, that probably makes emails stuck in wallace queue.

Or to be more precise (according to the traceback). It does not even tries to write to the folder, but just tries to select it (and then search for an object). I'm not sure why select fails while the folder is 'lr'.

Jul 20 2017, 8:38 AM · PyKolab, Bug Reports
machniak added a comment to T2582: Possibly a bug with wallace finding user personal folders, that probably makes emails stuck in wallace queue.

Is there delegation setup between these users? For me it looks like there is, but delagtor's calendar folder is non writable and the code does not check that trying to write to it.

Jul 20 2017, 8:35 AM · PyKolab, Bug Reports

Jul 19 2017

machniak committed rS0a1b6c8987fe: Bifrost#T36198: Create non-conflicting ServerId for objects with non-unique or… (authored by machniak).
Bifrost#T36198: Create non-conflicting ServerId for objects with non-unique or…
Jul 19 2017, 4:03 PM
machniak closed D473: Bifrost#T36198: Create non-conflicting ServerId for objects with non-unique or long UID by committing rS0a1b6c8987fe: Bifrost#T36198: Create non-conflicting ServerId for objects with non-unique or….
Jul 19 2017, 4:03 PM
machniak requested review of D473: Bifrost#T36198: Create non-conflicting ServerId for objects with non-unique or long UID.
Jul 19 2017, 3:39 PM
machniak committed rRPKf50bb9bf2081: Support UIDs up to 512 characters (authored by machniak).
Support UIDs up to 512 characters
Jul 19 2017, 2:48 PM
machniak committed rRPKabe4df5a89da: Support UIDs up to 512 characters (authored by machniak).
Support UIDs up to 512 characters
Jul 19 2017, 2:42 PM
machniak created D473: Bifrost#T36198: Create non-conflicting ServerId for objects with non-unique or long UID.
Jul 19 2017, 1:36 PM
machniak committed rRPK2b8c121e3831: Add support for prefix search in kolab cache (authored by machniak).
Add support for prefix search in kolab cache
Jul 19 2017, 12:55 PM
machniak committed rRPK011fa7949d50: Add support for prefix search in kolab cache (authored by machniak).
Add support for prefix search in kolab cache
Jul 19 2017, 12:55 PM

Jul 18 2017

machniak closed T1411: More compact event dialog as Resolved.
Jul 18 2017, 8:14 PM · Roundcube Kolab Plugins , Architecture & Design
machniak committed rRPK523686c97a15: T1411: More compact event dialog (authored by machniak).
T1411: More compact event dialog
Jul 18 2017, 8:13 PM
machniak closed T2567: Better plain/text message bodies synchronization as Resolved.
Jul 18 2017, 5:40 PM · Syncroton
machniak committed rSb861a4b2a34a: T2567: Better plain/text message bodies synchronization for devices with no… (authored by machniak).
T2567: Better plain/text message bodies synchronization for devices with no…
Jul 18 2017, 5:33 PM
machniak created T2567: Better plain/text message bodies synchronization.
Jul 18 2017, 5:32 PM · Syncroton
machniak added a comment to T2561: iTip requests sent when event attendee moves his copy of the event .

@adomaitis this depends on some earlier commit: https://git.kolab.org/rRPK2ad0d6651dfbcb32c146465ad9539848b285e3f9

Jul 18 2017, 4:58 PM · Roundcube Kolab Plugins
machniak closed T2561: iTip requests sent when event attendee moves his copy of the event as Resolved.
Jul 18 2017, 4:07 PM · Roundcube Kolab Plugins
machniak committed rRPK3788cab34f36: T2561: Fix recognizing event organizer on event move/delete (authored by machniak).
T2561: Fix recognizing event organizer on event move/delete
Jul 18 2017, 4:06 PM
machniak committed rRPK40e0fa9155b5: T2561: Fix recognizing event organizer on event move/delete (authored by machniak).
T2561: Fix recognizing event organizer on event move/delete
Jul 18 2017, 4:05 PM
machniak created T2561: iTip requests sent when event attendee moves his copy of the event .
Jul 18 2017, 4:03 PM · Roundcube Kolab Plugins
machniak closed T2555: Invalid ExceptionStartTime value as Resolved.
Jul 18 2017, 11:35 AM · Syncroton
machniak committed rS57a999faa8db: T2555: Fix invalid ExceptionStartTime value (authored by machniak).
T2555: Fix invalid ExceptionStartTime value
Jul 18 2017, 11:18 AM
machniak added a comment to T2555: Invalid ExceptionStartTime value.

What is more. When user receives iTip response for an exception and updates the event, Outlook will incorrectly send Sync-Add command for the new exception, which then creates a duplicate object. Which leads to a "missing" event in Roundcube and error in syncroton log. This in itself is another issue, but I see that with correct ExceptionStartTime Outlook does not send such requests.

Jul 18 2017, 11:17 AM · Syncroton
machniak claimed T2555: Invalid ExceptionStartTime value.
Jul 18 2017, 10:51 AM · Syncroton
machniak created T2555: Invalid ExceptionStartTime value.
Jul 18 2017, 10:51 AM · Syncroton
machniak updated subscribers of T2394: Package (erlang) conflicts in Winterfell.

@vanmeeuwen, this is still broken. Could you take a look?

Jul 18 2017, 8:40 AM · Bug Reports, Winterfell

Jul 17 2017

machniak closed T2549: kolab freebusy doesn't understand network/subnet definition in trustednetworks as Resolved.

Fixed in 6046b4085ae.

Jul 17 2017, 1:49 PM · Free/Busy, Bug Reports
machniak committed rF6046b4085ae4: T2549: Special entries in trustednetworks.allow to allow all IPs (authored by machniak).
T2549: Special entries in trustednetworks.allow to allow all IPs
Jul 17 2017, 1:49 PM
machniak added a comment to T2549: kolab freebusy doesn't understand network/subnet definition in trustednetworks.

The code that does not support these is:

$subnet = ip2long($subnet);
$mask = -1 << $bits;
$subnet &= $mask;  // just in case the supplied subnet wasn't correctly aligned
if (($ipbin & $mask) == $subnet) {
    return true;
}

in Utils::checkIpRange().

Jul 17 2017, 12:29 PM · Free/Busy, Bug Reports

Jul 13 2017

machniak committed rScad59ed0afa4: Ignore recurrence for events with no RRULE (authored by machniak).
Ignore recurrence for events with no RRULE
Jul 13 2017, 11:17 AM

Jul 12 2017

machniak committed rS0e76cc48e4cb: Use Roundcube's per_user_logging instead of activesync_user_debug (authored by machniak).
Use Roundcube's per_user_logging instead of activesync_user_debug
Jul 12 2017, 6:30 PM
machniak committed rIead6159e01eb: Merge branch 'arcpatch-D296' (authored by machniak).
Merge branch 'arcpatch-D296'
Jul 12 2017, 6:13 PM
machniak committed rIee30f13df02c: T1982: Remove kolabdav_user_debug in favor of Roundcube's per_user_logging (authored by machniak).
T1982: Remove kolabdav_user_debug in favor of Roundcube's per_user_logging
Jul 12 2017, 6:13 PM
machniak closed T1982: Cannot use both per_user_logging and kolabdav_user_debug as Resolved by committing rIee30f13df02c: T1982: Remove kolabdav_user_debug in favor of Roundcube's per_user_logging.
Jul 12 2017, 6:13 PM · iRony
machniak closed D296: T1982: Remove kolabdav_user_debug in favor of Roundcube's per_user_logging by committing rIee30f13df02c: T1982: Remove kolabdav_user_debug in favor of Roundcube's per_user_logging.
Jul 12 2017, 6:13 PM
machniak committed rRPK63e217a803b0: Merge branch 'arcpatch-D423' (authored by machniak).
Merge branch 'arcpatch-D423'
Jul 12 2017, 3:38 PM
machniak committed rRPKd91bfd77a715: Update calendar and tasklist styles/sprites to new Larry "flat" design (authored by Thomas Bruederli <thomas@roundcube.net>).
Update calendar and tasklist styles/sprites to new Larry "flat" design
Jul 12 2017, 3:38 PM
machniak closed D423: Update calendar and tasklist styles/sprites to new Larry "flat" design by committing rRPKd91bfd77a715: Update calendar and tasklist styles/sprites to new Larry "flat" design (authored by Thomas Bruederli <thomas@roundcube.net>).
Jul 12 2017, 3:38 PM
machniak closed T2543: Invalid am/pm suffix in vacation times list as Resolved.

Fixed in a60c81d1b [master] and f9151f6830 [release-1.2]

Jul 12 2017, 12:42 PM · Roundcube

Jul 11 2017

machniak created T2543: Invalid am/pm suffix in vacation times list.
Jul 11 2017, 4:40 PM · Roundcube
machniak committed rRPK8ce594f23aa1: Add missing type="link" for template buttons for compat. with Roundcube 1.4 (authored by machniak).
Add missing type="link" for template buttons for compat. with Roundcube 1.4
Jul 11 2017, 4:34 PM

Jul 10 2017

machniak committed rRPK55ab4ed4cf3d: Don't ignore (global) userlogins/sendmail logging in per_user_logging mode (authored by machniak).
Don't ignore (global) userlogins/sendmail logging in per_user_logging mode
Jul 10 2017, 4:42 PM
machniak committed rRPK38e6afc90338: Don't ignore (global) userlogins/sendmail logging in per_user_logging mode (authored by machniak).
Don't ignore (global) userlogins/sendmail logging in per_user_logging mode
Jul 10 2017, 4:37 PM

Jul 9 2017

machniak added a comment to T2483: Support MeetingResponse.

So, I started working on this. I thought it's reasonably simple to implement, but testing this with Outlook 2013 I see a lot of strange comminication that is not described in the documentation. It sends redundant Sync commands with event updates, so in the end, after accepting an invitation the event ends up being still in un-responded state.

Jul 9 2017, 3:53 PM · Syncroton

Jul 7 2017

machniak committed rS5e8d37912f3c: CS fixes, small code improvements, more timezone converter tests (authored by machniak).
CS fixes, small code improvements, more timezone converter tests
Jul 7 2017, 11:03 AM

Jul 6 2017

machniak committed rSbd97cab43bff: Remove old commented code (authored by machniak).
Remove old commented code
Jul 6 2017, 6:42 PM
machniak committed rSe21c6d07fca6: Fix bug where timezone transitions could be wrong for some zones e.g. (authored by machniak).
Fix bug where timezone transitions could be wrong for some zones e.g.
Jul 6 2017, 6:42 PM

Jul 4 2017

machniak closed T2531: Possibly a bug with rescheduling event via CalDav as Resolved.

Fixed by 0c02d0d45c6 in roundcubemail-plugins-kolab [master].

Jul 4 2017, 4:32 PM · Roundcube Kolab Plugins , iRony, Bug Reports
machniak committed rRPK0c02d0d45c63: T2531: Support SCHEDULE-AGENT in iTip (authored by machniak).
T2531: Support SCHEDULE-AGENT in iTip
Jul 4 2017, 4:31 PM

Jul 3 2017

machniak committed rS409371a7cf4f: T2483: First take on MeetingResponse support (authored by machniak).
T2483: First take on MeetingResponse support
Jul 3 2017, 8:04 PM
machniak updated subscribers of T2531: Possibly a bug with rescheduling event via CalDav.

I verified with the code that if the original event would specify SCHEDULE-AGENT=CLIENT for the attendee it would be properly recognized by SabreDAV classes and the CANCEL would not be sent. So, what we need is to store this initial SCHEDULE-AGENT value in custom properties of Kolab format (or extend the format of https://wiki.kolab.org/User:Mollekopf/Drafts/KEP:17#Attendee).

Jul 3 2017, 5:25 PM · Roundcube Kolab Plugins , iRony, Bug Reports
machniak committed rSe55a0a1d4d95: PHP Warning: implode(): Invalid arguments passed (authored by vanmeeuwen).
PHP Warning: implode(): Invalid arguments passed
Jul 3 2017, 12:57 PM
machniak closed D455: PHP Warning: implode(): Invalid arguments passed by committing rSe55a0a1d4d95: PHP Warning: implode(): Invalid arguments passed (authored by vanmeeuwen).
Jul 3 2017, 12:57 PM
machniak accepted D461: Create one message to process per recipient..

Looks good to me. You can remove also COMMASPACE = ', ' line as we don't use this var anymore.

Jul 3 2017, 12:44 PM
machniak accepted D455: PHP Warning: implode(): Invalid arguments passed.
Jul 3 2017, 11:54 AM
machniak requested changes to D455: PHP Warning: implode(): Invalid arguments passed.

This way you can end up with true. I'd rather make sure $relation['members'] is an array. e.g.

'members' => implode("\n", (array) $relation['members']),
Jul 3 2017, 11:22 AM
machniak committed rRPK94dd9965a755: Add missing status-tentative label (authored by machniak).
Add missing status-tentative label
Jul 3 2017, 10:14 AM

Jul 1 2017

machniak added a comment to T2531: Possibly a bug with rescheduling event via CalDav.

However, https://tools.ietf.org/html/rfc6638#section-3.2.1.2 says that CANCEL is sent when an event was modified and previous scheduling was done by the server (default if SCHEDULE-AGENT is not specified). So, probably the issue is in recognizing the previous state.

Jul 1 2017, 9:45 AM · Roundcube Kolab Plugins , iRony, Bug Reports

Jun 30 2017

machniak edited projects for T2301: wallace can't handle resource reservations with multiple recipients, added: PyKolab, Kolab 16, Architecture & Design; removed PyKolab Developers.

@vanmeeuwen, what's your take on this?

Jun 30 2017, 7:30 PM · Architecture & Design, Kolab 16, PyKolab, Bug Reports
machniak closed T1802: Archive by-sender-email does not work as Resolved.

Fixed in bf4326c834 [master].

Jun 30 2017, 9:25 AM · Roundcube
machniak added a project to T2525: Non-ascii message body IMAP-search doesn't work: Cyrus IMAP.

I can confirm that. In my test it does not find messages even if they use UTF-8/8bit encoding, i.e. no decoding is required. Maybe squatter handles that better, I don't know.

Jun 30 2017, 8:51 AM · Cyrus IMAP, Bug Reports

Jun 29 2017

machniak added a comment to T2313: kolab 16.1 roundcube webmail calendar internal server error parsing time string.

Still can't find the way to reproduce the issue. Another source informed us that it had the same issue and there was CalDAV client involved. I reviewed the code and I don't see what actions could lead to such invalid timezone entries. Here's a patch that we could use, but I think the issue is in another place:

--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -1974,6 +1974,8 @@ class calendar extends rcube_plugin
    */
   private function write_preprocess(&$event, $action)
   {
+    $event['start'] = preg_replace('/\s*\(.*\)/', '', $event['start']);
+    $event['end']   = preg_replace('/\s*\(.*\)/', '', $event['end']);
     // convert dates into DateTime objects in user's current timezone
     $event['start']  = new DateTime($event['start'], $this->timezone);
     $event['end']    = new DateTime($event['end'], $this->timezone);
Jun 29 2017, 4:07 PM · Roundcube Kolab Plugins , Kolab 16, Bug Reports
machniak closed T2504: Inconsistent behavior while accepting invitations in roundcube as Resolved.

That looks like simple mistake in the code. Fixed in rRPKc2e8cc16abf3.

Jun 29 2017, 3:18 PM · PyKolab, Roundcube Kolab Plugins , Roundcube, Bug Reports
machniak committed rRPK3b855e8559c9: T2504: Fix DTSTAMP in iTip replies (authored by machniak).
T2504: Fix DTSTAMP in iTip replies
Jun 29 2017, 3:15 PM
machniak committed rRPKc2e8cc16abf3: T2504: Fix DTSTAMP in iTip replies (authored by machniak).
T2504: Fix DTSTAMP in iTip replies
Jun 29 2017, 3:10 PM
machniak committed rKC6903717c9d77: Merge branch 'arcpatch-D443' (authored by machniak).
Merge branch 'arcpatch-D443'
Jun 29 2017, 1:11 PM
machniak committed rKC565a335ae7c7: More on channels management (authored by machniak).
More on channels management
Jun 29 2017, 11:43 AM
machniak closed D443: More on channels management by committing rKC565a335ae7c7: More on channels management.
Jun 29 2017, 11:43 AM
machniak committed rRPK9340dec61063: Move more common methods used by tasklist and calendar to libcalendaring (authored by machniak).
Move more common methods used by tasklist and calendar to libcalendaring
Jun 29 2017, 11:36 AM