Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Issue 2748073006: Milo Refactor: Remove theme support (Closed)

Created:
3 years, 9 months ago by Ryan Tseng
Modified:
3 years, 9 months ago
Reviewers:
nodir, hinoka
CC:
chromium-reviews, infra-reviews+luci-go_chromium.org, maruel+w_chromium.org, tandrii+luci-go_chromium.org
Target Ref:
refs/heads/master
Project:
luci-go
Visibility:
Public.

Description

Milo Refactor: Remove theme support and bootstrap theme This CL: * Removes the bootstrap theme (It hasn't been maintained for a while)( * Removes theming support * Renames settings to common * Renames settings/settings.go to middleware.go * Moves the expectation and template folders so they're not nested by theme name. * Remove the ThemedHandler type and replace it with normal handlers that matches the rest of luci-go. * Remove the TestData type and replace them with functions. BUG=698846 Review-Url: https://codereview.chromium.org/2748073006 Committed: https://github.com/luci/luci-go/commit/e0e9f21852f8e48d79169e16d7000731422cec8d

Patch Set 1 #

Patch Set 2 : Fix tests #

Total comments: 24

Patch Set 3 : Review #

Total comments: 43

Patch Set 4 : GoFmt #

Patch Set 5 : Review #

Patch Set 6 : Fix builder.html pointer #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+1174 lines, -14468 lines) Patch
M milo/api/proto/pb.discovery.go View 1 chunk +668 lines, -673 lines 0 comments Download
M milo/appengine/buildbot/build.go View 1 2 3 4 2 chunks +6 lines, -11 lines 2 comments Download
M milo/appengine/buildbot/build_test.go View 1 2 3 4 2 chunks +1 line, -5 lines 0 comments Download
M milo/appengine/buildbot/builder.go View 1 2 3 4 3 chunks +6 lines, -13 lines 0 comments Download
M milo/appengine/buildbot/html.go View 1 2 3 4 5 1 chunk +46 lines, -69 lines 2 comments Download
M milo/appengine/buildbot/html_data.go View 1 2 4 chunks +8 lines, -16 lines 0 comments Download
M milo/appengine/buildbot/master.go View 1 2 3 chunks +3 lines, -3 lines 0 comments Download
M milo/appengine/buildbot/pubsub_test.go View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M milo/appengine/buildbucket/builder.go View 1 2 3 4 2 chunks +16 lines, -9 lines 0 comments Download
M milo/appengine/buildbucket/builder_test.go View 1 2 3 4 1 chunk +7 lines, -1 line 0 comments Download
M milo/appengine/buildbucket/html.go View 1 2 3 4 1 chunk +29 lines, -38 lines 0 comments Download
A + milo/appengine/common/acl.go View 1 2 1 chunk +1 line, -1 line 0 comments Download
A + milo/appengine/common/acl_test.go View 1 2 1 chunk +1 line, -1 line 0 comments Download
A + milo/appengine/common/config.go View 1 2 3 4 8 chunks +9 lines, -22 lines 0 comments Download
A + milo/appengine/common/config_test.go View 1 2 1 chunk +1 line, -1 line 0 comments Download
A milo/appengine/common/error.go View 1 2 3 4 1 chunk +20 lines, -0 lines 0 comments Download
A + milo/appengine/common/funcs.go View 1 2 1 chunk +1 line, -1 line 0 comments Download
A + milo/appengine/common/funcs_test.go View 1 2 1 chunk +1 line, -1 line 0 comments Download
A milo/appengine/common/middleware.go View 1 2 3 4 1 chunk +92 lines, -0 lines 0 comments Download
A + milo/appengine/common/testBundle.go View 1 2 1 chunk +1 line, -9 lines 0 comments Download
A milo/appengine/common/utils.go View 1 2 1 chunk +34 lines, -0 lines 0 comments Download
M milo/appengine/console/console.go View 1 2 4 chunks +5 lines, -5 lines 0 comments Download
M milo/appengine/console/html.go View 1 2 1 chunk +13 lines, -26 lines 0 comments Download
M milo/appengine/console/html_data.go View 1 2 1 chunk +3 lines, -7 lines 0 comments Download
A milo/appengine/frontend/config.go View 1 2 3 4 1 chunk +41 lines, -0 lines 4 comments Download
D milo/appengine/frontend/expectations/bootstrap-buildbot.TestableBuild-Debug_page-_CrWinGoma_30608.html View 1 chunk +0 lines, -650 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-buildbot.TestableBuild-Debug_page-_win_chromium_rel_ng_246309.html View 1 chunk +0 lines, -900 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-buildbot.TestableBuilder-Basic_Test_no_builds.html View 1 chunk +0 lines, -96 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-buildbot.TestableBuilder-Basic_Test_with_builds.html View 1 chunk +0 lines, -124 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-frontend.testableFrontpage-Basic_frontpage.html View 1 chunk +0 lines, -79 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-settings.TestableSettings-Settings.html View 1 chunk +0 lines, -90 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-Basic_successful_build.html View 1 chunk +0 lines, -87 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-canceled.html View 1 chunk +0 lines, -164 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-exception.html View 1 chunk +0 lines, -214 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-expired.html View 1 chunk +0 lines, -90 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-hang.html View 1 chunk +0 lines, -171 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-link.html View 1 chunk +0 lines, -115 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-nested.html View 1 chunk +0 lines, -331 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-patch-failure.html View 1 chunk +0 lines, -278 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-pending.html View 1 chunk +0 lines, -90 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-pending-logdog.html View 1 chunk +0 lines, -90 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-running.html View 1 chunk +0 lines, -177 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-running-logdog.html View 1 chunk +0 lines, -177 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-running-logdog-no-annotation-stream.html View 1 chunk +0 lines, -103 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-timeout.html View 1 chunk +0 lines, -169 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableBuild-build-unicode.html View 1 chunk +0 lines, -177 lines 0 comments Download
D milo/appengine/frontend/expectations/bootstrap-swarming.TestableLog-Basic_log.html View 1 chunk +0 lines, -66 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-buildbot.TestableBuild-Debug_page-_CrWinGoma_30608.html View 1 chunk +0 lines, -898 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-buildbot.TestableBuild-Debug_page-_win_chromium_rel_ng_246309.html View 1 chunk +0 lines, -1120 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-buildbot.TestableBuilder-Basic_Test_no_builds.html View 1 chunk +0 lines, -79 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-buildbot.TestableBuilder-Basic_Test_with_builds.html View 1 chunk +0 lines, -134 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-frontend.testableFrontpage-Basic_frontpage.html View 1 chunk +0 lines, -70 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-settings.TestableSettings-Settings.html View 1 chunk +0 lines, -79 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-Basic_successful_build.html View 1 chunk +0 lines, -153 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-canceled.html View 1 chunk +0 lines, -304 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-exception.html View 1 chunk +0 lines, -337 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-expired.html View 1 chunk +0 lines, -182 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-hang.html View 1 chunk +0 lines, -258 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-link.html View 1 chunk +0 lines, -215 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-nested.html View 1 chunk +0 lines, -402 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-patch-failure.html View 1 chunk +0 lines, -426 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-pending.html View 1 chunk +0 lines, -170 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-pending-logdog.html View 1 chunk +0 lines, -170 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-running.html View 1 chunk +0 lines, -293 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-running-logdog.html View 1 chunk +0 lines, -295 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-running-logdog-no-annotation-stream.html View 1 chunk +0 lines, -196 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-timeout.html View 1 chunk +0 lines, -314 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableBuild-build-unicode.html View 1 chunk +0 lines, -293 lines 0 comments Download
D milo/appengine/frontend/expectations/buildbot-swarming.TestableLog-Basic_log.html View 1 chunk +0 lines, -56 lines 0 comments Download
A + milo/appengine/frontend/expectations/buildbot.build-Debug_page-_CrWinGoma_30608.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/buildbot.build-Debug_page-_win_chromium_rel_ng_246309.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/buildbot.builder-Basic_Test_no_builds.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/buildbot.builder-Basic_Test_with_builds.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/frontpage-Basic_frontpage.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-Basic_successful_build.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-canceled.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-exception.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-expired.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-link.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-nested.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-patch-failure.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-pending.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-pending-logdog.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-running.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-running-logdog.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-running-logdog-no-annotation-stream.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-timeout.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.build-build-unicode.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/expectations/swarming.log-Basic_log.html View 1 0 chunks +-1 lines, --1 lines 0 comments Download
M milo/appengine/frontend/frontpage.go View 1 2 2 chunks +12 lines, -20 lines 0 comments Download
A + milo/appengine/frontend/main.go View 1 2 3 4 2 chunks +15 lines, -20 lines 0 comments Download
A + milo/appengine/frontend/main_test.go View 1 2 3 4 2 chunks +39 lines, -39 lines 0 comments Download
M milo/appengine/frontend/milo.go View 1 2 3 4 1 chunk +0 lines, -90 lines 0 comments Download
M milo/appengine/frontend/milo_test.go View 1 2 3 4 1 chunk +0 lines, -142 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/includes/bootstrap.html View 1 chunk +0 lines, -66 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/pages/build.html View 1 chunk +0 lines, -65 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/pages/builder.html View 1 chunk +0 lines, -90 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/pages/error.html View 1 chunk +0 lines, -10 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/pages/frontpage.html View 1 chunk +0 lines, -22 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/pages/log.html View 1 chunk +0 lines, -7 lines 0 comments Download
D milo/appengine/frontend/templates/bootstrap/pages/settings.html View 1 chunk +0 lines, -29 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/includes/buildbot.html View 1 chunk +0 lines, -53 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/build.html View 1 chunk +0 lines, -301 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/builder.html View 1 chunk +0 lines, -130 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/configs.html View 1 chunk +0 lines, -37 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/console.html View 1 chunk +0 lines, -36 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/error.html View 1 chunk +0 lines, -13 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/frontpage.html View 1 chunk +0 lines, -24 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/log.html View 1 chunk +0 lines, -10 lines 0 comments Download
D milo/appengine/frontend/templates/buildbot/pages/settings.html View 1 chunk +0 lines, -29 lines 0 comments Download
A + milo/appengine/frontend/templates/includes/base.html View 1 1 chunk +1 line, -1 line 0 comments Download
A + milo/appengine/frontend/templates/pages/build.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/builder.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/configs.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/console.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/error.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/frontpage.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/log.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + milo/appengine/frontend/templates/pages/settings.html View 0 chunks +-1 lines, --1 lines 0 comments Download
M milo/appengine/logdog/build.go View 1 2 3 4 5 chunks +10 lines, -22 lines 0 comments Download
A + milo/appengine/logdog/html.go View 1 2 3 4 1 chunk +28 lines, -37 lines 0 comments Download
M milo/appengine/logdog/http.go View 1 2 3 4 1 chunk +0 lines, -126 lines 0 comments Download
D milo/appengine/settings/acl.go View 1 2 1 chunk +0 lines, -38 lines 0 comments Download
D milo/appengine/settings/acl_test.go View 1 2 1 chunk +0 lines, -100 lines 0 comments Download
D milo/appengine/settings/config.go View 1 2 1 chunk +0 lines, -154 lines 0 comments Download
D milo/appengine/settings/config_test.go View 1 2 1 chunk +0 lines, -90 lines 0 comments Download
D milo/appengine/settings/funcs.go View 1 2 1 chunk +0 lines, -223 lines 0 comments Download
D milo/appengine/settings/funcs_test.go View 1 2 1 chunk +0 lines, -28 lines 0 comments Download
M milo/appengine/settings/html.go View 1 2 1 chunk +0 lines, -60 lines 0 comments Download
D milo/appengine/settings/html_data.go View 1 chunk +0 lines, -33 lines 0 comments Download
D milo/appengine/settings/settings.go View 1 chunk +0 lines, -182 lines 0 comments Download
D milo/appengine/settings/testable_handler.go View 1 chunk +0 lines, -27 lines 0 comments Download
D milo/appengine/settings/themes.go View 1 chunk +0 lines, -220 lines 0 comments Download
M milo/appengine/swarming/html.go View 1 2 3 4 5 chunks +42 lines, -58 lines 0 comments Download
M milo/appengine/swarming/html_data.go View 1 2 5 chunks +8 lines, -16 lines 0 comments Download
M milo/common/config/project.pb.go View 4 chunks +32 lines, -33 lines 0 comments Download
D milo/common/miloerror/error.go View 1 2 3 4 1 chunk +0 lines, -19 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 46 (33 generated)
hinoka
ptal. https://codereview.chromium.org/2748073006/diff/20001/milo/api/proto/pb.discovery.go File milo/api/proto/pb.discovery.go (right): https://codereview.chromium.org/2748073006/diff/20001/milo/api/proto/pb.discovery.go#newcode1 milo/api/proto/pb.discovery.go:1: // AUTOGENERATED. DO NOT EDIT. I think this ...
3 years, 9 months ago (2017-03-15 18:51:16 UTC) #13
nodir
https://codereview.chromium.org/2748073006/diff/20001/milo/appengine/buildbot/html.go File milo/appengine/buildbot/html.go (right): https://codereview.chromium.org/2748073006/diff/20001/milo/appengine/buildbot/html.go#newcode21 milo/appengine/buildbot/html.go:21: // BuildHandler Render the buildbot build page. renders? https://codereview.chromium.org/2748073006/diff/20001/milo/appengine/buildbot/html.go#newcode62 ...
3 years, 9 months ago (2017-03-16 17:42:51 UTC) #14
hinoka
no patchset, but replying to existing comments. The last use case for laying it out ...
3 years, 9 months ago (2017-03-16 21:04:06 UTC) #15
hinoka
Addressed comments. https://codereview.chromium.org/2748073006/diff/20001/milo/appengine/buildbot/html.go File milo/appengine/buildbot/html.go (right): https://codereview.chromium.org/2748073006/diff/20001/milo/appengine/buildbot/html.go#newcode21 milo/appengine/buildbot/html.go:21: // BuildHandler Render the buildbot build page. ...
3 years, 9 months ago (2017-03-17 20:00:21 UTC) #18
nodir
https://codereview.chromium.org/2748073006/diff/40001/milo/appengine/buildbot/html.go File milo/appengine/buildbot/html.go (right): https://codereview.chromium.org/2748073006/diff/40001/milo/appengine/buildbot/html.go#newcode75 milo/appengine/buildbot/html.go:75: result, err := builderImpl(c.Context, master, builder, limit) nice, builderImpl ...
3 years, 9 months ago (2017-03-17 20:47:58 UTC) #27
nodir
Looks much better btw
3 years, 9 months ago (2017-03-17 20:49:02 UTC) #28
nodir
Looks much better btw
3 years, 9 months ago (2017-03-17 20:50:23 UTC) #29
hinoka
https://codereview.chromium.org/2748073006/diff/40001/milo/appengine/buildbot/html.go File milo/appengine/buildbot/html.go (right): https://codereview.chromium.org/2748073006/diff/40001/milo/appengine/buildbot/html.go#newcode75 milo/appengine/buildbot/html.go:75: result, err := builderImpl(c.Context, master, builder, limit) On 2017/03/17 ...
3 years, 9 months ago (2017-03-17 22:04:56 UTC) #32
hinoka
monday ping. I want this to go in before anything else. How does it look?
3 years, 9 months ago (2017-03-20 17:23:55 UTC) #39
nodir
lgtm https://codereview.chromium.org/2748073006/diff/100001/milo/appengine/buildbot/build.go File milo/appengine/buildbot/build.go (right): https://codereview.chromium.org/2748073006/diff/100001/milo/appengine/buildbot/build.go#newcode26 milo/appengine/buildbot/build.go:26: var errBuildNotFound = errors.New("Build not found") error messages ...
3 years, 9 months ago (2017-03-20 19:11:36 UTC) #40
hinoka
https://codereview.chromium.org/2748073006/diff/100001/milo/appengine/buildbot/build.go File milo/appengine/buildbot/build.go (right): https://codereview.chromium.org/2748073006/diff/100001/milo/appengine/buildbot/build.go#newcode26 milo/appengine/buildbot/build.go:26: var errBuildNotFound = errors.New("Build not found") On 2017/03/20 19:11:36, ...
3 years, 9 months ago (2017-03-20 19:16:31 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2748073006/100001
3 years, 9 months ago (2017-03-20 19:16:46 UTC) #43
commit-bot: I haz the power
3 years, 9 months ago (2017-03-20 19:24:14 UTC) #46
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://github.com/luci/luci-go/commit/e0e9f21852f8e48d79169e16d7000731422cec8d

Powered by Google App Engine
This is Rietveld 408576698