Paul Sokolovsky
91031b60dc
docs/conf.py: Active sphinx_selective_exclude extensions.
...
For modindex_exclude extension, per-port module excludes are also added.
With these changes, it's possible to generate docs for a particular port
devoid of any superfluous and unrelated content, including in indexes and
full-text search - with small caveat: when generating PDF docs after HTML,
or vice-versa cached internal doctree representation (build/*/doctrees/)
must be removed first.
2016-06-12 01:18:13 +03:00
Paul Sokolovsky
f6d01b8b67
docs: Add sphinx_selective_exclude extension suite.
...
Designed specifically to workaround issues we were facing with generating
multiple conditionalized output docsets from a single master doctree.
Extensions were factored out into a separate project, based on the fact
that many other Sphinx users experience similar or related problems:
https://github.com/pfalcon/sphinx_selective_exclude
Corresponds to the 182f4a8da57 upstream revision.
2016-06-12 01:13:39 +03:00
Paul Sokolovsky
9de5eb278d
docs/sys: Detailed description of print_exception() diff from traceback module.
2016-06-10 23:06:56 +03:00
Paul Sokolovsky
343b5c1081
docs/uctypes: Improve documentation.
...
Seealso and Limitations sectiosn added, better formatting and grammar.
2016-06-09 05:02:55 +03:00
Paul Sokolovsky
79b40d1127
docs/machine*: Remove explicit targets and "machine." prefixes on classes.
...
With currentmodule:: set properly, none are needed. Extra "machine." prefix
produces wrong indexing data.
2016-06-09 03:03:53 +03:00
Paul Sokolovsky
a0c296f6d5
docs/machine.Pin: Disambiguate object call method.
2016-06-09 02:58:15 +03:00
Paul Sokolovsky
1d3b903eb5
docs/library/index: Add builtins.rst.
2016-06-09 00:26:44 +03:00
Paul Sokolovsky
0cec4e9bb8
docs/builtins: Enumerate all builtin functions implemented.
...
Based on unix version. No descriptions so far.
2016-06-09 00:24:52 +03:00
Paul Sokolovsky
f1eb672d88
docs/pyb.Pin: Sort .af() and .af_list() methods together.
2016-06-08 16:36:22 +03:00
Paul Sokolovsky
a384a53130
docs/pyb.*: Use proper class case in method headers.
...
Class designator will be used as is in indexes, so must match actual class
name.
2016-06-08 16:21:28 +03:00
Paul Sokolovsky
585aafc27e
docs/pyb.ExtInt,pyb.Pin: Mark up class methods as such.
2016-06-08 16:00:12 +03:00
Paul Sokolovsky
0d8c22b122
docs/pyb.Pin: af_list() is a normal method, not a class method.
2016-06-08 15:57:46 +03:00
Paul Sokolovsky
8171995ee9
docs/pyb.CAN: Mark CAN.initfilterbanks() as classmethod explicitly.
2016-06-08 15:49:30 +03:00
Paul Sokolovsky
bba77a2d01
docs/machine.Pin: Add class designator to all constants.
...
This makes rendered docs to not provide incorrect information and
consistent with how it's down for other machine classes.
2016-06-08 01:37:03 +03:00
Paul Sokolovsky
7d7243f44c
docs/machine.*: Use proper class case in method headers.
...
Class designator will be used as is in indexes, so must match actual class
name.
2016-06-08 01:33:49 +03:00
Paul Sokolovsky
93968bd6fb
docs/machine.UART: Cleanup pyboard section.
2016-06-08 01:32:16 +03:00
Paul Sokolovsky
0a4361ca67
docs/machine.Pin: Remove explicit target.
...
With currentmodule:: support, all targets should be generated properly by
Sphinx.
2016-06-08 01:13:59 +03:00
Paul Sokolovsky
0a4cc24b2e
docs/pyb.*: Add "currentmodule:: pyb" directive.
...
Makes sure that classes described in these separate files are properly
designated as belonging to "pyb" module in indexes.
2016-06-08 00:57:41 +03:00
Paul Sokolovsky
c8b7628094
docs/machine.*: Add "currentmodule:: machine" directive.
...
Makes sure that classes described in these separate files are properly
designated as belonging to "machine" module in indexes.
2016-06-08 00:46:27 +03:00
Paul Sokolovsky
2c5fc681c8
docs/library/machine.Pin: Mention GPIO and cross-link .value() function.
2016-06-07 17:49:00 +03:00
Paul Sokolovsky
6e2fa5237d
docs/usocket: There must be empty line after .only:: .
2016-06-07 17:41:21 +03:00
Paul Sokolovsky
9b18811951
docs/ure: Typo fix.
2016-06-07 08:53:54 +03:00
Paul Sokolovsky
753a965363
docs/esp.socket: Remove unused file.
2016-06-07 02:40:05 +03:00
Paul Sokolovsky
9487b80666
docs/library/network: wipy: Fix literal block indentation.
2016-06-07 02:07:08 +03:00
Damien George
2bf6eb9fe2
docs: Add link to PDF version of docs in sidebar.
...
Requires a link of the form: <BASEURL>/<lang>/<ver>/micropython-<port>.pdf
2016-06-06 11:37:40 +01:00
Ben Hagen
0b913bd09f
docs/esp8266/tutorial/network_basics: Minor typo fix, ap becomes ap_if.
2016-06-06 10:08:30 +01:00
Damien George
9b39263b11
docs: Bump version to 1.8.1.
2016-06-03 15:45:43 +01:00
puuu
3f6ca4b22c
docs/esp8266/general: Add note about RTC overflow.
2016-06-03 14:37:49 +01:00
Paul Sokolovsky
d8cc51ea2b
docs/esp8266/quickref: Update WebREPL section for 1.8.1 release.
...
WebREPL is much more stable now.
2016-06-02 20:11:40 +03:00
Damien George
ed4e5d2583
docs/library/index: Fix grammar and spelling in intro paragraph.
2016-06-02 11:05:13 +01:00
Marcel Stör
0b9725812e
docs/wipy/tutorial: Add note about screen key bindings on OS X.
2016-06-02 00:13:21 +03:00
Paul Sokolovsky
e456b2cc94
docs/README: Add some hints for PDF docs generation.
2016-06-02 00:08:47 +03:00
Paul Sokolovsky
09f764dc04
docs/library/index: Add intro paragraph regarding availability of modules.
...
This introductions makes explicit the fact that whenever possible,
the documentation describes full MicroPython functionality, and arbitrary
functions/classes/modules may be missing in a paricular port or build.
2016-06-02 00:08:07 +03:00
Paul Sokolovsky
9a1a49ceec
esp8266/general: Typo/grammar fixes.
2016-06-01 23:16:17 +03:00
Paul Sokolovsky
fdf45a718b
esp8266/quickref: Use local image of Adafruit Huzzah board.
...
Using remote image causes problems with tools (partly because the image
is semi-firewalled and can't be accessed by arbitrary tools).
2016-06-01 23:11:49 +03:00
Paul Sokolovsky
c4ab8895e8
docs: math, cmath: Add port availability information.
2016-06-01 22:12:39 +03:00
Paul Sokolovsky
1a05a59116
docs/math: Typo fix.
2016-06-01 22:09:51 +03:00
Damien George
93a9c2e840
docs/library/machine: Add documentation for machine.time_pulse_us.
2016-05-31 14:06:33 +01:00
Peter Hinch
641300dccb
stmhal/dac: DAC deinit() method added.
2016-05-31 13:10:35 +03:00
Tomas R
7d4fd8b6db
docs/esp8266/general: Remove duplicate phrase.
2016-05-30 19:20:11 +03:00
Damien George
a3dc2c6031
docs/machine: Make disable_irq and enable_irq docs available for all.
2016-05-26 15:47:47 +01:00
mad474
eaecc4c02e
docs/esp8266/general: Grammar fixes.
2016-05-23 23:33:23 +03:00
Paul Sokolovsky
3e33aeb0db
docs: esp8266: Include ussl module in the docs.
2016-05-22 23:57:26 +03:00
Paul Sokolovsky
bca4c9e465
docs/ussl: Add basic description of axTLS-based modussl.
...
In particular, disclose the fact that server certificates are not
validated.
2016-05-22 23:56:22 +03:00
misterdanb
a0a08b4be1
esp8266: Add APA102 serial individually controllable LEDs support.
...
APA102 is a new "smart LED", similar to WS2812 aka "Neopixel".
2016-05-19 22:29:11 +03:00
Paul Sokolovsky
ca63c77073
docs/ustruct: Describe supported type codes.
2016-05-14 20:48:43 +03:00
Radomir Dopieralski
ccb00b7724
docs/esp8266/quickstart: remove i2c examples with stop=False
...
Since the ``stop`` parameter has been dropped.
2016-05-14 00:02:02 +02:00
Damien George
9b4502b7e8
docs/esp8266/tutorial: Fix typo in do_connect() network example.
...
Fixes issue #2065 .
2016-05-11 13:40:28 +01:00
Radomir Dopieralski
e89413e9b0
docs/esp8266/quickref: New way to get MAC address
2016-05-10 00:31:57 +02:00
Paulus Schoutsen
c156e89379
Fix ESP8266 Network tutorial
...
The socket should either connect to `addr` or `addr_info[0][-1]`. Not to `addr[0][-1]`.
2016-05-07 23:24:24 -07:00
Radomir Dopieralski
0c86a9471a
docs/machine.UART: Filter out unimplemented UART methods from esp8266 docs.
2016-05-07 20:20:04 +03:00
Damien George
2c2fc070ec
docs: Bump version to 1.8.
2016-05-03 17:32:32 +01:00
Damien George
56fd33a6dd
docs/esp8266/tutorial: Change name of ESP8266 firmware to match actual.
2016-05-03 16:42:52 +01:00
Paul Sokolovsky
c68c327310
docs/esp8266/tutorial/repl: Reword description of initial WebREPL setup a bit.
2016-05-03 18:40:16 +03:00
Paul Sokolovsky
1f396c58d9
docs/esp8266/tutorial/repl: Suggest using hosted WebREPL client.
...
At http://micropython.org/webrepl .
2016-05-03 18:35:43 +03:00
Damien George
5d05993f10
esp8266/tutorial: Mention that esptool is available via pip.
2016-05-03 14:05:50 +01:00
Damien George
8af64bcf2b
docs/esp8266/tutorial: Update pins tutorial to reflect changes in API.
2016-05-03 13:56:15 +01:00
Damien George
5036b6ad18
docs/library/machine.Pin: Update pin docs to reflect ESP8266 support.
2016-05-03 13:55:37 +01:00
Paul Sokolovsky
81a99eb388
docs/machine: idle() description generalization.
2016-05-03 12:53:57 +03:00
Paul Sokolovsky
bb6458bf43
docs/machine: More generic description of sleep's, WiPy details to its genref.
2016-05-03 12:48:20 +03:00
Paul Sokolovsky
db99ae00a2
docs/machine: Move WiPy-specific hardware details to its general reference.
2016-05-03 12:26:55 +03:00
Paul Sokolovsky
06ec96b47b
docs/machine: Generalize docs from just WiPy to other ports.
2016-05-03 12:15:29 +03:00
Damien George
879bc4197a
docs/esp8266: Add ESP8266 tutorial.
2016-05-03 01:39:04 +01:00
Paul Sokolovsky
a6cf45864f
docs/network: esp8266: MAC address is set via .config() method.
2016-05-03 01:04:40 +03:00
Paul Sokolovsky
ae845f13de
docs: Use getaddrinfo() result in easy way.
...
Instead of extracting 4th element, extact last. Much easier to remember!
2016-05-03 00:48:04 +03:00
Paul Sokolovsky
5302c3e8c4
docs/esp8266_contents: Referebce general and tutorial docs.
2016-05-02 17:45:42 +03:00
Paul Sokolovsky
a22aa53ef1
docs/esp8266/general: Add "Boot process" section.
2016-05-02 17:41:08 +03:00
Paul Sokolovsky
12144e8fcd
docs/esp8266/general: Add techspec section.
...
Link to vendor forum with datasheets, etc. is provided, as well as inline
TTX.
2016-05-02 17:12:25 +03:00
Paul Sokolovsky
0f682f1ee1
docs/esp8266/general: Fix list formatting.
2016-05-02 16:10:48 +03:00
Paul Sokolovsky
5aa4db0505
docs/esp8266/general: Add more points to "Multitude of boards" section.
2016-05-02 16:00:44 +03:00
Paul Sokolovsky
74c6363b97
docs/esp8266/general: WebREPL is described in quickref for now.
2016-05-02 15:26:40 +03:00
Damien George
c816b89353
docs/library/machine.I2C: Update to reflect ESP8266 implementation.
...
This machine.I2C documentation is now closer to a more port-neutral
description, although there are still differences between WiPy and
ESP8266.
2016-05-02 12:31:17 +01:00
Paul Sokolovsky
621c644205
docs: _io and _collections were renamed to have standard "u" prefix.
2016-05-02 14:02:54 +03:00
Damien George
70ff7350e7
stmhal, cc3200: Change i2c.scan() method to scan addresses 0x08-0x77.
...
A standard I2C address is 7 bits but addresses 0b0000xxx and 0b1111xxx
are reserved. The scan() method is changed to reflect this, along with
the docs.
2016-05-02 11:15:36 +01:00
Paul Sokolovsky
8ebdbcfb27
docs: Add _io module reference.
2016-05-02 00:39:36 +03:00
Paul Sokolovsky
348caaf940
docs: Add _collections module reference.
2016-05-02 00:36:58 +03:00
Paul Sokolovsky
fd283eba64
docs/sys: Describe sys.platform is port-neutral manner.
2016-05-01 14:39:38 +03:00
Paul Sokolovsky
e9b7610748
docs/sys: Describe sys.maxsize.
2016-05-01 14:31:08 +03:00
Paul Sokolovsky
59603a2e89
docs/sys: Describe sys.implementation.
2016-05-01 13:59:34 +03:00
Paul Sokolovsky
4fb9452bff
docs/sys: Clean up print_exception() description.
2016-05-01 13:44:06 +03:00
Paul Sokolovsky
ad2889c141
docs/sys: Clarify description of sys.exit().
2016-05-01 13:42:36 +03:00
Paul Sokolovsky
8ad1659f68
docs/sys: Make module variable descriptions proper sentences.
2016-05-01 13:38:45 +03:00
Paul Sokolovsky
7781caf8d3
docs/sys: Remove port-specific details from description of stdin/out/err.
2016-05-01 13:37:28 +03:00
Paul Sokolovsky
c468fe65c5
docs/ustruct: Fix argument formatting.
...
Per current CPython docs conventions, arguments are in italics. Follow
that.
2016-05-01 13:34:16 +03:00
Paul Sokolovsky
a9ed42b3b4
docs/sys: Document sys.modules.
2016-05-01 13:32:15 +03:00
Paul Sokolovsky
6b6acc5b5d
docs/ustruct: Document pack_into(), unpack_from().
2016-05-01 13:17:07 +03:00
Paul Sokolovsky
d46cd02d95
docs/esp8266/quickref: Add info about WebREPL.
2016-05-01 11:41:46 +03:00
Paul Sokolovsky
83e99f88cb
docs/utime: Clarify module purpose.
2016-05-01 01:48:30 +03:00
Paul Sokolovsky
613fd0a1ca
docs/library/utime: Elaborate on epochs and calendar time maintenance.
2016-05-01 00:16:47 +03:00
Damien George
348edad888
docs/esp8266: Update quickref to reflect changes to 1-wire and NeoPixel.
2016-04-28 14:31:37 +01:00
Damien George
37d5aa1377
docs: Make the short port names in the port/version sidebar lowercase.
...
To make it neater and simpler.
2016-04-28 12:34:59 +01:00
Paul Sokolovsky
6d8156ae28
docs/network: esp8266: Describe wlan.config() method.
2016-04-28 00:11:55 +03:00
Paul Sokolovsky
06deec9d35
docs/network: esp8266: Add wlan.ifconfig() method.
2016-04-28 00:10:29 +03:00
Paul Sokolovsky
1b45670c69
docs/ubinascii: Clean up grammar.
2016-04-27 15:47:33 +03:00
Paul Sokolovsky
df4e1d1279
docs/library: Consistently use admonitions for CPython differences.
2016-04-27 15:43:48 +03:00
Paul Sokolovsky
31300b5144
docs/utime: Describe sleep() peculiarities in MicroPython.
...
Not all ports accept floating-point value.
2016-04-27 15:28:46 +03:00
Paul Sokolovsky
c564169c8f
docs/utime: Describe time() peculiarities in MicroPython.
2016-04-27 15:23:11 +03:00
Damien George
556e5dfd35
docs/library/utime: Add more time functions for unix and esp8266 ports.
2016-04-27 12:30:59 +01:00
Damien George
e0f7e001e8
docs: Fix uos and utime heading underlines to be the correct length.
...
Otherwise Sphinx gives a warning.
2016-04-27 12:11:27 +01:00
Paul Sokolovsky
351ec6d4ab
docs/library: "os" module is actually "uos".
2016-04-27 01:55:06 +03:00
Paul Sokolovsky
f3f5e975e4
docs/Makefile: Default BUILDDIR based on MICROPY_PORT.
...
It doesn't make sense to duplicate both on command line, and MICROPY_PORT
is effectively mandatory to build docs.
2016-04-27 01:50:05 +03:00
Paul Sokolovsky
0df2ee0126
docs/library/index: Order sections from the most to least standard modules.
2016-04-27 01:38:59 +03:00
Paul Sokolovsky
492bf12499
docs/library/index: Make single section for "micro-ified" modules.
...
Even the modules whose names don't start with "u" prefix are micro-ified
anyway, i.e. provide only subset of CPython's functionality (and sometimes
extensions to it). So, it doesn't make much sense to devide them by
criteria of having/not having "u" prefix.
2016-04-27 01:38:59 +03:00
Paul Sokolovsky
678f3a1e05
docs: Module "time" is actually "utime".
2016-04-27 01:38:59 +03:00
Paul Sokolovsky
a119983328
docs/library/index: esp8266 has the same set of stdlibs as pyboard/unix.
2016-04-27 01:17:28 +03:00
Paul Sokolovsky
88ed518390
docs/library/index: Move WiPy "micro-libraries" under corresponding heading.
2016-04-27 01:14:16 +03:00
Paul Sokolovsky
8b8c32c09b
docs/library: Group MicroPython-specific modules under separate heading.
2016-04-27 01:11:24 +03:00
Paul Sokolovsky
650df97c06
docs/network: esp8266: scan(): Add note that bssid is bytes object.
2016-04-26 01:09:11 +03:00
Paul Sokolovsky
0d10e5310a
docs/usocket: Describe address format once at the beginning.
...
Different ports may have different formats.
2016-04-23 00:31:05 +03:00
Paul Sokolovsky
92497bff94
docs/usocket: socket.IPPROTO_SEC is WiPy-specific.
2016-04-23 00:17:34 +03:00
Paul Sokolovsky
955b8526f4
docs/usocket: Socket-specific exceptions are for WiPy only.
2016-04-23 00:17:09 +03:00
Paul Sokolovsky
71c6f93016
docs/library/usocket: Add link to CPython's socket module.
2016-04-23 00:08:43 +03:00
Paul Sokolovsky
bbe5245028
docs: esp8266: Include usocket module reference.
2016-04-23 00:08:11 +03:00
Paul Sokolovsky
3bc9b571bb
docs/ustruct: There's no complete "struct" module, only "ustruct" subset.
...
"ustruct" is good example of micro-ified module, so rather should belong
to the corresponding list.
2016-04-22 22:37:14 +03:00
Paul Sokolovsky
5c8147528e
docs/esp8266/tutorial: Add tutorial placeholder page.
2016-04-22 22:37:02 +03:00
Damien George
fcc9d43c6d
docs/esp8266: Add info about using deep-sleep mode to quickref.
2016-04-21 12:01:50 +01:00
Paul Sokolovsky
2a51f72ed1
docs/esp8266/general: Start "General information" for esp8266.
2016-04-21 01:03:51 +03:00
Paul Sokolovsky
f73d78394b
docs/topindex.html: esp8266: Enable quickref/general on the main page.
2016-04-21 01:03:27 +03:00
Paul Sokolovsky
67ece47121
docs/machine: reset_cause() has been implemented for esp8266.
2016-04-17 17:40:08 +03:00
Paul Sokolovsky
53ac7830cb
docs/speed_python: Add article.
2016-04-15 20:09:59 +03:00
Paul Sokolovsky
5801967496
docs/speed_python: Add many more details on memoryviews.
2016-04-15 18:18:18 +03:00
Paul Sokolovsky
47f9b10b30
docs/speed_python: Generalize "Floating point" subsection.
...
Don't describe just single port's peculiarities, note aboute possible
array of issues with floating-point.
2016-04-15 17:43:03 +03:00
Paul Sokolovsky
6c84f1e03a
docs/speed_python: Clarify/generalize "Buffers" subsection.
2016-04-15 17:24:56 +03:00
Paul Sokolovsky
f474e956d7
docs/machine: Start to update for esp8266 port.
2016-04-15 17:06:11 +03:00
Paul Sokolovsky
b122ed0732
docs/esp: Enumerate flash access functions.
2016-04-15 14:01:22 +03:00
Peter Hinch
22cbcd55f0
stmhal: Properly handle RTS/CTS flow control for buf/unbuf transfers.
...
Fixes issues #1912 and #1913 . UART documentation is also updated.
2016-04-13 08:42:32 +01:00
Damien George
9b0a150bd6
docs: Bump version to 1.7.
2016-04-11 12:18:10 +01:00
Paul Sokolovsky
9c04299da1
docs: esp8266: Enable "machine" module docs.
...
The docs are still heavily biased towards WiPy, so will need a lot of
exclusions.
2016-04-07 16:44:10 +03:00
Paul Sokolovsky
5e7fa7c80c
docs/ubinascii: Document non-standard "sep" argument to hexlify().
2016-04-07 12:39:00 +03:00
Paul Sokolovsky
e4cb7c6158
docs/esp8266/quickref: Add note about physical vs logical pin numbers.
2016-04-05 16:30:51 +03:00
Paul Sokolovsky
f81ea6307c
docs/ubinascii: Document a2b_base64(), b2a_base64().
2016-04-05 14:00:12 +03:00
Paul Sokolovsky
28d4b94dce
docs/machine: Change wording to be a bit more port-neutral.
2016-04-03 20:49:29 +03:00
Paul Sokolovsky
69b702276b
docs/os: Change wording to be a bit more port-neutral.
2016-04-03 20:49:25 +03:00
Paul Sokolovsky
e24674d44e
docs: esp8266: esp.socket is deprecated, remove from docs.
2016-04-03 20:19:39 +03:00
Paul Sokolovsky
254a5646c1
docs: Update copyright notice.
2016-04-03 00:05:23 +03:00
Paul Sokolovsky
f50d9477c1
docs: network: esp8266: .scan() is now synchronous and returns result list.
2016-03-30 11:56:20 +03:00
Paul Sokolovsky
d7019d0628
docs: network: esp8266: status is WLAN object method.
2016-03-30 11:53:45 +03:00
danicampora
193795398d
docs: Correct pin interrupt example code for the WiPy.
2016-03-28 13:12:58 +02:00
Paul Sokolovsky
87c783b454
docs/esp8266: esp.mac() replaced with network.WLAN.mac().
2016-03-27 06:59:39 +03:00
Paul Sokolovsky
679fe0abae
docs/esp8266: esp.wifi_mode() replaced with network.WLAN.active().
2016-03-27 06:59:00 +03:00
Paul Sokolovsky
eda8746324
docs/esp8266: phy_mode() moved to network module.
2016-03-27 06:58:06 +03:00
Paul Sokolovsky
0cb10b5220
docs/esp8266/quickref: Add note about GPIO16.
2016-03-25 16:48:15 +02:00
Paul Sokolovsky
159f1aaca8
docs/esp8266/quickref: Note that timers supported are virtual ones.
2016-03-25 16:44:13 +02:00
Paul Sokolovsky
e589cddcd4
docs/esp: Remove getaddrinfo(), now in socket module as expected.
2016-03-25 16:39:18 +02:00
Paul Sokolovsky
6e6488530e
docs: More standard modules for esp8266.
2016-03-25 16:33:05 +02:00
Paul Sokolovsky
4b5606bc09
docs/network: esp8266: Update docs on WLAN constructor.
2016-03-25 16:30:06 +02:00
Paul Sokolovsky
ee6fcc6f91
docs: Add standard modules list for esp8266.
2016-03-25 15:17:55 +02:00
Paul Sokolovsky
96a644076d
docs/topindex.html: Refer to "pyb" module only for pyboard.
2016-03-25 15:12:26 +02:00
Peter Hinch
2b302dad51
docs: Update pyb.UART.any() to mention that it returns character count.
2016-03-17 20:19:36 +00:00
Peter Hinch
6d5a549067
docs: Mention that pyb.SPI constructor accepts "X" and "Y" arguments.
2016-03-17 20:19:08 +00:00