Граф коммитов

11417 Коммитов

Автор SHA1 Сообщение Дата
James Willcox 0ce09f5523 Bug 837687 - Use a case-insensitive comparison for OpenGL extension names r=jgilbert 2013-02-05 13:02:17 -05:00
James Willcox 4fb5b1abb0 backout caf13c3365f3 for Windows bustage CLOSED TREE 2013-02-05 12:38:02 -05:00
James Willcox 0508d1fe86 Bug 837687 - Use a case-insensitive comparison for OpenGL extension names r=jgilbert
--HG--
extra : rebase_source : 465e1c9ca5491a32432f4fb85eb96de473598348
2013-02-05 11:45:31 -05:00
Jeff Muizelaar 9142ba12cb Bug 836171. Update pixman to 0.27.4
Andrea Canciani (2):
      mmx: Fix x86 build on MSVC
      build: Improve win32 build system

Benny Siegert (1):
      configure.ac: PIXMAN_LINK_WITH_ENV fix

Matt Turner (3):
      build: Remove useless DEP_CFLAGS/DEP_LIBS variables
      sse2: mark pack_565_2x128_128 as static force_inline
      iwmmxt: Don't define dummy _mm_empty for >=gcc-4.8

Nemanja Lukic (7):
      MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_8888 - over_8888_8_8888
      MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_0565 - over_8888_8_0565
      MIPS: DSPr2: Added fast-paths for OVER operation: - over_0565_n_0565 - over_0565_8_0565
      MIPS: DSPr2: Added OVER combiner and two new fast paths: - over_8888_8888 - over_8888_8888_8888
      MIPS: DSPr2: Added fast-paths for ADD operation: - add_n_8_8 - add_n_8_8888 - add_8_8_8
      MIPS: DSPr2: Added more fast-paths for ADD operation: - add_0565_8_0565 - add_8888_8_8888 - add_8888_n_8888
      MIPS: DSPr2: Added more fast-paths for ADD operation: - add_8888_8888_8888 - add_8_8 - add_8888_8888

Siarhei Siamashka (4):
      Add scaled nearest repeat fast paths
      MIPS: skip runtime detection for DSPr2 if -mdspr2 option is in CFLAGS
      Add missing force_inline to in() function used for C fast paths
      Workaround for FTBFS with gcc 4.6 (http://gcc.gnu.org/PR54965)

Søren Sandmann Pedersen (44):
      Post-release version bump to 0.27.3
      Define TIMER_BEGIN and TIMER_END even when timers are not enabled
      Make show_image() cope with more formats
      demos: Add srgb_trap_test.c
      Remove pointless declaration of _pixman_image_get_scanline_generic_64()
      Remove obsolete TODO file
      pixel_checker: Move sRGB conversion into get_limits()
      test/utils.c: Use pow(), not powf() in sRGB conversion routines
      implementation: Write lookup_combiner() in a less convoluted way.
      Move blt delegation into pixman-implementation.c
      Move fill delegation into pixman-implementation.c
      Move delegation of src/dest iter init into pixman-implementation.c
      Rename _pixman_lookup_composite_function() to _pixman_implementation_lookup_composite()
      _pixman_implementation_create(): Initialize implementation with memset()
      implementation: Rename delegate to fallback
      Add PIXMAN_x8b8g8r8 and PIXMAN_a8b8g8r8 formats to scaling-test
      Fix bug in fast_composite_scaled_nearest()
      Fix bugs in component alpha combiners for separable PDF operators
      Add rotate-test.c test program
      Fix bugs in pixman-image.c
      pixman-combine.c.template: Formatting clean-ups
      affine-test: Print out the transformation matrix when verbose
      test: Add inifinite-loop test
      Fix for infinite-loop test
      rotate-test: Call image_endian_swap() in make_image()
      Make pixman.h more const-correct
      glyph-test: Prepare for floating point
      blitters-test: Prepare for floating point
      Add pixman-combine-float.c
      Add combiner test
      pixman-utils.c, pixman-private.h: Add floating point conversion routines
      pixman-access.c: Add floating point accessor functions
      Switch the wide pipeline over to using floating point
      Remove 64 bit pipeline
      Don't auto-generate pixman-combine32.[ch] anymore
      Speed up pixman_expand_to_float()
      Remove BUILT_SOURCES
      Only regard images as pixbufs if they have identity transformations
      region: Formatting fix
      region: Remove overlap argument from pixman_op()
      Add new pixman_image_create_bits_no_clear() API
      pixman_composite_trapezoids(): Factor out extents computation
      pixman_composite_trapezoids(): don't clip to extents for some operators
      Pre-release version bump to 0.27.4

--HG--
extra : rebase_source : ed5b5f0184dd19b2ae5caa43edee6effce14efaf
2013-02-04 15:16:01 -05:00
Kartikaya Gupta 1a5e3ee6dc Bug 832508 - When resuming Fennec and re-recreating the surface, force a first-paint notification from the compositor. r=Cwiiis 2013-02-04 15:13:17 -05:00
Benoit Girard 6071ec8fa9 Backed out changeset 3c4205be7191 (bug 823236) for M2 failures 2013-02-04 14:11:02 -05:00
Benoit Girard 475c33f546 Bug 823236 - Assert that the image is valid before inserting into the image pool. r=nical 2013-02-01 19:02:42 -05:00
Paul Adenot c4bcc40fde Bug 804875 - Reset media element when loading a new src. r=kinetik 2012-12-27 16:21:30 +01:00
Jeff Muizelaar 24e7f9e214 Bug 829035. Reduce pixman bilinear precision to match upstream. 2013-02-03 16:47:01 -05:00
Jeff Muizelaar 91cbf694b0 Bug 808785. Stop shipping d3dx9_43.dll. r=bjacob
Since ANGLE revision 1314 / issue 311:
http://code.google.com/p/angleproject/issues/detail?id=311 d3dx9_43.dll is no
longer needed.

--HG--
extra : rebase_source : cb02a61730f4a24f807662269693be2dde673ff0
2013-01-28 11:52:06 -05:00
Mounir Lamouri 53690f21aa Bug 833009 - Remove "nsContentUtils.h" inclusions from headers in gfx/. r=Ms2ger 2013-01-24 14:05:18 +00:00
Benoit Girard ad1107694f Bug 815602 - Fix invalid drawable error in console after starting Firefox. r=mattwoodrow
--HG--
extra : rebase_source : c24a03252404ac5d25d4fdb62c6f749ea34dab86
2013-01-28 16:57:33 -05:00
Milan Sreckovic 94700f7920 Bug 818241 - Initialize mCg to nullptr. r=jmuizelaar 2013-01-29 10:22:52 -05:00
Mats Palmgren 81ba64a395 Bug 834896 - Replace uses of gfx_min/gfx_max with std::min/std::max. r=joe 2013-01-30 17:02:27 +01:00
Mats Palmgren 1f5b357881 Bug 834896 - Remove the gfx_min/gfx_max templates. r=joe 2013-01-30 17:02:27 +01:00
Anthony Jones d19ecd5663 Bug 825987 - Backed out changesets 1b9a99a17afb and 74493ca34d5e (bug 691061) due to regression with saving PDFs. 2013-01-30 08:39:37 -05:00
Jonathan Kew 8654cf370d bug 829523 followup - use MOZ_WIDGET_GONK for the platform conditional, rather than MOZ_B2G. r=cjones 2013-01-30 12:03:39 +00:00
Nicholas Cameron b5263b1c6c Bug 836058; remove UseTiledThebes; r=BenWa 2013-01-29 14:38:46 +13:00
Randell Jesup 6c1ea9f313 bug 804875: backout due to regressions of various uses of .src/mozSrcObject (bugs 836011/835705) rs=kinetik 2013-01-29 18:07:29 -05:00
Jeff Muizelaar eb54374954 Bug 828789. Update to pixman 0.27.2.
Alan Coopersmith (2):
      Make mmx code compatible with Solaris Studio 12.3 compilers
      Just use xmmintrin.h when building with Solaris Studio compilers

Andrea Canciani (7):
      Remove useless checks for NULL before freeing
      test: Cleanup includes
      Use the ARRAY_LENGTH() macro when possible
      test: Reuse the ARRAY_LENGTH() macro
      demos: Consistently use G_N_ELEMENTS()
      test: Produce autotools-looking report in the win32 build system
      build: Fix compilation on win32

Antti S. Lankila (5):
      Faster unorm_to_unorm for wide processing.
      Remove unnecessary dst initialization
      Add support for sRGB surfaces
      Add sRGB blending demo program
      Add tests to validate new sRGB behavior

Bobby Salazar (2):
      Android Runtime Detection Support For ARM NEON
      iOS Runtime Detection Support For ARM NEON

Chun-wei Fan (1):
      Just include xmmintrin.h on MSVC as well

Colin Walters (1):
      autogen.sh: Support GNOME Build API

Ingmar Runge (1):
      Fix MSVC compilation

Jeremy Huddleston (7):
      configure.ac: Add an --enable-libpng option
      Revert "Disable MMX when Clang is being used."
      Silence a warning about unused pixman_have_mmx
      Disable MMX when incompatible clang is being used.
      Expand TLS support beyond __thread to __declspec(thread)
      Fix a false-negative in MMX check
      configure.ac: Fix a copy-paste-o in TLS detection

Matt Turner (60):
      Use AC_LANG_SOURCE for iwMMXt configure program
      Make sure to run AC_SUBST IWMMXT_CFLAGS
      Convert while (w) to if (w) when possible
      autoconf: use #error instead of error
      mmx: enable over_x888_8_8888 on ARM/iwMMXt
      mmx: Use _mm_mulhi_pu16
      mmx: Use _mm_shuffle_pi16
      mmx: fix typo in pix_add_mul on MSVC
      Update .gitignore with more demos and tests
      mmx: make store8888 take uint32_t *dest as argument
      mmx: make load8888 take a pointer to data instead of the data itself
      lowlevel-blt: add over_8888_8888
      lowlevel-blt: add over_x888_n_8888
      lowlevel-blt-bench: add in_8_8 and in_n_8_8
      Use AC_LANG_SOURCE for DSPr2 configure program
      mmx: enable over_n_0565 for b5g6r5
      mmx: Use force_inline instead of __inline__ (bug 46906)
      configure.ac: require >= gcc-4.5 for ARM iwMMXt
      mmx: fix _mm_shuffle_pi16 function when compiling without optimization
      configure.ac: fix iwMMXt/gcc version error message
      mmx: add store function and use it in add_8888_8888
      mmx: add load function and use it in add_8888_8888
      mmx: make ldq_u take __m64* directly
      mmx: compile on MIPS for Loongson MMI optimizations
      mmx: remove unnecessary uint64_t<->__m64 conversions
      mmx: simplify srcsrcsrcsrc calculation in over_n_8_0565
      mmx: introduce is_equal, is_opaque, and is_zero functions
      mmx: don't pack and unpack src unnecessarily
      mmx: Use Loongson pinsrh instruction in pack_565
      mmx: Use Loongson pextrh instruction in expand565
      mmx: add r5g6b5 fetcher
      mmx: add a8 fetcher
      mmx: add x8f8g8b8 fetcher
      mmx: add src_8888_0565
      mmx: Use wpackhus in src_x888_0565 on iwMMXt
      .gitignore: add demos/checkerboard and demos/quad2quad
      configure.ac: make -march=loongson2f come before CFLAGS
      mmx: add and use pack_4x565 function
      configure.ac: Fix loongson-mmi out-of-tree builds
      configure.ac: Rename loongson -> loongson-mmi
      configure.ac: Fail the ARM/iwMMXt test if not compiling with -march=iwmmxt
      mmx: add and use expand_4xpacked565 function
      mmx: implement expand_4x565 in terms of expand_4xpacked565
      fast: add add_0565_0565 function
      mmx: add add_0565_0565
      mmx: add over_reverse_n_8888
      mmx: add missing _mm_empty calls
      autotools: use custom build rule to build iwMMXt code
      configure.ac: add iwmmxt2 configure flag
      .gitignore: add test/glyph-test
      sse2: enable over_n_0565 for b5g6r5
      sse2: add src_x888_0565
      Fix distcheck due to custom iwMMXt rules
      mmx: Use expand_alpha instead of mask/shift
      mmx: add scaled bilinear src_8888_8888
      mmx: add scaled bilinear over_8888_8888
      mmx: add scaled bilinear over_8888_8_8888
      mmx: optimize bilinear function when using 7-bit precision
      loongson: optimize _mm_set_pi* functions with shuffle instructions
      sse2: add missing ABGR entires for bilinear src_8888_8888

Naohiro Aota (1):
      Don't use non-POSIX test

Nemanja Lukic (9):
      MIPS: DSPr2: Basic infrastructure for MIPS architecture
      MIPS: DSPr2: Added fast-paths for SRC operation.
      MIPS: DSPr2: Added mips_dspr2_blt and mips_dspr2_fill routines.
      MIPS: DSPr2: Added over_n_8888_8888_ca and over_n_8888_0565_ca fast paths.
      MIPS: DSPr2: Added over_n_8_8888 and over_n_8_0565 fast paths.
      MIPS: DSPr2: Fix bug in over_n_8888_8888_ca/over_n_8888_0565_ca routines
      MIPS: DSPr2: Added bilinear over_8888_8_8888 fast path.
      MIPS: DSPr2: Added several bilinear fast paths with a8 mask
      MIPS: DSPr2: Added more bilinear fast paths (without mask)

Sebastian Bauer (4):
      Qualify the static variables in pixman_f_transform_invert() with the const keyword.
      Changed the style of two function headers
      Added HAVE_CONFIG_H check before including config.h
      Use angle brackets form of including config.h

Siarhei Siamashka (8):
      test: OpenMP 2.5 requires signed loop iteration variables
      test: fix bisecting issue in fuzzer-find-diff.pl
      test: Fix for strict aliasing issue in 'get_random_seed'
      test: support nearest/bilinear scaling in lowlevel-blt-bench
      sse2: faster bilinear scaling (use _mm_loadl_epi64)
      Bilinear interpolation precision is now configurable at compile time
      sse2: _mm_madd_epi16 for faster bilinear scaling with 7-bit precision
      Change default bilinear interpolation precision to 7 bits

Søren Sandmann Pedersen (81):
      Post-release version bump to 0.25.1
      region: Add pixman_region{,32}_clear() functions.
      Modify gradient-test to show a bug in NONE processing
      gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
      pixman-image.c: Fix typo in pixman_image_set_transform()
      Fix some signed overflow bugs
      Add missing cast in _pixman_edge_multi_init()
      Fix a bunch of signed overflow issues
      In MUL_UNc() cast to comp2_t
      Reject trapezoids where top (botttom) is above (below) the edges
      Fix rounding for DIV_UNc()
      test: In the alphamap test, also test that we get the right red value
      Fix bugs with alpha maps
      test/alphamap.c: Make dst and orig_dst more independent of each other
      Get rid of delegates for combiners
      Move the color_correct() function from composite.c to utils.c
      Rename color_correct() to round_color()
      test: Add a new "pixel_checker_t" object.
      test: Port composite test over to use new pixel_checker_t object.
      Revert "Reject trapezoids where top (botttom) is above (below) the edges"
      mmx: Enable over_x888_8_8888() for x86 as well
      mmx: Delete unused function in_over_full_src_alpha()
      Disable MMX when Clang is being used.
      Disable implementations mentioned in the PIXMAN_DISABLE environment variable.
      Move fetching for solid bits images to pixman-noop.c
      pixman-accessors.h: Delete unused macros
      pixman-access.c: Remove some unused macros
      mmx: Squash a warning by making the argument to ldl_u() const
      Pre-release version bump to 0.25.2
      Post-release version bump to 0.25.3
      Use "=a" and "=d" constraints for rdtsc inline assembly
      demos: Add quad2quad program
      demos: Add checkerboard demo
      composite-test.c: Use similar gradient to the one in the PDF spec.
      composite-test.c: Add a parrot image
      Add the original parrot image.
      Rename fast_composite_add_1000_1000 to _add_1_1()
      gtk-utils.c: Don't include pixman-private.h
      test/utils.c: Rename and export the pngify_pixels() function.
      gtk-utils.c: In pixbuf_from_argb32() use a8r8g8b8_to_rgba_np()
      test/utils.c: Clip values to the [0, 255] interval
      bits_image_fetch_pixel_convolution(): Make sure channels are signed
      Add Makefile.win32 and Makefile.win32.common to EXTRA_DIST
      demos/Makefile.am: Add parrot.c to EXTRA_DIST
      Pre-release version bump to 0.25.6
      Post-release version bump to 0.25.7
      demos: Add parrot.jpg to EXTRA_DIST
      test: Composite with solid images instead of using pixman_image_fill_*
      Pre-release version bump to 0.26.0
      Post-release version bump to 0.27.1
      Pass the full image flags to iterators
      Make use of image flags in mmx and sse2 iterators
      Add doubly linked lists
      Add pixman_glyph_cache_t API
      Move CRC32 computation from blitters-test.c into utils.c
      Add support for alpha maps to compute_crc32_for_image().
      test: Add glyph-test
      Speed up pixman_composite_glyphs()
      Speed up _pixman_composite_glyphs_no_mask()
      Speed up _pixman_image_get_solid() in common cases
      bits-image: Turn all the fetchers into iterator getters
      test: Make glyph test pass on big endian
      test: Add missing break in stress-test.c
      test: Make stress-test more likely to actually composite something
      In fast_composite_tiled_repeat() don't clone images with a palette
      Use a compile-time constant for the "K" constraint in the MMX detection.
      pixman-cpu.c: Rename disabled to _pixman_disabled() and export it
      Move x86 specific CPU detection to a new file pixman-x86.c
      Move ARM specific CPU detection to a new file pixman-arm.c
      Move PowerPC specific CPU detection to its own file pixman-ppc.c
      Move MIPS specific CPU detection to its own file, pixman-mips.c
      Move the remaining bits of pixman-cpu into pixman-implementation.c
      Simplify MIPS CPU detection
      Simplifications to ARM CPU detection
      Simplify CPU detection on PPC.
      Cleanups and simplifications in x86 CPU feature detection
      Make pixman-mmx.c compile on x86-32 without optimization
      Add make-srgb.pl to EXTRA_DIST
      stress-test: Avoid overflows in clip rectangles
      glyph-test: Avoid setting solid images as alpha maps.
      Pre-release version bump to 0.27.2
* * *

--HG--
extra : rebase_source : d5b871a3b10fe0123f6e50cf98c3621532e5d914
2013-01-08 14:09:48 -05:00
Chris Jones 63f748e97c Bug 792966: Don't try to gralloc small buffers. r=kanru 2013-01-28 23:49:38 -08:00
Daniel Holbert fbefe33635 Bug 835625: Remove the MSVC exemption for FAIL_ON_WARNINGS in /gfx/gl. r=BenWa 2013-01-28 21:43:30 -08:00
Daniel Holbert c3979e5b53 Bug 832545: Mark gfx/thebes as FAIL_ON_WARNINGS. r=BenWa 2013-01-28 12:36:05 -08:00
Daniel Holbert 64c8e34145 Bug 835473: Remove unused functions ValidateLocaTable & ValidateKernTable from gfxFontUtils.cpp. r=jfkthame 2013-01-28 12:35:56 -08:00
Daniel Holbert 2caf7e05de Bug 832440: Fix inconsistency on appUnitsPerDevPixels's signedness in gfxFont and its clients by converting all instances to be signed. r=jfkthame 2013-01-28 11:01:59 -08:00
Filippo Cristofoletti c820f4dd55 Bug 755031 - Fix some other warnings in gfx/2d. r=jmuizelaar 2013-01-28 10:09:29 -05:00
Filippo Cristofoletti e8ee797a85 Bug 755031 - Clear warnings in gfx/gl. r=jmuizelaar 2013-01-28 10:09:14 -05:00
Filippo Cristofoletti ddef8c2fb1 Bug 755031 - Clear warnings in gfx/2d/ScaledFontDWrite.cpp. r=jmuizelaar 2013-01-15 07:21:00 -05:00
Arie Paap c03e565f39 Bug 366643 - crashtest 2013-01-26 21:28:55 +01:00
Benoit Jacob deb74467e2 Bug 827170 - Clamp intermediate surface's framebuffer dimensions to what is supported by the GL - r=BenWa
Without this, we have assertion failures as we fail to create our textures and subsequently
we have incomplete framebuffers. The present patch is a short-term compromise: to avoid
asserting, we just clamp texture sizes. That can result in fuzzy rendering. Ideally
(with some suitable tiling) we wouldn't have to do that.
2013-01-25 13:40:38 -05:00
Benoit Jacob 3d7eb6e1ad Bug 827170 - back out a920571903da to see if it is what caused SVG reftests (android R4) to fail - no review, bustage on a CLOSED TREE 2013-01-25 17:50:29 -05:00
Benoit Jacob 9db0edfdc3 Bug 827170 - Clamp intermediate surface's framebuffer dimensions to what is supported by the GL - r=BenWa
Without this, we have assertion failures as we fail to create our textures and subsequently
we have incomplete framebuffers. The present patch is a short-term compromise: to avoid
asserting, we just clamp texture sizes. That can result in fuzzy rendering. Ideally
(with some suitable tiling) we wouldn't have to do that.
2013-01-25 13:40:38 -05:00
Chris Jones ddf38346af Bug 834470: Release AsyncPanZoomController and friends. r=roc 2013-01-24 19:59:10 -08:00
Marco Bonardo e2d4408699 Backout 65a26453f9a6 (bug 823109) cause it still breaks some Windows builds 2013-01-24 23:48:17 +01:00
Jeff Muizelaar 188de37445 Bug 823109. Only extract d3d dlls when necessary. r=ted
This adds proper dependencies so that make can do better.
We go to some length to handle possible spaces in the paths.

--HG--
extra : rebase_source : 7974bade5808a2cb0f4efb29bf46b0f298549659
2013-01-24 15:00:36 -05:00
Paul Adenot 4c4f1f7d2b Bug 804875 - Reset media element when loading a new src. r=kinetik 2013-01-24 20:28:48 +01:00
Ryan VanderMeulen e4e09704bb Merge m-c to inbound. 2013-01-25 12:32:22 -05:00
Ehsan Akhgari 497f06f2c6 Backed out changeset 70baa7e07838 (bug 833915) since one day has passed 2013-01-24 11:12:24 -05:00
Ehsan Akhgari ea3a2d23b4 Bug 833915 - Turn off PGO and LTCG on Windows Nightly for one day; r=glandium 2013-01-23 16:13:50 -05:00
Anthony Jones 328fc74788 Bug 831973 - Remove extra scroll compensation code; r=roc 2013-01-22 17:04:41 +13:00
Steve Singer 23a498d477 Bug 832711 - Add header for ElfW(auxv_t) missed by bug 817153. r=jmuizelaar 2013-01-23 18:30:48 -05:00
Oleg Romashin ada40fe742 Bug 824642 - PlanarYCbCrImage::GetAsSurface does not create surface optimized for platform. r=joe, r=nsilva 2013-01-23 18:08:16 -05:00
Daniel Holbert e06be6b9e3 Bug 833073: Remove (unused) LOG macro from gfxAndroidPlatform.cpp, to fix build warning about it being redefined. r=blassey a=nonlibxul 2013-01-22 00:05:05 -08:00
Daniel Holbert ccd07c99a7 Bug 833066: Declare loop variable in gfxFT2FontList.cpp as 'size_t' instead of 'int', to fix signed/unsigned warnings. r=blassey a=nonlibxul (#ifdef-android code) 2013-01-22 00:04:39 -08:00
Daniel Holbert e646415969 Bug 832554: Add #ifdef guards around static functions in /gfx/thebes that aren't used on android, to fix android-only -Wunused-function build warnings. r=BenWa a=nonlibxul 2013-01-21 13:54:42 -08:00
samuel.gallacier@innes.fr 1899610af0 Bug 831791: Memory leak with array of TransformFunction : was not deleted. r=dzbarsky a=not-libxul 2013-01-21 17:14:13 +01:00
Jonathan Kew de908b5bc2 bug 831292 - don't mask complex-script ranges from the cmap if Graphite tables are present. r=jdaggett 2013-01-21 09:24:45 +00:00
Jonathan Kew 45b3edb7fe bug 831687 - make graphite shaping use hinted widths if implemented by the font. r=jdaggett 2013-01-21 09:24:24 +00:00
Jonathan Kew 8743c8e938 bug 831277 - (b) properly round glyph positions to appunits or pixels (as appropriate for the platform) in the graphite shaper. r=jdaggett 2013-01-21 09:24:08 +00:00
Jonathan Kew fc774d33a2 bug 831277 - (a) make GetRoundOffsetsToPixels a method on gfxContext, instead of private to the harfbuzz shaper. r=jdaggett 2013-01-21 09:24:01 +00:00