diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php
index 5dbae02e0..8d1a03368 100644
--- a/src/__celerity_resource_map__.php
+++ b/src/__celerity_resource_map__.php
@@ -1,4550 +1,4550 @@
 <?php
 
 /**
  * This file is automatically generated. Use 'celerity_mapper.php' to rebuild
  * it.
  * @generated
  */
 
 celerity_register_resource_map(array(
   '/rsrc/image/actions/edit.png' =>
   array(
     'hash' => 'ae90914d120ac3838ddc633b480343f3',
     'uri' => '/res/ae90914d/rsrc/image/actions/edit.png',
     'disk' => '/rsrc/image/actions/edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/apple-touch-icon.png' =>
   array(
     'hash' => '3380adf2dd4a5efa0885618bc5943640',
     'uri' => '/res/3380adf2/rsrc/image/apple-touch-icon.png',
     'disk' => '/rsrc/image/apple-touch-icon.png',
     'type' => 'png',
   ),
   '/rsrc/image/avatar.png' =>
   array(
     'hash' => '1c5f255071537f05406adee86717ff27',
     'uri' => '/res/1c5f2550/rsrc/image/avatar.png',
     'disk' => '/rsrc/image/avatar.png',
     'type' => 'png',
   ),
   '/rsrc/image/checker_dark.png' =>
   array(
     'hash' => '640f795343df76ebe5409aae6187e57f',
     'uri' => '/res/640f7953/rsrc/image/checker_dark.png',
     'disk' => '/rsrc/image/checker_dark.png',
     'type' => 'png',
   ),
   '/rsrc/image/checker_light.png' =>
   array(
     'hash' => '7f8f3ef8beb0f2cc4cc69efb9e1c3308',
     'uri' => '/res/7f8f3ef8/rsrc/image/checker_light.png',
     'disk' => '/rsrc/image/checker_light.png',
     'type' => 'png',
   ),
   '/rsrc/image/credit_cards.png' =>
   array(
     'hash' => '681448de424ea159b6ea68af04c046ae',
     'uri' => '/res/681448de/rsrc/image/credit_cards.png',
     'disk' => '/rsrc/image/credit_cards.png',
     'type' => 'png',
   ),
   '/rsrc/image/darkload.gif' =>
   array(
     'hash' => '3a52cb7145d6e70f461fed21273117f2',
     'uri' => '/res/3a52cb71/rsrc/image/darkload.gif',
     'disk' => '/rsrc/image/darkload.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/divot.png' =>
   array(
     'hash' => '3be267bd11ea375bf68e808893718e0e',
     'uri' => '/res/3be267bd/rsrc/image/divot.png',
     'disk' => '/rsrc/image/divot.png',
     'type' => 'png',
   ),
   '/rsrc/image/grippy_texture.png' =>
   array(
     'hash' => 'a8945e12ceeaddd5b491a8d81cfa19c1',
     'uri' => '/res/a8945e12/rsrc/image/grippy_texture.png',
     'disk' => '/rsrc/image/grippy_texture.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/arrow_branch.png' =>
   array(
     'hash' => 'f27b67520766e3d971722bcff703f3a8',
     'uri' => '/res/f27b6752/rsrc/image/icon/fatcow/arrow_branch.png',
     'disk' => '/rsrc/image/icon/fatcow/arrow_branch.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/arrow_merge.png' =>
   array(
     'hash' => 'c4bd97f3b1257439e2123ef69d2194d0',
     'uri' => '/res/c4bd97f3/rsrc/image/icon/fatcow/arrow_merge.png',
     'disk' => '/rsrc/image/icon/fatcow/arrow_merge.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/bullet_black.png' =>
   array(
     'hash' => 'c148284c84aa02ba1190dcf7e31c8985',
     'uri' => '/res/c148284c/rsrc/image/icon/fatcow/bullet_black.png',
     'disk' => '/rsrc/image/icon/fatcow/bullet_black.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/bullet_orange.png' =>
   array(
     'hash' => '397bd1c948d9aaac5e440a9270c3697a',
     'uri' => '/res/397bd1c9/rsrc/image/icon/fatcow/bullet_orange.png',
     'disk' => '/rsrc/image/icon/fatcow/bullet_orange.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/bullet_red.png' =>
   array(
     'hash' => '470e3b2c2ca84ebdd476271b681f421b',
     'uri' => '/res/470e3b2c/rsrc/image/icon/fatcow/bullet_red.png',
     'disk' => '/rsrc/image/icon/fatcow/bullet_red.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/calendar_edit.png' =>
   array(
     'hash' => 'de249c0f4f37bf5b2c69ff39ec5573fb',
     'uri' => '/res/de249c0f/rsrc/image/icon/fatcow/calendar_edit.png',
     'disk' => '/rsrc/image/icon/fatcow/calendar_edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/document_black.png' =>
   array(
     'hash' => '44d65a7f05a9c921719deedc160d68f7',
     'uri' => '/res/44d65a7f/rsrc/image/icon/fatcow/document_black.png',
     'disk' => '/rsrc/image/icon/fatcow/document_black.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_blue.png' =>
   array(
     'hash' => '75a080492f900fbe489e4b27e403962b',
     'uri' => '/res/75a08049/rsrc/image/icon/fatcow/flag_blue.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_blue.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_finish.png' =>
   array(
     'hash' => '4af11fc7fab8e4610cbc3c88a02d4f78',
     'uri' => '/res/4af11fc7/rsrc/image/icon/fatcow/flag_finish.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_finish.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_ghost.png' =>
   array(
     'hash' => '14c9f30a37b43f276f27a27a924bf02d',
     'uri' => '/res/14c9f30a/rsrc/image/icon/fatcow/flag_ghost.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_ghost.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_green.png' =>
   array(
     'hash' => 'fed01374cd396cb774872762dcc447e1',
     'uri' => '/res/fed01374/rsrc/image/icon/fatcow/flag_green.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_green.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_orange.png' =>
   array(
     'hash' => '88008cb8bb99761a37e5a743e2455aeb',
     'uri' => '/res/88008cb8/rsrc/image/icon/fatcow/flag_orange.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_orange.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_pink.png' =>
   array(
     'hash' => '2f199f06ffc3dfc81b7561a057e0bc33',
     'uri' => '/res/2f199f06/rsrc/image/icon/fatcow/flag_pink.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_pink.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_purple.png' =>
   array(
     'hash' => '16358629dc86c39550b575586eb5df80',
     'uri' => '/res/16358629/rsrc/image/icon/fatcow/flag_purple.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_purple.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_red.png' =>
   array(
     'hash' => '210c28b4d93c439a499f5814f5e05772',
     'uri' => '/res/210c28b4/rsrc/image/icon/fatcow/flag_red.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_red.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/flag_yellow.png' =>
   array(
     'hash' => 'bdfd73744a80bb80329ae50bc8a5f962',
     'uri' => '/res/bdfd7374/rsrc/image/icon/fatcow/flag_yellow.png',
     'disk' => '/rsrc/image/icon/fatcow/flag_yellow.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/folder.png' =>
   array(
     'hash' => '25e46cf9d210dde2242332296f79938c',
     'uri' => '/res/25e46cf9/rsrc/image/icon/fatcow/folder.png',
     'disk' => '/rsrc/image/icon/fatcow/folder.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/folder_go.png' =>
   array(
     'hash' => 'ba922ff7959309f51a14cb7ed5124d8b',
     'uri' => '/res/ba922ff7/rsrc/image/icon/fatcow/folder_go.png',
     'disk' => '/rsrc/image/icon/fatcow/folder_go.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/key_question.png' =>
   array(
     'hash' => '530a6448a4b91edec091a9292ccfd3d9',
     'uri' => '/res/530a6448/rsrc/image/icon/fatcow/key_question.png',
     'disk' => '/rsrc/image/icon/fatcow/key_question.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/link.png' =>
   array(
     'hash' => 'be1bea49b216548433014f3324902928',
     'uri' => '/res/be1bea49/rsrc/image/icon/fatcow/link.png',
     'disk' => '/rsrc/image/icon/fatcow/link.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_edit.png' =>
   array(
     'hash' => 'e7b7e7f2d9730bc80bc5c9eac1f3e36d',
     'uri' => '/res/e7b7e7f2/rsrc/image/icon/fatcow/page_white_edit.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_link.png' =>
   array(
     'hash' => '1cfbad14412bda6c6f132dcc7c8725fd',
     'uri' => '/res/1cfbad14/rsrc/image/icon/fatcow/page_white_link.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_link.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_put.png' =>
   array(
     'hash' => 'bb7308aa5ac40137a8262da395a267fd',
     'uri' => '/res/bb7308aa/rsrc/image/icon/fatcow/page_white_put.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_put.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/page_white_text.png' =>
   array(
     'hash' => 'e47d590b626f617fb7d1d44e96e8fd11',
     'uri' => '/res/e47d590b/rsrc/image/icon/fatcow/page_white_text.png',
     'disk' => '/rsrc/image/icon/fatcow/page_white_text.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/conduit.png' =>
   array(
     'hash' => '1cae0656580aa3cd0b54b9d98306b1b9',
     'uri' => '/res/1cae0656/rsrc/image/icon/fatcow/source/conduit.png',
     'disk' => '/rsrc/image/icon/fatcow/source/conduit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/email.png' =>
   array(
     'hash' => '93bdb3e168da1ed68f50c42125729d4e',
     'uri' => '/res/93bdb3e1/rsrc/image/icon/fatcow/source/email.png',
     'disk' => '/rsrc/image/icon/fatcow/source/email.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/fax.png' =>
   array(
     'hash' => 'd7dedf229841f2d041b347afd881596f',
     'uri' => '/res/d7dedf22/rsrc/image/icon/fatcow/source/fax.png',
     'disk' => '/rsrc/image/icon/fatcow/source/fax.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/mobile.png' =>
   array(
     'hash' => '786e7146d1e7d7318baf76c9d2baad97',
     'uri' => '/res/786e7146/rsrc/image/icon/fatcow/source/mobile.png',
     'disk' => '/rsrc/image/icon/fatcow/source/mobile.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/tablet.png' =>
   array(
     'hash' => '374cd40e4965be6b2fbdef4059d0ca05',
     'uri' => '/res/374cd40e/rsrc/image/icon/fatcow/source/tablet.png',
     'disk' => '/rsrc/image/icon/fatcow/source/tablet.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/source/web.png' =>
   array(
     'hash' => 'f4882a8f5619ba505ca033f72a340635',
     'uri' => '/res/f4882a8f/rsrc/image/icon/fatcow/source/web.png',
     'disk' => '/rsrc/image/icon/fatcow/source/web.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/default160x120.png' =>
   array(
     'hash' => '1b52ebd1fe0eee3ed0abfc382991b265',
     'uri' => '/res/1b52ebd1/rsrc/image/icon/fatcow/thumbnails/default160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/default160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/default60x45.png' =>
   array(
     'hash' => '048d851d8d1daad4754e891e734c1899',
     'uri' => '/res/048d851d/rsrc/image/icon/fatcow/thumbnails/default60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/default60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/image160x120.png' =>
   array(
     'hash' => '434acbd8dbbc2da9f09f6205a396eba1',
     'uri' => '/res/434acbd8/rsrc/image/icon/fatcow/thumbnails/image160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/image160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/image60x45.png' =>
   array(
     'hash' => '29f7872dc53588fe0b8f0b330c7ee23a',
     'uri' => '/res/29f7872d/rsrc/image/icon/fatcow/thumbnails/image60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/image60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png' =>
   array(
     'hash' => '39d2e22541658a3472ba41ae2fa548e5',
     'uri' => '/res/39d2e225/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png' =>
   array(
     'hash' => 'b3572e9317cbed5184d12bdfabed2727',
     'uri' => '/res/b3572e93/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/zip160x120.png' =>
   array(
     'hash' => 'e505108688a903b5cfb674707a289bcc',
     'uri' => '/res/e5051086/rsrc/image/icon/fatcow/thumbnails/zip160x120.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/zip160x120.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/fatcow/thumbnails/zip60x45.png' =>
   array(
     'hash' => 'f00716f4e8f7a95e70d43504f06be0a6',
     'uri' => '/res/f00716f4/rsrc/image/icon/fatcow/thumbnails/zip60x45.png',
     'disk' => '/rsrc/image/icon/fatcow/thumbnails/zip60x45.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/close-2.png' =>
   array(
     'hash' => '72ff3ddcc1ed5d19a715ed6242114b53',
     'uri' => '/res/72ff3ddc/rsrc/image/icon/lightbox/close-2.png',
     'disk' => '/rsrc/image/icon/lightbox/close-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/close-hover-2.png' =>
   array(
     'hash' => '6ad4bd4a7820547a1d9041752546ba16',
     'uri' => '/res/6ad4bd4a/rsrc/image/icon/lightbox/close-hover-2.png',
     'disk' => '/rsrc/image/icon/lightbox/close-hover-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/left-arrow-2.png' =>
   array(
     'hash' => 'd84cbb0d42739f87b8f25b2f1d2f1153',
     'uri' => '/res/d84cbb0d/rsrc/image/icon/lightbox/left-arrow-2.png',
     'disk' => '/rsrc/image/icon/lightbox/left-arrow-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/left-arrow-hover-2.png' =>
   array(
     'hash' => 'cdf05f98fff3f390cd8df0c89894a3e1',
     'uri' => '/res/cdf05f98/rsrc/image/icon/lightbox/left-arrow-hover-2.png',
     'disk' => '/rsrc/image/icon/lightbox/left-arrow-hover-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/right-arrow-2.png' =>
   array(
     'hash' => '52021038cb6995c71f62a804bc2d420d',
     'uri' => '/res/52021038/rsrc/image/icon/lightbox/right-arrow-2.png',
     'disk' => '/rsrc/image/icon/lightbox/right-arrow-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/lightbox/right-arrow-hover-2.png' =>
   array(
     'hash' => '65d5756b7b9cfcdeb2eb197a9aa6bbd2',
     'uri' => '/res/65d5756b/rsrc/image/icon/lightbox/right-arrow-hover-2.png',
     'disk' => '/rsrc/image/icon/lightbox/right-arrow-hover-2.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/subscribe.png' =>
   array(
     'hash' => '5f47a4b17de245af39a4e7a097e40623',
     'uri' => '/res/5f47a4b1/rsrc/image/icon/subscribe.png',
     'disk' => '/rsrc/image/icon/subscribe.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/attachment.png' =>
   array(
     'hash' => '776fed2de89803fd8a0ba4b9deede230',
     'uri' => '/res/776fed2d/rsrc/image/icon/tango/attachment.png',
     'disk' => '/rsrc/image/icon/tango/attachment.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/edit.png' =>
   array(
     'hash' => 'c0028d99dcf4e9559bbf3c88ce2d8a8d',
     'uri' => '/res/c0028d99/rsrc/image/icon/tango/edit.png',
     'disk' => '/rsrc/image/icon/tango/edit.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/go-down.png' =>
   array(
     'hash' => '96862812cbb0445573c264dc057b8300',
     'uri' => '/res/96862812/rsrc/image/icon/tango/go-down.png',
     'disk' => '/rsrc/image/icon/tango/go-down.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/log.png' =>
   array(
     'hash' => 'a6f72499bef279ff6807a7dbc5148f1e',
     'uri' => '/res/a6f72499/rsrc/image/icon/tango/log.png',
     'disk' => '/rsrc/image/icon/tango/log.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/tango/upload.png' =>
   array(
     'hash' => '8c11b63d6d99db3d7159c5d9a94e3062',
     'uri' => '/res/8c11b63d/rsrc/image/icon/tango/upload.png',
     'disk' => '/rsrc/image/icon/tango/upload.png',
     'type' => 'png',
   ),
   '/rsrc/image/icon/unsubscribe.png' =>
   array(
     'hash' => '29429ad65aa3af50b072b32087057361',
     'uri' => '/res/29429ad6/rsrc/image/icon/unsubscribe.png',
     'disk' => '/rsrc/image/icon/unsubscribe.png',
     'type' => 'png',
   ),
   '/rsrc/image/loading.gif' =>
   array(
     'hash' => '664297671941142f37d8c89e717ff2ce',
     'uri' => '/res/66429767/rsrc/image/loading.gif',
     'disk' => '/rsrc/image/loading.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/loading/boating_24.gif' =>
   array(
     'hash' => '2cd349ded48d698ebe886ba97b2db0f7',
     'uri' => '/res/2cd349de/rsrc/image/loading/boating_24.gif',
     'disk' => '/rsrc/image/loading/boating_24.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/loading/compass_24.gif' =>
   array(
     'hash' => '726c1ed4bf23446e044d6b9d28250a07',
     'uri' => '/res/726c1ed4/rsrc/image/loading/compass_24.gif',
     'disk' => '/rsrc/image/loading/compass_24.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/loading/loading_24.gif' =>
   array(
     'hash' => 'd6dcc5e6111a44fb9a160fc27b19d85c',
     'uri' => '/res/d6dcc5e6/rsrc/image/loading/loading_24.gif',
     'disk' => '/rsrc/image/loading/loading_24.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/loading/loading_48.gif' =>
   array(
     'hash' => 'cb6fc6eb9c0a0efaf589978029080c58',
     'uri' => '/res/cb6fc6eb/rsrc/image/loading/loading_48.gif',
     'disk' => '/rsrc/image/loading/loading_48.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/loading/loading_d48.gif' =>
   array(
     'hash' => 'c5181f5e0ac8125ad9beda73fdf18e91',
     'uri' => '/res/c5181f5e/rsrc/image/loading/loading_d48.gif',
     'disk' => '/rsrc/image/loading/loading_d48.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/loading/loading_w24.gif' =>
   array(
     'hash' => '231857d68736e9bdda6bdbaaf924b8da',
     'uri' => '/res/231857d6/rsrc/image/loading/loading_w24.gif',
     'disk' => '/rsrc/image/loading/loading_w24.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/main_texture.png' =>
   array(
     'hash' => 'e34d8143384721be73ec9b7532a977ab',
     'uri' => '/res/e34d8143/rsrc/image/main_texture.png',
     'disk' => '/rsrc/image/main_texture.png',
     'type' => 'png',
   ),
   '/rsrc/image/menu_texture.png' =>
   array(
     'hash' => 'ad020b1529b3a3b3480ca9de1d5f1e40',
     'uri' => '/res/ad020b15/rsrc/image/menu_texture.png',
     'disk' => '/rsrc/image/menu_texture.png',
     'type' => 'png',
   ),
   '/rsrc/image/people/harding.png' =>
   array(
     'hash' => '818b035ace2c480aa8df7b7f11cef58b',
     'uri' => '/res/818b035a/rsrc/image/people/harding.png',
     'disk' => '/rsrc/image/people/harding.png',
     'type' => 'png',
   ),
   '/rsrc/image/people/jefferson.png' =>
   array(
     'hash' => '55fe807ff02f9320e595fb59442e2038',
     'uri' => '/res/55fe807f/rsrc/image/people/jefferson.png',
     'disk' => '/rsrc/image/people/jefferson.png',
     'type' => 'png',
   ),
   '/rsrc/image/people/lincoln.png' =>
   array(
     'hash' => '2363337947ab52fd5fda79e4a004e930',
     'uri' => '/res/23633379/rsrc/image/people/lincoln.png',
     'disk' => '/rsrc/image/people/lincoln.png',
     'type' => 'png',
   ),
   '/rsrc/image/people/mckinley.png' =>
   array(
     'hash' => '0b7b05dd47c49a0874670e5e8200bba8',
     'uri' => '/res/0b7b05dd/rsrc/image/people/mckinley.png',
     'disk' => '/rsrc/image/people/mckinley.png',
     'type' => 'png',
   ),
   '/rsrc/image/people/taft.png' =>
   array(
     'hash' => 'f3e47d45b59b0b009fd536dabae9a151',
     'uri' => '/res/f3e47d45/rsrc/image/people/taft.png',
     'disk' => '/rsrc/image/people/taft.png',
     'type' => 'png',
   ),
   '/rsrc/image/people/washington.png' =>
   array(
     'hash' => '01412761cab769f7993d69eba986d949',
     'uri' => '/res/01412761/rsrc/image/people/washington.png',
     'disk' => '/rsrc/image/people/washington.png',
     'type' => 'png',
   ),
   '/rsrc/image/phrequent_active.png' =>
   array(
     'hash' => '716cddc08630eaa33934b2008723cac0',
     'uri' => '/res/716cddc0/rsrc/image/phrequent_active.png',
     'disk' => '/rsrc/image/phrequent_active.png',
     'type' => 'png',
   ),
   '/rsrc/image/phrequent_inactive.png' =>
   array(
     'hash' => 'f9099683873c01c5de1dc6650bd668fe',
     'uri' => '/res/f9099683/rsrc/image/phrequent_inactive.png',
     'disk' => '/rsrc/image/phrequent_inactive.png',
     'type' => 'png',
   ),
   '/rsrc/image/search.png' =>
   array(
     'hash' => 'ff7da044e6f923b8f569dec11f97e5e5',
     'uri' => '/res/ff7da044/rsrc/image/search.png',
     'disk' => '/rsrc/image/search.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-actions-X2.png' =>
   array(
     'hash' => '06962a5e8bea98ba7418d1d6cabcd7dc',
     'uri' => '/res/06962a5e/rsrc/image/sprite-actions-X2.png',
     'disk' => '/rsrc/image/sprite-actions-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-actions.png' =>
   array(
     'hash' => 'd5dda5fab1e61b00538c9a4fa1ee94c8',
     'uri' => '/res/d5dda5fa/rsrc/image/sprite-actions.png',
     'disk' => '/rsrc/image/sprite-actions.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-X2.png' =>
   array(
     'hash' => 'd12f41da14b7f0b5a364a59a65fc67cd',
     'uri' => '/res/d12f41da/rsrc/image/sprite-apps-X2.png',
     'disk' => '/rsrc/image/sprite-apps-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-large-X2.png' =>
   array(
     'hash' => '0ad432a9b02c2a9228389e71c3f2b590',
     'uri' => '/res/0ad432a9/rsrc/image/sprite-apps-large-X2.png',
     'disk' => '/rsrc/image/sprite-apps-large-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-large.png' =>
   array(
     'hash' => 'a3addc473c11d6597a922a4c7d943357',
     'uri' => '/res/a3addc47/rsrc/image/sprite-apps-large.png',
     'disk' => '/rsrc/image/sprite-apps-large.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps-xlarge.png' =>
   array(
     'hash' => '992d2c278b6a22c0fa874d457a252fbd',
     'uri' => '/res/992d2c27/rsrc/image/sprite-apps-xlarge.png',
     'disk' => '/rsrc/image/sprite-apps-xlarge.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-apps.png' =>
   array(
     'hash' => 'c801a581ebbb0db851cd6623d7b8f175',
     'uri' => '/res/c801a581/rsrc/image/sprite-apps.png',
     'disk' => '/rsrc/image/sprite-apps.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-conpherence-X2.png' =>
   array(
     'hash' => '5e47868b00933a9afb6c844e464e6b23',
     'uri' => '/res/5e47868b/rsrc/image/sprite-conpherence-X2.png',
     'disk' => '/rsrc/image/sprite-conpherence-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-conpherence.png' =>
   array(
     'hash' => 'ca51f1be25213262d68e626e4cab7f0f',
     'uri' => '/res/ca51f1be/rsrc/image/sprite-conpherence.png',
     'disk' => '/rsrc/image/sprite-conpherence.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-docs-X2.png' =>
   array(
     'hash' => '57d3286ce88133f3ec9240e35f6bb897',
     'uri' => '/res/57d3286c/rsrc/image/sprite-docs-X2.png',
     'disk' => '/rsrc/image/sprite-docs-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-docs.png' =>
   array(
     'hash' => 'b2b089072d6eddd831402a77c02b5736',
     'uri' => '/res/b2b08907/rsrc/image/sprite-docs.png',
     'disk' => '/rsrc/image/sprite-docs.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-gradient.png' =>
   array(
     'hash' => 'c6c42387e625948e683d9d8c62ea1b7f',
     'uri' => '/res/c6c42387/rsrc/image/sprite-gradient.png',
     'disk' => '/rsrc/image/sprite-gradient.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-icons-X2.png' =>
   array(
     'hash' => '2448b7e60f80e12eee6b11e5c540f7ef',
     'uri' => '/res/2448b7e6/rsrc/image/sprite-icons-X2.png',
     'disk' => '/rsrc/image/sprite-icons-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-icons.png' =>
   array(
     'hash' => '7caf2f6bd649d3ef86b33a25e061bf1a',
     'uri' => '/res/7caf2f6b/rsrc/image/sprite-icons.png',
     'disk' => '/rsrc/image/sprite-icons.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-login-X2.png' =>
   array(
     'hash' => 'cd7eb19a0428c6be90c48cd2329a35fc',
     'uri' => '/res/cd7eb19a/rsrc/image/sprite-login-X2.png',
     'disk' => '/rsrc/image/sprite-login-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-login.png' =>
   array(
     'hash' => '788be2fd8e1f80b9faec9f5cf4bd5f4b',
     'uri' => '/res/788be2fd/rsrc/image/sprite-login.png',
     'disk' => '/rsrc/image/sprite-login.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-menu-X2.png' =>
   array(
     'hash' => '63b649a6ccba7bf76bc9456dc5dfb12b',
     'uri' => '/res/63b649a6/rsrc/image/sprite-menu-X2.png',
     'disk' => '/rsrc/image/sprite-menu-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-menu.png' =>
   array(
     'hash' => 'e0e16618691d2cffe64e9c57843828ff',
     'uri' => '/res/e0e16618/rsrc/image/sprite-menu.png',
     'disk' => '/rsrc/image/sprite-menu.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-minicons-X2.png' =>
   array(
     'hash' => 'c420c6462f7e50ca9941ccc5dd9e3dec',
     'uri' => '/res/c420c646/rsrc/image/sprite-minicons-X2.png',
     'disk' => '/rsrc/image/sprite-minicons-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-minicons.png' =>
   array(
     'hash' => '168bb875933624b3080a1cc134e5b4ed',
     'uri' => '/res/168bb875/rsrc/image/sprite-minicons.png',
     'disk' => '/rsrc/image/sprite-minicons.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-payments.png' =>
   array(
     'hash' => '5ce73fb580609e7cda16832e3577b147',
     'uri' => '/res/5ce73fb5/rsrc/image/sprite-payments.png',
     'disk' => '/rsrc/image/sprite-payments.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-status-X2.png' =>
   array(
     'hash' => '6b9a56e989052bfb7139d637918cd227',
     'uri' => '/res/6b9a56e9/rsrc/image/sprite-status-X2.png',
     'disk' => '/rsrc/image/sprite-status-X2.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-status.png' =>
   array(
     'hash' => 'b0a100328351732903d86185b001f057',
     'uri' => '/res/b0a10032/rsrc/image/sprite-status.png',
     'disk' => '/rsrc/image/sprite-status.png',
     'type' => 'png',
   ),
   '/rsrc/image/sprite-tokens.png' =>
   array(
     'hash' => '67c46fd75c885b76ecbfe46e71a476cc',
     'uri' => '/res/67c46fd7/rsrc/image/sprite-tokens.png',
     'disk' => '/rsrc/image/sprite-tokens.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/card-gradient.png' =>
   array(
     'hash' => '268b7fdd758d4bf99db8de6770aae8af',
     'uri' => '/res/268b7fdd/rsrc/image/texture/card-gradient.png',
     'disk' => '/rsrc/image/texture/card-gradient.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/dark-menu-hover.png' =>
   array(
     'hash' => 'a214a732644be34872e895b338b5d639',
     'uri' => '/res/a214a732/rsrc/image/texture/dark-menu-hover.png',
     'disk' => '/rsrc/image/texture/dark-menu-hover.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/dark-menu.png' =>
   array(
     'hash' => '41ee673a762cec48a154b456ad5ac204',
     'uri' => '/res/41ee673a/rsrc/image/texture/dark-menu.png',
     'disk' => '/rsrc/image/texture/dark-menu.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/grip.png' =>
   array(
     'hash' => 'f11bc231d241f1335cfca2933ad234e0',
     'uri' => '/res/f11bc231/rsrc/image/texture/grip.png',
     'disk' => '/rsrc/image/texture/grip.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/panel-header-gradient.png' =>
   array(
     'hash' => 'ad9204dd3ef5b12b645d80677d8ccead',
     'uri' => '/res/ad9204dd/rsrc/image/texture/panel-header-gradient.png',
     'disk' => '/rsrc/image/texture/panel-header-gradient.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/phlnx-bg.png' =>
   array(
     'hash' => 'a55a694da8b3874ca7a3105b7818f3a0',
     'uri' => '/res/a55a694d/rsrc/image/texture/phlnx-bg.png',
     'disk' => '/rsrc/image/texture/phlnx-bg.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/pholio-background.gif' =>
   array(
     'hash' => 'cf4561af116edf393dc583e5119fb412',
     'uri' => '/res/cf4561af/rsrc/image/texture/pholio-background.gif',
     'disk' => '/rsrc/image/texture/pholio-background.gif',
     'type' => 'gif',
   ),
   '/rsrc/image/texture/table_header.png' =>
   array(
     'hash' => '4ed3f56a30d3749e8f62052b9735a316',
     'uri' => '/res/4ed3f56a/rsrc/image/texture/table_header.png',
     'disk' => '/rsrc/image/texture/table_header.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/table_header_hover.png' =>
   array(
     'hash' => 'ea1f71a604e9b4859de1e25751540437',
     'uri' => '/res/ea1f71a6/rsrc/image/texture/table_header_hover.png',
     'disk' => '/rsrc/image/texture/table_header_hover.png',
     'type' => 'png',
   ),
   '/rsrc/image/texture/table_header_tall.png' =>
   array(
     'hash' => 'b05525601f78d759f1c5e47fd9c1a8aa',
     'uri' => '/res/b0552560/rsrc/image/texture/table_header_tall.png',
     'disk' => '/rsrc/image/texture/table_header_tall.png',
     'type' => 'png',
   ),
   '/rsrc/swf/aphlict.swf' =>
   array(
     'hash' => '4b9a9d83bebaf254f3790e87b45c1f92',
     'uri' => '/res/4b9a9d83/rsrc/swf/aphlict.swf',
     'disk' => '/rsrc/swf/aphlict.swf',
     'type' => 'swf',
   ),
   'aphront-bars' =>
   array(
     'uri' => '/res/95a907d6/rsrc/css/aphront/aphront-bars.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/aphront-bars.css',
   ),
   'aphront-calendar-view-css' =>
   array(
     'uri' => '/res/ae6f5b54/rsrc/css/aphront/calendar-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/calendar-view.css',
   ),
   'aphront-contextbar-view-css' =>
   array(
     'uri' => '/res/ecfd5ba9/rsrc/css/aphront/context-bar.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/context-bar.css',
   ),
   'aphront-dark-console-css' =>
   array(
     'uri' => '/res/0d316573/rsrc/css/aphront/dark-console.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/dark-console.css',
   ),
   'aphront-dialog-view-css' =>
   array(
     'uri' => '/res/c7a7e179/rsrc/css/aphront/dialog-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/dialog-view.css',
   ),
   'aphront-error-view-css' =>
   array(
     'uri' => '/res/4ba306a0/rsrc/css/aphront/error-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/error-view.css',
   ),
   'aphront-list-filter-view-css' =>
   array(
     'uri' => '/res/9fd0aae6/rsrc/css/aphront/list-filter-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/list-filter-view.css',
   ),
   'aphront-multi-column-view-css' =>
   array(
     'uri' => '/res/f7f25fb7/rsrc/css/aphront/multi-column.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/multi-column.css',
   ),
   'aphront-notes' =>
   array(
     'uri' => '/res/5b8ebfa0/rsrc/css/aphront/aphront-notes.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/aphront-notes.css',
   ),
   'aphront-pager-view-css' =>
   array(
     'uri' => '/res/43fb79f0/rsrc/css/aphront/pager-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/pager-view.css',
   ),
   'aphront-panel-view-css' =>
   array(
     'uri' => '/res/e19deae5/rsrc/css/aphront/panel-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/panel-view.css',
   ),
   'aphront-request-failure-view-css' =>
   array(
     'uri' => '/res/c9a43002/rsrc/css/aphront/request-failure-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/request-failure-view.css',
   ),
   'aphront-table-view-css' =>
   array(
     'uri' => '/res/be5ca6be/rsrc/css/aphront/table-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/table-view.css',
   ),
   'aphront-tokenizer-control-css' =>
   array(
     'uri' => '/res/793c5f36/rsrc/css/aphront/tokenizer.css',
     'type' => 'css',
     'requires' =>
     array(
       0 => 'aphront-typeahead-control-css',
     ),
     'disk' => '/rsrc/css/aphront/tokenizer.css',
   ),
   'aphront-tooltip-css' =>
   array(
     'uri' => '/res/3a7d8e07/rsrc/css/aphront/tooltip.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/tooltip.css',
   ),
   'aphront-two-column-view-css' =>
   array(
     'uri' => '/res/4263aa98/rsrc/css/aphront/two-column.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/two-column.css',
   ),
   'aphront-typeahead-control-css' =>
   array(
     'uri' => '/res/e4a4cd4b/rsrc/css/aphront/typeahead.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/typeahead.css',
   ),
   'auth-css' =>
   array(
     'uri' => '/res/751cacaa/rsrc/css/application/auth/auth.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/auth/auth.css',
   ),
   'config-options-css' =>
   array(
     'uri' => '/res/be77d5a6/rsrc/css/application/config/config-options.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/config/config-options.css',
   ),
   'conpherence-menu-css' =>
   array(
     'uri' => '/res/cae40b18/rsrc/css/application/conpherence/menu.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/conpherence/menu.css',
   ),
   'conpherence-message-pane-css' =>
   array(
     'uri' => '/res/4f3bfae5/rsrc/css/application/conpherence/message-pane.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/conpherence/message-pane.css',
   ),
   'conpherence-notification-css' =>
   array(
     'uri' => '/res/232c8cdb/rsrc/css/application/conpherence/notification.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/conpherence/notification.css',
   ),
   'conpherence-update-css' =>
   array(
     'uri' => '/res/92094ed7/rsrc/css/application/conpherence/update.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/conpherence/update.css',
   ),
   'conpherence-widget-pane-css' =>
   array(
     'uri' => '/res/ee9d5004/rsrc/css/application/conpherence/widget-pane.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/conpherence/widget-pane.css',
   ),
   'differential-changeset-view-css' =>
   array(
     'uri' => '/res/b8e183f8/rsrc/css/application/differential/changeset-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/changeset-view.css',
   ),
   'differential-core-view-css' =>
   array(
     'uri' => '/res/85fe5117/rsrc/css/application/differential/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/core.css',
   ),
   'differential-inline-comment-editor' =>
   array(
     'uri' => '/res/37e0564f/rsrc/js/application/differential/DifferentialInlineCommentEditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-install',
       4 => 'javelin-request',
       5 => 'javelin-workflow',
     ),
     'disk' => '/rsrc/js/application/differential/DifferentialInlineCommentEditor.js',
   ),
   'differential-local-commits-view-css' =>
   array(
     'uri' => '/res/224f3703/rsrc/css/application/differential/local-commits-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/local-commits-view.css',
   ),
   'differential-results-table-css' =>
   array(
     'uri' => '/res/aab3123c/rsrc/css/application/differential/results-table.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/results-table.css',
   ),
   'differential-revision-add-comment-css' =>
   array(
     'uri' => '/res/849748d3/rsrc/css/application/differential/add-comment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/add-comment.css',
   ),
   'differential-revision-comment-css' =>
   array(
     'uri' => '/res/42c222f4/rsrc/css/application/differential/revision-comment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-comment.css',
   ),
   'differential-revision-comment-list-css' =>
   array(
     'uri' => '/res/3b31faa3/rsrc/css/application/differential/revision-comment-list.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-comment-list.css',
   ),
   'differential-revision-history-css' =>
   array(
     'uri' => '/res/d41bc64c/rsrc/css/application/differential/revision-history.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-history.css',
   ),
   'differential-revision-list-css' =>
   array(
     'uri' => '/res/fe6c4721/rsrc/css/application/differential/revision-list.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-list.css',
   ),
   'differential-table-of-contents-css' =>
   array(
     'uri' => '/res/4fde8bfc/rsrc/css/application/differential/table-of-contents.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/table-of-contents.css',
   ),
   'diffusion-commit-view-css' =>
   array(
     'uri' => '/res/b445944e/rsrc/css/application/diffusion/commit-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diffusion/commit-view.css',
   ),
   'diffusion-icons-css' =>
   array(
     'uri' => '/res/b93e32c9/rsrc/css/application/diffusion/diffusion-icons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diffusion/diffusion-icons.css',
   ),
   'diffusion-source-css' =>
   array(
-    'uri' => '/res/162c8794/rsrc/css/application/diffusion/diffusion-source.css',
+    'uri' => '/res/dcf60c4f/rsrc/css/application/diffusion/diffusion-source.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diffusion/diffusion-source.css',
   ),
   'global-drag-and-drop-css' =>
   array(
     'uri' => '/res/4e24cb65/rsrc/css/application/files/global-drag-and-drop.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/files/global-drag-and-drop.css',
   ),
   'herald-css' =>
   array(
     'uri' => '/res/2150a55d/rsrc/css/application/herald/herald.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/herald/herald.css',
   ),
   'herald-rule-editor' =>
   array(
     'uri' => '/res/f8ee0e9c/rsrc/js/application/herald/HeraldRuleEditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'multirow-row-manager',
       1 => 'javelin-install',
       2 => 'javelin-typeahead',
       3 => 'javelin-util',
       4 => 'javelin-dom',
       5 => 'javelin-tokenizer',
       6 => 'javelin-typeahead-preloaded-source',
       7 => 'javelin-stratcom',
       8 => 'javelin-json',
       9 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/herald/HeraldRuleEditor.js',
   ),
   'herald-test-css' =>
   array(
     'uri' => '/res/c0cd6bdb/rsrc/css/application/herald/herald-test.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/herald/herald-test.css',
   ),
   'inline-comment-summary-css' =>
   array(
     'uri' => '/res/338704f7/rsrc/css/application/diff/inline-comment-summary.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/diff/inline-comment-summary.css',
   ),
   'javelin-aphlict' =>
   array(
     'uri' => '/res/c0b9e53f/rsrc/js/application/aphlict/Aphlict.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/aphlict/Aphlict.js',
   ),
   'javelin-behavior' =>
   array(
     'uri' => '/res/15482715/rsrc/externals/javelin/lib/behavior.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-magical-init',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/lib/behavior.js',
   ),
   'javelin-behavior-aphlict-dropdown' =>
   array(
     'uri' => '/res/3ff0c90a/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-request',
       2 => 'javelin-stratcom',
       3 => 'javelin-vector',
       4 => 'javelin-dom',
       5 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
   ),
   'javelin-behavior-aphlict-listen' =>
   array(
     'uri' => '/res/7487f207/rsrc/js/application/aphlict/behavior-aphlict-listen.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-aphlict',
       2 => 'javelin-stratcom',
       3 => 'javelin-request',
       4 => 'javelin-uri',
       5 => 'javelin-dom',
       6 => 'javelin-json',
       7 => 'phabricator-notification',
     ),
     'disk' => '/rsrc/js/application/aphlict/behavior-aphlict-listen.js',
   ),
   'javelin-behavior-aphront-basic-tokenizer' =>
   array(
     'uri' => '/res/c7fd9a7b/rsrc/js/core/behavior-tokenizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/core/behavior-tokenizer.js',
   ),
   'javelin-behavior-aphront-crop' =>
   array(
     'uri' => '/res/8c800f36/rsrc/js/core/behavior-crop.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-vector',
       3 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/core/behavior-crop.js',
   ),
   'javelin-behavior-aphront-drag-and-drop-textarea' =>
   array(
     'uri' => '/res/a261f6e6/rsrc/js/core/behavior-drag-and-drop-textarea.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phabricator-drag-and-drop-file-upload',
       3 => 'phabricator-textareautils',
     ),
     'disk' => '/rsrc/js/core/behavior-drag-and-drop-textarea.js',
   ),
   'javelin-behavior-aphront-form-disable-on-submit' =>
   array(
     'uri' => '/res/a4a4ff07/rsrc/js/core/behavior-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-form.js',
   ),
   'javelin-behavior-aphront-more' =>
   array(
     'uri' => '/res/fae13324/rsrc/js/core/behavior-more.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-more.js',
   ),
   'javelin-behavior-audit-preview' =>
   array(
     'uri' => '/res/d8f31e46/rsrc/js/application/diffusion/behavior-audit-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-audit-preview.js',
   ),
   'javelin-behavior-balanced-payment-form' =>
   array(
     'uri' => '/res/6876492d/rsrc/js/application/phortune/behavior-balanced-payment-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phortune-credit-card-form',
     ),
     'disk' => '/rsrc/js/application/phortune/behavior-balanced-payment-form.js',
   ),
   'javelin-behavior-config-reorder-fields' =>
   array(
     'uri' => '/res/691c5c8c/rsrc/js/application/config/behavior-reorder-fields.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-json',
       4 => 'phabricator-draggable-list',
     ),
     'disk' => '/rsrc/js/application/config/behavior-reorder-fields.js',
   ),
   'javelin-behavior-conpherence-menu' =>
   array(
     'uri' => '/res/f27205d4/rsrc/js/application/conpherence/behavior-menu.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-stratcom',
       4 => 'javelin-workflow',
       5 => 'javelin-behavior-device',
       6 => 'javelin-history',
       7 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/conpherence/behavior-menu.js',
   ),
   'javelin-behavior-conpherence-pontificate' =>
   array(
     'uri' => '/res/19cb581b/rsrc/js/application/conpherence/behavior-pontificate.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-workflow',
       4 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/conpherence/behavior-pontificate.js',
   ),
   'javelin-behavior-conpherence-widget-pane' =>
   array(
     'uri' => '/res/562ca20e/rsrc/js/application/conpherence/behavior-widget-pane.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-workflow',
       4 => 'javelin-util',
       5 => 'phabricator-notification',
       6 => 'javelin-behavior-device',
       7 => 'phabricator-dropdown-menu',
       8 => 'phabricator-menu-item',
     ),
     'disk' => '/rsrc/js/application/conpherence/behavior-widget-pane.js',
   ),
   'javelin-behavior-countdown-timer' =>
   array(
     'uri' => '/res/13d40efa/rsrc/js/application/countdown/timer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/countdown/timer.js',
   ),
   'javelin-behavior-dark-console' =>
   array(
     'uri' => '/res/1e2c7a5e/rsrc/js/core/behavior-dark-console.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-request',
       5 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/core/behavior-dark-console.js',
   ),
   'javelin-behavior-device' =>
   array(
     'uri' => '/res/12e43f5a/rsrc/js/core/behavior-device.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/core/behavior-device.js',
   ),
   'javelin-behavior-differential-accept-with-errors' =>
   array(
     'uri' => '/res/8fea67b3/rsrc/js/application/differential/behavior-accept-with-errors.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-accept-with-errors.js',
   ),
   'javelin-behavior-differential-add-reviewers-and-ccs' =>
   array(
     'uri' => '/res/fd9f2c1c/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js',
   ),
   'javelin-behavior-differential-comment-jump' =>
   array(
     'uri' => '/res/8ffb4222/rsrc/js/application/differential/behavior-comment-jump.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-comment-jump.js',
   ),
   'javelin-behavior-differential-diff-radios' =>
   array(
     'uri' => '/res/004cb66f/rsrc/js/application/differential/behavior-diff-radios.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-diff-radios.js',
   ),
   'javelin-behavior-differential-dropdown-menus' =>
   array(
     'uri' => '/res/722c679c/rsrc/js/application/differential/behavior-dropdown-menus.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-stratcom',
       4 => 'phabricator-dropdown-menu',
       5 => 'phabricator-menu-item',
       6 => 'phabricator-phtize',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-dropdown-menus.js',
   ),
   'javelin-behavior-differential-edit-inline-comments' =>
   array(
     'uri' => '/res/86f459a4/rsrc/js/application/differential/behavior-edit-inline-comments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-util',
       4 => 'javelin-vector',
       5 => 'differential-inline-comment-editor',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-edit-inline-comments.js',
   ),
   'javelin-behavior-differential-feedback-preview' =>
   array(
     'uri' => '/res/4421fac6/rsrc/js/application/differential/behavior-comment-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-request',
       4 => 'javelin-util',
       5 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-comment-preview.js',
   ),
   'javelin-behavior-differential-keyboard-navigation' =>
   array(
     'uri' => '/res/22ed93ba/rsrc/js/application/differential/behavior-keyboard-nav.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-keyboard-nav.js',
   ),
   'javelin-behavior-differential-populate' =>
   array(
     'uri' => '/res/bb9a29f4/rsrc/js/application/differential/behavior-populate.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-workflow',
       2 => 'javelin-util',
       3 => 'javelin-dom',
       4 => 'javelin-stratcom',
       5 => 'javelin-behavior-device',
       6 => 'javelin-vector',
       7 => 'phabricator-tooltip',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-populate.js',
   ),
   'javelin-behavior-differential-show-all-comments' =>
   array(
     'uri' => '/res/8801848d/rsrc/js/application/differential/behavior-show-all-comments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-all-comments.js',
   ),
   'javelin-behavior-differential-show-field-details' =>
   array(
     'uri' => '/res/8d57f459/rsrc/js/application/differential/behavior-show-field-details.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-field-details.js',
   ),
   'javelin-behavior-differential-show-more' =>
   array(
     'uri' => '/res/b9f93090/rsrc/js/application/differential/behavior-show-more.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-workflow',
       3 => 'javelin-util',
       4 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-more.js',
   ),
   'javelin-behavior-differential-toggle-files' =>
   array(
     'uri' => '/res/beb89813/rsrc/js/application/differential/behavior-toggle-files.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'phabricator-phtize',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-toggle-files.js',
   ),
   'javelin-behavior-differential-user-select' =>
   array(
     'uri' => '/res/23c51a5d/rsrc/js/application/differential/behavior-user-select.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-user-select.js',
   ),
   'javelin-behavior-diffusion-commit-branches' =>
   array(
     'uri' => '/res/1ede335a/rsrc/js/application/diffusion/behavior-commit-branches.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-commit-branches.js',
   ),
   'javelin-behavior-diffusion-commit-graph' =>
   array(
     'uri' => '/res/536b8483/rsrc/js/application/diffusion/behavior-commit-graph.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-commit-graph.js',
   ),
   'javelin-behavior-diffusion-jump-to' =>
   array(
     'uri' => '/res/bade44bd/rsrc/js/application/diffusion/behavior-jump-to.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-vector',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-jump-to.js',
   ),
   'javelin-behavior-diffusion-pull-lastmodified' =>
   array(
     'uri' => '/res/29fe2790/rsrc/js/application/diffusion/behavior-pull-lastmodified.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-pull-lastmodified.js',
   ),
   'javelin-behavior-doorkeeper-tag' =>
   array(
     'uri' => '/res/59480572/rsrc/js/application/doorkeeper/behavior-doorkeeper-tag.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-json',
       3 => 'javelin-workflow',
       4 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/application/doorkeeper/behavior-doorkeeper-tag.js',
   ),
   'javelin-behavior-error-log' =>
   array(
     'uri' => '/res/acefdea7/rsrc/js/core/behavior-error-log.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-error-log.js',
   ),
   'javelin-behavior-fancy-datepicker' =>
   array(
     'uri' => '/res/dcd7c2ca/rsrc/js/core/behavior-fancy-datepicker.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-stratcom',
       4 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/core/behavior-fancy-datepicker.js',
   ),
   'javelin-behavior-global-drag-and-drop' =>
   array(
     'uri' => '/res/ee8e9c39/rsrc/js/core/behavior-global-drag-and-drop.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-uri',
       3 => 'javelin-mask',
       4 => 'phabricator-drag-and-drop-file-upload',
     ),
     'disk' => '/rsrc/js/core/behavior-global-drag-and-drop.js',
   ),
   'javelin-behavior-herald-rule-editor' =>
   array(
     'uri' => '/res/77a0c945/rsrc/js/application/herald/herald-rule-editor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'herald-rule-editor',
       1 => 'javelin-behavior',
     ),
     'disk' => '/rsrc/js/application/herald/herald-rule-editor.js',
   ),
   'javelin-behavior-history-install' =>
   array(
     'uri' => '/res/9099a161/rsrc/js/core/behavior-history-install.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-history',
     ),
     'disk' => '/rsrc/js/core/behavior-history-install.js',
   ),
   'javelin-behavior-konami' =>
   array(
     'uri' => '/res/b7bb7c24/rsrc/js/core/behavior-konami.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/core/behavior-konami.js',
   ),
   'javelin-behavior-lightbox-attachments' =>
   array(
     'uri' => '/res/72b4d3a8/rsrc/js/core/behavior-lightbox-attachments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-mask',
       4 => 'javelin-util',
       5 => 'phabricator-busy',
     ),
     'disk' => '/rsrc/js/core/behavior-lightbox-attachments.js',
   ),
   'javelin-behavior-line-chart' =>
   array(
     'uri' => '/res/1aa5ac88/rsrc/js/application/maniphest/behavior-line-chart.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-line-chart.js',
   ),
   'javelin-behavior-load-blame' =>
   array(
     'uri' => '/res/138e2961/rsrc/js/application/diffusion/behavior-load-blame.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/diffusion/behavior-load-blame.js',
   ),
   'javelin-behavior-maniphest-batch-editor' =>
   array(
     'uri' => '/res/81b2b86f/rsrc/js/application/maniphest/behavior-batch-editor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-prefab',
       4 => 'multirow-row-manager',
       5 => 'javelin-json',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-batch-editor.js',
   ),
   'javelin-behavior-maniphest-batch-selector' =>
   array(
     'uri' => '/res/c33cb5e3/rsrc/js/application/maniphest/behavior-batch-selector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-batch-selector.js',
   ),
   'javelin-behavior-maniphest-list-editor' =>
   array(
     'uri' => '/res/a251e72f/rsrc/js/application/maniphest/behavior-list-edit.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-workflow',
       4 => 'javelin-fx',
       5 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-list-edit.js',
   ),
   'javelin-behavior-maniphest-subpriority-editor' =>
   array(
     'uri' => '/res/99d84c61/rsrc/js/application/maniphest/behavior-subpriorityeditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-workflow',
       4 => 'phabricator-draggable-list',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-subpriorityeditor.js',
   ),
   'javelin-behavior-maniphest-transaction-controls' =>
   array(
     'uri' => '/res/e8498688/rsrc/js/application/maniphest/behavior-transaction-controls.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-controls.js',
   ),
   'javelin-behavior-maniphest-transaction-expand' =>
   array(
     'uri' => '/res/966410de/rsrc/js/application/maniphest/behavior-transaction-expand.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-workflow',
       3 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-expand.js',
   ),
   'javelin-behavior-maniphest-transaction-preview' =>
   array(
     'uri' => '/res/9447a3f9/rsrc/js/application/maniphest/behavior-transaction-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-json',
       4 => 'javelin-stratcom',
       5 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-preview.js',
   ),
   'javelin-behavior-owners-path-editor' =>
   array(
     'uri' => '/res/9cf78ffc/rsrc/js/application/owners/owners-path-editor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'owners-path-editor',
       1 => 'javelin-behavior',
     ),
     'disk' => '/rsrc/js/application/owners/owners-path-editor.js',
   ),
   'javelin-behavior-phabricator-active-nav' =>
   array(
     'uri' => '/res/9c8d3df8/rsrc/js/core/behavior-active-nav.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-vector',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/core/behavior-active-nav.js',
   ),
   'javelin-behavior-phabricator-autofocus' =>
   array(
     'uri' => '/res/bf92b8d6/rsrc/js/core/behavior-autofocus.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-autofocus.js',
   ),
   'javelin-behavior-phabricator-busy-example' =>
   array(
     'uri' => '/res/dbe12f2f/rsrc/js/application/uiexample/busy-example.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'phabricator-busy',
       1 => 'javelin-behavior',
     ),
     'disk' => '/rsrc/js/application/uiexample/busy-example.js',
   ),
   'javelin-behavior-phabricator-file-tree' =>
   array(
     'uri' => '/res/e5bf93df/rsrc/js/core/behavior-file-tree.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'phabricator-keyboard-shortcut',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/core/behavior-file-tree.js',
   ),
   'javelin-behavior-phabricator-gesture' =>
   array(
     'uri' => '/res/16e1e77c/rsrc/js/core/behavior-gesture.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-behavior-device',
       2 => 'javelin-stratcom',
       3 => 'javelin-vector',
       4 => 'javelin-dom',
       5 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/core/behavior-gesture.js',
   ),
   'javelin-behavior-phabricator-gesture-example' =>
   array(
     'uri' => '/res/91d1e7f2/rsrc/js/application/uiexample/gesture-example.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-stratcom',
       1 => 'javelin-behavior',
       2 => 'javelin-vector',
       3 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/gesture-example.js',
   ),
   'javelin-behavior-phabricator-hovercards' =>
   array(
     'uri' => '/res/4fe6b436/rsrc/js/core/behavior-hovercard.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-behavior-device',
       2 => 'javelin-stratcom',
       3 => 'javelin-vector',
       4 => 'phabricator-hovercard',
     ),
     'disk' => '/rsrc/js/core/behavior-hovercard.js',
   ),
   'javelin-behavior-phabricator-keyboard-pager' =>
   array(
     'uri' => '/res/6a5445b8/rsrc/js/core/behavior-keyboard-pager.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-uri',
       2 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/core/behavior-keyboard-pager.js',
   ),
   'javelin-behavior-phabricator-keyboard-shortcuts' =>
   array(
     'uri' => '/res/b971e713/rsrc/js/core/behavior-keyboard-shortcuts.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-workflow',
       2 => 'javelin-json',
       3 => 'javelin-dom',
       4 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/core/behavior-keyboard-shortcuts.js',
   ),
   'javelin-behavior-phabricator-line-linker' =>
   array(
     'uri' => '/res/1cefdb6a/rsrc/js/core/behavior-line-linker.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-history',
     ),
     'disk' => '/rsrc/js/core/behavior-line-linker.js',
   ),
   'javelin-behavior-phabricator-nav' =>
   array(
     'uri' => '/res/afabcf16/rsrc/js/core/behavior-phabricator-nav.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-behavior-device',
       2 => 'javelin-stratcom',
       3 => 'javelin-dom',
       4 => 'javelin-magical-init',
       5 => 'javelin-vector',
       6 => 'javelin-request',
       7 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/core/behavior-phabricator-nav.js',
   ),
   'javelin-behavior-phabricator-notification-example' =>
   array(
     'uri' => '/res/7c50cefd/rsrc/js/application/uiexample/notification-example.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'phabricator-notification',
       1 => 'javelin-stratcom',
       2 => 'javelin-behavior',
     ),
     'disk' => '/rsrc/js/application/uiexample/notification-example.js',
   ),
   'javelin-behavior-phabricator-object-selector' =>
   array(
     'uri' => '/res/461f95f7/rsrc/js/core/behavior-object-selector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-request',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/core/behavior-object-selector.js',
   ),
   'javelin-behavior-phabricator-oncopy' =>
   array(
     'uri' => '/res/cd3a9345/rsrc/js/core/behavior-oncopy.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-oncopy.js',
   ),
   'javelin-behavior-phabricator-remarkup-assist' =>
   array(
     'uri' => '/res/6d254602/rsrc/js/core/behavior-phabricator-remarkup-assist.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'phabricator-textareautils',
       4 => 'javelin-workflow',
       5 => 'phabricator-notification',
       6 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/core/behavior-phabricator-remarkup-assist.js',
   ),
   'javelin-behavior-phabricator-reveal-content' =>
   array(
     'uri' => '/res/fef525ef/rsrc/js/core/behavior-reveal-content.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-reveal-content.js',
   ),
   'javelin-behavior-phabricator-search-typeahead' =>
   array(
     'uri' => '/res/409d9567/rsrc/js/core/behavior-search-typeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-typeahead-ondemand-source',
       2 => 'javelin-typeahead',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
       5 => 'javelin-util',
       6 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/js/core/behavior-search-typeahead.js',
   ),
   'javelin-behavior-phabricator-tooltips' =>
   array(
     'uri' => '/res/a0ac5320/rsrc/js/core/behavior-tooltip.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-behavior-device',
       2 => 'javelin-stratcom',
       3 => 'phabricator-tooltip',
     ),
     'disk' => '/rsrc/js/core/behavior-tooltip.js',
   ),
   'javelin-behavior-phabricator-transaction-comment-form' =>
   array(
     'uri' => '/res/3c8d3c10/rsrc/js/application/transactions/behavior-transaction-comment-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-fx',
       4 => 'javelin-request',
       5 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/transactions/behavior-transaction-comment-form.js',
   ),
   'javelin-behavior-phabricator-transaction-list' =>
   array(
     'uri' => '/res/f05b3c6b/rsrc/js/application/transactions/behavior-transaction-list.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-workflow',
       3 => 'javelin-dom',
       4 => 'javelin-fx',
     ),
     'disk' => '/rsrc/js/application/transactions/behavior-transaction-list.js',
   ),
   'javelin-behavior-phabricator-watch-anchor' =>
   array(
     'uri' => '/res/69a90817/rsrc/js/core/behavior-watch-anchor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/core/behavior-watch-anchor.js',
   ),
   'javelin-behavior-phame-post-preview' =>
   array(
     'uri' => '/res/181d1cbe/rsrc/js/application/phame/phame-post-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/application/phame/phame-post-preview.js',
   ),
   'javelin-behavior-pholio-mock-edit' =>
   array(
     'uri' => '/res/1fd14497/rsrc/js/application/pholio/behavior-pholio-mock-edit.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-workflow',
       4 => 'phabricator-phtize',
       5 => 'phabricator-drag-and-drop-file-upload',
       6 => 'phabricator-draggable-list',
     ),
     'disk' => '/rsrc/js/application/pholio/behavior-pholio-mock-edit.js',
   ),
   'javelin-behavior-pholio-mock-view' =>
   array(
     'uri' => '/res/f9588dcf/rsrc/js/application/pholio/behavior-pholio-mock-view.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-dom',
       4 => 'javelin-vector',
       5 => 'javelin-magical-init',
       6 => 'javelin-request',
       7 => 'javelin-history',
       8 => 'javelin-workflow',
       9 => 'javelin-mask',
       10 => 'javelin-behavior-device',
       11 => 'phabricator-keyboard-shortcut',
     ),
     'disk' => '/rsrc/js/application/pholio/behavior-pholio-mock-view.js',
   ),
   'javelin-behavior-ponder-votebox' =>
   array(
     'uri' => '/res/c28daa12/rsrc/js/application/ponder/behavior-votebox.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-stratcom',
       4 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/ponder/behavior-votebox.js',
   ),
   'javelin-behavior-project-create' =>
   array(
     'uri' => '/res/e91f3f8f/rsrc/js/application/projects/behavior-project-create.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-workflow',
     ),
     'disk' => '/rsrc/js/application/projects/behavior-project-create.js',
   ),
   'javelin-behavior-refresh-csrf' =>
   array(
     'uri' => '/res/6c54100f/rsrc/js/core/behavior-refresh-csrf.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-request',
       1 => 'javelin-behavior',
       2 => 'javelin-dom',
       3 => 'phabricator-busy',
     ),
     'disk' => '/rsrc/js/core/behavior-refresh-csrf.js',
   ),
   'javelin-behavior-releeph-preview-branch' =>
   array(
     'uri' => '/res/f694854d/rsrc/js/application/releeph/releeph-preview-branch.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-uri',
       3 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/application/releeph/releeph-preview-branch.js',
   ),
   'javelin-behavior-releeph-request-state-change' =>
   array(
     'uri' => '/res/07ecde0c/rsrc/js/application/releeph/releeph-request-state-change.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-request',
       4 => 'phabricator-keyboard-shortcut',
       5 => 'phabricator-notification',
     ),
     'disk' => '/rsrc/js/application/releeph/releeph-request-state-change.js',
   ),
   'javelin-behavior-releeph-request-typeahead' =>
   array(
     'uri' => '/res/2c2350a0/rsrc/js/application/releeph/releeph-request-typeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-typeahead',
       3 => 'javelin-typeahead-ondemand-source',
       4 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/releeph/releeph-request-typeahead.js',
   ),
   'javelin-behavior-remarkup-preview' =>
   array(
     'uri' => '/res/6ec98508/rsrc/js/core/behavior-remarkup-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'phabricator-shaped-request',
     ),
     'disk' => '/rsrc/js/core/behavior-remarkup-preview.js',
   ),
   'javelin-behavior-repository-crossreference' =>
   array(
     'uri' => '/res/d3f9d50b/rsrc/js/application/repository/repository-crossreference.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/application/repository/repository-crossreference.js',
   ),
   'javelin-behavior-search-reorder-queries' =>
   array(
     'uri' => '/res/9864b481/rsrc/js/application/search/behavior-reorder-queries.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-workflow',
       3 => 'javelin-dom',
       4 => 'phabricator-draggable-list',
     ),
     'disk' => '/rsrc/js/application/search/behavior-reorder-queries.js',
   ),
   'javelin-behavior-slowvote-embed' =>
   array(
     'uri' => '/res/8e85e20d/rsrc/js/application/slowvote/behavior-slowvote-embed.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-request',
       2 => 'javelin-stratcom',
       3 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/application/slowvote/behavior-slowvote-embed.js',
   ),
   'javelin-behavior-stripe-payment-form' =>
   array(
     'uri' => '/res/c1a12d77/rsrc/js/application/phortune/behavior-stripe-payment-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phortune-credit-card-form',
     ),
     'disk' => '/rsrc/js/application/phortune/behavior-stripe-payment-form.js',
   ),
   'javelin-behavior-test-payment-form' =>
   array(
     'uri' => '/res/a8fe8616/rsrc/js/application/phortune/behavior-test-payment-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'phortune-credit-card-form',
     ),
     'disk' => '/rsrc/js/application/phortune/behavior-test-payment-form.js',
   ),
   'javelin-behavior-toggle-class' =>
   array(
     'uri' => '/res/79921b7f/rsrc/js/core/behavior-toggle-class.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-toggle-class.js',
   ),
   'javelin-behavior-view-placeholder' =>
   array(
     'uri' => '/res/6abdb85b/rsrc/externals/javelin/ext/view/ViewPlaceholder.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-dom',
       2 => 'javelin-view-renderer',
       3 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/ext/view/ViewPlaceholder.js',
   ),
   'javelin-behavior-workflow' =>
   array(
     'uri' => '/res/4a0595c1/rsrc/js/core/behavior-workflow.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-behavior',
       1 => 'javelin-stratcom',
       2 => 'javelin-workflow',
       3 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/behavior-workflow.js',
   ),
   'javelin-color' =>
   array(
     'uri' => '/res/f17034de/rsrc/externals/javelin/ext/fx/Color.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/ext/fx/Color.js',
   ),
   'javelin-cookie' =>
   array(
     'uri' => '/res/ee0d399f/rsrc/externals/javelin/lib/Cookie.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/lib/Cookie.js',
   ),
   'javelin-dom' =>
   array(
     'uri' => '/res/175211d6/rsrc/externals/javelin/lib/DOM.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-magical-init',
       1 => 'javelin-install',
       2 => 'javelin-util',
       3 => 'javelin-vector',
       4 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/externals/javelin/lib/DOM.js',
   ),
   'javelin-dynval' =>
   array(
     'uri' => '/res/ea6f2a9d/rsrc/externals/javelin/ext/reactor/core/DynVal.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactornode',
       2 => 'javelin-util',
       3 => 'javelin-reactor',
     ),
     'disk' => '/rsrc/externals/javelin/ext/reactor/core/DynVal.js',
   ),
   'javelin-event' =>
   array(
     'uri' => '/res/5f70f4d0/rsrc/externals/javelin/core/Event.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/core/Event.js',
   ),
   'javelin-fx' =>
   array(
     'uri' => '/res/23fb3d44/rsrc/externals/javelin/ext/fx/FX.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-color',
       1 => 'javelin-install',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/fx/FX.js',
   ),
   'javelin-history' =>
   array(
     'uri' => '/res/6c084b09/rsrc/externals/javelin/lib/History.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-stratcom',
       1 => 'javelin-install',
       2 => 'javelin-uri',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/lib/History.js',
   ),
   'javelin-install' =>
   array(
     'uri' => '/res/904356c0/rsrc/externals/javelin/core/install.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-util',
       1 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/externals/javelin/core/install.js',
   ),
   'javelin-json' =>
   array(
     'uri' => '/res/cf83e72c/rsrc/externals/javelin/lib/JSON.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/lib/JSON.js',
   ),
   'javelin-magical-init' =>
   array(
     'uri' => '/res/7c6c8d5a/rsrc/externals/javelin/core/init.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/externals/javelin/core/init.js',
   ),
   'javelin-mask' =>
   array(
     'uri' => '/res/465cf513/rsrc/externals/javelin/lib/Mask.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/externals/javelin/lib/Mask.js',
   ),
   'javelin-reactor' =>
   array(
     'uri' => '/res/c05f2658/rsrc/externals/javelin/ext/reactor/core/Reactor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/reactor/core/Reactor.js',
   ),
   'javelin-reactor-dom' =>
   array(
     'uri' => '/res/5e03117e/rsrc/externals/javelin/ext/reactor/dom/RDOM.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
       1 => 'javelin-dynval',
       2 => 'javelin-reactor',
       3 => 'javelin-reactornode',
       4 => 'javelin-install',
       5 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/reactor/dom/RDOM.js',
   ),
   'javelin-reactor-node-calmer' =>
   array(
     'uri' => '/res/a93dd6b6/rsrc/externals/javelin/ext/reactor/core/ReactorNodeCalmer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactor',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/reactor/core/ReactorNodeCalmer.js',
   ),
   'javelin-reactornode' =>
   array(
     'uri' => '/res/4eac475b/rsrc/externals/javelin/ext/reactor/core/ReactorNode.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactor',
       2 => 'javelin-util',
       3 => 'javelin-reactor-node-calmer',
     ),
     'disk' => '/rsrc/externals/javelin/ext/reactor/core/ReactorNode.js',
   ),
   'javelin-request' =>
   array(
     'uri' => '/res/687bdcfc/rsrc/externals/javelin/lib/Request.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-stratcom',
       2 => 'javelin-util',
       3 => 'javelin-behavior',
       4 => 'javelin-json',
       5 => 'javelin-dom',
       6 => 'javelin-resource',
     ),
     'disk' => '/rsrc/externals/javelin/lib/Request.js',
   ),
   'javelin-resource' =>
   array(
     'uri' => '/res/33a3bb57/rsrc/externals/javelin/lib/Resource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-util',
       1 => 'javelin-uri',
       2 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/lib/Resource.js',
   ),
   'javelin-stratcom' =>
   array(
     'uri' => '/res/714946e7/rsrc/externals/javelin/core/Stratcom.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-event',
       2 => 'javelin-util',
       3 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/externals/javelin/core/Stratcom.js',
   ),
   'javelin-tokenizer' =>
   array(
     'uri' => '/res/7c117141/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-dom',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js',
   ),
   'javelin-typeahead' =>
   array(
     'uri' => '/res/fd79f758/rsrc/externals/javelin/lib/control/typeahead/Typeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-vector',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/Typeahead.js',
   ),
   'javelin-typeahead-composite-source' =>
   array(
     'uri' => '/res/487b3da2/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-typeahead-source',
       2 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js',
   ),
   'javelin-typeahead-normalizer' =>
   array(
     'uri' => '/res/5a4bd979/rsrc/externals/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js',
   ),
   'javelin-typeahead-ondemand-source' =>
   array(
     'uri' => '/res/92286a21/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
       3 => 'javelin-typeahead-source',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js',
   ),
   'javelin-typeahead-preloaded-source' =>
   array(
     'uri' => '/res/147900c7/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
       3 => 'javelin-typeahead-source',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js',
   ),
   'javelin-typeahead-source' =>
   array(
     'uri' => '/res/13289259/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-typeahead-normalizer',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadSource.js',
   ),
   'javelin-typeahead-static-source' =>
   array(
     'uri' => '/res/bb0a5173/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-typeahead-source',
     ),
     'disk' => '/rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js',
   ),
   'javelin-uri' =>
   array(
     'uri' => '/res/75aa4597/rsrc/externals/javelin/lib/URI.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
     ),
     'disk' => '/rsrc/externals/javelin/lib/URI.js',
   ),
   'javelin-util' =>
   array(
     'uri' => '/res/90222113/rsrc/externals/javelin/core/util.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/externals/javelin/core/util.js',
   ),
   'javelin-vector' =>
   array(
     'uri' => '/res/58ea3dd7/rsrc/externals/javelin/lib/Vector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-event',
     ),
     'disk' => '/rsrc/externals/javelin/lib/Vector.js',
   ),
   'javelin-view' =>
   array(
     'uri' => '/res/38daaec0/rsrc/externals/javelin/ext/view/View.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/view/View.js',
   ),
   'javelin-view-html' =>
   array(
     'uri' => '/res/0d225e8c/rsrc/externals/javelin/ext/view/HTMLView.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-view-visitor',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/view/HTMLView.js',
   ),
   'javelin-view-interpreter' =>
   array(
     'uri' => '/res/b0c07f96/rsrc/externals/javelin/ext/view/ViewInterpreter.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-view',
       1 => 'javelin-install',
       2 => 'javelin-dom',
     ),
     'disk' => '/rsrc/externals/javelin/ext/view/ViewInterpreter.js',
   ),
   'javelin-view-renderer' =>
   array(
     'uri' => '/res/fe0d2f60/rsrc/externals/javelin/ext/view/ViewRenderer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/view/ViewRenderer.js',
   ),
   'javelin-view-visitor' =>
   array(
     'uri' => '/res/b1606cec/rsrc/externals/javelin/ext/view/ViewVisitor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
     ),
     'disk' => '/rsrc/externals/javelin/ext/view/ViewVisitor.js',
   ),
   'javelin-workflow' =>
   array(
     'uri' => '/res/7626494b/rsrc/externals/javelin/lib/Workflow.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-stratcom',
       1 => 'javelin-request',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-install',
       5 => 'javelin-util',
       6 => 'javelin-mask',
       7 => 'javelin-uri',
     ),
     'disk' => '/rsrc/externals/javelin/lib/Workflow.js',
   ),
   'legalpad-documentbody-css' =>
   array(
     'uri' => '/res/034c3494/rsrc/css/application/legalpad/legalpad-documentbody.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/legalpad/legalpad-documentbody.css',
   ),
   'lightbox-attachment-css' =>
   array(
     'uri' => '/res/4657e15d/rsrc/css/aphront/lightbox-attachment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/lightbox-attachment.css',
   ),
   'maniphest-batch-editor' =>
   array(
     'uri' => '/res/fb15d744/rsrc/css/application/maniphest/batch-editor.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/batch-editor.css',
   ),
   'maniphest-report-css' =>
   array(
     'uri' => '/res/2e633fcf/rsrc/css/application/maniphest/report.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/report.css',
   ),
   'maniphest-task-edit-css' =>
   array(
     'uri' => '/res/c0c64a27/rsrc/css/application/maniphest/task-edit.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/task-edit.css',
   ),
   'maniphest-task-summary-css' =>
   array(
     'uri' => '/res/1f2fac54/rsrc/css/application/maniphest/task-summary.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/task-summary.css',
   ),
   'maniphest-transaction-detail-css' =>
   array(
     'uri' => '/res/30242771/rsrc/css/application/maniphest/transaction-detail.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/transaction-detail.css',
   ),
   'multirow-row-manager' =>
   array(
     'uri' => '/res/408fae4f/rsrc/js/core/MultirowRowManager.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-stratcom',
       2 => 'javelin-dom',
       3 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/core/MultirowRowManager.js',
   ),
   'owners-path-editor' =>
   array(
     'uri' => '/res/29b68354/rsrc/js/application/owners/OwnersPathEditor.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'multirow-row-manager',
       1 => 'javelin-install',
       2 => 'path-typeahead',
       3 => 'javelin-dom',
       4 => 'javelin-util',
       5 => 'phabricator-prefab',
     ),
     'disk' => '/rsrc/js/application/owners/OwnersPathEditor.js',
   ),
   'owners-path-editor-css' =>
   array(
     'uri' => '/res/1b9b5456/rsrc/css/application/owners/owners-path-editor.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/owners/owners-path-editor.css',
   ),
   'paste-css' =>
   array(
     'uri' => '/res/216fbfe9/rsrc/css/application/paste/paste.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/paste/paste.css',
   ),
   'path-typeahead' =>
   array(
     'uri' => '/res/50246fb6/rsrc/js/application/herald/PathTypeahead.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-typeahead',
       2 => 'javelin-dom',
       3 => 'javelin-request',
       4 => 'javelin-typeahead-ondemand-source',
       5 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/herald/PathTypeahead.js',
   ),
   'people-profile-css' =>
   array(
     'uri' => '/res/d50d9502/rsrc/css/application/people/people-profile.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/people/people-profile.css',
   ),
   'phabricator-action-header-view-css' =>
   array(
     'uri' => '/res/3b701648/rsrc/css/layout/phabricator-action-header-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-action-header-view.css',
   ),
   'phabricator-action-list-view-css' =>
   array(
     'uri' => '/res/c31a8b76/rsrc/css/layout/phabricator-action-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-action-list-view.css',
   ),
   'phabricator-application-launch-view-css' =>
   array(
     'uri' => '/res/21a67228/rsrc/css/application/base/phabricator-application-launch-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/phabricator-application-launch-view.css',
   ),
   'phabricator-busy' =>
   array(
     'uri' => '/res/083c11d2/rsrc/js/core/Busy.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-fx',
     ),
     'disk' => '/rsrc/js/core/Busy.js',
   ),
   'phabricator-chatlog-css' =>
   array(
     'uri' => '/res/5542e247/rsrc/css/application/chatlog/chatlog.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/chatlog/chatlog.css',
   ),
   'phabricator-content-source-view-css' =>
   array(
     'uri' => '/res/8c738a93/rsrc/css/application/contentsource/content-source-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/contentsource/content-source-view.css',
   ),
   'phabricator-core-css' =>
   array(
     'uri' => '/res/9e767fb1/rsrc/css/core/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/core.css',
   ),
   'phabricator-countdown-css' =>
   array(
     'uri' => '/res/c4a30296/rsrc/css/application/countdown/timer.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/countdown/timer.css',
   ),
   'phabricator-crumbs-view-css' =>
   array(
     'uri' => '/res/feeb02f0/rsrc/css/layout/phabricator-crumbs-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-crumbs-view.css',
   ),
   'phabricator-drag-and-drop-file-upload' =>
   array(
     'uri' => '/res/396d3b3b/rsrc/js/core/DragAndDropFileUpload.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
       3 => 'javelin-dom',
       4 => 'javelin-uri',
       5 => 'phabricator-file-upload',
     ),
     'disk' => '/rsrc/js/core/DragAndDropFileUpload.js',
   ),
   'phabricator-draggable-list' =>
   array(
     'uri' => '/res/7292a1c4/rsrc/js/core/DraggableList.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-util',
       4 => 'javelin-vector',
       5 => 'javelin-magical-init',
     ),
     'disk' => '/rsrc/js/core/DraggableList.js',
   ),
   'phabricator-dropdown-menu' =>
   array(
     'uri' => '/res/a248b7f4/rsrc/js/core/DropdownMenu.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
       4 => 'javelin-stratcom',
       5 => 'phabricator-menu-item',
     ),
     'disk' => '/rsrc/js/core/DropdownMenu.js',
   ),
   'phabricator-fatal-config-template-css' =>
   array(
     'uri' => '/res/6e1a8d22/rsrc/css/application/config/config-template.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/config/config-template.css',
   ),
   'phabricator-feed-css' =>
   array(
     'uri' => '/res/e19633ed/rsrc/css/application/feed/feed.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/feed/feed.css',
   ),
   'phabricator-file-upload' =>
   array(
     'uri' => '/res/c9605008/rsrc/js/core/FileUpload.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'phabricator-notification',
     ),
     'disk' => '/rsrc/js/core/FileUpload.js',
   ),
   'phabricator-filetree-view-css' =>
   array(
     'uri' => '/res/c912ed91/rsrc/css/layout/phabricator-filetree-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-filetree-view.css',
   ),
   'phabricator-flag-css' =>
   array(
     'uri' => '/res/7c3dd9ea/rsrc/css/application/flag/flag.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/flag/flag.css',
   ),
   'phabricator-header-view-css' =>
   array(
     'uri' => '/res/da35cfa0/rsrc/css/layout/phabricator-header-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-header-view.css',
   ),
   'phabricator-hovercard' =>
   array(
     'uri' => '/res/7fb94260/rsrc/js/core/Hovercard.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-vector',
       3 => 'javelin-request',
       4 => 'javelin-uri',
     ),
     'disk' => '/rsrc/js/core/Hovercard.js',
   ),
   'phabricator-hovercard-view-css' =>
   array(
     'uri' => '/res/80683f88/rsrc/css/layout/phabricator-hovercard-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-hovercard-view.css',
   ),
   'phabricator-jump-nav' =>
   array(
     'uri' => '/res/15a5598e/rsrc/css/application/directory/phabricator-jump-nav.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/directory/phabricator-jump-nav.css',
   ),
   'phabricator-keyboard-shortcut' =>
   array(
     'uri' => '/res/44747afd/rsrc/js/core/KeyboardShortcut.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'phabricator-keyboard-shortcut-manager',
     ),
     'disk' => '/rsrc/js/core/KeyboardShortcut.js',
   ),
   'phabricator-keyboard-shortcut-manager' =>
   array(
     'uri' => '/res/bf9bc02a/rsrc/js/core/KeyboardShortcutManager.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-stratcom',
       3 => 'javelin-dom',
       4 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/core/KeyboardShortcutManager.js',
   ),
   'phabricator-main-menu-view' =>
   array(
     'uri' => '/res/69b4e76a/rsrc/css/application/base/main-menu-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/main-menu-view.css',
   ),
   'phabricator-menu-item' =>
   array(
     'uri' => '/res/2add4594/rsrc/js/core/DropdownMenuItem.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
     ),
     'disk' => '/rsrc/js/core/DropdownMenuItem.js',
   ),
   'phabricator-nav-view-css' =>
   array(
     'uri' => '/res/37955b6a/rsrc/css/aphront/phabricator-nav-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/phabricator-nav-view.css',
   ),
   'phabricator-notification' =>
   array(
     'uri' => '/res/0764da14/rsrc/js/core/Notification.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-stratcom',
       3 => 'javelin-util',
       4 => 'phabricator-notification-css',
     ),
     'disk' => '/rsrc/js/core/Notification.js',
   ),
   'phabricator-notification-css' =>
   array(
     'uri' => '/res/bbc495b9/rsrc/css/aphront/notification.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/notification.css',
   ),
   'phabricator-notification-menu-css' =>
   array(
     'uri' => '/res/b14af69e/rsrc/css/application/base/notification-menu.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/notification-menu.css',
   ),
   'phabricator-object-item-list-view-css' =>
   array(
     'uri' => '/res/a3e45d8a/rsrc/css/layout/phabricator-object-item-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-object-item-list-view.css',
   ),
   'phabricator-object-list-view-css' =>
   array(
     'uri' => '/res/4f183668/rsrc/css/application/projects/phabricator-object-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/projects/phabricator-object-list-view.css',
   ),
   'phabricator-object-selector-css' =>
   array(
     'uri' => '/res/502f1bb9/rsrc/css/application/objectselector/object-selector.css',
     'type' => 'css',
     'requires' =>
     array(
       0 => 'aphront-dialog-view-css',
     ),
     'disk' => '/rsrc/css/application/objectselector/object-selector.css',
   ),
   'phabricator-phtize' =>
   array(
     'uri' => '/res/dc655a81/rsrc/js/core/phtize.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/core/phtize.js',
   ),
   'phabricator-prefab' =>
   array(
     'uri' => '/res/511859ca/rsrc/js/core/Prefab.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-typeahead',
       4 => 'javelin-tokenizer',
       5 => 'javelin-typeahead-preloaded-source',
       6 => 'javelin-typeahead-ondemand-source',
       7 => 'javelin-dom',
       8 => 'javelin-stratcom',
       9 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/core/Prefab.js',
   ),
   'phabricator-profile-css' =>
   array(
     'uri' => '/res/87229261/rsrc/css/application/profile/profile-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/profile/profile-view.css',
   ),
   'phabricator-project-tag-css' =>
   array(
     'uri' => '/res/383b8c30/rsrc/css/application/projects/project-tag.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/projects/project-tag.css',
   ),
   'phabricator-property-list-view-css' =>
   array(
     'uri' => '/res/1b2f0fa9/rsrc/css/layout/phabricator-property-list-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-property-list-view.css',
   ),
   'phabricator-remarkup-css' =>
   array(
     'uri' => '/res/d0af3cab/rsrc/css/core/remarkup.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/remarkup.css',
   ),
   'phabricator-search-results-css' =>
   array(
     'uri' => '/res/9b749d7d/rsrc/css/application/search/search-results.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/search/search-results.css',
   ),
   'phabricator-settings-css' =>
   array(
     'uri' => '/res/fb9d017f/rsrc/css/application/settings/settings.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/settings/settings.css',
   ),
   'phabricator-shaped-request' =>
   array(
     'uri' => '/res/d173af85/rsrc/js/core/ShapedRequest.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-request',
     ),
     'disk' => '/rsrc/js/core/ShapedRequest.js',
   ),
   'phabricator-side-menu-view-css' =>
   array(
     'uri' => '/res/e83fbe58/rsrc/css/layout/phabricator-side-menu-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-side-menu-view.css',
   ),
   'phabricator-slowvote-css' =>
   array(
     'uri' => '/res/11373549/rsrc/css/application/slowvote/slowvote.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/slowvote/slowvote.css',
   ),
   'phabricator-source-code-view-css' =>
   array(
     'uri' => '/res/70bcbea4/rsrc/css/layout/phabricator-source-code-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-source-code-view.css',
   ),
   'phabricator-standard-page-view' =>
   array(
     'uri' => '/res/dabd95bf/rsrc/css/application/base/standard-page-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/standard-page-view.css',
   ),
   'phabricator-tag-view-css' =>
   array(
     'uri' => '/res/21a0a5d6/rsrc/css/layout/phabricator-tag-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-tag-view.css',
   ),
   'phabricator-textareautils' =>
   array(
     'uri' => '/res/03c03e8b/rsrc/js/core/TextAreaUtils.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
     ),
     'disk' => '/rsrc/js/core/TextAreaUtils.js',
   ),
   'phabricator-timeline-view-css' =>
   array(
     'uri' => '/res/3b85450f/rsrc/css/layout/phabricator-timeline-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-timeline-view.css',
   ),
   'phabricator-tooltip' =>
   array(
     'uri' => '/res/a23bc887/rsrc/js/core/ToolTip.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-util',
       2 => 'javelin-dom',
       3 => 'javelin-vector',
     ),
     'disk' => '/rsrc/js/core/ToolTip.js',
   ),
   'phabricator-transaction-view-css' =>
   array(
     'uri' => '/res/00be4b1a/rsrc/css/aphront/transaction.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/transaction.css',
   ),
   'phabricator-ui-example-css' =>
   array(
     'uri' => '/res/376ab671/rsrc/css/application/uiexample/example.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/uiexample/example.css',
   ),
   'phabricator-uiexample-javelin-view' =>
   array(
     'uri' => '/res/d42834b6/rsrc/js/application/uiexample/JavelinViewExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-view',
     ),
     'disk' => '/rsrc/js/application/uiexample/JavelinViewExample.js',
   ),
   'phabricator-uiexample-reactor-button' =>
   array(
     'uri' => '/res/6bfe4f05/rsrc/js/application/uiexample/ReactorButtonExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-util',
       3 => 'javelin-dynval',
       4 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorButtonExample.js',
   ),
   'phabricator-uiexample-reactor-checkbox' =>
   array(
     'uri' => '/res/3e8b30ac/rsrc/js/application/uiexample/ReactorCheckboxExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorCheckboxExample.js',
   ),
   'phabricator-uiexample-reactor-focus' =>
   array(
     'uri' => '/res/d8f3b56e/rsrc/js/application/uiexample/ReactorFocusExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorFocusExample.js',
   ),
   'phabricator-uiexample-reactor-input' =>
   array(
     'uri' => '/res/936352d9/rsrc/js/application/uiexample/ReactorInputExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-reactor-dom',
       2 => 'javelin-view-html',
       3 => 'javelin-view-interpreter',
       4 => 'javelin-view-renderer',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorInputExample.js',
   ),
   'phabricator-uiexample-reactor-mouseover' =>
   array(
     'uri' => '/res/031a9f4f/rsrc/js/application/uiexample/ReactorMouseoverExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorMouseoverExample.js',
   ),
   'phabricator-uiexample-reactor-radio' =>
   array(
     'uri' => '/res/208c58e3/rsrc/js/application/uiexample/ReactorRadioExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorRadioExample.js',
   ),
   'phabricator-uiexample-reactor-select' =>
   array(
     'uri' => '/res/1b68a6db/rsrc/js/application/uiexample/ReactorSelectExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorSelectExample.js',
   ),
   'phabricator-uiexample-reactor-sendclass' =>
   array(
     'uri' => '/res/00cb3131/rsrc/js/application/uiexample/ReactorSendClassExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorSendClassExample.js',
   ),
   'phabricator-uiexample-reactor-sendproperties' =>
   array(
     'uri' => '/res/392f1e02/rsrc/js/application/uiexample/ReactorSendPropertiesExample.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-reactor-dom',
     ),
     'disk' => '/rsrc/js/application/uiexample/ReactorSendPropertiesExample.js',
   ),
   'phabricator-workboard-view-css' =>
   array(
     'uri' => '/res/f598d215/rsrc/css/layout/phabricator-workboard-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-workboard-view.css',
   ),
   'phabricator-workpanel-view-css' =>
   array(
     'uri' => '/res/d0cdb62e/rsrc/css/layout/phabricator-workpanel-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/layout/phabricator-workpanel-view.css',
   ),
   'phabricator-zindex-css' =>
   array(
     'uri' => '/res/a50437bf/rsrc/css/core/z-index.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/z-index.css',
   ),
   'phame-css' =>
   array(
     'uri' => '/res/ba5a8cd8/rsrc/css/application/phame/phame.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phame/phame.css',
   ),
   'pholio-css' =>
   array(
     'uri' => '/res/14b14ff5/rsrc/css/application/pholio/pholio.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/pholio/pholio.css',
   ),
   'pholio-edit-css' =>
   array(
     'uri' => '/res/63f3332d/rsrc/css/application/pholio/pholio-edit.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/pholio/pholio-edit.css',
   ),
   'pholio-inline-comments-css' =>
   array(
     'uri' => '/res/006fc575/rsrc/css/application/pholio/pholio-inline-comments.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/pholio/pholio-inline-comments.css',
   ),
   'phortune-credit-card-form' =>
   array(
     'uri' => '/res/bc948778/rsrc/js/application/phortune/phortune-credit-card-form.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-install',
       1 => 'javelin-dom',
       2 => 'javelin-json',
       3 => 'javelin-workflow',
       4 => 'javelin-util',
     ),
     'disk' => '/rsrc/js/application/phortune/phortune-credit-card-form.js',
   ),
   'phortune-credit-card-form-css' =>
   array(
     'uri' => '/res/563c8c6d/rsrc/css/application/phortune/phortune-credit-card-form.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phortune/phortune-credit-card-form.css',
   ),
   'phrequent-css' =>
   array(
     'uri' => '/res/9d6f3eb7/rsrc/css/application/phrequent/phrequent.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phrequent/phrequent.css',
   ),
   'phriction-document-css' =>
   array(
     'uri' => '/res/754f6b37/rsrc/css/application/phriction/phriction-document-css.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/phriction/phriction-document-css.css',
   ),
   'phui-box-css' =>
   array(
     'uri' => '/res/8244305c/rsrc/css/phui/phui-box.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-box.css',
   ),
   'phui-button-css' =>
   array(
     'uri' => '/res/aeb3d0f2/rsrc/css/phui/phui-button.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-button.css',
   ),
   'phui-document-view-css' =>
   array(
     'uri' => '/res/fe374dee/rsrc/css/phui/phui-document.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-document.css',
   ),
   'phui-feed-story-css' =>
   array(
     'uri' => '/res/68a0ce41/rsrc/css/phui/phui-feed-story.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-feed-story.css',
   ),
   'phui-form-css' =>
   array(
     'uri' => '/res/8f33e95f/rsrc/css/phui/phui-form.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-form.css',
   ),
   'phui-form-view-css' =>
   array(
     'uri' => '/res/52025834/rsrc/css/phui/phui-form-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-form-view.css',
   ),
   'phui-icon-view-css' =>
   array(
     'uri' => '/res/f78f4c64/rsrc/css/phui/phui-icon.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-icon.css',
   ),
   'phui-list-view-css' =>
   array(
     'uri' => '/res/3235e888/rsrc/css/phui/phui-list.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-list.css',
   ),
   'phui-pinboard-view-css' =>
   array(
     'uri' => '/res/3b961aa1/rsrc/css/phui/phui-pinboard-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-pinboard-view.css',
   ),
   'phui-remarkup-preview-css' =>
   array(
     'uri' => '/res/3cba9fbc/rsrc/css/phui/phui-remarkup-preview.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-remarkup-preview.css',
   ),
   'phui-spacing-css' =>
   array(
     'uri' => '/res/28891fd3/rsrc/css/phui/phui-spacing.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-spacing.css',
   ),
   'phui-status-list-view-css' =>
   array(
     'uri' => '/res/edd24959/rsrc/css/phui/phui-status.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-status.css',
   ),
   'phui-text-css' =>
   array(
     'uri' => '/res/63e53cac/rsrc/css/phui/phui-text.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/phui/phui-text.css',
   ),
   'ponder-comment-table-css' =>
   array(
     'uri' => '/res/2527ba37/rsrc/css/application/ponder/comments.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/comments.css',
   ),
   'ponder-feed-view-css' =>
   array(
     'uri' => '/res/cab09075/rsrc/css/application/ponder/feed.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/feed.css',
   ),
   'ponder-post-css' =>
   array(
     'uri' => '/res/013b9e2c/rsrc/css/application/ponder/post.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/post.css',
   ),
   'ponder-vote-css' =>
   array(
     'uri' => '/res/6bbe8538/rsrc/css/application/ponder/vote.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/ponder/vote.css',
   ),
   'raphael-core' =>
   array(
     'uri' => '/res/5dc5e17c/rsrc/externals/raphael/raphael.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/externals/raphael/raphael.js',
   ),
   'raphael-g' =>
   array(
     'uri' => '/res/229b89a1/rsrc/externals/raphael/g.raphael.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/externals/raphael/g.raphael.js',
   ),
   'raphael-g-line' =>
   array(
     'uri' => '/res/96da30f7/rsrc/externals/raphael/g.raphael.line.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/externals/raphael/g.raphael.line.js',
   ),
   'releeph-branch' =>
   array(
     'uri' => '/res/6ad6420d/rsrc/css/application/releeph/releeph-branch.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-branch.css',
   ),
   'releeph-colors' =>
   array(
     'uri' => '/res/dff4b26a/rsrc/css/application/releeph/releeph-colors.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-colors.css',
   ),
   'releeph-core' =>
   array(
     'uri' => '/res/853f4a73/rsrc/css/application/releeph/releeph-core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-core.css',
   ),
   'releeph-intents' =>
   array(
     'uri' => '/res/4e73e9dd/rsrc/css/application/releeph/releeph-intents.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-intents.css',
   ),
   'releeph-preview-branch' =>
   array(
     'uri' => '/res/65e5dece/rsrc/css/application/releeph/releeph-preview-branch.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-preview-branch.css',
   ),
   'releeph-project' =>
   array(
     'uri' => '/res/b9376e59/rsrc/css/application/releeph/releeph-project.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-project.css',
   ),
   'releeph-request-differential-create-dialog' =>
   array(
     'uri' => '/res/4df30ce1/rsrc/css/application/releeph/releeph-request-differential-create-dialog.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-request-differential-create-dialog.css',
   ),
   'releeph-request-typeahead-css' =>
   array(
     'uri' => '/res/9c9a1acf/rsrc/css/application/releeph/releeph-request-typeahead.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-request-typeahead.css',
   ),
   'releeph-status' =>
   array(
     'uri' => '/res/588529df/rsrc/css/application/releeph/releeph-status.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/releeph/releeph-status.css',
   ),
   'setup-issue-css' =>
   array(
     'uri' => '/res/efbb3673/rsrc/css/application/config/setup-issue.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/config/setup-issue.css',
   ),
   'sprite-actions-css' =>
   array(
     'uri' => '/res/bd43efa8/rsrc/css/sprite-actions.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-actions.css',
   ),
   'sprite-apps-css' =>
   array(
     'uri' => '/res/0805dd1d/rsrc/css/sprite-apps.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-apps.css',
   ),
   'sprite-apps-large-css' =>
   array(
     'uri' => '/res/ebba1243/rsrc/css/sprite-apps-large.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-apps-large.css',
   ),
   'sprite-apps-xlarge-css' =>
   array(
     'uri' => '/res/33a8e644/rsrc/css/sprite-apps-xlarge.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-apps-xlarge.css',
   ),
   'sprite-conpherence-css' =>
   array(
     'uri' => '/res/f6793453/rsrc/css/sprite-conpherence.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-conpherence.css',
   ),
   'sprite-docs-css' =>
   array(
     'uri' => '/res/b32f93bc/rsrc/css/sprite-docs.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-docs.css',
   ),
   'sprite-gradient-css' =>
   array(
     'uri' => '/res/08c64fb3/rsrc/css/sprite-gradient.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-gradient.css',
   ),
   'sprite-icons-css' =>
   array(
     'uri' => '/res/03295fbd/rsrc/css/sprite-icons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-icons.css',
   ),
   'sprite-login-css' =>
   array(
     'uri' => '/res/8bd33e35/rsrc/css/sprite-login.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-login.css',
   ),
   'sprite-menu-css' =>
   array(
     'uri' => '/res/764ab039/rsrc/css/sprite-menu.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-menu.css',
   ),
   'sprite-minicons-css' =>
   array(
     'uri' => '/res/2dba70cd/rsrc/css/sprite-minicons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-minicons.css',
   ),
   'sprite-payments-css' =>
   array(
     'uri' => '/res/876697b6/rsrc/css/sprite-payments.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-payments.css',
   ),
   'sprite-status-css' =>
   array(
     'uri' => '/res/5c735469/rsrc/css/sprite-status.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-status.css',
   ),
   'sprite-tokens-css' =>
   array(
     'uri' => '/res/edb4e341/rsrc/css/sprite-tokens.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/sprite-tokens.css',
   ),
   'syntax-highlighting-css' =>
   array(
     'uri' => '/res/3c77ac95/rsrc/css/core/syntax.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/syntax.css',
   ),
   'tokens-css' =>
   array(
     'uri' => '/res/bbddf548/rsrc/css/application/tokens/tokens.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/tokens/tokens.css',
   ),
 ), array(
   'packages' =>
   array(
     '4c072d06' =>
     array(
       'name' => 'core.pkg.css',
       'symbols' =>
       array(
         0 => 'phabricator-core-css',
         1 => 'phabricator-zindex-css',
         2 => 'phui-button-css',
         3 => 'phabricator-standard-page-view',
         4 => 'aphront-dialog-view-css',
         5 => 'phui-form-view-css',
         6 => 'aphront-panel-view-css',
         7 => 'aphront-table-view-css',
         8 => 'aphront-tokenizer-control-css',
         9 => 'aphront-typeahead-control-css',
         10 => 'aphront-list-filter-view-css',
         11 => 'phabricator-jump-nav',
         12 => 'phabricator-remarkup-css',
         13 => 'syntax-highlighting-css',
         14 => 'aphront-pager-view-css',
         15 => 'phabricator-transaction-view-css',
         16 => 'aphront-tooltip-css',
         17 => 'phabricator-flag-css',
         18 => 'aphront-error-view-css',
         19 => 'sprite-icons-css',
         20 => 'sprite-gradient-css',
         21 => 'sprite-menu-css',
         22 => 'sprite-apps-large-css',
         23 => 'phabricator-main-menu-view',
         24 => 'phabricator-notification-css',
         25 => 'phabricator-notification-menu-css',
         26 => 'lightbox-attachment-css',
         27 => 'phabricator-header-view-css',
         28 => 'phabricator-filetree-view-css',
         29 => 'phabricator-nav-view-css',
         30 => 'phabricator-side-menu-view-css',
         31 => 'phabricator-crumbs-view-css',
         32 => 'phabricator-object-item-list-view-css',
         33 => 'global-drag-and-drop-css',
         34 => 'phui-spacing-css',
         35 => 'phui-form-css',
         36 => 'phui-icon-view-css',
         37 => 'phabricator-application-launch-view-css',
         38 => 'phabricator-action-list-view-css',
         39 => 'phabricator-property-list-view-css',
         40 => 'phabricator-tag-view-css',
       ),
       'uri' => '/res/pkg/4c072d06/core.pkg.css',
       'type' => 'css',
     ),
     '4f81c788' =>
     array(
       'name' => 'core.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-aphront-basic-tokenizer',
         1 => 'javelin-behavior-workflow',
         2 => 'javelin-behavior-aphront-form-disable-on-submit',
         3 => 'phabricator-keyboard-shortcut-manager',
         4 => 'phabricator-keyboard-shortcut',
         5 => 'javelin-behavior-phabricator-keyboard-shortcuts',
         6 => 'javelin-behavior-refresh-csrf',
         7 => 'javelin-behavior-phabricator-watch-anchor',
         8 => 'javelin-behavior-phabricator-autofocus',
         9 => 'phabricator-menu-item',
         10 => 'phabricator-dropdown-menu',
         11 => 'phabricator-phtize',
         12 => 'javelin-behavior-phabricator-oncopy',
         13 => 'phabricator-tooltip',
         14 => 'javelin-behavior-phabricator-tooltips',
         15 => 'phabricator-prefab',
         16 => 'javelin-behavior-device',
         17 => 'javelin-behavior-toggle-class',
         18 => 'javelin-behavior-lightbox-attachments',
         19 => 'phabricator-busy',
         20 => 'javelin-aphlict',
         21 => 'phabricator-notification',
         22 => 'javelin-behavior-aphlict-listen',
         23 => 'javelin-behavior-phabricator-search-typeahead',
         24 => 'javelin-behavior-konami',
         25 => 'javelin-behavior-aphlict-dropdown',
         26 => 'javelin-behavior-history-install',
         27 => 'javelin-behavior-phabricator-gesture',
         28 => 'javelin-behavior-phabricator-active-nav',
         29 => 'javelin-behavior-phabricator-nav',
         30 => 'javelin-behavior-phabricator-remarkup-assist',
         31 => 'phabricator-textareautils',
         32 => 'phabricator-file-upload',
         33 => 'javelin-behavior-global-drag-and-drop',
         34 => 'javelin-behavior-phabricator-reveal-content',
         35 => 'phabricator-hovercard',
         36 => 'javelin-behavior-phabricator-hovercards',
       ),
       'uri' => '/res/pkg/4f81c788/core.pkg.js',
       'type' => 'js',
     ),
     '4ccfeb47' =>
     array(
       'name' => 'darkconsole.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-dark-console',
         1 => 'javelin-behavior-error-log',
       ),
       'uri' => '/res/pkg/4ccfeb47/darkconsole.pkg.js',
       'type' => 'js',
     ),
     '09216861' =>
     array(
       'name' => 'differential.pkg.css',
       'symbols' =>
       array(
         0 => 'differential-core-view-css',
         1 => 'differential-changeset-view-css',
         2 => 'differential-results-table-css',
         3 => 'differential-revision-history-css',
         4 => 'differential-revision-list-css',
         5 => 'differential-table-of-contents-css',
         6 => 'differential-revision-comment-css',
         7 => 'differential-revision-add-comment-css',
         8 => 'differential-revision-comment-list-css',
         9 => 'phabricator-object-selector-css',
         10 => 'phabricator-content-source-view-css',
         11 => 'differential-local-commits-view-css',
         12 => 'inline-comment-summary-css',
       ),
       'uri' => '/res/pkg/09216861/differential.pkg.css',
       'type' => 'css',
     ),
     'd07a3bc2' =>
     array(
       'name' => 'differential.pkg.js',
       'symbols' =>
       array(
         0 => 'phabricator-drag-and-drop-file-upload',
         1 => 'phabricator-shaped-request',
         2 => 'javelin-behavior-differential-feedback-preview',
         3 => 'javelin-behavior-differential-edit-inline-comments',
         4 => 'javelin-behavior-differential-populate',
         5 => 'javelin-behavior-differential-show-more',
         6 => 'javelin-behavior-differential-diff-radios',
         7 => 'javelin-behavior-differential-accept-with-errors',
         8 => 'javelin-behavior-differential-comment-jump',
         9 => 'javelin-behavior-differential-add-reviewers-and-ccs',
         10 => 'javelin-behavior-differential-keyboard-navigation',
         11 => 'javelin-behavior-aphront-drag-and-drop-textarea',
         12 => 'javelin-behavior-phabricator-object-selector',
         13 => 'javelin-behavior-repository-crossreference',
         14 => 'javelin-behavior-load-blame',
         15 => 'differential-inline-comment-editor',
         16 => 'javelin-behavior-differential-dropdown-menus',
         17 => 'javelin-behavior-differential-toggle-files',
         18 => 'javelin-behavior-differential-user-select',
       ),
       'uri' => '/res/pkg/d07a3bc2/differential.pkg.js',
       'type' => 'js',
     ),
     'c8ce2d88' =>
     array(
       'name' => 'diffusion.pkg.css',
       'symbols' =>
       array(
         0 => 'diffusion-commit-view-css',
         1 => 'diffusion-icons-css',
       ),
       'uri' => '/res/pkg/c8ce2d88/diffusion.pkg.css',
       'type' => 'css',
     ),
     96909266 =>
     array(
       'name' => 'diffusion.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-diffusion-pull-lastmodified',
         1 => 'javelin-behavior-diffusion-commit-graph',
         2 => 'javelin-behavior-audit-preview',
       ),
       'uri' => '/res/pkg/96909266/diffusion.pkg.js',
       'type' => 'js',
     ),
     '2dbbb7d1' =>
     array(
       'name' => 'javelin.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-util',
         1 => 'javelin-install',
         2 => 'javelin-event',
         3 => 'javelin-stratcom',
         4 => 'javelin-behavior',
         5 => 'javelin-resource',
         6 => 'javelin-request',
         7 => 'javelin-vector',
         8 => 'javelin-dom',
         9 => 'javelin-json',
         10 => 'javelin-uri',
         11 => 'javelin-workflow',
         12 => 'javelin-mask',
         13 => 'javelin-typeahead',
         14 => 'javelin-typeahead-normalizer',
         15 => 'javelin-typeahead-source',
         16 => 'javelin-typeahead-preloaded-source',
         17 => 'javelin-typeahead-ondemand-source',
         18 => 'javelin-tokenizer',
         19 => 'javelin-history',
       ),
       'uri' => '/res/pkg/2dbbb7d1/javelin.pkg.js',
       'type' => 'js',
     ),
     '06bacb9a' =>
     array(
       'name' => 'maniphest.pkg.css',
       'symbols' =>
       array(
         0 => 'maniphest-task-summary-css',
         1 => 'maniphest-transaction-detail-css',
         2 => 'phabricator-project-tag-css',
       ),
       'uri' => '/res/pkg/06bacb9a/maniphest.pkg.css',
       'type' => 'css',
     ),
     '98f64f07' =>
     array(
       'name' => 'maniphest.pkg.js',
       'symbols' =>
       array(
         0 => 'javelin-behavior-maniphest-batch-selector',
         1 => 'javelin-behavior-maniphest-transaction-controls',
         2 => 'javelin-behavior-maniphest-transaction-preview',
         3 => 'javelin-behavior-maniphest-transaction-expand',
         4 => 'javelin-behavior-maniphest-subpriority-editor',
       ),
       'uri' => '/res/pkg/98f64f07/maniphest.pkg.js',
       'type' => 'js',
     ),
   ),
   'reverse' =>
   array(
     'aphront-dialog-view-css' => '4c072d06',
     'aphront-error-view-css' => '4c072d06',
     'aphront-list-filter-view-css' => '4c072d06',
     'aphront-pager-view-css' => '4c072d06',
     'aphront-panel-view-css' => '4c072d06',
     'aphront-table-view-css' => '4c072d06',
     'aphront-tokenizer-control-css' => '4c072d06',
     'aphront-tooltip-css' => '4c072d06',
     'aphront-typeahead-control-css' => '4c072d06',
     'differential-changeset-view-css' => '09216861',
     'differential-core-view-css' => '09216861',
     'differential-inline-comment-editor' => 'd07a3bc2',
     'differential-local-commits-view-css' => '09216861',
     'differential-results-table-css' => '09216861',
     'differential-revision-add-comment-css' => '09216861',
     'differential-revision-comment-css' => '09216861',
     'differential-revision-comment-list-css' => '09216861',
     'differential-revision-history-css' => '09216861',
     'differential-revision-list-css' => '09216861',
     'differential-table-of-contents-css' => '09216861',
     'diffusion-commit-view-css' => 'c8ce2d88',
     'diffusion-icons-css' => 'c8ce2d88',
     'global-drag-and-drop-css' => '4c072d06',
     'inline-comment-summary-css' => '09216861',
     'javelin-aphlict' => '4f81c788',
     'javelin-behavior' => '2dbbb7d1',
     'javelin-behavior-aphlict-dropdown' => '4f81c788',
     'javelin-behavior-aphlict-listen' => '4f81c788',
     'javelin-behavior-aphront-basic-tokenizer' => '4f81c788',
     'javelin-behavior-aphront-drag-and-drop-textarea' => 'd07a3bc2',
     'javelin-behavior-aphront-form-disable-on-submit' => '4f81c788',
     'javelin-behavior-audit-preview' => '96909266',
     'javelin-behavior-dark-console' => '4ccfeb47',
     'javelin-behavior-device' => '4f81c788',
     'javelin-behavior-differential-accept-with-errors' => 'd07a3bc2',
     'javelin-behavior-differential-add-reviewers-and-ccs' => 'd07a3bc2',
     'javelin-behavior-differential-comment-jump' => 'd07a3bc2',
     'javelin-behavior-differential-diff-radios' => 'd07a3bc2',
     'javelin-behavior-differential-dropdown-menus' => 'd07a3bc2',
     'javelin-behavior-differential-edit-inline-comments' => 'd07a3bc2',
     'javelin-behavior-differential-feedback-preview' => 'd07a3bc2',
     'javelin-behavior-differential-keyboard-navigation' => 'd07a3bc2',
     'javelin-behavior-differential-populate' => 'd07a3bc2',
     'javelin-behavior-differential-show-more' => 'd07a3bc2',
     'javelin-behavior-differential-toggle-files' => 'd07a3bc2',
     'javelin-behavior-differential-user-select' => 'd07a3bc2',
     'javelin-behavior-diffusion-commit-graph' => '96909266',
     'javelin-behavior-diffusion-pull-lastmodified' => '96909266',
     'javelin-behavior-error-log' => '4ccfeb47',
     'javelin-behavior-global-drag-and-drop' => '4f81c788',
     'javelin-behavior-history-install' => '4f81c788',
     'javelin-behavior-konami' => '4f81c788',
     'javelin-behavior-lightbox-attachments' => '4f81c788',
     'javelin-behavior-load-blame' => 'd07a3bc2',
     'javelin-behavior-maniphest-batch-selector' => '98f64f07',
     'javelin-behavior-maniphest-subpriority-editor' => '98f64f07',
     'javelin-behavior-maniphest-transaction-controls' => '98f64f07',
     'javelin-behavior-maniphest-transaction-expand' => '98f64f07',
     'javelin-behavior-maniphest-transaction-preview' => '98f64f07',
     'javelin-behavior-phabricator-active-nav' => '4f81c788',
     'javelin-behavior-phabricator-autofocus' => '4f81c788',
     'javelin-behavior-phabricator-gesture' => '4f81c788',
     'javelin-behavior-phabricator-hovercards' => '4f81c788',
     'javelin-behavior-phabricator-keyboard-shortcuts' => '4f81c788',
     'javelin-behavior-phabricator-nav' => '4f81c788',
     'javelin-behavior-phabricator-object-selector' => 'd07a3bc2',
     'javelin-behavior-phabricator-oncopy' => '4f81c788',
     'javelin-behavior-phabricator-remarkup-assist' => '4f81c788',
     'javelin-behavior-phabricator-reveal-content' => '4f81c788',
     'javelin-behavior-phabricator-search-typeahead' => '4f81c788',
     'javelin-behavior-phabricator-tooltips' => '4f81c788',
     'javelin-behavior-phabricator-watch-anchor' => '4f81c788',
     'javelin-behavior-refresh-csrf' => '4f81c788',
     'javelin-behavior-repository-crossreference' => 'd07a3bc2',
     'javelin-behavior-toggle-class' => '4f81c788',
     'javelin-behavior-workflow' => '4f81c788',
     'javelin-dom' => '2dbbb7d1',
     'javelin-event' => '2dbbb7d1',
     'javelin-history' => '2dbbb7d1',
     'javelin-install' => '2dbbb7d1',
     'javelin-json' => '2dbbb7d1',
     'javelin-mask' => '2dbbb7d1',
     'javelin-request' => '2dbbb7d1',
     'javelin-resource' => '2dbbb7d1',
     'javelin-stratcom' => '2dbbb7d1',
     'javelin-tokenizer' => '2dbbb7d1',
     'javelin-typeahead' => '2dbbb7d1',
     'javelin-typeahead-normalizer' => '2dbbb7d1',
     'javelin-typeahead-ondemand-source' => '2dbbb7d1',
     'javelin-typeahead-preloaded-source' => '2dbbb7d1',
     'javelin-typeahead-source' => '2dbbb7d1',
     'javelin-uri' => '2dbbb7d1',
     'javelin-util' => '2dbbb7d1',
     'javelin-vector' => '2dbbb7d1',
     'javelin-workflow' => '2dbbb7d1',
     'lightbox-attachment-css' => '4c072d06',
     'maniphest-task-summary-css' => '06bacb9a',
     'maniphest-transaction-detail-css' => '06bacb9a',
     'phabricator-action-list-view-css' => '4c072d06',
     'phabricator-application-launch-view-css' => '4c072d06',
     'phabricator-busy' => '4f81c788',
     'phabricator-content-source-view-css' => '09216861',
     'phabricator-core-css' => '4c072d06',
     'phabricator-crumbs-view-css' => '4c072d06',
     'phabricator-drag-and-drop-file-upload' => 'd07a3bc2',
     'phabricator-dropdown-menu' => '4f81c788',
     'phabricator-file-upload' => '4f81c788',
     'phabricator-filetree-view-css' => '4c072d06',
     'phabricator-flag-css' => '4c072d06',
     'phabricator-header-view-css' => '4c072d06',
     'phabricator-hovercard' => '4f81c788',
     'phabricator-jump-nav' => '4c072d06',
     'phabricator-keyboard-shortcut' => '4f81c788',
     'phabricator-keyboard-shortcut-manager' => '4f81c788',
     'phabricator-main-menu-view' => '4c072d06',
     'phabricator-menu-item' => '4f81c788',
     'phabricator-nav-view-css' => '4c072d06',
     'phabricator-notification' => '4f81c788',
     'phabricator-notification-css' => '4c072d06',
     'phabricator-notification-menu-css' => '4c072d06',
     'phabricator-object-item-list-view-css' => '4c072d06',
     'phabricator-object-selector-css' => '09216861',
     'phabricator-phtize' => '4f81c788',
     'phabricator-prefab' => '4f81c788',
     'phabricator-project-tag-css' => '06bacb9a',
     'phabricator-property-list-view-css' => '4c072d06',
     'phabricator-remarkup-css' => '4c072d06',
     'phabricator-shaped-request' => 'd07a3bc2',
     'phabricator-side-menu-view-css' => '4c072d06',
     'phabricator-standard-page-view' => '4c072d06',
     'phabricator-tag-view-css' => '4c072d06',
     'phabricator-textareautils' => '4f81c788',
     'phabricator-tooltip' => '4f81c788',
     'phabricator-transaction-view-css' => '4c072d06',
     'phabricator-zindex-css' => '4c072d06',
     'phui-button-css' => '4c072d06',
     'phui-form-css' => '4c072d06',
     'phui-form-view-css' => '4c072d06',
     'phui-icon-view-css' => '4c072d06',
     'phui-spacing-css' => '4c072d06',
     'sprite-apps-large-css' => '4c072d06',
     'sprite-gradient-css' => '4c072d06',
     'sprite-icons-css' => '4c072d06',
     'sprite-menu-css' => '4c072d06',
     'syntax-highlighting-css' => '4c072d06',
   ),
 ));
diff --git a/src/applications/conduit/controller/PhabricatorConduitConsoleController.php b/src/applications/conduit/controller/PhabricatorConduitConsoleController.php
index 075bca74e..d20198a25 100644
--- a/src/applications/conduit/controller/PhabricatorConduitConsoleController.php
+++ b/src/applications/conduit/controller/PhabricatorConduitConsoleController.php
@@ -1,130 +1,134 @@
 <?php
 
 /**
  * @group conduit
  */
 final class PhabricatorConduitConsoleController
   extends PhabricatorConduitController {
 
   private $method;
 
   public function willProcessRequest(array $data) {
     $this->method = $data['method'];
   }
 
   public function processRequest() {
 
     $request = $this->getRequest();
     $viewer = $request->getUser();
 
     $method = id(new PhabricatorConduitMethodQuery())
       ->setViewer($viewer)
       ->withMethods(array($this->method))
       ->executeOne();
 
     if (!$method) {
       return new Aphront404Response();
     }
 
     $status = $method->getMethodStatus();
     $reason = $method->getMethodStatusDescription();
 
     $status_view = null;
     if ($status != ConduitAPIMethod::METHOD_STATUS_STABLE) {
       $status_view = new AphrontErrorView();
       switch ($status) {
         case ConduitAPIMethod::METHOD_STATUS_DEPRECATED:
           $status_view->setTitle('Deprecated Method');
           $status_view->appendChild(
             nonempty($reason, "This method is deprecated."));
           break;
         case ConduitAPIMethod::METHOD_STATUS_UNSTABLE:
           $status_view->setSeverity(AphrontErrorView::SEVERITY_WARNING);
           $status_view->setTitle('Unstable Method');
           $status_view->appendChild(
             nonempty(
               $reason,
               "This method is new and unstable. Its interface is subject ".
               "to change."));
           break;
       }
     }
 
     $error_types = $method->defineErrorTypes();
     if ($error_types) {
       $error_description = array();
       foreach ($error_types as $error => $meaning) {
         $error_description[] = hsprintf(
           '<li><strong>%s:</strong> %s</li>',
           $error,
           $meaning);
       }
       $error_description = phutil_tag('ul', array(), $error_description);
     } else {
       $error_description = "This method does not raise any specific errors.";
     }
 
     $form = new AphrontFormView();
     $form
       ->setUser($request->getUser())
       ->setAction('/api/'.$this->method)
       ->addHiddenInput('allowEmptyParams', 1)
       ->appendChild(
         id(new AphrontFormStaticControl())
           ->setLabel('Description')
           ->setValue($method->getMethodDescription()))
       ->appendChild(
         id(new AphrontFormStaticControl())
           ->setLabel('Returns')
           ->setValue($method->defineReturnType()))
       ->appendChild(
         id(new AphrontFormMarkupControl())
           ->setLabel('Errors')
           ->setValue($error_description))
       ->appendChild(hsprintf(
         '<p class="aphront-form-instructions">Enter parameters using '.
         '<strong>JSON</strong>. For instance, to enter a list, type: '.
         '<tt>["apple", "banana", "cherry"]</tt>'));
 
     $params = $method->defineParamTypes();
     foreach ($params as $param => $desc) {
       $form->appendChild(
         id(new AphrontFormTextControl())
           ->setLabel($param)
           ->setName("params[{$param}]")
           ->setCaption($desc));
     }
 
     $form
       ->appendChild(
         id(new AphrontFormSelectControl())
           ->setLabel('Output Format')
           ->setName('output')
           ->setOptions(
             array(
               'human' => 'Human Readable',
               'json'  => 'JSON',
             )))
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->addCancelButton($this->getApplicationURI())
           ->setValue('Call Method'));
 
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText($method->getAPIMethodName())
+      ->setFormError($status_view)
+      ->setForm($form);
+
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addCrumb(
       id(new PhabricatorCrumbView())
         ->setName($method->getAPIMethodName()));
 
     return $this->buildApplicationPage(
       array(
         $crumbs,
-        $status_view,
-        $form,
+        $form_box,
       ),
       array(
         'title' => $method->getAPIMethodName(),
         'device' => true,
       ));
   }
 
 }
diff --git a/src/applications/differential/controller/DifferentialRevisionEditController.php b/src/applications/differential/controller/DifferentialRevisionEditController.php
index e31a15dee..3d80481be 100644
--- a/src/applications/differential/controller/DifferentialRevisionEditController.php
+++ b/src/applications/differential/controller/DifferentialRevisionEditController.php
@@ -1,223 +1,227 @@
 <?php
 
 final class DifferentialRevisionEditController extends DifferentialController {
 
   private $id;
 
   public function willProcessRequest(array $data) {
     $this->id = idx($data, 'id');
   }
 
   public function processRequest() {
     $request = $this->getRequest();
     $viewer = $request->getUser();
 
     if (!$this->id) {
       $this->id = $request->getInt('revisionID');
     }
 
     if ($this->id) {
       $revision = id(new DifferentialRevisionQuery())
         ->setViewer($viewer)
         ->withIDs(array($this->id))
         ->needRelationships(true)
         ->needReviewerStatus(true)
         ->executeOne();
       if (!$revision) {
         return new Aphront404Response();
       }
     } else {
       $revision = new DifferentialRevision();
       $revision->attachRelationships(array());
     }
 
     $aux_fields = $this->loadAuxiliaryFields($revision);
 
     $diff_id = $request->getInt('diffID');
     if ($diff_id) {
       $diff = id(new DifferentialDiffQuery())
         ->setViewer($viewer)
         ->withIDs(array($diff_id))
         ->executeOne();
       if (!$diff) {
         return new Aphront404Response();
       }
       if ($diff->getRevisionID()) {
         // TODO: Redirect?
         throw new Exception("This diff is already attached to a revision!");
       }
     } else {
       $diff = null;
     }
 
     $errors = array();
 
 
     if ($request->isFormPost() && !$request->getStr('viaDiffView')) {
       foreach ($aux_fields as $aux_field) {
         $aux_field->setValueFromRequest($request);
         try {
           $aux_field->validateField();
         } catch (DifferentialFieldValidationException $ex) {
           $errors[] = $ex->getMessage();
         }
       }
 
       if (!$errors) {
         $is_new = !$revision->getID();
         $user = $request->getUser();
 
         $event = new PhabricatorEvent(
           PhabricatorEventType::TYPE_DIFFERENTIAL_WILLEDITREVISION,
             array(
               'revision'      => $revision,
               'new'           => $is_new,
             ));
 
         $event->setUser($user);
         $event->setAphrontRequest($request);
         PhutilEventEngine::dispatchEvent($event);
 
         $editor = new DifferentialRevisionEditor($revision);
         $editor->setActor($request->getUser());
         if ($diff) {
           $editor->addDiff($diff, $request->getStr('comments'));
         }
         $editor->setAuxiliaryFields($aux_fields);
         $editor->save();
 
         $event = new PhabricatorEvent(
           PhabricatorEventType::TYPE_DIFFERENTIAL_DIDEDITREVISION,
             array(
               'revision'      => $revision,
               'new'           => $is_new,
             ));
         $event->setUser($user);
         $event->setAphrontRequest($request);
         PhutilEventEngine::dispatchEvent($event);
 
         return id(new AphrontRedirectResponse())
           ->setURI('/D'.$revision->getID());
       }
     }
 
     $aux_phids = array();
     foreach ($aux_fields as $key => $aux_field) {
       $aux_phids[$key] = $aux_field->getRequiredHandlePHIDsForRevisionEdit();
     }
     $phids = array_mergev($aux_phids);
     $phids = array_unique($phids);
     $handles = $this->loadViewerHandles($phids);
     foreach ($aux_fields as $key => $aux_field) {
       $aux_field->setHandles(array_select_keys($handles, $aux_phids[$key]));
     }
 
     $form = new AphrontFormView();
     $form->setUser($request->getUser());
     if ($diff) {
       $form->addHiddenInput('diffID', $diff->getID());
     }
 
     if ($revision->getID()) {
       $form->setAction('/differential/revision/edit/'.$revision->getID().'/');
     } else {
       $form->setAction('/differential/revision/edit/');
     }
 
     $error_view = null;
     if ($errors) {
       $error_view = id(new AphrontErrorView())
         ->setTitle(pht('Form Errors'))
         ->setErrors($errors);
     }
 
     if ($diff && $revision->getID()) {
       $form
         ->appendChild(
           id(new AphrontFormTextAreaControl())
             ->setLabel(pht('Comments'))
             ->setName('comments')
             ->setCaption(pht("Explain what's new in this diff."))
             ->setValue($request->getStr('comments')))
         ->appendChild(
           id(new AphrontFormSubmitControl())
             ->setValue(pht('Save')))
         ->appendChild(
           id(new AphrontFormDividerControl()));
     }
 
     $preview = array();
     foreach ($aux_fields as $aux_field) {
       $control = $aux_field->renderEditControl();
       if ($control) {
         $form->appendChild($control);
       }
       $preview[] = $aux_field->renderEditPreview();
     }
 
     $submit = id(new AphrontFormSubmitControl())
       ->setValue('Save');
     if ($diff) {
       $submit->addCancelButton('/differential/diff/'.$diff->getID().'/');
     } else {
       $submit->addCancelButton('/D'.$revision->getID());
     }
 
     $form->appendChild($submit);
 
     $crumbs = $this->buildApplicationCrumbs();
     if ($revision->getID()) {
       if ($diff) {
         $title = pht('Update Differential Revision');
         $crumbs->addCrumb(
           id(new PhabricatorCrumbView())
             ->setName('D'.$revision->getID())
             ->setHref('/differential/diff/'.$diff->getID().'/'));
       } else {
         $title = pht('Edit Differential Revision');
         $crumbs->addCrumb(
           id(new PhabricatorCrumbView())
             ->setName('D'.$revision->getID())
             ->setHref('/D'.$revision->getID()));
       }
     } else {
       $title = pht('Create New Differential Revision');
     }
 
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText($title)
+      ->setFormError($error_view)
+      ->setForm($form);
+
     $crumbs->addCrumb(
       id(new PhabricatorCrumbView())
         ->setName($title));
 
     return $this->buildApplicationPage(
       array(
         $crumbs,
-        $error_view,
-        $form,
+        $form_box,
         $preview),
       array(
         'title' => $title,
         'device' => true,
       ));
   }
 
   private function loadAuxiliaryFields(DifferentialRevision $revision) {
 
     $user = $this->getRequest()->getUser();
 
     $aux_fields = DifferentialFieldSelector::newSelector()
       ->getFieldSpecifications();
     foreach ($aux_fields as $key => $aux_field) {
       $aux_field->setRevision($revision);
       if (!$aux_field->shouldAppearOnEdit()) {
         unset($aux_fields[$key]);
       } else {
         $aux_field->setUser($user);
       }
     }
 
     return DifferentialAuxiliaryField::loadFromStorage(
       $revision,
       $aux_fields);
   }
 
 }
diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
index c75f93225..1db0302cc 100644
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -1,987 +1,988 @@
 <?php
 
 final class DiffusionCommitController extends DiffusionController {
 
   const CHANGES_LIMIT = 100;
 
   private $auditAuthorityPHIDs;
   private $highlightedAudits;
 
   public function willProcessRequest(array $data) {
     // This controller doesn't use blob/path stuff, just pass the dictionary
     // in directly instead of using the AphrontRequest parsing mechanism.
     $data['user'] = $this->getRequest()->getUser();
     $drequest = DiffusionRequest::newFromDictionary($data);
     $this->diffusionRequest = $drequest;
   }
 
   public function processRequest() {
     $drequest = $this->getDiffusionRequest();
     $request = $this->getRequest();
     $user = $request->getUser();
 
     if ($request->getStr('diff')) {
       return $this->buildRawDiffResponse($drequest);
     }
 
     $callsign = $drequest->getRepository()->getCallsign();
 
     $content = array();
     $repository = $drequest->getRepository();
     $commit = $drequest->loadCommit();
 
     if (!$commit) {
       $exists = $this->callConduitWithDiffusionRequest(
         'diffusion.existsquery',
         array('commit' => $drequest->getCommit()));
       if (!$exists) {
         return new Aphront404Response();
       }
       return $this->buildStandardPageResponse(
         id(new AphrontErrorView())
         ->setTitle(pht('Error displaying commit.'))
         ->appendChild(pht('Failed to load the commit because the commit has '.
                       'not been parsed yet.')),
           array('title' => pht('Commit Still Parsing')));
     }
 
     $commit_data = $drequest->loadCommitData();
     $commit->attachCommitData($commit_data);
 
     $top_anchor = id(new PhabricatorAnchorView())
       ->setAnchorName('top')
       ->setNavigationMarker(true);
 
     $audit_requests = id(new PhabricatorAuditQuery())
       ->withCommitPHIDs(array($commit->getPHID()))
       ->execute();
     $this->auditAuthorityPHIDs =
       PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
 
 
     $is_foreign = $commit_data->getCommitDetail('foreign-svn-stub');
     $changesets = null;
     if ($is_foreign) {
       $subpath = $commit_data->getCommitDetail('svn-subpath');
 
       $error_panel = new AphrontErrorView();
       $error_panel->setTitle(pht('Commit Not Tracked'));
       $error_panel->setSeverity(AphrontErrorView::SEVERITY_WARNING);
       $error_panel->appendChild(
         pht("This Diffusion repository is configured to track only one ".
         "subdirectory of the entire Subversion repository, and this commit ".
         "didn't affect the tracked subdirectory ('%s'), so no ".
         "information is available.", $subpath));
       $content[] = $error_panel;
       $content[] = $top_anchor;
     } else {
       $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
       $engine->setConfig('viewer', $user);
 
       require_celerity_resource('diffusion-commit-view-css');
       require_celerity_resource('phabricator-remarkup-css');
 
       $parents = $this->callConduitWithDiffusionRequest(
         'diffusion.commitparentsquery',
         array('commit' => $drequest->getCommit()));
 
       $headsup_view = id(new PhabricatorHeaderView())
         ->setHeader(nonempty($commit->getSummary(), pht('Commit Detail')));
 
       $headsup_actions = $this->renderHeadsupActionList($commit, $repository);
 
       $commit_properties = $this->loadCommitProperties(
         $commit,
         $commit_data,
         $parents,
         $audit_requests);
       $property_list = id(new PhabricatorPropertyListView())
         ->setHasKeyboardShortcuts(true)
         ->setUser($user)
         ->setObject($commit);
       foreach ($commit_properties as $key => $value) {
         $property_list->addProperty($key, $value);
       }
 
       $message = $commit_data->getCommitMessage();
 
       $revision = $commit->getCommitIdentifier();
       $message = $repository->linkBugtraq($message, $revision);
 
       $message = $engine->markupText($message);
 
       $property_list->invokeWillRenderEvent();
       $property_list->addTextContent(
         phutil_tag(
           'div',
           array(
             'class' => 'diffusion-commit-message phabricator-remarkup',
           ),
           $message));
       $content[] = $top_anchor;
       $content[] = $headsup_view;
       $content[] = $headsup_actions;
       $content[] = $property_list;
     }
 
     $content[] = $this->buildComments($commit);
 
     $hard_limit = 1000;
 
     $change_query = DiffusionPathChangeQuery::newFromDiffusionRequest(
       $drequest);
     $change_query->setLimit($hard_limit + 1);
     $changes = $change_query->loadChanges();
 
     $was_limited = (count($changes) > $hard_limit);
     if ($was_limited) {
       $changes = array_slice($changes, 0, $hard_limit);
     }
 
     $content[] = $this->buildMergesTable($commit);
 
     $owners_paths = array();
     if ($this->highlightedAudits) {
       $packages = id(new PhabricatorOwnersPackage())->loadAllWhere(
         'phid IN (%Ls)',
         mpull($this->highlightedAudits, 'getAuditorPHID'));
       if ($packages) {
         $owners_paths = id(new PhabricatorOwnersPath())->loadAllWhere(
           'repositoryPHID = %s AND packageID IN (%Ld)',
           $repository->getPHID(),
           mpull($packages, 'getID'));
       }
     }
 
     $change_table = new DiffusionCommitChangeTableView();
     $change_table->setDiffusionRequest($drequest);
     $change_table->setPathChanges($changes);
     $change_table->setOwnersPaths($owners_paths);
 
     $count = count($changes);
 
     $bad_commit = null;
     if ($count == 0) {
       $bad_commit = queryfx_one(
         id(new PhabricatorRepository())->establishConnection('r'),
         'SELECT * FROM %T WHERE fullCommitName = %s',
         PhabricatorRepository::TABLE_BADCOMMIT,
         'r'.$callsign.$commit->getCommitIdentifier());
     }
 
     if ($bad_commit) {
       $error_panel = new AphrontErrorView();
       $error_panel->setTitle(pht('Bad Commit'));
       $error_panel->appendChild($bad_commit['description']);
 
       $content[] = $error_panel;
     } else if ($is_foreign) {
       // Don't render anything else.
     } else if (!count($changes)) {
       $no_changes = new AphrontErrorView();
       $no_changes->setSeverity(AphrontErrorView::SEVERITY_WARNING);
       $no_changes->setTitle(pht('Not Yet Parsed'));
       // TODO: This can also happen with weird SVN changes that don't do
       // anything (or only alter properties?), although the real no-changes case
       // is extremely rare and might be impossible to produce organically. We
       // should probably write some kind of "Nothing Happened!" change into the
       // DB once we parse these changes so we can distinguish between
       // "not parsed yet" and "no changes".
       $no_changes->appendChild(
         pht("This commit hasn't been fully parsed yet (or doesn't affect any ".
         "paths)."));
       $content[] = $no_changes;
     } else if ($was_limited) {
       $huge_commit = new AphrontErrorView();
       $huge_commit->setSeverity(AphrontErrorView::SEVERITY_WARNING);
       $huge_commit->setTitle(pht('Enormous Commit'));
       $huge_commit->appendChild(
         pht(
           'This commit is enormous, and affects more than %d files. '.
           'Changes are not shown.',
           $hard_limit));
       $content[] = $huge_commit;
     } else {
       $change_panel = new AphrontPanelView();
       $change_panel->setHeader("Changes (".number_format($count).")");
       $change_panel->setID('toc');
       if ($count > self::CHANGES_LIMIT) {
         $show_all_button = phutil_tag(
           'a',
           array(
             'class'   => 'button green',
             'href'    => '?show_all=true',
           ),
           pht('Show All Changes'));
         $warning_view = id(new AphrontErrorView())
           ->setSeverity(AphrontErrorView::SEVERITY_WARNING)
           ->setTitle('Very Large Commit')
           ->appendChild(phutil_tag(
             'p',
             array(),
             pht("This commit is very large. Load each file individually.")));
 
         $change_panel->appendChild($warning_view);
         $change_panel->addButton($show_all_button);
       }
 
       $change_panel->appendChild($change_table);
       $change_panel->setNoBackground();
 
       $content[] = $change_panel;
 
       $changesets = DiffusionPathChange::convertToDifferentialChangesets(
         $changes);
 
       $vcs = $repository->getVersionControlSystem();
       switch ($vcs) {
         case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN:
           $vcs_supports_directory_changes = true;
           break;
         case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT:
         case PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL:
           $vcs_supports_directory_changes = false;
           break;
         default:
           throw new Exception("Unknown VCS.");
       }
 
       $references = array();
       foreach ($changesets as $key => $changeset) {
         $file_type = $changeset->getFileType();
         if ($file_type == DifferentialChangeType::FILE_DIRECTORY) {
           if (!$vcs_supports_directory_changes) {
             unset($changesets[$key]);
             continue;
           }
         }
 
         $references[$key] = $drequest->generateURI(
           array(
             'action' => 'rendering-ref',
             'path'   => $changeset->getFilename(),
           ));
       }
 
       // TODO: Some parts of the views still rely on properties of the
       // DifferentialChangeset. Make the objects ephemeral to make sure we don't
       // accidentally save them, and then set their ID to the appropriate ID for
       // this application (the path IDs).
       $path_ids = array_flip(mpull($changes, 'getPath'));
       foreach ($changesets as $changeset) {
         $changeset->makeEphemeral();
         $changeset->setID($path_ids[$changeset->getFilename()]);
       }
 
       if ($count <= self::CHANGES_LIMIT) {
         $visible_changesets = $changesets;
       } else {
         $visible_changesets = array();
         $inlines = id(new PhabricatorAuditInlineComment())->loadAllWhere(
           'commitPHID = %s AND (auditCommentID IS NOT NULL OR authorPHID = %s)',
           $commit->getPHID(),
           $user->getPHID());
         $path_ids = mpull($inlines, null, 'getPathID');
         foreach ($changesets as $key => $changeset) {
           if (array_key_exists($changeset->getID(), $path_ids)) {
             $visible_changesets[$key] = $changeset;
           }
         }
       }
 
       $change_list_title = DiffusionView::nameCommit(
         $repository,
         $commit->getCommitIdentifier());
       $change_list = new DifferentialChangesetListView();
       $change_list->setTitle($change_list_title);
       $change_list->setChangesets($changesets);
       $change_list->setVisibleChangesets($visible_changesets);
       $change_list->setRenderingReferences($references);
       $change_list->setRenderURI('/diffusion/'.$callsign.'/diff/');
       $change_list->setRepository($repository);
       $change_list->setUser($user);
       // pick the first branch for "Browse in Diffusion" View Option
       $branches     = $commit_data->getCommitDetail('seenOnBranches', array());
       $first_branch = reset($branches);
       $change_list->setBranch($first_branch);
 
       $change_list->setStandaloneURI(
         '/diffusion/'.$callsign.'/diff/');
       $change_list->setRawFileURIs(
         // TODO: Implement this, somewhat tricky if there's an octopus merge
         // or whatever?
         null,
         '/diffusion/'.$callsign.'/diff/?view=r');
 
       $change_list->setInlineCommentControllerURI(
         '/diffusion/inline/edit/'.phutil_escape_uri($commit->getPHID()).'/');
 
       $change_references = array();
       foreach ($changesets as $key => $changeset) {
         $change_references[$changeset->getID()] = $references[$key];
       }
       $change_table->setRenderingReferences($change_references);
 
       $content[] = $change_list->render();
     }
 
     $content[] = $this->renderAddCommentPanel($commit, $audit_requests);
 
     $commit_id = 'r'.$callsign.$commit->getCommitIdentifier();
     $short_name = DiffusionView::nameCommit(
       $repository,
       $commit->getCommitIdentifier());
 
     $crumbs = $this->buildCrumbs(array(
       'commit' => true,
     ));
 
     $prefs = $user->loadPreferences();
     $pref_filetree = PhabricatorUserPreferences::PREFERENCE_DIFF_FILETREE;
     $pref_collapse = PhabricatorUserPreferences::PREFERENCE_NAV_COLLAPSED;
     $show_filetree = $prefs->getPreference($pref_filetree);
     $collapsed = $prefs->getPreference($pref_collapse);
 
     if ($changesets && $show_filetree) {
       $nav = id(new DifferentialChangesetFileTreeSideNavBuilder())
         ->setAnchorName('top')
         ->setTitle($short_name)
         ->setBaseURI(new PhutilURI('/'.$commit_id))
         ->build($changesets)
         ->setCrumbs($crumbs)
         ->setCollapsed((bool)$collapsed)
         ->appendChild($content);
       $content = $nav;
     } else {
       $content = array($crumbs, $content);
     }
 
     return $this->buildApplicationPage(
       $content,
       array(
         'title' => $commit_id,
         'pageObjects' => array($commit->getPHID()),
       ));
   }
 
   private function loadCommitProperties(
     PhabricatorRepositoryCommit $commit,
     PhabricatorRepositoryCommitData $data,
     array $parents,
     array $audit_requests) {
 
     assert_instances_of($parents, 'PhabricatorRepositoryCommit');
     $user = $this->getRequest()->getUser();
     $commit_phid = $commit->getPHID();
 
     $edge_query = id(new PhabricatorEdgeQuery())
       ->withSourcePHIDs(array($commit_phid))
       ->withEdgeTypes(array(
         PhabricatorEdgeConfig::TYPE_COMMIT_HAS_TASK,
         PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT,
         PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV,
       ));
 
     $edges = $edge_query->execute();
 
     $task_phids = array_keys(
       $edges[$commit_phid][PhabricatorEdgeConfig::TYPE_COMMIT_HAS_TASK]);
     $proj_phids = array_keys(
       $edges[$commit_phid][PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT]);
     $revision_phid = key(
       $edges[$commit_phid][PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV]);
 
     $phids = $edge_query->getDestinationPHIDs(array($commit_phid));
 
     if ($data->getCommitDetail('authorPHID')) {
       $phids[] = $data->getCommitDetail('authorPHID');
     }
     if ($data->getCommitDetail('reviewerPHID')) {
       $phids[] = $data->getCommitDetail('reviewerPHID');
     }
     if ($data->getCommitDetail('committerPHID')) {
       $phids[] = $data->getCommitDetail('committerPHID');
     }
     if ($parents) {
       foreach ($parents as $parent) {
         $phids[] = $parent->getPHID();
       }
     }
 
     $handles = array();
     if ($phids) {
       $handles = $this->loadViewerHandles($phids);
     }
 
     $props = array();
 
     if ($commit->getAuditStatus()) {
       $status = PhabricatorAuditCommitStatusConstants::getStatusName(
         $commit->getAuditStatus());
       $tag = id(new PhabricatorTagView())
         ->setType(PhabricatorTagView::TYPE_STATE)
         ->setName($status);
 
       switch ($commit->getAuditStatus()) {
         case PhabricatorAuditCommitStatusConstants::NEEDS_AUDIT:
           $tag->setBackgroundColor(PhabricatorTagView::COLOR_ORANGE);
           break;
         case PhabricatorAuditCommitStatusConstants::CONCERN_RAISED:
           $tag->setBackgroundColor(PhabricatorTagView::COLOR_RED);
           break;
         case PhabricatorAuditCommitStatusConstants::PARTIALLY_AUDITED:
           $tag->setBackgroundColor(PhabricatorTagView::COLOR_BLUE);
           break;
         case PhabricatorAuditCommitStatusConstants::FULLY_AUDITED:
           $tag->setBackgroundColor(PhabricatorTagView::COLOR_GREEN);
           break;
       }
 
       $props['Status'] = $tag;
     }
 
     if ($audit_requests) {
       $props['Auditors'] = $this->renderAuditStatusView($audit_requests);
     }
 
     $props['Committed'] = phabricator_datetime($commit->getEpoch(), $user);
 
     $author_phid = $data->getCommitDetail('authorPHID');
     if ($data->getCommitDetail('authorPHID')) {
       $props['Author'] = $handles[$author_phid]->renderLink();
     } else {
       $props['Author'] = $data->getAuthorName();
     }
 
     $reviewer_phid = $data->getCommitDetail('reviewerPHID');
     if ($reviewer_phid) {
       $props['Reviewer'] = $handles[$reviewer_phid]->renderLink();
     }
 
     $committer = $data->getCommitDetail('committer');
     if ($committer) {
       $committer_phid = $data->getCommitDetail('committerPHID');
       if ($data->getCommitDetail('committerPHID')) {
         $props['Committer'] = $handles[$committer_phid]->renderLink();
       } else {
         $props['Committer'] = $committer;
       }
     }
 
     if ($revision_phid) {
       $props['Differential Revision'] = $handles[$revision_phid]->renderLink();
     }
 
     if ($parents) {
       $parent_links = array();
       foreach ($parents as $parent) {
         $parent_links[] = $handles[$parent->getPHID()]->renderLink();
       }
       $props['Parents'] = phutil_implode_html(" \xC2\xB7 ", $parent_links);
     }
 
     $request = $this->getDiffusionRequest();
 
     $props['Branches'] = phutil_tag(
       'span',
       array(
         'id' => 'commit-branches',
       ),
       pht('Unknown'));
     $props['Tags'] = phutil_tag(
       'span',
       array(
         'id' => 'commit-tags',
       ),
       pht('Unknown'));
 
     $callsign = $request->getRepository()->getCallsign();
     $root = '/diffusion/'.$callsign.'/commit/'.$commit->getCommitIdentifier();
     Javelin::initBehavior(
       'diffusion-commit-branches',
       array(
         $root.'/branches/' => 'commit-branches',
         $root.'/tags/' => 'commit-tags',
       ));
 
     $refs = $this->buildRefs($request);
     if ($refs) {
       $props['References'] = $refs;
     }
 
     if ($task_phids) {
       $task_list = array();
       foreach ($task_phids as $phid) {
         $task_list[] = $handles[$phid]->renderLink();
       }
       $task_list = phutil_implode_html(phutil_tag('br'), $task_list);
       $props['Tasks'] = $task_list;
     }
 
     if ($proj_phids) {
       $proj_list = array();
       foreach ($proj_phids as $phid) {
         $proj_list[] = $handles[$phid]->renderLink();
       }
       $proj_list = phutil_implode_html(phutil_tag('br'), $proj_list);
       $props['Projects'] = $proj_list;
     }
 
     return $props;
   }
 
   private function buildComments(PhabricatorRepositoryCommit $commit) {
     $user = $this->getRequest()->getUser();
     $comments = id(new PhabricatorAuditComment())->loadAllWhere(
       'targetPHID = %s ORDER BY dateCreated ASC',
       $commit->getPHID());
 
     $inlines = id(new PhabricatorAuditInlineComment())->loadAllWhere(
       'commitPHID = %s AND auditCommentID IS NOT NULL',
       $commit->getPHID());
 
     $path_ids = mpull($inlines, 'getPathID');
 
     $path_map = array();
     if ($path_ids) {
       $path_map = id(new DiffusionPathQuery())
         ->withPathIDs($path_ids)
         ->execute();
       $path_map = ipull($path_map, 'path', 'id');
     }
 
     $engine = new PhabricatorMarkupEngine();
     $engine->setViewer($user);
 
     foreach ($comments as $comment) {
       $engine->addObject(
         $comment,
         PhabricatorAuditComment::MARKUP_FIELD_BODY);
     }
 
     foreach ($inlines as $inline) {
       $engine->addObject(
         $inline,
         PhabricatorInlineCommentInterface::MARKUP_FIELD_BODY);
     }
 
     $engine->process();
 
     $view = new DiffusionCommentListView();
     $view->setMarkupEngine($engine);
     $view->setUser($user);
     $view->setComments($comments);
     $view->setInlineComments($inlines);
     $view->setPathMap($path_map);
 
     $phids = $view->getRequiredHandlePHIDs();
     $handles = $this->loadViewerHandles($phids);
     $view->setHandles($handles);
 
     return $view;
   }
 
   private function renderAddCommentPanel(
     PhabricatorRepositoryCommit $commit,
     array $audit_requests) {
     assert_instances_of($audit_requests, 'PhabricatorRepositoryAuditRequest');
     $user = $this->getRequest()->getUser();
 
     $is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business');
 
     $pane_id = celerity_generate_unique_node_id();
     Javelin::initBehavior(
       'differential-keyboard-navigation',
       array(
         'haunt' => $pane_id,
       ));
 
     $draft = id(new PhabricatorDraft())->loadOneWhere(
       'authorPHID = %s AND draftKey = %s',
       $user->getPHID(),
       'diffusion-audit-'.$commit->getID());
     if ($draft) {
       $draft = $draft->getDraft();
     } else {
       $draft = null;
     }
 
     $actions = $this->getAuditActions($commit, $audit_requests);
 
     $form = id(new AphrontFormView())
       ->setUser($user)
+      ->setShaded(true)
       ->setAction('/audit/addcomment/')
       ->addHiddenInput('commit', $commit->getPHID())
       ->appendChild(
         id(new AphrontFormSelectControl())
           ->setLabel(pht('Action'))
           ->setName('action')
           ->setID('audit-action')
           ->setOptions($actions))
       ->appendChild(
         id(new AphrontFormTokenizerControl())
           ->setLabel(pht('Add Auditors'))
           ->setName('auditors')
           ->setControlID('add-auditors')
           ->setControlStyle('display: none')
           ->setID('add-auditors-tokenizer')
           ->setDisableBehavior(true))
       ->appendChild(
         id(new AphrontFormTokenizerControl())
           ->setLabel(pht('Add CCs'))
           ->setName('ccs')
           ->setControlID('add-ccs')
           ->setControlStyle('display: none')
           ->setID('add-ccs-tokenizer')
           ->setDisableBehavior(true))
       ->appendChild(
         id(new PhabricatorRemarkupControl())
           ->setLabel(pht('Comments'))
           ->setName('content')
           ->setValue($draft)
           ->setID('audit-content')
           ->setUser($user))
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->setValue($is_serious ? pht('Submit') : pht('Cook the Books')));
 
     $header = new PhabricatorHeaderView();
     $header->setHeader(
       $is_serious ? pht('Audit Commit') : pht('Creative Accounting'));
 
     require_celerity_resource('phabricator-transaction-view-css');
 
     Javelin::initBehavior(
       'differential-add-reviewers-and-ccs',
       array(
         'dynamic' => array(
           'add-auditors-tokenizer' => array(
             'actions' => array('add_auditors' => 1),
             'src' => '/typeahead/common/users/',
             'row' => 'add-auditors',
             'ondemand' => PhabricatorEnv::getEnvConfig('tokenizer.ondemand'),
             'placeholder' => pht('Type a user name...'),
           ),
           'add-ccs-tokenizer' => array(
             'actions' => array('add_ccs' => 1),
             'src' => '/typeahead/common/mailable/',
             'row' => 'add-ccs',
             'ondemand' => PhabricatorEnv::getEnvConfig('tokenizer.ondemand'),
             'placeholder' => pht('Type a user or mailing list...'),
           ),
         ),
         'select' => 'audit-action',
       ));
 
     Javelin::initBehavior('differential-feedback-preview', array(
       'uri'       => '/audit/preview/'.$commit->getID().'/',
       'preview'   => 'audit-preview',
       'content'   => 'audit-content',
       'action'    => 'audit-action',
       'previewTokenizers' => array(
         'auditors' => 'add-auditors-tokenizer',
         'ccs'      => 'add-ccs-tokenizer',
       ),
       'inline'     => 'inline-comment-preview',
       'inlineuri'  => '/diffusion/inline/preview/'.$commit->getPHID().'/',
     ));
 
     $preview_panel = hsprintf(
       '<div class="aphront-panel-preview aphront-panel-flush">
         <div id="audit-preview">
           <div class="aphront-panel-preview-loading-text">
             Loading preview...
           </div>
         </div>
         <div id="inline-comment-preview">
         </div>
       </div>');
 
     // TODO: This is pretty awkward, unify the CSS between Diffusion and
     // Differential better.
     require_celerity_resource('differential-core-view-css');
 
     return phutil_tag(
       'div',
       array(
         'id' => $pane_id,
       ),
       hsprintf(
         '<div class="differential-add-comment-panel">%s%s%s%s</div>',
         id(new PhabricatorAnchorView())
           ->setAnchorName('comment')
           ->setNavigationMarker(true)
           ->render(),
         $header,
         $form,
         $preview_panel));
   }
 
   /**
    * Return a map of available audit actions for rendering into a <select />.
    * This shows the user valid actions, and does not show nonsense/invalid
    * actions (like closing an already-closed commit, or resigning from a commit
    * you have no association with).
    */
   private function getAuditActions(
     PhabricatorRepositoryCommit $commit,
     array $audit_requests) {
     assert_instances_of($audit_requests, 'PhabricatorRepositoryAuditRequest');
     $user = $this->getRequest()->getUser();
 
     $user_is_author = ($commit->getAuthorPHID() == $user->getPHID());
 
     $user_request = null;
     foreach ($audit_requests as $audit_request) {
       if ($audit_request->getAuditorPHID() == $user->getPHID()) {
         $user_request = $audit_request;
         break;
       }
     }
 
     $actions = array();
     $actions[PhabricatorAuditActionConstants::COMMENT] = true;
     $actions[PhabricatorAuditActionConstants::ADD_CCS] = true;
     $actions[PhabricatorAuditActionConstants::ADD_AUDITORS] = true;
 
     // We allow you to accept your own commits. A use case here is that you
     // notice an issue with your own commit and "Raise Concern" as an indicator
     // to other auditors that you're on top of the issue, then later resolve it
     // and "Accept". You can not accept on behalf of projects or packages,
     // however.
     $actions[PhabricatorAuditActionConstants::ACCEPT]  = true;
     $actions[PhabricatorAuditActionConstants::CONCERN] = true;
 
 
     // To resign, a user must have authority on some request and not be the
     // commit's author.
     if (!$user_is_author) {
       $may_resign = false;
 
       $authority_map = array_fill_keys($this->auditAuthorityPHIDs, true);
       foreach ($audit_requests as $request) {
         if (empty($authority_map[$request->getAuditorPHID()])) {
           continue;
         }
         $may_resign = true;
         break;
       }
 
       // If the user has already resigned, don't show "Resign...".
       $status_resigned = PhabricatorAuditStatusConstants::RESIGNED;
       if ($user_request) {
         if ($user_request->getAuditStatus() == $status_resigned) {
           $may_resign = false;
         }
       }
 
       if ($may_resign) {
         $actions[PhabricatorAuditActionConstants::RESIGN] = true;
       }
     }
 
     $status_concern = PhabricatorAuditCommitStatusConstants::CONCERN_RAISED;
     $concern_raised = ($commit->getAuditStatus() == $status_concern);
     $can_close_option = PhabricatorEnv::getEnvConfig(
       'audit.can-author-close-audit');
     if ($can_close_option && $user_is_author && $concern_raised) {
       $actions[PhabricatorAuditActionConstants::CLOSE] = true;
     }
 
     foreach ($actions as $constant => $ignored) {
       $actions[$constant] =
         PhabricatorAuditActionConstants::getActionName($constant);
     }
 
     return $actions;
   }
 
   private function buildMergesTable(PhabricatorRepositoryCommit $commit) {
     $drequest = $this->getDiffusionRequest();
     $limit = 50;
 
     $merges = array();
     try {
       $merges = $this->callConduitWithDiffusionRequest(
         'diffusion.mergedcommitsquery',
         array(
           'commit' => $drequest->getCommit(),
           'limit' => $limit + 1));
     } catch (ConduitException $ex) {
       if ($ex->getMessage() != 'ERR-UNSUPPORTED-VCS') {
         throw $ex;
       }
     }
 
     if (!$merges) {
       return null;
     }
 
     $caption = null;
     if (count($merges) > $limit) {
       $merges = array_slice($merges, 0, $limit);
       $caption =
         "This commit merges more than {$limit} changes. Only the first ".
         "{$limit} are shown.";
     }
 
     $history_table = new DiffusionHistoryTableView();
     $history_table->setUser($this->getRequest()->getUser());
     $history_table->setDiffusionRequest($drequest);
     $history_table->setHistory($merges);
     $history_table->loadRevisions();
 
     $phids = $history_table->getRequiredHandlePHIDs();
     $handles = $this->loadViewerHandles($phids);
     $history_table->setHandles($handles);
 
     $panel = new AphrontPanelView();
     $panel->setHeader(pht('Merged Changes'));
     $panel->setCaption($caption);
     $panel->appendChild($history_table);
     $panel->setNoBackground();
 
     return $panel;
   }
 
   private function renderHeadsupActionList(
     PhabricatorRepositoryCommit $commit,
     PhabricatorRepository $repository) {
 
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $actions = id(new PhabricatorActionListView())
       ->setUser($user)
       ->setObject($commit)
       ->setObjectURI($request->getRequestURI());
 
     // TODO -- integrate permissions into whether or not this action is shown
     $uri = '/diffusion/'.$repository->getCallSign().'/commit/'.
            $commit->getCommitIdentifier().'/edit/';
 
     $action = id(new PhabricatorActionView())
       ->setName(pht('Edit Commit'))
       ->setHref($uri)
       ->setIcon('edit');
     $actions->addAction($action);
 
     require_celerity_resource('phabricator-object-selector-css');
     require_celerity_resource('javelin-behavior-phabricator-object-selector');
 
     $maniphest = 'PhabricatorApplicationManiphest';
     if (PhabricatorApplication::isClassInstalled($maniphest)) {
       $action = id(new PhabricatorActionView())
         ->setName(pht('Edit Maniphest Tasks'))
         ->setIcon('attach')
         ->setHref('/search/attach/'.$commit->getPHID().'/TASK/edge/')
         ->setWorkflow(true);
       $actions->addAction($action);
     }
 
     $action = id(new PhabricatorActionView())
       ->setName(pht('Download Raw Diff'))
       ->setHref($request->getRequestURI()->alter('diff', true))
       ->setIcon('download');
     $actions->addAction($action);
 
     return $actions;
   }
 
   private function buildRefs(DiffusionRequest $request) {
     // this is git-only, so save a conduit round trip and just get out of
     // here if the repository isn't git
     $type_git = PhabricatorRepositoryType::REPOSITORY_TYPE_GIT;
     $repository = $request->getRepository();
     if ($repository->getVersionControlSystem() != $type_git) {
       return null;
     }
 
     $results = $this->callConduitWithDiffusionRequest(
       'diffusion.refsquery',
       array('commit' => $request->getCommit()));
     $ref_links = array();
     foreach ($results as $ref_data) {
       $ref_links[] = phutil_tag('a',
         array('href' => $ref_data['href']),
         $ref_data['ref']);
     }
     return phutil_implode_html(', ', $ref_links);
   }
 
   private function buildRawDiffResponse(DiffusionRequest $drequest) {
     $raw_diff = $this->callConduitWithDiffusionRequest(
       'diffusion.rawdiffquery',
       array(
         'commit' => $drequest->getCommit(),
         'path' => $drequest->getPath()));
 
     $file = PhabricatorFile::buildFromFileDataOrHash(
       $raw_diff,
       array(
         'name' => $drequest->getCommit().'.diff',
       ));
 
     return id(new AphrontRedirectResponse())->setURI($file->getBestURI());
   }
 
   private function renderAuditStatusView(array $audit_requests) {
     assert_instances_of($audit_requests, 'PhabricatorRepositoryAuditRequest');
 
     $phids = mpull($audit_requests, 'getAuditorPHID');
     $this->loadHandles($phids);
 
     $authority_map = array_fill_keys($this->auditAuthorityPHIDs, true);
 
     $view = new PHUIStatusListView();
     foreach ($audit_requests as $request) {
       $item = new PHUIStatusItemView();
 
       switch ($request->getAuditStatus()) {
         case PhabricatorAuditStatusConstants::AUDIT_NOT_REQUIRED:
           $item->setIcon('open-blue', pht('Commented'));
           break;
         case PhabricatorAuditStatusConstants::AUDIT_REQUIRED:
           $item->setIcon('warning-blue', pht('Audit Required'));
           break;
         case PhabricatorAuditStatusConstants::CONCERNED:
           $item->setIcon('reject-red', pht('Concern Raised'));
           break;
         case PhabricatorAuditStatusConstants::ACCEPTED:
           $item->setIcon('accept-green', pht('Accepted'));
           break;
         case PhabricatorAuditStatusConstants::AUDIT_REQUESTED:
           $item->setIcon('warning-dark', pht('Audit Requested'));
           break;
         case PhabricatorAuditStatusConstants::RESIGNED:
           $item->setIcon('open-dark', pht('Accepted'));
           break;
         case PhabricatorAuditStatusConstants::CLOSED:
           $item->setIcon('accept-blue', pht('Accepted'));
           break;
         case PhabricatorAuditStatusConstants::CC:
           $item->setIcon('info-dark', pht('Subscribed'));
           break;
       }
 
       $note = array();
       foreach ($request->getAuditReasons() as $reason) {
         $note[] = phutil_tag('div', array(), $reason);
       }
       $item->setNote($note);
 
       $auditor_phid = $request->getAuditorPHID();
       $target = $this->getHandle($auditor_phid)->renderLink();
       $item->setTarget($target);
 
       if (isset($authority_map[$auditor_phid])) {
         $item->setHighlighted(true);
       }
 
       $view->addItem($item);
     }
 
     return $view;
   }
 
 }
diff --git a/src/applications/diffusion/controller/DiffusionCommitEditController.php b/src/applications/diffusion/controller/DiffusionCommitEditController.php
index 52471ed69..a84c8a0d0 100644
--- a/src/applications/diffusion/controller/DiffusionCommitEditController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitEditController.php
@@ -1,98 +1,98 @@
 <?php
 
 final class DiffusionCommitEditController extends DiffusionController {
 
   public function willProcessRequest(array $data) {
     $data['user'] = $this->getRequest()->getUser();
     $this->diffusionRequest = DiffusionRequest::newFromDictionary($data);
   }
 
   public function processRequest() {
 
     $request    = $this->getRequest();
     $user       = $request->getUser();
     $drequest   = $this->getDiffusionRequest();
     $callsign   = $drequest->getRepository()->getCallsign();
     $repository = $drequest->getRepository();
     $commit     = $drequest->loadCommit();
     $page_title = pht('Edit Diffusion Commit');
 
     if (!$commit) {
       return new Aphront404Response();
     }
 
     $commit_phid        = $commit->getPHID();
     $edge_type          = PhabricatorEdgeConfig::TYPE_COMMIT_HAS_PROJECT;
     $current_proj_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
       $commit_phid,
       $edge_type);
     $handles = $this->loadViewerHandles($current_proj_phids);
     $proj_t_values = mpull($handles, 'getFullName', 'getPHID');
 
     if ($request->isFormPost()) {
       $proj_phids = $request->getArr('projects');
       $new_proj_phids = array_values($proj_phids);
       $rem_proj_phids = array_diff($current_proj_phids,
                                    $new_proj_phids);
       $editor         = id(new PhabricatorEdgeEditor());
       $editor->setActor($user);
       foreach ($rem_proj_phids as $phid) {
         $editor->removeEdge($commit_phid, $edge_type, $phid);
       }
       foreach ($new_proj_phids as $phid) {
         $editor->addEdge($commit_phid, $edge_type, $phid);
       }
       $editor->save();
 
       id(new PhabricatorSearchIndexer())
         ->indexDocumentByPHID($commit->getPHID());
 
       return id(new AphrontRedirectResponse())
       ->setURI('/r'.$callsign.$commit->getCommitIdentifier());
     }
 
     $tokenizer_id = celerity_generate_unique_node_id();
     $form         = id(new AphrontFormView())
       ->setUser($user)
       ->setAction($request->getRequestURI()->getPath())
       ->appendChild(
         id(new AphrontFormTokenizerControl())
         ->setLabel(pht('Projects'))
         ->setName('projects')
         ->setValue($proj_t_values)
         ->setID($tokenizer_id)
         ->setCaption(
           javelin_tag(
             'a',
             array(
               'href'        => '/project/create/',
               'mustcapture' => true,
               'sigil'       => 'project-create',
             ),
             pht('Create New Project')))
         ->setDatasource('/typeahead/common/projects/'));;
 
     Javelin::initBehavior('project-create', array(
       'tokenizerID' => $tokenizer_id,
     ));
 
     $submit = id(new AphrontFormSubmitControl())
       ->setValue(pht('Save'))
       ->addCancelButton('/r'.$callsign.$commit->getCommitIdentifier());
     $form->appendChild($submit);
 
-    $header = new PhabricatorHeaderView();
-    $header->setHeader(pht('Edit Diffusion Commit'));
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText($page_title)
+      ->setForm($form);
 
     return $this->buildApplicationPage(
       array(
-        $header,
-        $form,
+        $form_box,
       ),
       array(
         'title' => $page_title,
         'device' => true,
       ));
   }
 
 }
diff --git a/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php b/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
index 7c3ffe2b2..f63c358ad 100644
--- a/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
+++ b/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
@@ -1,298 +1,307 @@
 <?php
 
 final class PhabricatorPeopleProfilePictureController
   extends PhabricatorPeopleController {
 
   private $id;
 
   public function shouldRequireAdmin() {
     return false;
   }
 
   public function willProcessRequest(array $data) {
     $this->id = $data['id'];
   }
 
   public function processRequest() {
     $request = $this->getRequest();
     $viewer = $request->getUser();
 
     $user = id(new PhabricatorPeopleQuery())
       ->setViewer($viewer)
       ->withIDs(array($this->id))
       ->requireCapabilities(
         array(
           PhabricatorPolicyCapability::CAN_VIEW,
           PhabricatorPolicyCapability::CAN_EDIT,
         ))
       ->executeOne();
     if (!$user) {
       return new Aphront404Response();
     }
 
     $profile_uri = '/p/'.$user->getUsername().'/';
 
     $supported_formats = PhabricatorFile::getTransformableImageFormats();
     $e_file = true;
     $errors = array();
 
     if ($request->isFormPost()) {
       $phid = $request->getStr('phid');
       $is_default = false;
       if ($phid == PhabricatorPHIDConstants::PHID_VOID) {
         $phid = null;
         $is_default = true;
       } else if ($phid) {
         $file = id(new PhabricatorFileQuery())
           ->setViewer($viewer)
           ->withPHIDs(array($phid))
           ->executeOne();
       } else {
         if ($request->getFileExists('picture')) {
           $file = PhabricatorFile::newFromPHPUpload(
             $_FILES['picture'],
             array(
               'authorPHID' => $viewer->getPHID(),
             ));
         } else {
           $e_file = pht('Required');
           $errors[] = pht(
             'You must choose a file when uploading a new profile picture.');
         }
       }
 
       if (!$errors && !$is_default) {
         if (!$file->isTransformableImage()) {
           $e_file = pht('Not Supported');
           $errors[] = pht(
             'This server only supports these image formats: %s.',
             implode(', ', $supported_formats));
         } else {
           $xformer = new PhabricatorImageTransformer();
           $xformed = $xformer->executeProfileTransform(
             $file,
             $width = 50,
             $min_height = 50,
             $max_height = 50);
         }
       }
 
       if (!$errors) {
         if ($is_default) {
           $user->setProfileImagePHID(null);
         } else {
           $user->setProfileImagePHID($xformed->getPHID());
         }
         $user->save();
         return id(new AphrontRedirectResponse())->setURI($profile_uri);
       }
     }
 
     $title = pht('Edit Profile Picture');
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addCrumb(
       id(new PhabricatorCrumbView())
         ->setName($user->getUsername())
         ->setHref($profile_uri));
     $crumbs->addCrumb(
       id(new PhabricatorCrumbView())
         ->setName($title));
 
     $form = id(new PHUIFormLayoutView())
       ->setUser($viewer);
 
     $default_image = PhabricatorFile::loadBuiltin($viewer, 'profile.png');
 
     $images = array();
 
     $current = $user->getProfileImagePHID();
     $has_current = false;
     if ($current) {
       $files = id(new PhabricatorFileQuery())
         ->setViewer($viewer)
         ->withPHIDs(array($current))
         ->execute();
       if ($files) {
         $file = head($files);
         if ($file->isTransformableImage()) {
           $has_current = true;
           $images[$current] = array(
             'uri' => $file->getBestURI(),
             'tip' => pht('Current Picture'),
           );
         }
       }
     }
 
     // Try to add external account images for any associated external accounts.
     $accounts = id(new PhabricatorExternalAccountQuery())
       ->setViewer($viewer)
       ->withUserPHIDs(array($user->getPHID()))
       ->needImages(true)
       ->execute();
 
     foreach ($accounts as $account) {
       $file = $account->getProfileImageFile();
       if ($account->getProfileImagePHID() != $file->getPHID()) {
         // This is a default image, just skip it.
         continue;
       }
 
       $provider = PhabricatorAuthProvider::getEnabledProviderByKey(
         $account->getProviderKey());
       if ($provider) {
         $tip = pht('Picture From %s', $provider->getProviderName());
       } else {
         $tip = pht('Picture From External Account');
       }
 
       if ($file->isTransformableImage()) {
         $images[$file->getPHID()] = array(
           'uri' => $file->getBestURI(),
           'tip' => $tip,
         );
       }
     }
 
     // Try to add Gravatar images for any email addresses associated with the
     // account.
     if (PhabricatorEnv::getEnvConfig('security.allow-outbound-http')) {
       $emails = id(new PhabricatorUserEmail())->loadAllWhere(
         'userPHID = %s ORDER BY address',
         $viewer->getPHID());
 
       $futures = array();
       foreach ($emails as $email_object) {
         $email = $email_object->getAddress();
 
         $hash = md5(strtolower(trim($email)));
         $uri = id(new PhutilURI("https://secure.gravatar.com/avatar/{$hash}"))
           ->setQueryParams(
             array(
               'size' => 200,
               'default' => '404',
               'rating' => 'x',
             ));
         $futures[$email] = new HTTPSFuture($uri);
       }
 
       $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();
       foreach (Futures($futures) as $email => $future) {
         try {
           list($body) = $future->resolvex();
           $file = PhabricatorFile::newFromFileData(
             $body,
             array(
               'name' => 'profile-gravatar',
               'ttl'  => (60 * 60 * 4),
             ));
           if ($file->isTransformableImage()) {
             $images[$file->getPHID()] = array(
               'uri' => $file->getBestURI(),
               'tip' => pht('Gravatar for %s', $email),
             );
           }
         } catch (Exception $ex) {
           // Just continue.
         }
       }
       unset($unguarded);
     }
 
     $images[PhabricatorPHIDConstants::PHID_VOID] = array(
       'uri' => $default_image->getBestURI(),
       'tip' => pht('Default Picture'),
     );
 
     require_celerity_resource('people-profile-css');
     Javelin::initBehavior('phabricator-tooltips', array());
 
     $buttons = array();
     foreach ($images as $phid => $spec) {
       $button = javelin_tag(
         'button',
         array(
           'class' => 'grey profile-image-button',
           'sigil' => 'has-tooltip',
           'meta' => array(
             'tip' => $spec['tip'],
             'size' => 300,
           ),
         ),
         phutil_tag(
           'img',
           array(
             'height' => 50,
             'width' => 50,
             'src' => $spec['uri'],
           )));
 
       $button = array(
         phutil_tag(
           'input',
           array(
             'type'  => 'hidden',
             'name'  => 'phid',
             'value' => $phid,
           )),
         $button);
 
       $button = phabricator_form(
         $viewer,
         array(
           'class' => 'profile-image-form',
           'method' => 'POST',
         ),
         $button);
 
       $buttons[] = $button;
     }
 
     if ($has_current) {
       $form->appendChild(
         id(new AphrontFormMarkupControl())
           ->setLabel(pht('Current Picture'))
           ->setValue(array_shift($buttons)));
     }
 
     $form->appendChild(
       id(new AphrontFormMarkupControl())
         ->setLabel(pht('Use Picture'))
         ->setValue($buttons));
 
-    $upload_head = id(new PhabricatorHeaderView())
-      ->setHeader(pht('Upload New Picture'));
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText($title)
+      ->setFormError($errors)
+      ->setForm($form);
 
     $upload_form = id(new AphrontFormView())
       ->setUser($user)
       ->setEncType('multipart/form-data')
       ->appendChild(
         id(new AphrontFormFileControl())
           ->setName('picture')
           ->setLabel(pht('Upload Picture'))
           ->setError($e_file)
           ->setCaption(
             pht('Supported formats: %s', implode(', ', $supported_formats))))
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->addCancelButton($profile_uri)
           ->setValue(pht('Upload Picture')));
 
     if ($errors) {
       $errors = id(new AphrontErrorView())->setErrors($errors);
     }
 
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText($title)
+      ->setFormError($errors)
+      ->setForm($form);
+
+    $upload_box = id(new PHUIFormBoxView())
+      ->setHeaderText(pht('Upload New Picture'))
+      ->setForm($upload_form);
+
     return $this->buildApplicationPage(
       array(
         $crumbs,
-        $errors,
-        $form,
-        $upload_head,
-        $upload_form,
+        $form_box,
+        $upload_box,
       ),
       array(
         'title' => $title,
         'device' => true,
       ));
   }
 }
diff --git a/src/applications/phame/controller/post/PhamePostPublishController.php b/src/applications/phame/controller/post/PhamePostPublishController.php
index 7d24c845c..240bb2f93 100644
--- a/src/applications/phame/controller/post/PhamePostPublishController.php
+++ b/src/applications/phame/controller/post/PhamePostPublishController.php
@@ -1,93 +1,93 @@
 <?php
 
 /**
  * @group phame
  */
 final class PhamePostPublishController extends PhameController {
 
   private $id;
 
   public function willProcessRequest(array $data) {
     $this->id = $data['id'];
   }
 
   public function processRequest() {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $post = id(new PhamePostQuery())
       ->setViewer($user)
       ->withIDs(array($this->id))
       ->requireCapabilities(
         array(
           PhabricatorPolicyCapability::CAN_EDIT,
         ))
       ->executeOne();
     if (!$post) {
       return new Aphront404Response();
     }
 
     $view_uri = $this->getApplicationURI('/post/view/'.$post->getID().'/');
 
     if ($request->isFormPost()) {
       $post->setVisibility(PhamePost::VISIBILITY_PUBLISHED);
       $post->setDatePublished(time());
       $post->save();
 
       return id(new AphrontRedirectResponse())->setURI($view_uri);
     }
 
-    $header = id(new PhabricatorHeaderView())
-      ->setHeader(pht('Preview Post'));
-
     $form = id(new AphrontFormView())
       ->setUser($user)
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->setValue(pht('Publish Post'))
           ->addCancelButton($view_uri));
 
     $frame = $this->renderPreviewFrame($post);
 
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText(pht('Preview Post'))
+      ->setForm($form);
+
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addCrumb(
       id(new PhabricatorCrumbView())
         ->setName(pht('Preview'))
         ->setHref($view_uri));
 
     $nav = $this->renderSideNavFilterView(null);
     $nav->appendChild(
       array(
         $crumbs,
-        $header,
-        $form,
+        $form_box,
         $frame,
       ));
 
     return $this->buildApplicationPage(
       $nav,
       array(
         'title'   => pht('Preview Post'),
         'device'  => true,
       ));
   }
 
   private function renderPreviewFrame(PhamePost $post) {
 
     // TODO: Clean up this CSS.
 
     return phutil_tag(
       'div',
       array(
         'style' => 'text-align: center; padding: 1em;',
       ),
       phutil_tag(
         'iframe',
         array(
           'style' => 'width: 100%; height: 600px; '.
                      'border: 1px solid #303030;',
           'src' => $this->getApplicationURI('/post/framed/'.$post->getID().'/'),
         ),
         ''));
   }
 }
diff --git a/src/applications/releeph/controller/project/ReleephProjectCreateController.php b/src/applications/releeph/controller/project/ReleephProjectCreateController.php
index 64a686e88..6fbcbf6d8 100644
--- a/src/applications/releeph/controller/project/ReleephProjectCreateController.php
+++ b/src/applications/releeph/controller/project/ReleephProjectCreateController.php
@@ -1,168 +1,172 @@
 <?php
 
 final class ReleephProjectCreateController extends ReleephProjectController {
 
   public function processRequest() {
     $request = $this->getRequest();
     $name = trim($request->getStr('name'));
     $trunk_branch = trim($request->getStr('trunkBranch'));
     $arc_pr_id = $request->getInt('arcPrID');
 
     $arc_projects = $this->loadArcProjects();
 
     $e_name = true;
     $e_trunk_branch = true;
     $errors = array();
 
     if ($request->isFormPost()) {
       if (!$name) {
         $e_name = pht('Required');
         $errors[] = pht(
           'Your Releeph project should have a simple descriptive name.');
       }
 
       if (!$trunk_branch) {
         $e_trunk_branch = pht('Required');
         $errors[] = pht(
           'You must specify which branch you will be picking from.');
       }
 
       $arc_project = $arc_projects[$arc_pr_id];
       $pr_repository = $arc_project->loadRepository();
 
       if (!$errors) {
         $releeph_project = id(new ReleephProject())
           ->setName($name)
           ->setTrunkBranch($trunk_branch)
           ->setRepositoryPHID($pr_repository->getPHID())
           ->setArcanistProjectID($arc_project->getID())
           ->setCreatedByUserPHID($request->getUser()->getPHID())
           ->setIsActive(1);
 
         try {
           $releeph_project->save();
 
           return id(new AphrontRedirectResponse())
             ->setURI($releeph_project->getURI());
         } catch (AphrontQueryDuplicateKeyException $ex) {
           $e_name = pht('Not Unique');
           $errors[] = pht(
             'Another project already uses this name.');
         }
       }
     }
 
     $error_view = null;
     if ($errors) {
       $error_view = new AphrontErrorView();
       $error_view->setErrors($errors);
     }
 
     $arc_project_options = $this->getArcProjectSelectOptions($arc_projects);
 
     $project_name_input = id(new AphrontFormTextControl())
       ->setLabel(pht('Name'))
       ->setDisableAutocomplete(true)
       ->setName('name')
       ->setValue($name)
       ->setError($e_name)
       ->setCaption(pht('A name like "Thrift" but not "Thrift releases".'));
 
     $arc_project_input = id(new AphrontFormSelectControl())
       ->setLabel(pht('Arc Project'))
       ->setName('arcPrID')
       ->setValue($arc_pr_id)
       ->setCaption(pht(
         'If your Arc project isn\'t listed, associate it with a repository %s',
         phutil_tag(
           'a',
           array(
             'href' => '/repository/',
             'target' => '_blank',
           ),
           'here')))
       ->setOptions($arc_project_options);
 
     $branch_name_preview = id(new ReleephBranchPreviewView())
       ->setLabel(pht('Example Branch'))
       ->addControl('projectName', $project_name_input)
       ->addControl('arcProjectID', $arc_project_input)
       ->addStatic('template', '')
       ->addStatic('isSymbolic', false);
 
     $form = id(new AphrontFormView())
       ->setUser($request->getUser())
       ->appendChild($project_name_input)
       ->appendChild($arc_project_input)
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setLabel(pht('Trunk'))
           ->setName('trunkBranch')
           ->setValue($trunk_branch)
           ->setError($e_trunk_branch)
           ->setCaption(pht('The development branch, '.
               'from which requests will be picked.')))
       ->appendChild($branch_name_preview)
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->addCancelButton('/releeph/project/')
           ->setValue(pht('Create')));
 
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText(pht('Create New Project'))
+      ->setFormError($error_view)
+      ->setForm($form);
+
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addCrumb(
       id(new PhabricatorCrumbView())
         ->setName(pht('New Project')));
 
     return $this->buildApplicationPage(
       array(
         $crumbs,
-        $error_view,
-        $form,
+        $form_box,
       ),
       array(
         'title' => pht('Create New Project'),
         'device' => true,
       ));
   }
 
   private function loadArcProjects() {
     $viewer = $this->getRequest()->getUser();
 
     $projects = id(new PhabricatorRepositoryArcanistProjectQuery())
       ->setViewer($viewer)
       ->needRepositories(true)
       ->execute();
 
     $projects = mfilter($projects, 'getRepository');
     $projects = msort($projects, 'getName');
 
     return $projects;
   }
 
   private function getArcProjectSelectOptions(array $arc_projects) {
     assert_instances_of($arc_projects, 'PhabricatorRepositoryArcanistProject');
 
     $repos = mpull($arc_projects, 'getRepository');
     $repos = mpull($repos, null, 'getID');
 
     $groups = array();
     foreach ($arc_projects as $arc_project) {
       $id = $arc_project->getID();
       $repo_id = $arc_project->getRepository()->getID();
       $groups[$repo_id][$id] = $arc_project->getName();
     }
 
     $choices = array();
     foreach ($groups as $repo_id => $group) {
       $repo_name = $repos[$repo_id]->getName();
       $callsign = $repos[$repo_id]->getCallsign();
       $name = "r{$callsign} ({$repo_name})";
       $choices[$name] = $group;
     }
 
     ksort($choices);
 
     return $choices;
   }
 
 }
diff --git a/src/applications/repository/controller/PhabricatorRepositoryEditController.php b/src/applications/repository/controller/PhabricatorRepositoryEditController.php
index e37fd9a05..458703c9e 100644
--- a/src/applications/repository/controller/PhabricatorRepositoryEditController.php
+++ b/src/applications/repository/controller/PhabricatorRepositoryEditController.php
@@ -1,692 +1,692 @@
 <?php
 
 final class PhabricatorRepositoryEditController
   extends PhabricatorRepositoryController {
 
   private $id;
   private $view;
   private $repository;
   private $sideNav;
 
   public function willProcessRequest(array $data) {
     $this->id = $data['id'];
     $this->view = idx($data, 'view');
   }
 
   public function processRequest() {
 
     $request = $this->getRequest();
 
     $repository = id(new PhabricatorRepository())->load($this->id);
     if (!$repository) {
       return new Aphront404Response();
     }
 
     $views = array(
       'basic'     => 'Basics',
       'tracking'  => 'Tracking',
     );
 
     $this->repository = $repository;
 
     if (!isset($views[$this->view])) {
       $this->view = head_key($views);
     }
 
     $nav = new AphrontSideNavFilterView();
     $base_uri = new PhutilURI('/repository/edit/'.$repository->getID().'/');
     $nav->setBaseURI($base_uri);
     foreach ($views as $view => $name) {
       $nav->addFilter($view, $name);
     }
     $nav->selectFilter($this->view, null);
 
     $nav->appendChild($this->renderDaemonNotice());
 
     $this->sideNav = $nav;
 
     switch ($this->view) {
       case 'basic':
         return $this->processBasicRequest();
       case 'tracking':
         return $this->processTrackingRequest();
       default:
         throw new Exception("Unknown view.");
     }
   }
 
   protected function processBasicRequest() {
     $request = $this->getRequest();
     $user = $request->getUser();
     $repository = $this->repository;
     $repository_id = $repository->getID();
 
     $errors = array();
 
     $e_name = true;
 
     if ($request->isFormPost()) {
       $repository->setName($request->getStr('name'));
 
       if (!strlen($repository->getName())) {
         $e_name = 'Required';
         $errors[] = 'Repository name is required.';
       } else {
         $e_name = null;
       }
 
       $repository->setDetail('description', $request->getStr('description'));
       $repository->setDetail('encoding', $request->getStr('encoding'));
 
       if (!$errors) {
         $repository->save();
         return id(new AphrontRedirectResponse())
           ->setURI('/repository/edit/'.$repository_id.'/basic/?saved=true');
       }
     }
 
     $error_view = null;
     if ($errors) {
       $error_view = new AphrontErrorView();
       $error_view->setErrors($errors);
       $error_view->setTitle('Form Errors');
     } else if ($request->getStr('saved')) {
       $error_view = new AphrontErrorView();
       $error_view->setSeverity(AphrontErrorView::SEVERITY_NOTICE);
       $error_view->setTitle('Changes Saved');
       $error_view->appendChild('Repository changes were saved.');
     }
 
     $encoding_doc_link = PhabricatorEnv::getDoclink(
         'article/User_Guide_UTF-8_and_Character_Encoding.html');
 
     $form = new AphrontFormView();
     $form
       ->setUser($user)
       ->setAction('/repository/edit/'.$repository->getID().'/')
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setLabel('Name')
           ->setName('name')
           ->setValue($repository->getName())
           ->setError($e_name)
           ->setCaption('Human-readable repository name.'))
       ->appendChild(
         id(new AphrontFormTextAreaControl())
           ->setLabel('Description')
           ->setName('description')
           ->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_SHORT)
           ->setValue($repository->getDetail('description')))
       ->appendChild(
         id(new AphrontFormStaticControl())
           ->setLabel('Callsign')
           ->setName('callsign')
           ->setValue($repository->getCallsign()))
       ->appendChild(hsprintf('
         <p class="aphront-form-instructions">'.
           'If source code in this repository uses a character '.
           'encoding other than UTF-8 (for example, ISO-8859-1), '.
           'specify it here. You can usually leave this field blank. '.
           'See User Guide: '.
           '<a href="%s">UTF-8 and Character Encoding</a> for more information.'.
         '</p>',
         $encoding_doc_link))
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setLabel('Encoding')
           ->setName('encoding')
           ->setValue($repository->getDetail('encoding')))
       ->appendChild(
         id(new AphrontFormStaticControl())
           ->setLabel('Type')
           ->setName('type')
           ->setValue($repository->getVersionControlSystem()))
       ->appendChild(
         id(new AphrontFormStaticControl())
           ->setLabel('ID')
           ->setValue($repository->getID()))
       ->appendChild(
         id(new AphrontFormStaticControl())
           ->setLabel('PHID')
           ->setValue($repository->getPHID()))
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->setValue('Save'));
 
     $nav = $this->sideNav;
 
     $form_box = id(new PHUIFormBoxView())
       ->setHeaderText(pht('Edit Repository'))
       ->setFormError($error_view)
       ->setForm($form);
 
     $nav->appendChild($form_box);
 
     return $this->buildApplicationPage(
       $nav,
       array(
         'title' => pht('Edit Repository'),
         'device' => true,
       ));
   }
 
   private function processTrackingRequest() {
     $request = $this->getRequest();
     $user = $request->getUser();
     $repository = $this->repository;
     $repository_id = $repository->getID();
 
     $errors = array();
 
     $e_uri = null;
     $e_path = null;
 
     $is_git = false;
     $is_svn = false;
     $is_mercurial = false;
 
     $e_ssh_key = null;
     $e_ssh_keyfile = null;
     $e_branch = null;
 
     switch ($repository->getVersionControlSystem()) {
       case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT:
         $is_git = true;
         break;
       case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN:
         $is_svn = true;
         break;
       case PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL:
         $is_mercurial = true;
         break;
       default:
         throw new Exception("Unsupported VCS!");
     }
 
     $has_branches       = ($is_git || $is_mercurial);
     $has_local          = ($is_git || $is_mercurial);
     $has_branch_filter  = ($is_git);
     $has_auth_support   = $is_svn;
 
     if ($request->isFormPost()) {
       $tracking = ($request->getStr('tracking') == 'enabled' ? true : false);
       $repository->setDetail('tracking-enabled', $tracking);
       $repository->setDetail('remote-uri', $request->getStr('uri'));
       if ($has_local) {
         $repository->setDetail('local-path', $request->getStr('path'));
       }
 
       if ($has_branch_filter) {
         $branch_filter = $request->getStrList('branch-filter');
         $branch_filter = array_fill_keys($branch_filter, true);
 
         $repository->setDetail('branch-filter', $branch_filter);
 
         $close_commits_filter = $request->getStrList('close-commits-filter');
         $close_commits_filter = array_fill_keys($close_commits_filter, true);
 
         $repository->setDetail('close-commits-filter', $close_commits_filter);
       }
 
       $repository->setDetail(
         'disable-autoclose',
         $request->getStr('autoclose') == 'disabled' ? true : false);
 
       $repository->setDetail(
         'pull-frequency',
         max(1, $request->getInt('frequency')));
 
       if ($has_branches) {
         $repository->setDetail(
           'default-branch',
           $request->getStr('default-branch'));
         if ($is_git) {
           $branch_name = $repository->getDetail('default-branch');
           if (strpos($branch_name, '/') !== false) {
             $e_branch = 'Invalid';
             $errors[] = "Your branch name should not specify an explicit ".
                         "remote. For instance, use 'master', not ".
                         "'origin/master'.";
           }
         }
       }
 
       $repository->setDetail(
         'default-owners-path',
         $request->getStr(
           'default-owners-path',
           '/'));
 
       $repository->setDetail('ssh-login', $request->getStr('ssh-login'));
       $repository->setDetail('ssh-key', $request->getStr('ssh-key'));
       $repository->setDetail('ssh-keyfile', $request->getStr('ssh-keyfile'));
 
       $repository->setDetail('http-login', $request->getStr('http-login'));
       $repository->setDetail('http-pass',  $request->getStr('http-pass'));
 
       $repository->setDetail('show-user', $request->getInt('show-user'));
 
       if ($repository->getDetail('ssh-key') &&
           $repository->getDetail('ssh-keyfile')) {
         $errors[] =
           "Specify only one of 'SSH Private Key' and 'SSH Private Key File', ".
           "not both.";
         $e_ssh_key = 'Choose Only One';
         $e_ssh_keyfile = 'Choose Only One';
       }
 
       $repository->setDetail(
         'herald-disabled',
         $request->getInt('herald-disabled', 0));
 
       if ($is_svn) {
         $repository->setUUID($request->getStr('uuid'));
         $subpath = ltrim($request->getStr('svn-subpath'), '/');
         if ($subpath) {
           $subpath = rtrim($subpath, '/').'/';
         }
         $repository->setDetail('svn-subpath', $subpath);
       }
 
       if ($tracking) {
         if (!$repository->getDetail('remote-uri')) {
           $e_uri = 'Required';
           $errors[] = "Repository URI is required.";
         } else if ($is_svn &&
           !preg_match('@/$@', $repository->getDetail('remote-uri'))) {
 
           $e_uri = 'Invalid';
           $errors[] = 'Subversion Repository Root must end in a slash ("/").';
         } else {
           $e_uri = null;
         }
 
         if ($has_local) {
           if (!$repository->getDetail('local-path')) {
             $e_path = 'Required';
             $errors[] = "Local path is required.";
           } else {
             $e_path = null;
           }
         }
       }
 
       if (!$errors) {
         $repository->save();
         return id(new AphrontRedirectResponse())
           ->setURI('/repository/edit/'.$repository_id.'/tracking/?saved=true');
       }
     }
 
     $error_view = null;
     if ($errors) {
       $error_view = new AphrontErrorView();
       $error_view->setErrors($errors);
       $error_view->setTitle('Form Errors');
     } else if ($request->getStr('saved')) {
       $error_view = new AphrontErrorView();
       $error_view->setSeverity(AphrontErrorView::SEVERITY_NOTICE);
       $error_view->setTitle('Changes Saved');
       $error_view->appendChild('Tracking changes were saved.');
     } else if (!$repository->isTracked()) {
       $error_view = new AphrontErrorView();
       $error_view->setSeverity(AphrontErrorView::SEVERITY_WARNING);
       $error_view->setTitle('Repository Not Tracked');
       $error_view->appendChild(
         'Tracking is currently "Disabled" for this repository, so it will '.
         'not be imported into Phabricator. You can enable it below.');
     }
 
     switch ($repository->getVersionControlSystem()) {
       case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT:
         $is_git = true;
         break;
       case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN:
         $is_svn = true;
         break;
     }
 
     $doc_href = PhabricatorEnv::getDoclink('article/Diffusion_User_Guide.html');
     $user_guide_link = phutil_tag(
       'a',
       array(
         'href' => $doc_href,
       ),
       'Diffusion User Guide');
 
     $form = new AphrontFormView();
     $form
       ->setUser($user)
       ->setAction('/repository/edit/'.$repository->getID().'/tracking/')
       ->appendChild(hsprintf(
         '<p class="aphront-form-instructions">Phabricator can track '.
         'repositories, importing commits as they happen and notifying '.
         'Differential, Diffusion, Herald, and other services. To enable '.
         'tracking for a repository, configure it here and then start (or '.
         'restart) the daemons. More information is available in the '.
         '<strong>%s</strong>.</p>',
         $user_guide_link));
 
     $form
       ->appendChild(
         id(new AphrontFormInsetView())
           ->setTitle('Basics')
           ->appendChild(id(new AphrontFormStaticControl())
             ->setLabel('Repository Name')
             ->setValue($repository->getName()))
           ->appendChild(id(new AphrontFormSelectControl())
             ->setName('tracking')
             ->setLabel('Tracking')
             ->setOptions(array(
                 'disabled'  => 'Disabled',
                 'enabled'   => 'Enabled',
                 ))
             ->setValue(
               $repository->isTracked()
               ? 'enabled'
               : 'disabled')));
 
     $inset = new AphrontFormInsetView();
     $inset->setTitle('Remote URI');
 
     $clone_command = null;
     $fetch_command = null;
     if ($is_git) {
       $clone_command = 'git clone';
       $fetch_command = 'git fetch';
     } else if ($is_mercurial) {
       $clone_command = 'hg clone';
       $fetch_command = 'hg pull';
     }
 
     $uri_label = 'Repository URI';
     if ($has_local) {
       if ($is_git) {
         $instructions = hsprintf(
           'Enter the URI to clone this repository from. It should look like '.
           '<tt>git@github.com:example/example.git</tt>, '.
           '<tt>ssh://user@host.com/git/example.git</tt>, or '.
           '<tt>file:///local/path/to/repo</tt>');
       } else if ($is_mercurial) {
         $instructions = hsprintf(
           'Enter the URI to clone this repository from. It should look '.
           'something like <tt>ssh://user@host.com/hg/example</tt>');
       }
       $inset->appendChild(hsprintf(
         '<p class="aphront-form-instructions">%s</p>',
         $instructions));
     } else if ($is_svn) {
       $instructions = hsprintf(
         'Enter the <strong>Repository Root</strong> for this SVN repository. '.
         'You can figure this out by running <tt>svn info</tt> and looking at '.
         'the value in the <tt>Repository Root</tt> field. It should be a URI '.
         'and look like <tt>http://svn.example.org/svn/</tt>, '.
         '<tt>svn+ssh://svn.example.com/svnroot/</tt>, or '.
         '<tt>svn://svn.example.net/svn/</tt>');
       $inset->appendChild(hsprintf(
         '<p class="aphront-form-instructions">%s</p>',
         $instructions));
       $uri_label = 'Repository Root';
     }
 
     $inset
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setName('uri')
           ->setLabel($uri_label)
           ->setID('remote-uri')
           ->setValue($repository->getDetail('remote-uri'))
           ->setError($e_uri));
 
     $inset->appendChild(
       id(new AphrontFormCheckboxControl())
       ->addCheckbox(
         'show-user',
         1,
         pht('Permit users to view the username of this connection.'),
         $repository->getDetail('show-user') == 1));
 
     $inset->appendChild(hsprintf(
       '<div class="aphront-form-instructions">'.
         'If you want to connect to this repository over SSH, enter the '.
         'username and private key to use. You can leave these fields blank if '.
         'the repository does not use SSH.'.
       '</div>'));
 
     $inset
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setName('ssh-login')
           ->setLabel('SSH User')
           ->setValue($repository->getDetail('ssh-login')))
       ->appendChild(
         id(new AphrontFormTextAreaControl())
           ->setName('ssh-key')
           ->setLabel('SSH Private Key')
           ->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_SHORT)
           ->setValue($repository->getDetail('ssh-key'))
           ->setError($e_ssh_key)
           ->setCaption(
             hsprintf('Specify the entire private key, <em>or</em>...')))
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setName('ssh-keyfile')
           ->setLabel('SSH Private Key File')
           ->setValue($repository->getDetail('ssh-keyfile'))
           ->setError($e_ssh_keyfile)
           ->setCaption(
             '...specify a path on disk where the daemon should '.
             'look for a private key.'));
 
     if ($has_auth_support) {
       $inset
         ->appendChild(hsprintf(
           '<div class="aphront-form-instructions">'.
             'If you want to connect to this repository with a username and '.
             'password, such as over HTTP Basic Auth or SVN with SASL, '.
             'enter the username and password to use. You can leave these '.
             'fields blank if the repository does not use a username and '.
             'password for authentication.'.
           '</div>'))
         ->appendChild(
           id(new AphrontFormTextControl())
             ->setName('http-login')
             ->setLabel('Username')
             ->setValue($repository->getDetail('http-login')))
         ->appendChild(
           id(new AphrontFormPasswordControl())
             ->setName('http-pass')
             ->setLabel('Password')
             ->setValue($repository->getDetail('http-pass')));
     }
 
     $inset
       ->appendChild(hsprintf(
         '<div class="aphront-form-important">'.
           'To test your authentication configuration, <strong>save this '.
           'form</strong> and then run this script:'.
           '<code>'.
             'phabricator/ $ ./scripts/repository/test_connection.php %s'.
           '</code>'.
           'This will verify that your configuration is correct and the '.
           'daemons can connect to the remote repository and pull changes '.
           'from it.'.
         '</div>',
         $repository->getCallsign()));
 
     $form->appendChild($inset);
 
     $inset = new AphrontFormInsetView();
     $inset->setTitle('Repository Information');
 
     if ($has_local) {
       $default_local_path = '';
       $default =
         PhabricatorEnv::getEnvConfig('repository.default-local-path');
       if (!$repository->getDetail('remote-uri') && $default) {
         $default_local_path = $default.strtolower($repository->getCallsign());
       }
       $inset->appendChild(hsprintf(
         '<p class="aphront-form-instructions">Select a path on local disk '.
         'which the daemons should <tt>%s</tt> the repository into. This must '.
         'be readable and writable by the daemons, and readable by the '.
         'webserver. The daemons will <tt>%s</tt> and keep this repository up '.
         'to date.</p>',
         $clone_command,
         $fetch_command));
       $inset->appendChild(
         id(new AphrontFormTextControl())
           ->setName('path')
           ->setLabel('Local Path')
           ->setValue($repository->getDetail('local-path', $default_local_path))
           ->setError($e_path));
     } else if ($is_svn) {
       $inset->appendChild(hsprintf(
         '<p class="aphront-form-instructions">If you only want to parse one '.
         'subpath of the repository, specify it here, relative to the '.
         'repository root (e.g., <tt>trunk/</tt> or <tt>projects/wheel/</tt>). '.
         'If you want to parse multiple subdirectories, create a separate '.
         'Phabricator repository for each one.</p>'));
       $inset->appendChild(
         id(new AphrontFormTextControl())
           ->setName('svn-subpath')
           ->setLabel('Subpath')
           ->setValue($repository->getDetail('svn-subpath'))
           ->setError($e_path));
     }
 
     if ($has_branch_filter) {
       $branch_filter_str = implode(
         ', ',
         array_keys($repository->getDetail('branch-filter', array())));
       $inset
         ->appendChild(
           id(new AphrontFormTextControl())
             ->setName('branch-filter')
             ->setLabel('Track Only')
             ->setValue($branch_filter_str)
             ->setCaption(hsprintf(
               'Optional list of branches to track. Other branches will be '.
               'completely ignored. If left empty, all branches are tracked. '.
               'Example: <tt>master, release</tt>')));
     }
 
     $inset
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setName('frequency')
           ->setLabel('Pull Frequency')
           ->setValue($repository->getDetail('pull-frequency', 15))
           ->setCaption(
             'Number of seconds daemon should sleep between requests. Larger '.
             'numbers reduce load but also decrease responsiveness.'));
 
     $form->appendChild($inset);
 
     $inset = new AphrontFormInsetView();
     $inset->setTitle('Application Configuration');
 
     if ($has_branches) {
       $inset
         ->appendChild(
           id(new AphrontFormTextControl())
             ->setName('default-branch')
             ->setLabel('Default Branch')
             ->setValue($repository->getDefaultBranch())
             ->setError($e_branch)
             ->setCaption(
               'Default branch to show in Diffusion.'));
     }
 
     $inset
       ->appendChild(id(new AphrontFormSelectControl())
         ->setName('autoclose')
         ->setLabel('Autoclose')
         ->setOptions(array(
             'enabled'   => 'Enabled: Automatically Close Pushed Revisions',
             'disabled'  => 'Disabled: Ignore Pushed Revisions',
             ))
         ->setCaption(
           "Automatically close Differential revisions when associated commits ".
           "are pushed to this repository.")
         ->setValue(
           $repository->getDetail('disable-autoclose', false)
           ? 'disabled'
           : 'enabled'));
 
     if ($has_branch_filter) {
       $close_commits_filter_str = implode(
           ', ',
           array_keys($repository->getDetail('close-commits-filter', array())));
       $inset
         ->appendChild(
           id(new AphrontFormTextControl())
             ->setName('close-commits-filter')
             ->setLabel('Autoclose Branches')
             ->setValue($close_commits_filter_str)
             ->setCaption(
               'Optional list of branches which can trigger autoclose. '.
               'If left empty, all branches trigger autoclose.'));
     }
 
     $inset
       ->appendChild(
         id(new AphrontFormTextControl())
           ->setName('default-owners-path')
           ->setLabel('Default Owners Path')
           ->setValue(
             $repository->getDetail(
               'default-owners-path',
               '/'))
           ->setCaption('Default path in Owners tool.'));
 
     $inset
       ->appendChild(
         id(new AphrontFormSelectControl())
           ->setName('herald-disabled')
           ->setLabel('Herald/Feed Enabled')
           ->setValue($repository->getDetail('herald-disabled', 0))
           ->setOptions(
             array(
               0 => 'Enabled - Send Email and Publish Stories',
               1 => 'Disabled - Do Not Send Email or Publish Stories',
             ))
           ->setCaption(
             'You can disable Herald commit notifications and feed stories '.
             'for this repository. This can be useful when initially importing '.
             'a repository. Feed stories are never published about commits '.
             'that are more than 24 hours old.'));
 
     if ($is_svn) {
       $inset
         ->appendChild(
           id(new AphrontFormTextControl())
             ->setName('uuid')
             ->setLabel('UUID')
             ->setValue($repository->getUUID())
             ->setCaption(hsprintf('Repository UUID from <tt>svn info</tt>.')));
     }
 
     $form->appendChild($inset);
 
     $form
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->setValue('Save Configuration'));
 
-    $header = id(new PhabricatorHeaderView())
-      ->setHeader(pht('Edit Repository Tracking'));
+    $form_box = id(new PHUIFormBoxView())
+      ->setHeaderText(pht('Edit Repository Tracking'))
+      ->setFormError($error_view)
+      ->setForm($form);
 
     $nav = $this->sideNav;
-    $nav->appendChild($error_view);
-    $nav->appendChild($header);
-    $nav->appendChild($form);
+    $nav->appendChild($form_box);
 
     return $this->buildApplicationPage(
       $nav,
       array(
         'title' => pht('Edit Repository Tracking'),
       ));
   }
 
 }
diff --git a/src/view/form/PHUIFormBoxView.php b/src/view/form/PHUIFormBoxView.php
index 60f489448..16ca8c7de 100644
--- a/src/view/form/PHUIFormBoxView.php
+++ b/src/view/form/PHUIFormBoxView.php
@@ -1,43 +1,43 @@
 <?php
 
 final class PHUIFormBoxView extends AphrontView {
 
   private $headerText;
   private $formError = null;
   private $form;
 
   public function setHeaderText($text) {
     $this->headerText = $text;
     return $this;
   }
 
   public function setFormError($error) {
     $this->formError = $error;
     return $this;
   }
 
-  public function setForm(AphrontFormView $form) {
+  public function setForm($form) {
     $this->form = $form;
     return $this;
   }
 
   public function render() {
 
     $error = $this->formError ? $this->formError : null;
 
     $header = id(new PhabricatorActionHeaderView())
       ->setHeaderTitle($this->headerText)
       ->setHeaderColor(PhabricatorActionHeaderView::HEADER_LIGHTBLUE);
 
     $content = id(new PHUIBoxView())
       ->appendChild(array($header, $error, $this->form))
       ->setBorder(true)
       ->addMargin(PHUI::MARGIN_LARGE_TOP)
       ->addMargin(PHUI::MARGIN_LARGE_LEFT)
       ->addMargin(PHUI::MARGIN_LARGE_RIGHT)
       ->addClass('phui-form-box');
 
     return $content;
 
   }
 }
diff --git a/webroot/rsrc/css/application/diffusion/diffusion-source.css b/webroot/rsrc/css/application/diffusion/diffusion-source.css
index 21d5d61b4..99637ece8 100644
--- a/webroot/rsrc/css/application/diffusion/diffusion-source.css
+++ b/webroot/rsrc/css/application/diffusion/diffusion-source.css
@@ -1,86 +1,87 @@
 /**
  * @provides diffusion-source-css
  */
 
 .diffusion-source {
   margin: 1em 0 2em;
   width: 100%;
   font-family: "Monaco", Consolas, monospace;
   font-size: 10px;
+  background: #fff;
 }
 
 .diffusion-source tr.phabricator-source-highlight {
   background: #ffff00;
 }
 
 .diffusion-source th {
   text-align:         right;
   vertical-align:     top;
   background:         #eeeeee;
   color:              #888888;
   border-style:       solid;
   border-width:       0px 1px;
   border-color:       #eeeeee #999999 #eeeeee #dddddd;
   font-family:        "Verdana";
   font-size:          11px;
 }
 
 .diffusion-source td {
   letter-spacing:     0.0083334px;
   vertical-align:     top;
   white-space:        pre-wrap;
   padding-bottom:     1px;
   padding-left:       8px;
   line-height:        16px;
   width:              100%;
 }
 
 .diffusion-browse-type-form {
   float: right;
 }
 
 .diffusion-blame-link,
 .diffusion-rev-link,
 .diffusion-author-link {
   white-space: nowrap;
 }
 
 .diffusion-blame-link {
   min-width: 25px;
 }
 
 .diffusion-rev-link {
   min-width: 90px;
 }
 
 .diffusion-author-link {
   min-width: 120px;
 }
 
 .diffusion-blame-link a,
 .diffusion-rev-link a,
 .diffusion-author-link a,
 .diffusion-line-link a {
   font-weight:  bold;
 }
 
 .diffusion-rev-link a,
 .diffusion-author-link span,
 .diffusion-author-link a {
   margin:       0 8px;
 }
 
 .diffusion-blame-link a,
 .diffusion-line-link a {
   /* Give the user a larger click target. */
   display:      block;
   padding:      2px 8px;
 }
 
 .diffusion-line-link {
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;
   -ms-user-select: none;
   user-select: none;
 }