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

19 Коммитов

Автор SHA1 Сообщение Дата
Kartikaya Gupta 2719e9d65e Bug 1507524 - Move webrender to gfx/wr. r=jrmuizel
This patch copies the webrender repository contents into gfx/wr. The
existing files from gfx/webrender, gfx/webrender_api, and gfx/wrench are
moved, and the remaining files are added. The revision being used is the
same as before.

In addition, the mozilla-central top-level Cargo.toml and the
gfx/webrender_bindings/Cargo.toml files are updated to reflect the new
structure.

Differential Revision: https://phabricator.services.mozilla.com/D12059

--HG--
rename : gfx/webrender/src/device/mod.rs => gfx/wr/direct-composition/src/main.rs
rename : gfx/webrender/Cargo.toml => gfx/wr/webrender/Cargo.toml
rename : gfx/webrender/build.rs => gfx/wr/webrender/build.rs
rename : gfx/webrender/doc/CLIPPING_AND_POSITIONING.md => gfx/wr/webrender/doc/CLIPPING_AND_POSITIONING.md
rename : gfx/webrender/doc/blob.md => gfx/wr/webrender/doc/blob.md
rename : gfx/webrender/doc/text-rendering.md => gfx/wr/webrender/doc/text-rendering.md
rename : gfx/webrender/res/Proggy.ttf => gfx/wr/webrender/res/Proggy.ttf
rename : gfx/webrender/res/area-lut.tga => gfx/wr/webrender/res/area-lut.tga
rename : gfx/webrender/res/base.glsl => gfx/wr/webrender/res/base.glsl
rename : gfx/webrender/res/brush.glsl => gfx/wr/webrender/res/brush.glsl
rename : gfx/webrender/res/brush_blend.glsl => gfx/wr/webrender/res/brush_blend.glsl
rename : gfx/webrender/res/brush_image.glsl => gfx/wr/webrender/res/brush_image.glsl
rename : gfx/webrender/res/brush_linear_gradient.glsl => gfx/wr/webrender/res/brush_linear_gradient.glsl
rename : gfx/webrender/res/brush_mix_blend.glsl => gfx/wr/webrender/res/brush_mix_blend.glsl
rename : gfx/webrender/res/brush_radial_gradient.glsl => gfx/wr/webrender/res/brush_radial_gradient.glsl
rename : gfx/webrender/res/brush_solid.glsl => gfx/wr/webrender/res/brush_solid.glsl
rename : gfx/webrender/res/brush_yuv_image.glsl => gfx/wr/webrender/res/brush_yuv_image.glsl
rename : gfx/webrender/res/clip_shared.glsl => gfx/wr/webrender/res/clip_shared.glsl
rename : gfx/webrender/res/cs_blur.glsl => gfx/wr/webrender/res/cs_blur.glsl
rename : gfx/webrender/res/cs_border_segment.glsl => gfx/wr/webrender/res/cs_border_segment.glsl
rename : gfx/webrender/res/cs_border_solid.glsl => gfx/wr/webrender/res/cs_border_solid.glsl
rename : gfx/webrender/res/cs_clip_box_shadow.glsl => gfx/wr/webrender/res/cs_clip_box_shadow.glsl
rename : gfx/webrender/res/cs_clip_image.glsl => gfx/wr/webrender/res/cs_clip_image.glsl
rename : gfx/webrender/res/cs_clip_rectangle.glsl => gfx/wr/webrender/res/cs_clip_rectangle.glsl
rename : gfx/webrender/res/cs_line_decoration.glsl => gfx/wr/webrender/res/cs_line_decoration.glsl
rename : gfx/webrender/res/cs_scale.glsl => gfx/wr/webrender/res/cs_scale.glsl
rename : gfx/webrender/res/debug_color.glsl => gfx/wr/webrender/res/debug_color.glsl
rename : gfx/webrender/res/debug_font.glsl => gfx/wr/webrender/res/debug_font.glsl
rename : gfx/webrender/res/ellipse.glsl => gfx/wr/webrender/res/ellipse.glsl
rename : gfx/webrender/res/gpu_cache.glsl => gfx/wr/webrender/res/gpu_cache.glsl
rename : gfx/webrender/res/gpu_cache_update.glsl => gfx/wr/webrender/res/gpu_cache_update.glsl
rename : gfx/webrender/res/pf_vector_cover.glsl => gfx/wr/webrender/res/pf_vector_cover.glsl
rename : gfx/webrender/res/pf_vector_stencil.glsl => gfx/wr/webrender/res/pf_vector_stencil.glsl
rename : gfx/webrender/res/prim_shared.glsl => gfx/wr/webrender/res/prim_shared.glsl
rename : gfx/webrender/res/ps_split_composite.glsl => gfx/wr/webrender/res/ps_split_composite.glsl
rename : gfx/webrender/res/ps_text_run.glsl => gfx/wr/webrender/res/ps_text_run.glsl
rename : gfx/webrender/res/rect.glsl => gfx/wr/webrender/res/rect.glsl
rename : gfx/webrender/res/render_task.glsl => gfx/wr/webrender/res/render_task.glsl
rename : gfx/webrender/res/shared.glsl => gfx/wr/webrender/res/shared.glsl
rename : gfx/webrender/res/shared_other.glsl => gfx/wr/webrender/res/shared_other.glsl
rename : gfx/webrender/res/snap.glsl => gfx/wr/webrender/res/snap.glsl
rename : gfx/webrender/res/transform.glsl => gfx/wr/webrender/res/transform.glsl
rename : gfx/webrender/src/batch.rs => gfx/wr/webrender/src/batch.rs
rename : gfx/webrender/src/border.rs => gfx/wr/webrender/src/border.rs
rename : gfx/webrender/src/box_shadow.rs => gfx/wr/webrender/src/box_shadow.rs
rename : gfx/webrender/src/capture.rs => gfx/wr/webrender/src/capture.rs
rename : gfx/webrender/src/clip.rs => gfx/wr/webrender/src/clip.rs
rename : gfx/webrender/src/clip_scroll_tree.rs => gfx/wr/webrender/src/clip_scroll_tree.rs
rename : gfx/webrender/src/debug_colors.rs => gfx/wr/webrender/src/debug_colors.rs
rename : gfx/webrender/src/debug_font_data.rs => gfx/wr/webrender/src/debug_font_data.rs
rename : gfx/webrender/src/debug_render.rs => gfx/wr/webrender/src/debug_render.rs
rename : gfx/webrender/src/debug_server.rs => gfx/wr/webrender/src/debug_server.rs
rename : gfx/webrender/src/device/gl.rs => gfx/wr/webrender/src/device/gl.rs
rename : gfx/webrender/src/device/mod.rs => gfx/wr/webrender/src/device/mod.rs
rename : gfx/webrender/src/device/query_gl.rs => gfx/wr/webrender/src/device/query_gl.rs
rename : gfx/webrender/src/display_list_flattener.rs => gfx/wr/webrender/src/display_list_flattener.rs
rename : gfx/webrender/src/ellipse.rs => gfx/wr/webrender/src/ellipse.rs
rename : gfx/webrender/src/frame_builder.rs => gfx/wr/webrender/src/frame_builder.rs
rename : gfx/webrender/src/freelist.rs => gfx/wr/webrender/src/freelist.rs
rename : gfx/webrender/src/gamma_lut.rs => gfx/wr/webrender/src/gamma_lut.rs
rename : gfx/webrender/src/glyph_cache.rs => gfx/wr/webrender/src/glyph_cache.rs
rename : gfx/webrender/src/glyph_rasterizer/mod.rs => gfx/wr/webrender/src/glyph_rasterizer/mod.rs
rename : gfx/webrender/src/glyph_rasterizer/no_pathfinder.rs => gfx/wr/webrender/src/glyph_rasterizer/no_pathfinder.rs
rename : gfx/webrender/src/glyph_rasterizer/pathfinder.rs => gfx/wr/webrender/src/glyph_rasterizer/pathfinder.rs
rename : gfx/webrender/src/gpu_cache.rs => gfx/wr/webrender/src/gpu_cache.rs
rename : gfx/webrender/src/gpu_glyph_renderer.rs => gfx/wr/webrender/src/gpu_glyph_renderer.rs
rename : gfx/webrender/src/gpu_types.rs => gfx/wr/webrender/src/gpu_types.rs
rename : gfx/webrender/src/hit_test.rs => gfx/wr/webrender/src/hit_test.rs
rename : gfx/webrender/src/image.rs => gfx/wr/webrender/src/image.rs
rename : gfx/webrender/src/intern.rs => gfx/wr/webrender/src/intern.rs
rename : gfx/webrender/src/internal_types.rs => gfx/wr/webrender/src/internal_types.rs
rename : gfx/webrender/src/lib.rs => gfx/wr/webrender/src/lib.rs
rename : gfx/webrender/src/picture.rs => gfx/wr/webrender/src/picture.rs
rename : gfx/webrender/src/platform/macos/font.rs => gfx/wr/webrender/src/platform/macos/font.rs
rename : gfx/webrender/src/platform/unix/font.rs => gfx/wr/webrender/src/platform/unix/font.rs
rename : gfx/webrender/src/platform/windows/font.rs => gfx/wr/webrender/src/platform/windows/font.rs
rename : gfx/webrender/src/prim_store.rs => gfx/wr/webrender/src/prim_store.rs
rename : gfx/webrender/src/print_tree.rs => gfx/wr/webrender/src/print_tree.rs
rename : gfx/webrender/src/profiler.rs => gfx/wr/webrender/src/profiler.rs
rename : gfx/webrender/src/record.rs => gfx/wr/webrender/src/record.rs
rename : gfx/webrender/src/render_backend.rs => gfx/wr/webrender/src/render_backend.rs
rename : gfx/webrender/src/render_task.rs => gfx/wr/webrender/src/render_task.rs
rename : gfx/webrender/src/renderer.rs => gfx/wr/webrender/src/renderer.rs
rename : gfx/webrender/src/resource_cache.rs => gfx/wr/webrender/src/resource_cache.rs
rename : gfx/webrender/src/scene.rs => gfx/wr/webrender/src/scene.rs
rename : gfx/webrender/src/scene_builder.rs => gfx/wr/webrender/src/scene_builder.rs
rename : gfx/webrender/src/segment.rs => gfx/wr/webrender/src/segment.rs
rename : gfx/webrender/src/shade.rs => gfx/wr/webrender/src/shade.rs
rename : gfx/webrender/src/spatial_node.rs => gfx/wr/webrender/src/spatial_node.rs
rename : gfx/webrender/src/surface.rs => gfx/wr/webrender/src/surface.rs
rename : gfx/webrender/src/texture_allocator.rs => gfx/wr/webrender/src/texture_allocator.rs
rename : gfx/webrender/src/texture_cache.rs => gfx/wr/webrender/src/texture_cache.rs
rename : gfx/webrender/src/tiling.rs => gfx/wr/webrender/src/tiling.rs
rename : gfx/webrender/src/util.rs => gfx/wr/webrender/src/util.rs
rename : gfx/webrender/tests/angle_shader_validation.rs => gfx/wr/webrender/tests/angle_shader_validation.rs
rename : gfx/webrender/tests/bug_124.html => gfx/wr/webrender/tests/bug_124.html
rename : gfx/webrender/tests/bug_134.html => gfx/wr/webrender/tests/bug_134.html
rename : gfx/webrender/tests/bug_137.html => gfx/wr/webrender/tests/bug_137.html
rename : gfx/webrender/tests/bug_143.html => gfx/wr/webrender/tests/bug_143.html
rename : gfx/webrender/tests/bug_159.html => gfx/wr/webrender/tests/bug_159.html
rename : gfx/webrender/tests/bug_166.html => gfx/wr/webrender/tests/bug_166.html
rename : gfx/webrender/tests/bug_176.html => gfx/wr/webrender/tests/bug_176.html
rename : gfx/webrender/tests/bug_177.html => gfx/wr/webrender/tests/bug_177.html
rename : gfx/webrender/tests/bug_178.html => gfx/wr/webrender/tests/bug_178.html
rename : gfx/webrender/tests/bug_203a.html => gfx/wr/webrender/tests/bug_203a.html
rename : gfx/webrender/tests/bug_203b.html => gfx/wr/webrender/tests/bug_203b.html
rename : gfx/webrender/tests/bug_servo_10136.html => gfx/wr/webrender/tests/bug_servo_10136.html
rename : gfx/webrender/tests/bug_servo_10164.html => gfx/wr/webrender/tests/bug_servo_10164.html
rename : gfx/webrender/tests/bug_servo_10307.html => gfx/wr/webrender/tests/bug_servo_10307.html
rename : gfx/webrender/tests/bug_servo_11358.html => gfx/wr/webrender/tests/bug_servo_11358.html
rename : gfx/webrender/tests/bug_servo_9983a.html => gfx/wr/webrender/tests/bug_servo_9983a.html
rename : gfx/webrender/tests/color_pattern_1.png => gfx/wr/webrender/tests/color_pattern_1.png
rename : gfx/webrender/tests/color_pattern_2.png => gfx/wr/webrender/tests/color_pattern_2.png
rename : gfx/webrender/tests/fixed-position.html => gfx/wr/webrender/tests/fixed-position.html
rename : gfx/webrender/tests/mix-blend-mode-2.html => gfx/wr/webrender/tests/mix-blend-mode-2.html
rename : gfx/webrender/tests/mix-blend-mode.html => gfx/wr/webrender/tests/mix-blend-mode.html
rename : gfx/webrender/tests/nav-1.html => gfx/wr/webrender/tests/nav-1.html
rename : gfx/webrender/tests/nav-2.html => gfx/wr/webrender/tests/nav-2.html
rename : gfx/webrender_api/Cargo.toml => gfx/wr/webrender_api/Cargo.toml
rename : gfx/webrender_api/src/api.rs => gfx/wr/webrender_api/src/api.rs
rename : gfx/webrender_api/src/channel.rs => gfx/wr/webrender_api/src/channel.rs
rename : gfx/webrender_api/src/channel_ipc.rs => gfx/wr/webrender_api/src/channel_ipc.rs
rename : gfx/webrender_api/src/channel_mpsc.rs => gfx/wr/webrender_api/src/channel_mpsc.rs
rename : gfx/webrender_api/src/color.rs => gfx/wr/webrender_api/src/color.rs
rename : gfx/webrender_api/src/display_item.rs => gfx/wr/webrender_api/src/display_item.rs
rename : gfx/webrender_api/src/display_list.rs => gfx/wr/webrender_api/src/display_list.rs
rename : gfx/webrender_api/src/font.rs => gfx/wr/webrender_api/src/font.rs
rename : gfx/webrender_api/src/gradient_builder.rs => gfx/wr/webrender_api/src/gradient_builder.rs
rename : gfx/webrender_api/src/image.rs => gfx/wr/webrender_api/src/image.rs
rename : gfx/webrender_api/src/lib.rs => gfx/wr/webrender_api/src/lib.rs
rename : gfx/webrender_api/src/units.rs => gfx/wr/webrender_api/src/units.rs
rename : gfx/wrench/.gitignore => gfx/wr/wrench/.gitignore
rename : gfx/wrench/Cargo.toml => gfx/wr/wrench/Cargo.toml
rename : gfx/wrench/README.md => gfx/wr/wrench/README.md
rename : gfx/wrench/build.rs => gfx/wr/wrench/build.rs
rename : gfx/webrender/res/Proggy.ttf => gfx/wr/wrench/reftests/text/Proggy.ttf
rename : gfx/wrench/res/wrench.exe.manifest => gfx/wr/wrench/res/wrench.exe.manifest
rename : gfx/wrench/src/angle.rs => gfx/wr/wrench/src/angle.rs
rename : gfx/wrench/src/args.yaml => gfx/wr/wrench/src/args.yaml
rename : gfx/wrench/src/binary_frame_reader.rs => gfx/wr/wrench/src/binary_frame_reader.rs
rename : gfx/wrench/src/blob.rs => gfx/wr/wrench/src/blob.rs
rename : gfx/wrench/src/cgfont_to_data.rs => gfx/wr/wrench/src/cgfont_to_data.rs
rename : gfx/wrench/src/egl.rs => gfx/wr/wrench/src/egl.rs
rename : gfx/wrench/src/json_frame_writer.rs => gfx/wr/wrench/src/json_frame_writer.rs
rename : gfx/wrench/src/main.rs => gfx/wr/wrench/src/main.rs
rename : gfx/wrench/src/parse_function.rs => gfx/wr/wrench/src/parse_function.rs
rename : gfx/wrench/src/perf.rs => gfx/wr/wrench/src/perf.rs
rename : gfx/wrench/src/png.rs => gfx/wr/wrench/src/png.rs
rename : gfx/wrench/src/premultiply.rs => gfx/wr/wrench/src/premultiply.rs
rename : gfx/wrench/src/rawtest.rs => gfx/wr/wrench/src/rawtest.rs
rename : gfx/wrench/src/reftest.rs => gfx/wr/wrench/src/reftest.rs
rename : gfx/wrench/src/ron_frame_writer.rs => gfx/wr/wrench/src/ron_frame_writer.rs
rename : gfx/wrench/src/scene.rs => gfx/wr/wrench/src/scene.rs
rename : gfx/wrench/src/wrench.rs => gfx/wr/wrench/src/wrench.rs
rename : gfx/wrench/src/yaml_frame_reader.rs => gfx/wr/wrench/src/yaml_frame_reader.rs
rename : gfx/wrench/src/yaml_frame_writer.rs => gfx/wr/wrench/src/yaml_frame_writer.rs
rename : gfx/wrench/src/yaml_helper.rs => gfx/wr/wrench/src/yaml_helper.rs
extra : moz-landing-system : lando
2018-11-22 21:47:48 +00:00
WR Updater Bot 0b6d11eb7f Bug 1504507 - Update serde branch for changes in WR PR #3264. r=kats
Depends on D10887

Differential Revision: https://phabricator.services.mozilla.com/D10889

--HG--
extra : moz-landing-system : lando
2018-11-05 13:14:07 +00:00
Nathan Froyd b93bf873ba Bug 1502964 - part 2 - update winapi to froydnj/winapi-rs#aarch64; r=ted.mielczarek 2018-11-02 10:56:08 -04:00
Margareta Eliza Balazs 5927f5cba8 Backed out 2 changesets (bug 1502964) for spidermonkey bustages. CLOSED TREE
Backed out changeset 12bca041cda6 (bug 1502964)
Backed out changeset 225f2ad3cf2f (bug 1502964)
2018-11-02 16:05:01 +02:00
Nathan Froyd 0f1c42781d Bug 1502964 - part 2 - update winapi to froydnj/winapi-rs#aarch64; r=ted.mielczarek 2018-11-02 09:41:41 -04:00
Noemi Erli 36200c40df Backed out 2 changesets (bug 1502964) for build bustages CLOSED TREE
Backed out changeset 26815a566707 (bug 1502964)
Backed out changeset 6015a119c154 (bug 1502964)
2018-10-31 16:30:41 +02:00
Nathan Froyd 657565b18b Bug 1502964 - part 2 - update winapi to froydnj/winapi-rs#aarch64; r=ted.mielczarek
It's not clear when upstream will do a new release with the aarch64
changes we need, so to unblock ourselves, let's just use a forked
version for now.
2018-10-31 09:50:53 -04:00
Benjamin Bouvier be8a563409 Bug 1490948: Add build system support for a Rust library in Spidermonkey; r=chmanchester
This introduces two new crates:
- jsrust, for standalone builds. This crate is compiled into a static library
  libjsrust.a, which gets linked into the shared Spidermonkey library when it's
  built, or into the static Spidermonkey library otherwise. This is just a
  static library wrapping jsrust_shared below.
- jsrust_shared, for Gecko embedding. It just references other Rust
  crates actively used in Spidermonkey. It is used to be embedded as part of
  a new Rust dependency in Gecko (in gkrust).

--HG--
rename : js/src/wasm/cranelift/Cargo.toml => js/src/rust/Cargo.toml
extra : rebase_source : 84e440e3f669b73776653182cb7b006cc7febb10
extra : histedit_source : 3a67575ff6871b7dc3558c10a0251b73cedb090c
2018-09-25 15:56:56 +02:00
Mike Hommey 1ad733c5c4 Bug 1474871 - Link dump_syms against rustc-demangle. r=ted
The new version of breakpad imported in bug 1309172 doesn't demangle
rust symbols at all, contrary to before, where it tried to C++ demangle
them, which worked for many, although far from all. It however has
rust-demangle support as long as it's linked against a copy of the
rust-demangle-capi crate from https://github.com/luser/rust-demangle-capi/

This imports the code from the rust-demangle-capi crate but because of
some build system complications it's not taken as-is:
- it uses rusty-cheddar, which is deprecated, to generate a C header.
- rusty-cheddar depends on syntex_syntax, which now fails to build.
- rust-demangle-capi has crate-type staticlib, which can't be used
  as a dependency in a Cargo.toml. For that reason, we can't create
  a fake crate that depends on it to have it vendored.

Overall, it's only a few lines of rust, and the C header can be written
manually, so this is what we do here. The created crate is named in a way
specific to dump_syms.

The build system doesn't know how to figure out what system libraries
are required to link rust static libraries, although the rust compiler
has /some/ support to get the information, so we handle that manually.

--HG--
extra : rebase_source : 9f5a9bfe2148d3040e11c7121a88e85a7f2d5c53
2018-07-12 10:23:12 +09:00
Kartikaya Gupta 1abf868484 Bug 1468950 - Update serde_derive patch for changes in WR PR 2819. r=Gankro
MozReview-Commit-ID: 6xBQ69vttXr

--HG--
extra : rebase_source : f6058f097c3c1fcbd33f42d8e625058f0c77cb10
2018-06-21 08:15:40 -04:00
Kartikaya Gupta 29f53043e5 Bug 1463416 - Update lockfiles and re-vendor rust dependencies. r=Gankro
This includes the necessary changes for the serde replacement upgrade from
WR PR 2777 as well.

MozReview-Commit-ID: 6Q7Wjer1JHS

--HG--
extra : rebase_source : 1df561ecb5503c1cece033a959e8a7182a185072
2018-05-26 11:09:21 -04:00
Kartikaya Gupta 576ecda078 Bug 1452603 - Update Cargo stuff for the serde bump. r=jrmuizel
MozReview-Commit-ID: HDxOYbIXcIN

--HG--
extra : rebase_source : 5e3fa7d72735b0e9c8adc4de552a637b35f368be
2018-04-12 11:05:18 -04:00
David Teller 7160366b8c Bug 1437004 - Vendored Rust dependencies;r=froydnj
MozReview-Commit-ID: Grf1bKIx2iT

--HG--
extra : rebase_source : 8013a66263a3a014944b0815ff9bc7d8ac0ad9a3
2018-04-04 14:14:26 +02:00
Kartikaya Gupta 292a1604f7 Bug 1447998 - Update serde patching to go with WR PR 2577. r=jrmuizel
MozReview-Commit-ID: FIoM86Ok8zP

--HG--
extra : rebase_source : 29dd89e752455d4a2e7942c191819fb3e8f982c7
2018-03-28 09:11:53 -04:00
Nathan Froyd 84c5746150 Bug 1444174 - point people away from Cargo.toml for opt-level settings of Rust code; r=nalexander
For people who don't know how our Rust opt-level setup works--or for
people who did know and repeatedly forget--it would be good to have some
documentation in Cargo.toml pointing at the correct place.
2018-03-09 09:31:17 -05:00
Kartikaya Gupta 26e22999aa Bug 1443168 - Exclude gfx/wrench from the mozilla-central workspace. r=mbrubeck
MozReview-Commit-ID: CWZjptDcwLW

--HG--
extra : rebase_source : b3826ed05dd82b8fd40ac3f1c02986f6380f0842
2018-03-05 10:57:05 -05:00
Matt Brubeck be08cdcdc1 Bug 1381576 - Use a Cargo workspace for rust crates. r=ted
MozReview-Commit-ID: K6B9SifddXu

--HG--
extra : source : bbae7807c164273f6bb123d680a4fc31202d7a61
extra : amend_source : 53505e25f63a8eb228e62a0a9f3bd3ed98950296
extra : histedit_source : 597464181d4b79f5ac1a511d23e2a05aefb266da%2C63b89f3699e0e9598c8355e7293f10795acc80e7
2018-03-01 14:33:35 -08:00
shindli 0ba01aed1b Backed out 3 changesets (bug 1381576) for Bugzilla linting failure on a CLOSED TREE
Backed out changeset 3bc1743ad418 (bug 1381576)
Backed out changeset bbae7807c164 (bug 1381576)
Backed out changeset 1ea18b70b170 (bug 1381576)
2018-03-02 21:17:20 +02:00
Matt Brubeck c94fb26dea Bug 1381576 - Use a Cargo workspace for rust crates. r=ted
MozReview-Commit-ID: K6B9SifddXu

--HG--
extra : rebase_source : 75fae593e8765ec5b1e616d10eda0bc52f1f7194
extra : histedit_source : 21b38586bcc4576fce5eadff9a3c77ccf5e21341
2018-03-01 14:33:35 -08:00