Commit Graph

31853 Commits

Author SHA1 Message Date
Boone Gorges 0e7c1d3b14 Use `wp_installing()` instead of `WP_INSTALLING` constant.
The `WP_INSTALLING` constant is a flag that WordPress sets in a number of
places, telling the system that options should be fetched directly from the
database instead of from the cache, that WP should not ping wordpress.org for
updates, that the normal "not installed" checks should be bypassed, and so on.

A constant is generally necessary for this purpose, because the flag is
typically set before the WP bootstrap, meaning that WP functions are not yet
available.  However, it is possible - notably, during `wpmu_create_blog()` -
for the "installing" flag to be set after WP has already loaded. In these
cases, `WP_INSTALLING` would be set for the remainder of the process, since
there's no way to change a constant once it's defined. This, in turn, polluted
later function calls that ought to have been outside the scope of site
creation, particularly the non-caching of option data. The problem was
particularly evident in the case of the automated tests, where `WP_INSTALLING`
was set the first time a site was created, and remained set for the rest of the
suite.

The new `wp_installing()` function allows developers to fetch the current
installation status (when called without any arguments) or to set the
installation status (when called with a boolean `true` or `false`). Use of
the `WP_INSTALLING` constant is still supported; `wp_installing()` will default
to `true` if the constant is defined during the bootstrap.

Props boonebgorges, jeremyfelt.
See #31130.
Built from https://develop.svn.wordpress.org/trunk@34828


git-svn-id: http://core.svn.wordpress.org/trunk@34793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 15:06:28 +00:00
Drew Jaynes aa6fbdaa92 Docs: Add a missing DocBlock summary for `wp_list_widget_controls_dynamic_sidebar()`.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34827


git-svn-id: http://core.svn.wordpress.org/trunk@34792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 03:06:24 +00:00
Drew Jaynes b1b2ec30e2 Docs: Add missing DocBlock summaries for five functions in wp-admin/includes/template-functions.php.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34826


git-svn-id: http://core.svn.wordpress.org/trunk@34791 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 03:03:25 +00:00
Drew Jaynes 0b332f6d7a Docs: Add missing DocBlock summaries to three functions in wp-admin/includes/plugin.php.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34825


git-svn-id: http://core.svn.wordpress.org/trunk@34790 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 02:55:24 +00:00
Drew Jaynes 4c2203b370 Docs: Add missing summaries for functions in wp-admin/includes/misc.php.
Also restructures the summary for `update_home_siteurl()`.

See #32246.

Built from https://develop.svn.wordpress.org/trunk@34824


git-svn-id: http://core.svn.wordpress.org/trunk@34789 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 02:52:24 +00:00
Drew Jaynes 2de4cc7149 Docs: Add missing DocBlock summaries for a multitude of functions in wp-admin/includes/media.php.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34823


git-svn-id: http://core.svn.wordpress.org/trunk@34788 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 02:44:25 +00:00
Drew Jaynes 3866a8cf58 Docs: Add missing method summaries for the deprecated `WP_User_Search` class, including `prepare_query()`, `query()`, `prepare_vars_for_template_usage()`, `do_paging()`, and `get_results()`.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34822


git-svn-id: http://core.svn.wordpress.org/trunk@34787 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 02:35:25 +00:00
Drew Jaynes 1f1c2335ad Docs: Add missing summaries for three deprecated admin functions: `dropdown_categories()`, `dropdown_link_categories()`, and `wp_dropdown_cats()`.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34821


git-svn-id: http://core.svn.wordpress.org/trunk@34786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 02:29:26 +00:00
Sergey Biryukov a285a1cf22 Use `home_url()` instead of `get_option( 'siteurl' )` in notifications that are sent when a user's email address or password is changed.
Props tyxla, ramay.
Fixes #34071.
Built from https://develop.svn.wordpress.org/trunk@34820


git-svn-id: http://core.svn.wordpress.org/trunk@34785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-04 23:03:26 +00:00
Jeremy Felt a8771a3914 MS: Populate `site_name` property in a new `WP_Network`.
This allows us to reduce some extra handling in `ms-settings.php`. Requires [34777].

Props johnjamesjacoby for the initial patch.
See #31985.

Built from https://develop.svn.wordpress.org/trunk@34819


git-svn-id: http://core.svn.wordpress.org/trunk@34784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-04 20:51:25 +00:00
Drew Jaynes 6650dfea4f Docs: Document the plugin data array returned by `get_plugin_data()` with a hash-notation.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34818


git-svn-id: http://core.svn.wordpress.org/trunk@34783 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-04 19:06:27 +00:00
Drew Jaynes f6948c38fa Widgets: Add more tests for registering and unregistering sidebars with 1) no ID, 2) a string ID, 3) a numeric ID.
See #17078.

Built from https://develop.svn.wordpress.org/trunk@34817


git-svn-id: http://core.svn.wordpress.org/trunk@34782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-04 05:23:24 +00:00
Drew Jaynes a0c6f8cca2 Widgets: Add tests for `dynamic_sidebar()` where sidebars were registered with 1) no supplied ID, 2) a numeric ID, 3) a string ID.
See #17078.

Built from https://develop.svn.wordpress.org/trunk@34816


git-svn-id: http://core.svn.wordpress.org/trunk@34781 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-04 04:44:27 +00:00
Boone Gorges 1438ad7bb8 Rechristen the `get_page_of_comment` filter.
See [34808].

Props DrewAPicture, SergeyBiryukov.
Fixes #13939.
Built from https://develop.svn.wordpress.org/trunk@34815


git-svn-id: http://core.svn.wordpress.org/trunk@34780 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 22:43:27 +00:00
Jeremy Felt 908b1f0b7d MS: Align HTML structure in `wp-signup.php` and `wp-activate.php`.
Assigns the `wp-activate-container` and `wp-signup-container` to the container inside `#signup-container` on each. This container already existed in `wp-signup.php` and is new in `wp-activate.php`.

Props ocean90.
Fixes #25478.

Built from https://develop.svn.wordpress.org/trunk@34814


git-svn-id: http://core.svn.wordpress.org/trunk@34779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 21:51:25 +00:00
Drew Jaynes b453c9e976 Users: Don't pass the current `WP_Users_List_Table` or `WP_MS_Users_List_Table` instance to the `users_list_table_query_args` filter after all.
After some discussion, it was decided that Multisite vs single site context can just as easily be derived using available functions like `is_network_admin()`, `get_current_screen()`, etc., rendering the second parameter moot. The hook was introduced in [34796].

Fixes #25360.

Built from https://develop.svn.wordpress.org/trunk@34813


git-svn-id: http://core.svn.wordpress.org/trunk@34778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 21:49:24 +00:00
Boone Gorges f08e5c2d80 Update the taxonomy relationship cache in `is_object_in_term()`.
This function attempts to read from the relationship cache, and uses any data
it finds. If it finds no data, it does a query for the data it needs. Since we
are going to the trouble to query for the relationships, and since we are
already using cached data when available, let's go ahead and cache it for
later use.

Props joehoyle, boonebgorges.
Fixes #32044.
Built from https://develop.svn.wordpress.org/trunk@34812


git-svn-id: http://core.svn.wordpress.org/trunk@34777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 21:19:23 +00:00
Boone Gorges 5be41d618f Don't prime term meta cache in `is_object_in_term()`.
Term meta is not necessary in this case, so priming the cache wastes a query.

See #10142, #32044.
Built from https://develop.svn.wordpress.org/trunk@34811


git-svn-id: http://core.svn.wordpress.org/trunk@34776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 21:07:24 +00:00
Drew Jaynes c1fc5e79c8 Tests: Permalink Structures Phase II: DRY up logic for setting permalink structures in test methods.
Renames `reset_permalinks()` to `set_permalink_structure()` (mimicking `$wp_rewrite->set_permalink_structure()`) and allows it to accept an optional permalink structure. In this way, we can double dip using it to both set and reset the permalink structure from anywhere.

Removes alot of duplicated code from tests.

See #33968.

Built from https://develop.svn.wordpress.org/trunk@34810


git-svn-id: http://core.svn.wordpress.org/trunk@34775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 20:55:24 +00:00
Boone Gorges 28625bfc38 When creating terms, avoid false dupe checks due to accented characters.
`wp_insert_term()` doesn't allow the creation of a term when the term `name`
is the same as another term in the same hierarchy level of the same taxonomy.
Previously, this duplicate check used `get_term_by( 'name' )`, which uses the
database collation to determine sameness. But common collations do not
distinguish between accented and non-accented versions of a character. As a
result, it was impossible to create a term 'Foo' if a sibling term with an
accented character existed.

We address this problem by using `get_terms()` to do the duplicate check. This
query returns all potentially matching terms. We then do a stricter check
for equivalence in PHP, before determining whether one of the matches is
indeed a duplicate.

Props boonebgorges, tyxla, geza.miklo, mehulkaklotar.
Fixes #33864.
Built from https://develop.svn.wordpress.org/trunk@34809


git-svn-id: http://core.svn.wordpress.org/trunk@34774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 20:25:26 +00:00
Boone Gorges 32dda547c1 Introduce 'page_of_comment' filter.
This filter allows developers to modify the output of `get_page_of_comment()`.

As a side effect of this new filter, comment page numbers will always be
returned as integers. Previously, they would sometimes be returned as floats -
eg `float(2.0)` instead of `int(2)`.

Props laceous.
See #13939.
Built from https://develop.svn.wordpress.org/trunk@34808


git-svn-id: http://core.svn.wordpress.org/trunk@34773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 19:39:25 +00:00
Drew Jaynes 6f2d3fea3b Tests: Last try: It's redundant to reset permalinks on `tearDown()` if we're already doing it on every `setUp()`.
Removes the restoration logic, which leveraged a static property initialized with `get_option()`.

See #33968.

Built from https://develop.svn.wordpress.org/trunk@34807


git-svn-id: http://core.svn.wordpress.org/trunk@34772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 19:27:26 +00:00
Boone Gorges 25e7ad64cf Use 'comments_per_page' option as fallback in `get_page_of_comment()`.
The function now uses the following order of precedence when calculating
comment pagination: 1. the 'per_page' value passed in the `$args` array,
2. the 'comments_per_page' query var in `$wp_query`, and 3. the
'comments_per_page' setting from options-discussion.php. This change allows
`get_page_of_comment()` to return an accurate value before the main query
has been run.

Props laceous.
See #13939.
Built from https://develop.svn.wordpress.org/trunk@34806


git-svn-id: http://core.svn.wordpress.org/trunk@34771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 19:26:24 +00:00
Boone Gorges cd5cd380e8 Only count top-level comments when calculating threaded pagination.
The change in [34535] did not properly account for threading.

See #13939, #11334.
Built from https://develop.svn.wordpress.org/trunk@34805


git-svn-id: http://core.svn.wordpress.org/trunk@34770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 19:16:24 +00:00
Boone Gorges 198dee542d Ensure that `WP_User_Query` vars are filled after 'pre_get_users'.
This prevents notices from being thrown when a 'pre_get_users' callback
removes required values from the list of `query_vars`.

For backward compatibility with previous uses of 'pre_get_users', default
values are parsed both before and after the action is fired.

Fixes #33449.
Built from https://develop.svn.wordpress.org/trunk@34804


git-svn-id: http://core.svn.wordpress.org/trunk@34769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 18:45:25 +00:00
Drew Jaynes 86f8dedf68 Tests: Move the global permalinks reset routine to only fire when running core tests.
Should fix intermittent mysqli response errors in the AJAX tests.

See #33968.

Built from https://develop.svn.wordpress.org/trunk@34803


git-svn-id: http://core.svn.wordpress.org/trunk@34768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 18:36:26 +00:00
Drew Jaynes a127d95c89 Tests: Introduce `WP_UnitTestCase::reset_permalinks()`, an attempt to DRY up logic for resetting and restoring default permalinks on `setUp()` and `tearDown()`.
See #33968.

Built from https://develop.svn.wordpress.org/trunk@34802


git-svn-id: http://core.svn.wordpress.org/trunk@34767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 17:15:24 +00:00
Sergey Biryukov 4f709678fb Add missing unit tests from [34799].
Props johnbillion.
See #34059.
Built from https://develop.svn.wordpress.org/trunk@34801


git-svn-id: http://core.svn.wordpress.org/trunk@34766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 15:10:25 +00:00
Sergey Biryukov 3792591dfb Add `single-{post_type}-{post_name}.php` to the top of the template hierarchy for single posts.
This is consistent with page and taxonomy templates, which support slugs as well.

Props ericjuden, johnbillion.
Fixes #18859.
Built from https://develop.svn.wordpress.org/trunk@34800


git-svn-id: http://core.svn.wordpress.org/trunk@34765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 15:00:25 +00:00
Sergey Biryukov 9dc1a858f8 Abstract functionality from `wp-comments-post.php` into a function, `wp_handle_comment_submission()`.
Add unit tests.

Props johnbillion.
Fixes #34059.
Built from https://develop.svn.wordpress.org/trunk@34799


git-svn-id: http://core.svn.wordpress.org/trunk@34764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 14:47:26 +00:00
Sergey Biryukov 0aacea6535 Merge some strings with the same meaning in `wp-includes/class-wp-xmlrpc-server.php`.
Props pavelevap.
Fixes #33644.
Built from https://develop.svn.wordpress.org/trunk@34798


git-svn-id: http://core.svn.wordpress.org/trunk@34763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 14:09:43 +00:00
Sergey Biryukov 6b71b2304b Merge some strings in `wp-admin/upload.php` with existing strings with the same meaning.
Props pavelevap.
Fixes #31727.
Built from https://develop.svn.wordpress.org/trunk@34797


git-svn-id: http://core.svn.wordpress.org/trunk@34762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 13:57:27 +00:00
Drew Jaynes b38569a5fc Users: Introduce the `users_list_table_query_args` filter, for modifying the `WP_User_Query` arguments used within the `prepare_items()` methods in the users list tables.
The current list table is passed as a second parameter, `$this`, and can take the form of either a `WP_Users_List_Table` or `WP_MS_Users_List_Table` instance depending on the context in which the filter was evaluated.

Props juliobox for the initial patch.
Fixes #25360.

Built from https://develop.svn.wordpress.org/trunk@34796


git-svn-id: http://core.svn.wordpress.org/trunk@34761 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 07:24:25 +00:00
Boone Gorges f6b2797bd3 Remove `search_terms` from `WP_Query` doc block.
It's not actually a query param.

Introduced in [28887].
Built from https://develop.svn.wordpress.org/trunk@34795


git-svn-id: http://core.svn.wordpress.org/trunk@34760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 04:36:27 +00:00
Sergey Biryukov d6865505d5 Respect the `force_delete` parameter of `get_delete_post_link()`.
Previously, it only worked if `EMPTY_TRASH_DAYS` was disabled.

Props johnbillion, chriscct7.
Fixes #26832.
Built from https://develop.svn.wordpress.org/trunk@34794


git-svn-id: http://core.svn.wordpress.org/trunk@34759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 01:50:25 +00:00
John Blackbourn 5e98b20e84 Adjust `_default_wp_die_handler()` formatting so it doesn't confuse Sublime Text's parsing and syntax highlighting.
Fixes #34135

Built from https://develop.svn.wordpress.org/trunk@34793


git-svn-id: http://core.svn.wordpress.org/trunk@34758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 01:32:24 +00:00
Boone Gorges ca86a8a404 Remove dead code added to `get_comment_link()` in [34735].
See #34073.
Built from https://develop.svn.wordpress.org/trunk@34792


git-svn-id: http://core.svn.wordpress.org/trunk@34757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 01:27:24 +00:00
Sergey Biryukov 1137b70ef3 Twenty Fifteen: Document the `'twentyfifteen_color_schemes'` filter.
Props DrewAPicture.
Fixes #34119.
Built from https://develop.svn.wordpress.org/trunk@34791


git-svn-id: http://core.svn.wordpress.org/trunk@34756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 01:10:26 +00:00
John Blackbourn cf5ac0b6bf Use `wp_login_url()` for login links when signing up for a new blog or activating a new blog on Multisite.
Fixes #31495
Props GregLone for the intial patch

Built from https://develop.svn.wordpress.org/trunk@34790


git-svn-id: http://core.svn.wordpress.org/trunk@34755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 00:34:25 +00:00
Weston Ruter d9cca27386 Customize: Fix `nav_menu_item` CSS `classes` array being incorrectly presented in input field as comma-delimited list.
Instead of using `Array.toString()` to serialize an array with comma delimiters, explicitly `join` the array using spaces instead. Also ensure that `xfn` is handled properly if it ever gets stored as an array. 

Props tyxla, westonruter.
Fixes #34111.

Built from https://develop.svn.wordpress.org/trunk@34788


git-svn-id: http://core.svn.wordpress.org/trunk@34753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-03 00:15:24 +00:00
John Blackbourn 27dbbdfba4 Introduce a `register_taxonomy_args` filter for filtering the arguments passed when calling `register_taxonomy()`. This is the taxonomy equivalent of the newly introduced `register_post_type_args` filter.
Fixes #33990
Props tyxla for initial patch

Built from https://develop.svn.wordpress.org/trunk@34787


git-svn-id: http://core.svn.wordpress.org/trunk@34752 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 23:57:25 +00:00
John Blackbourn 9bc54c9442 Remove the unnecessary dynamic prefix used in the `plugin_action_links` filter name, and in those of its brethren. This way, `network_admin_plugin_action_links` gets listed as a separate filter.
Fixes #34117

Built from https://develop.svn.wordpress.org/trunk@34786


git-svn-id: http://core.svn.wordpress.org/trunk@34751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 23:44:26 +00:00
John Blackbourn 9d7d1508e2 Add VideoPress as a trusted oEmbed provider.
Fixes #34031
Props kraftbj

Built from https://develop.svn.wordpress.org/trunk@34785


git-svn-id: http://core.svn.wordpress.org/trunk@34750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 23:20:28 +00:00
John Blackbourn 939ef7887e `shttp` is not a protocol.
See #27115

Built from https://develop.svn.wordpress.org/trunk@34784


git-svn-id: http://core.svn.wordpress.org/trunk@34749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 22:48:26 +00:00
John Blackbourn 815635548a Switch the remaining user-facing links to wordpress.org over to HTTPS.
Fixes #27115

Built from https://develop.svn.wordpress.org/trunk@34783


git-svn-id: http://core.svn.wordpress.org/trunk@34748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 22:46:28 +00:00
Drew Jaynes 6f7a298c18 Docs: Fix the placement and ordering of some `@since` tags following [34780].
See #12133. See #32246.

Built from https://develop.svn.wordpress.org/trunk@34782


git-svn-id: http://core.svn.wordpress.org/trunk@34747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 20:50:25 +00:00
Drew Jaynes bfa2a5295e Docs: Improve a variety of inline docs in wp-includes/l10n.php.
* Corrects phrasing used in the descriptions for and filters in `_n()` and `_nx()`, particularly with regard to the use of 'singular' instead of 'single' or '1', and 'plural' instead of 'not 1'.
* Adds example usage to `_n()`, `_nx()`, `_nx_noop()`, and `translate_nooped_plural()`.
* Adds hash notation `@return` doc for `_n_noop()` and `_nx_noop()`.
* Adds missing default values for the optional `$domain` parameter in several places.

Props johnbillion.
Fixes #34127.

Built from https://develop.svn.wordpress.org/trunk@34781


git-svn-id: http://core.svn.wordpress.org/trunk@34746 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 20:45:24 +00:00
John Blackbourn 7707dbf862 Introduce support for array format field names in `WP_Widget::get_field_name()` and `WP_Widget::get_field_id()`.
Fixes #12133
Props ch1902, welcher

Built from https://develop.svn.wordpress.org/trunk@34780


git-svn-id: http://core.svn.wordpress.org/trunk@34745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 20:24:24 +00:00
Jeremy Felt dba5a73119 Docs: Add deprecation note for `$use_cache` in `get_site_option()`.
Props johnbillion.
See #28290.

Built from https://develop.svn.wordpress.org/trunk@34779


git-svn-id: http://core.svn.wordpress.org/trunk@34744 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 19:32:30 +00:00
Jeremy Felt 54512d64cb MS: Use `*_network_option()` functions throughout core.
Replaces all uses of `*_site_option()` with the corresponding "network" function.

This excludes one usage in `wp-admin/admin-footer.php` that needs more investigation.

Props spacedmonkey.
See #28290.

Built from https://develop.svn.wordpress.org/trunk@34778


git-svn-id: http://core.svn.wordpress.org/trunk@34743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 19:08:26 +00:00