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

2527 Коммитов

Автор SHA1 Сообщение Дата
Mike Shal 523accbeb6 Bug 1407432 - Move stl wrapper generation into moz.build; r=froydnj
This is fairly straightforward to represent as a GENERATED_FILES, though
we have to take some care to construct the outputs tuple correctly. This
script needs to run during export, and unfortunately none of the STL
headers have proper file extensions, so the 'new' header is
special-cased in the recursive make backend to serve as a marker for
running it in the correct tier.

We can't remove the stl-headers file yet because it is still used for
the system header generation.

MozReview-Commit-ID: 3tQTOY0LAsQ

--HG--
extra : source : 828d43ec1b16edaac69c42f15561f26e209051f1
2017-11-08 17:42:27 -05:00
Mike Shal 534d64326b Bug 1407432 - Remove unused builtins arg from Sandbox; r=froydnj
MozReview-Commit-ID: JVukxIg04AT

--HG--
extra : source : bacf04be0a480e4d7ea94de3c2677de3e0d5e10c
2017-11-08 19:58:28 -05:00
Gregory Szorc 8e85824bcb Bug 1411462 - Abort when I/O error seen; r=glandium
Before, I/O errors writing to stdout/stderr (e.g. due to broken pipe)
would result in handleError() being called and execution would
keep running. This would potentially result in an error message for
every log/line failure being printed to stderr.

We change the behavior so I/O failures are fatal and abort
execution.

We test the new behavior by changing a test to pipe to `head`
directly. Since `head` exits once it has seen sufficient output,
this results in an EPIPE which now results in immediate program
termination.

MozReview-Commit-ID: 1UecZJ56h4r

--HG--
extra : rebase_source : b35d9c096621d9698260d29a7d0132c4989200a7
2017-11-09 20:44:10 -08:00
Gregory Szorc af0d5cdd38 Bug 1411462 - Normalize when argument earlier in imply_option(); r=glandium
This makes `configure --help` work again (it stopped working due to
370a4a2a7898 (bug 1405982).

MozReview-Commit-ID: 2gCmAAsE0qW

--HG--
extra : rebase_source : 5b61b4972c514bb69b239777e0b354ac0357291e
2017-10-24 12:56:10 -07:00
Phil Ringnalda 8ccc4ff982 Backed out 6 changesets (bug 1407432) on (wild) suspicion of causing failures in browser_sanitize-timespans.js, somehow
CLOSED TREE

Backed out changeset 86302df0b38a (bug 1407432)
Backed out changeset 5a967cc85e28 (bug 1407432)
Backed out changeset 828d43ec1b16 (bug 1407432)
Backed out changeset bacf04be0a48 (bug 1407432)
Backed out changeset 8d770908a5b9 (bug 1407432)
Backed out changeset ffe9aed0944f (bug 1407432)

MozReview-Commit-ID: 7D50rKeXLrn
2017-11-09 22:07:46 -08:00
Gregory Szorc 965ee1ef4c Bug 1415971 - Dedent warning printing code; r=nalexander
This doesn't need to run when the context manager is active.

MozReview-Commit-ID: DV3SZyUwxlM

--HG--
extra : rebase_source : b32b081cbe9298fb46cbccdf511f9b89b92cf643
2017-11-09 13:13:09 -08:00
Gregory Szorc c132ad4105 Bug 1415971 - Stop build output monitor earlier; r=nalexander
We currently print compiler warnings summary then stop the build
output manager, which basically stops resource monitoring.

A future commit will refactor this code a bit and it will be easier
to have the monitor.stop() call directly after the build finishes.

MozReview-Commit-ID: 3uWFWG6ELnH

--HG--
extra : rebase_source : 0d006c99d2ee0ccda49bfa81c31ccb47541a23ce
2017-11-09 12:12:31 -08:00
Gregory Szorc 04f3bb9229 Bug 1415614 - Move configure invocation out of mach_commands.py; r=nalexander
While we're here, also move the low-level code to invoke configure
to a proper Python module.

MozReview-Commit-ID: 4rlCxOwcVu1

--HG--
extra : rebase_source : ec16ee949743c3a43940d46b44c43a2895bfa250
extra : source : b4f9bef50278db75b1b6229635c877e07dffb1bc
2017-11-09 12:19:16 -08:00
Gregory Szorc 8604807290 Bug 1415614 - Move code for invoking build system out of mach_commands.py; r=nalexander
The goal is to move this lower-level code somewhere where it can be
reused.

The only meaningful code change as part of the move was handling
of the mach context. Before, we could access self._mach_context.
After, we need to pass it as an argument. This also uncovered a bug
where "telemetry_handler" could be None but we called it
unconditionally. We now guard this call with an "if."

MozReview-Commit-ID: FWw4l6H1ayS

--HG--
extra : rebase_source : 97fb0db8d6fea32435f8da999e34a8e023f98339
extra : intermediate-source : bf7cfe592722018dd0894002e41f4997b36cd11b
extra : source : 2f62818d80a3e31b47194d8ecb9169bab930ed7e
2017-11-08 15:52:17 -08:00
Gregory Szorc 24582842ca Bug 1415614 - Move build output processing code out of mach_commands.py; r=nalexander
In general, we shouldn't have so much business logic in mach_commands.py
files.

I'd like to move more of the low-level "perform a build" logic out of
mach_commands.py to facilitate some future work. That code makes use of
this output processing code. So as the first step in moving the build
code, we move its dependencies.

As part of this, I also cleaned up some random unused imports around
lines that were touched.

No meaningful code changes were performed as part of the code move.

MozReview-Commit-ID: 96mGWUJ7oLb

--HG--
extra : rebase_source : 1cfe6e4d12bd84fecf737b9b0cdeeac16f5d51a7
2017-11-08 14:45:07 -08:00
Gregory Szorc b3b7dfcfef Bug 1415614 - Add an API to log all structured messages; r=mshal
Currently, marking a logger as a structured logger will require a
subsequent function call in order for the logger to be hooked up
to active handlers. This behavior is not intuitive and makes it
easy to not have handlers for newly-registered loggers. This means
messages may not be logged anywhere.

In addition, we have to manually specify which named loggers to
enable structured logging for. This can be annoying.

We change the behavior of register_structured_logger() to
automatically add existing terminal and json handlers to the
logger being marked as structured.

We also introduce an API to enable structured logging for all
loggers. Existing consumers of registered_structured_logger()
in mozbuild have been updated to use this API. A new consumer
has been added for the `mach configure` command because it should
have been there before.

We stop short of making enable_all_structured_loggers() the default.
This is because various commands interact with the log manager in
ways that will result in duplicate logging of messages and
dropping of structured messages. There is a bit of a rabbit hole
here and addressing it can be done as a follow-up.

MozReview-Commit-ID: 1aU6eJvTSMP

--HG--
extra : rebase_source : 2a0a569b378cc3083b55fc7076b291abdfb7453f
2017-11-09 15:09:52 -08:00
Mike Shal 2fea117ba2 Bug 1407432 - Move stl wrapper generation into moz.build; r=froydnj
This is fairly straightforward to represent as a GENERATED_FILES, though
we have to take some care to construct the outputs tuple correctly. This
script needs to run during export, and unfortunately none of the STL
headers have proper file extensions, so the 'new' header is
special-cased in the recursive make backend to serve as a marker for
running it in the correct tier.

We can't remove the stl-headers file yet because it is still used for
the system header generation.

MozReview-Commit-ID: 3tQTOY0LAsQ

--HG--
extra : rebase_source : bd9f00e45a7bce4daaa0e1c16e22b28536658e37
2017-11-08 17:42:27 -05:00
Mike Shal fb26e053bd Bug 1407432 - Remove unused builtins arg from Sandbox; r=froydnj
MozReview-Commit-ID: JVukxIg04AT

--HG--
extra : rebase_source : abbb25f945fa4d04944000934c5d8c88ff08cc90
2017-11-08 19:58:28 -05:00
dluca 6d9443afa6 Backed out 1 changesets (bug 1393817) for failing to repackage the nightly build on Windows a=backout.
Backed out changeset 25f21f22a34b (bug 1393817)
2017-11-09 15:34:00 +02:00
Sebastian Hengst a353221537 merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-11-09 00:00:16 +02:00
Zibi Braniecki 634e419761 Bug 1415432 - .ftl files repackaged multiple times. r=glandium 2017-11-07 22:16:16 -08:00
Andrew Halberstadt a69182174e Bug 1414399 - [mozbuild/moztest] Move mozbuild.testing.TestResolver to moztest.resolve r=gps
The TestMetadata and TestResolver classes aren't technically part of the build
system. The only connection is that they consume some build system output.

The next patch in this series is going to be merging in a bunch of other test
resolving logic from other parts of the tree. Moving this out first allows us
to keep that extra logic out of mozbuild.

MozReview-Commit-ID: 1eq4SjFVCyW

--HG--
rename : python/mozbuild/mozbuild/test/test_testing.py => testing/mozbase/moztest/tests/test_resolve.py
extra : rebase_source : 7ff11f9ec455547533082d20cb5371845f7a4f21
2017-11-06 08:41:42 -05:00
Tom Ritter 21d957d700 Bug 1393817 Use buildconfig to get the path for 7z rather than hardcoding it in exe_7z_archive.py r=ted
With that fixed, Re-enable MOZ_AUTOMATION_L10N_CHECK for MinGW

MozReview-Commit-ID: BDTtY1J7sBj

--HG--
extra : rebase_source : 162267bf08a6e477af3b8b119a9ef9df65ba8267
2017-10-27 20:13:21 -05:00
Jonathan Watt ccbb4dd534 Bug 1413227 - Turn off Eclipse CDT's "Limit console output" option for debug output. r=botond
The default debug console line limit is far too short, especially when
debugging a debug build or a build with some logging turned on.  I've never
had any issues with turning off the limit, so hopefully this is fine for
everyone else too.

MozReview-Commit-ID: Krlo7XPEjE0
2017-10-16 11:53:26 +01:00
Jonathan Watt 708a6baeeb Bug 1413227 - Increase the line limit for Eclipse CDT's build console to 10,000. r=botond
By default the build console is limited to 500 lines.  This can be far too
short, especially when building using `mach build --verbose`.  I've run with
this value set to 1,000,000 before without issue, so 10,000 should be fine.

MozReview-Commit-ID: GxBUjW7nOYJ
2017-10-16 09:36:09 +01:00
Gregory Szorc 9e26b9fde3 Bug 1412932 - Switch to PGO build in Makefile.in; r=ted
Previously, client.mk made the decision of whether to perform a PGO
build. This required passing around MOZ_PGO and invoking a separate
make target if this variable was set.

In this commit, we move this logic to Makefile.in. We employ a special
mechanism in rules.mk to override the default make target so
`make` evaluates "profiledbuild" if MOZ_PGO is set. This also
required using an explicit target for $(MAKE) invocations inside
the "profiledbuild" rule to avoid infinite recursion.

MozReview-Commit-ID: 8sHiVspMisM

--HG--
extra : rebase_source : 76c8a0c592015802f2b9ad52fe2001012a4611f6
extra : source : 24e28b37fbc0ad55ee449699e09c62042af41b55
2017-11-07 16:38:39 -08:00
Marco Castelluccio 6e2598919b Bug 1317041 - Calculate crc32 incrementally; r=gps
--HG--
extra : rebase_source : 9b9e26ccda2edf2e2ada98f0156b69a737c8879e
extra : amend_source : 05908f721af861cb2b954414c8a457b4d36c9f2e
2017-11-07 15:34:20 -08:00
Chris Manchester a638887c37 Bug 1414064 - Remove LD_VERSION_SCRIPT from the build system. r=mshal
MozReview-Commit-ID: 6KOLZh6aQmc

--HG--
extra : rebase_source : 9a98d1703e9a3138669bc96afdff66bf235058bc
2017-11-07 14:35:05 -08:00
Tom Prince 2db78e3fcd Bug 1415199: Move some logic for loading taskgraph kinds from mozbuild.mach_bootstrap to taskgraph. r=dustin
This fixes the fallout from the mach command not being updated for 69c60c8fc528d8d038e22a2ae62f5ff7b1131231.

MozReview-Commit-ID: 7WZ8wW4gnCY

--HG--
extra : rebase_source : 36caffb4a8631ea478ec6f8d509a82c01016eeb5
2017-11-07 10:08:49 -07:00
Chris Manchester f042423295 Bug 1414370 - Emit ldflags in directories containing only rust programs for the benefit of cargo. r=froydnj
MozReview-Commit-ID: 6gD7kAIQbtB

--HG--
extra : rebase_source : 9bd69163ab5f56b16168916da233eea74aaa2ccf
2017-11-06 19:57:12 -08:00
Sebastian Hengst 1aa3eb5efc Backed out changeset ec6b9fda1868 (bug 1415199) for breaking gecko decision task. r=backout on a CLOSED TREE 2017-11-07 19:50:30 +02:00
Tom Prince 032b57d3ec Bug 1415199: Move some logic for loading taskgraph kinds from mozbuild.mach_bootstrap to taskgraph. r=dustin
This fixes the fallout from the mach command not being updated for 69c60c8fc528d8d038e22a2ae62f5ff7b1131231.

MozReview-Commit-ID: 7WZ8wW4gnCY

--HG--
extra : rebase_source : 887b386480b9cb69c8b7e0196851862fceec2dfe
2017-11-07 10:08:49 -07:00
Andreas Tolfsen 67ad7e6ed1 Bug 1413195 - Vendor webdriver's dependencies through geckodriver r=jgraham
The webdriver crate's dependencies are accounted for through geckodriver's
Cargo.lock file, because the webdriver dependency is given by path.

This commit reverts 540273e5cf22 made in bug 1412037.

MozReview-Commit-ID: F0q9bDN3pqd

--HG--
extra : rebase_source : 0d152fb510bcded763429769fb35c403552a6017
2017-11-03 14:02:09 +00:00
Sylvestre Ledru 2e451269e1 Bug 1414781 - Also install clang-format r=glandium
MozReview-Commit-ID: A6Jlc5RXVuP

--HG--
extra : rebase_source : e9673f0c976e2862d7151f71ed50b01d24694b9d
2017-11-07 11:45:58 +01:00
Zibi Braniecki c15f333a09 Bug 1413985 - Package .ftl files on repackage for both, source and AB_CD locales. r=glandium
When repackaging, we want to take all localization resources from the source package,
and add all localization resources from the repackage target locale.

This patch makes packager.l10n scan for `localization` directories in l10n_finder and
add them.

MozReview-Commit-ID: CRLP3bOAyDx

--HG--
extra : rebase_source : 3b1bc098aaed2481a1cc06fc86d0865e654a1b6e
2017-11-02 12:10:26 -07:00
Alex Gaynor d57079bd3c Bug 1414842 - remove reliance on a CPython implementation detail in mozbuild; r=gps
MozReview-Commit-ID: SGrqK6NpEY

--HG--
extra : rebase_source : ac6c49ceb8af43d62795a7607f3f15aed0c986be
2017-11-06 10:36:15 -05:00
Chris Manchester ab442e0a43 Bug 1414370 - Emit ldflags in directories containing only rust compilation for the benefit of cargo. r=froydnj
MozReview-Commit-ID: 9AuU3mjKR8V

--HG--
extra : rebase_source : 40c41531bbeae5192d037f2ab05804143ff12fdd
2017-11-03 12:16:39 -07:00
Sebastian Hengst d61954557d merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: Ai6Y5GGfkfT
2017-11-04 10:58:24 +01:00
David Major ea84880cdf Bug 1412952 - Use VS2017 with clang-cl builds. r=froydnj 2017-11-03 12:29:58 -04:00
Chris Manchester 8bc7bdf347 Bug 1411712 - Move LDFLAGS to mozbuild. r=mshal
MozReview-Commit-ID: A8cZ2FUveAf

--HG--
extra : rebase_source : 5f0e9b55c38f3b2382b469bbc886c57696f09792
2017-11-02 11:47:48 -07:00
Zibi Braniecki d0f7eab519 Bug 1411951 - Use mozpack.path.normsep when generating chrome entry paths for langpack manifest.json. r=mshal
MozReview-Commit-ID: L8kVm1ISkzD

--HG--
extra : rebase_source : 8a479adbd0c00ea3fa8196c4911dd407003e5328
2017-10-28 21:40:12 -07:00
Gregory Szorc dfb9e542f8 Backed out changesets f47abc8062fc, 73df5a910488, 75807d1ab22e, and 53a93e195f91 (bug 1412460); a=bustage
CLOSED TREE

--HG--
extra : amend_source : 3565fdd8a509e11547b0788364ef68e633018bc4
extra : histedit_source : 83c6614b751cedd0af05404d45ef51ad0f58c764%2C1e117ef60548884384a2043a06427788b28c56df
2017-11-01 15:49:04 -07:00
Gregory Szorc 905d805ac5 Bug 1412460 - Always evaluate config environment; r=mshal
I /think/ the only scenario where we wouldn't be able to evaluate
a config environment after configure was the case where
MOZ_BUILD_PROJECTS was in play. Since we removed support for that
feature, let's drop support for treating the config environment
as optional.

MozReview-Commit-ID: 4sz9dOwaA3y

--HG--
extra : rebase_source : 44c0d5d51238cdcb0b311f205a9faf306bb18b19
2017-10-27 17:14:00 -07:00
Gregory Szorc 068875c80a Bug 1412460 - Move configure invocation out of mach_commands.py; r=mshal
While we're here, also move the low-level code to invoke configure
to a proper Python module.

We needed to muck around with the log manager because the underlying
logger for output changed from "mach" (which is registered by default)
to something under the "mozbuild" hierarchy.

MozReview-Commit-ID: 4rlCxOwcVu1

--HG--
extra : rebase_source : e6c824a88fcfdbdeae31a7a94f33571f150e7690
2017-11-01 15:01:21 -07:00
Gregory Szorc 12ea267e0c Bug 1412460 - Move code for invoking build system out of mach_commands.py; r=mshal
The goal is to move this lower-level code somewhere where it can be
reused.

The only meaningful code change as part of the move was handling
of the mach context. Before, we could access self._mach_context.
After, we need to pass it as an argument. This also uncovered a bug
where "telemetry_handler" could be None but we called it
unconditionally. We now guard this call with an "if."

MozReview-Commit-ID: FWw4l6H1ayS

--HG--
extra : rebase_source : f6bf25eb8c52df2d09e4d5eddd5b85b38502e661
2017-10-27 10:58:30 -07:00
Gregory Szorc 07391c8ecc Bug 1412460 - Move build output processing code out of mach_commands.py; r=mshal
In general, we shouldn't have so much business logic in mach_commands.py
files.

I'd like to move more of the low-level "perform a build" logic out of
mach_commands.py to facilitate some future work. That code makes use of
this output processing code. So as the first step in moving the build
code, we move its dependencies.

As part of this, I also cleaned up some random unused imports around
lines that were touched.

No meaningful code changes were performed as part of the code move.

MozReview-Commit-ID: 96mGWUJ7oLb

--HG--
extra : rebase_source : 04c3865d5bcc44777749f3ab6a65e31bb1d13689
2017-10-27 10:45:41 -07:00
Nathan Froyd 31d3fb6793 Bug 1413232 - move the default value for FILES_PER_UNIFIED_FILE to a more logical location; r=nalexander
Putting it in emitter.py increases the obviousness of its default value
when searching for things.
2017-11-01 10:16:39 -04:00
Nick Fitzgerald 257c4b0933 Bug 1414349 - Re-sync the list of top level crates for `mach cargo check`; r=mbrubeck
Because there isn't a single, canonical source of truth, the `mach cargo
check`'s list got out of date.

MozReview-Commit-ID: EGNc2eNSumT
2017-11-03 10:49:34 -07:00
Nick Fitzgerald 5108a727e5 Bug 1414349 - Add mozjs_sys to the top level crate set; r=mbrubeck
This is necessary because it runs as its own taskcluster job, and therefore has
its own Cargo.lock file.

MozReview-Commit-ID: HjB60bQnMeO
2017-11-03 10:49:13 -07:00
J.C. Jones cdfad59288 Bug 1409259 - Add xpcshell tests for the Symantec distrust r=keeler
This commit adds two new xpcshell tests, both of them testing whether the
security state in TransportSecurityInfo includes the new
STATE_CERT_DISTRUST_IMMINENT flag under the correct circumstances.

The first test, test_symantec_apple_google.js, tests the four combinations of
certs that chain to an affected Symantec root: with/without a whitelisted
intermediate, and before/after the notBefore cutoff date.

The second test, test_symantec_apple_google_unaffected.js, tests an unrelated
ca->intermediate->ee chain that does not chain to an affected root, and ensures
the flag is not set.

This patch adds SymantecSanctionsServer to the mozbuild and xpcshell test
infrastructure files to ensure it runs properly on TaskCluster, too.

MozReview-Commit-ID: GtUXH2VFFh

--HG--
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.key => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.key
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.key.keyspec => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.key.keyspec
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.pem => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.pem
rename : security/manager/ssl/tests/unit/bad_certs/default-ee.pem.certspec => security/manager/ssl/tests/unit/test_symantec_apple_google/default-ee.pem.certspec
rename : security/manager/ssl/tests/unit/tlsserver/cmd/BadCertServer.cpp => security/manager/ssl/tests/unit/tlsserver/cmd/SymantecSanctionsServer.cpp
extra : rebase_source : f399bca5a13db3efa5bbaa5136c8effc3948ed5e
2017-11-01 11:12:11 -07:00
Gregory Szorc f8e8ee5d2e Bug 1413254 - Write a JSON file with normalized data; r=jmaher
The new file contains changes that optimize for final file size:

* The components are stored as an integer index/key into a map
  instead of strings.
* Paths are stored in hierarchical dicts.
* No indentation is used.

These changes significantly redude redundancy in string data. For every
file in the repo, the raw JSON size is decreased from 27,074,607 to
7,643,529 bytes.

MozReview-Commit-ID: 58FWSct8W39

--HG--
extra : rebase_source : 3ccc17d58fadaaac428b2eb2d3ad357fec9afafd
2017-10-31 10:57:14 -07:00
Gregory Szorc 65ea8f0256 Bug 1413254 - Fail Bugzilla CI task if file is missing component annotation; r=jmaher
We want all files in the repo to be annotated with a Bugzilla
component. This change will cause the CI task to fail if files are
missing annotations.

MozReview-Commit-ID: Kn6dheQqEsk

--HG--
extra : rebase_source : f472f78defc0b7aec53863a3c4374f4268c0cc3f
2017-10-31 10:37:18 -07:00
Gregory Szorc 1269329adb Bug 1413254 - Establish dedicated mach command for Bugzilla metadata validation; r=jmaher
Previously, the CI task invoked 2 mach commands and performed manual
gzip compressed. This was sub-optimal for a few reasons:

* Redundant moz.build evaluation made execution slower
* Potential for shell expansion to interfere with wildcards
* Made it harder to change exit code

By moving all logic into a mach command, we eliminate all the issues
around using shell.

Behavior of the new command and the CI task should be backwards
compatible.

MozReview-Commit-ID: HUFvLteKLOO

--HG--
extra : rebase_source : 85a49fc45eeaaac71dfb97fc22900a81ca9efa4b
2017-10-31 10:30:15 -07:00
Chris Manchester 92ca8066af Bug 1405811 - Move host compilation flags to mozbuild. r=mshal
MozReview-Commit-ID: 7I5IHM65eaU

--HG--
extra : rebase_source : b33bb2f0f6a9cb36961586ad475cf36f8bbcd091
2017-10-02 11:41:41 -07:00
Gregory Szorc f818d2620e Bug 1411994 - Ignore Unicode errors when logging; r=glandium
LineIO currently attempts to convert bytes to unicode using the
system preferred encoding. This can obviously fail for some byte
sequences.

In many cases, the conversion is happening for purposes of logging.
In these cases, Unicode validation shouldn't be that important to
us.

So, this commit teaches LineIO to accept an argument defining its
Unicode error mode. We also teach relevant users of LineIO doing
logging to switch the default mode from "strict" to "replace" so
invalid Unicode byte sequences can be logged with the Unicode
replacement character.

During review, glandium pointed out that it may make better sense
to defer Unicode decoding to the logging layer instead of in LineIO.
I agree with this idea. But it can be implemented in another bug:
for now we should unbust the build system.

MozReview-Commit-ID: 7miuSDY8Xzv

--HG--
extra : rebase_source : 40d5d97d908d00b410b49d03729a34568e5bfb1a
2017-10-26 15:27:01 -07:00